Tin xấu, mọi người! Dường như có một lỗi không thể sửa được trong Fedora 21: Kết nối có dây với 802.1x PEAP / MSCHAPv2 không hoạt động . Vì vậy, trong khi câu trả lời dưới đây có thể hoạt động cho các bản phát hành khác, người dùng Fedora 21 hiện không gặp may.
Bản thân tôi chưa bao giờ thử, nhưng bài đăng này dường như chứa một hướng dẫn khá chi tiết để thiết lập 802.1x giữa máy khách Linux và miền Windows. Lưu ý phần yêu cầu chứng chỉ: nó sẽ giải quyết vấn đề của bạn về chứng chỉ không thể xuất khẩu. Các phiên bản phần mềm khá cũ ( Ubuntu là 8.04 và Nhà môi giới quyền lực của Beyond Trust vẫn tương tự ), nhưng ý tưởng cơ bản có vẻ chắc chắn với tôi.
Tôi đã định dạng bài đăng nêu trên để dễ đọc hơn. Trích dẫn làm cho các hộp mã có màu xám trên xám, vì vậy tôi đã bỏ nó đi, xin lỗi:
Tuyên bố miễn trừ trách nhiệm: Hướng dẫn này được viết từ góc độ phân phối Linux Ubuntu 8.04. Để làm cho điều này hoạt động với các bản phân phối Linux hoặc Unix khác, một số thay đổi có thể cần phải được thực hiện.
Hai điều chính cần thiết cho máy Linux của bạn để xác thực trên 802.1x là chứng chỉ ứng dụng khách và tài khoản trong miền Windows. Trong quá trình xác thực, máy khách Linux xuất trình chứng chỉ máy tính của nó cho bộ chuyển mạch, lần lượt trình bày nó cho máy chủ RADIUS để xác minh chứng chỉ và xác minh tài khoản máy tính mà chứng chỉ được gán cho Active Directory. Nếu chứng chỉ và tài khoản máy tính hợp lệ, thì máy chủ RADIUS sẽ phê duyệt yêu cầu xác thực gửi lại cho bộ chuyển mạch, từ đó xác thực cổng mà hộp Linux được kết nối.
Điều đầu tiên cần làm là tham gia máy tính Linux của bạn vào miền Windows. Vì Linux thực sự không thể tham gia một miền Windows, chúng tôi phải tải xuống phần mềm cần thiết để cho phép chúng tôi làm điều này. Tương tự như vậy làm cho phần mềm cho phép chúng tôi làm điều này. Để cài đặt cái này trên Ubuntu rất đơn giản, chỉ cần làm theo các bước sau:
- sudo apt-get cập nhật
- sudo apt-get cài đặt tương tự mở
- sudo domainjoin-cli tham gia
enter the FQDN of your domain here
enter your admin account here
, bạn có thể sử dụng định dạng user@domain.com
. Bạn cũng có thể sử dụng phiên bản GUI bằng cách đi đếnSystem → Administration → Likewise.
- sudo update-rc.d mặc định mở tương tự
- sudo /etc/init.d/likewise-open bắt đầu
Nếu bạn không chạy Ubuntu, bạn có thể tải xuống phần mềm tại đây http://www.likewisesoftware.com/products/likewise_open . Bây giờ bạn có thể đăng xuất và đăng nhập lại bằng tài khoản miền của mình. Tôi tin rằng cả định dạng user@domain.com
và tên miền \ người dùng đều hoạt động. Tôi sẽ kiểm tra điều này sau.
Có ba tệp nằm trên máy Linux phải được cấu hình đúng để xác thực này diễn ra. Ba tệp này là:
- /etc/wpa_supplicant.conf
- / etc / mạng / giao diện
- /etc/openssl/openssl.cnf
Trước tiên, chúng tôi sẽ định cấu hình phần mềm để cho phép máy Linux của chúng tôi sử dụng chứng chỉ ứng dụng khách để xác thực với mạng hỗ trợ 802.1x; wpa_supplicant
sẽ được sử dụng cho việc này.
Thực hiện theo các bước sau để định cấu hình tệp wpa_supplicant.conf của bạn:
- sudo gedit /etc/wpa_supplicant.conf
Dán đoạn sau vào tệp và lưu nó:
# Where is the control interface located? This is the default path:
ctrl_interface=/var/run/wpa_supplicant
# Who can use the WPA frontend? Replace "0" with a group name if you
# want other users besides root to control it.
# There should be no need to chance this value for a basic configuration:
ctrl_interface_group=0
# IEEE 802.1X works with EAPOL version 2, but the version is defaults
# to 1 because of compatibility problems with a number of wireless
# access points. So we explicitly set it to version 2:
eapol_version=1
# When configuring WPA-Supplicant for use on a wired network, we don't need to
# scan for wireless access points. See the wpa-supplicant documentation if you
# are authenticating through 802.1x on a wireless network:
ap_scan=0
network={
ssid="<enter any name here, it doesn't matter>"
key_mgmt=IEEE8021X
eap=TLS
identity="<FQDN>/computers/<Linux computer name>"
client_cert="/etc/ssl/certs/<your authentication certificate name>.pem"
private_key="/etc/ssl/private/<your private key name>.pem"
}
Bây giờ chúng tôi phải chỉnh sửa tập tin giao diện của bạn. Thực hiện theo các bước sau để định cấu hình tệp giao diện của bạn:
- sudo gedit / etc / mạng / giao diện
Dán đoạn sau vào tệp dưới eth0
giao diện và lưu nó:
# Configure the system to authenticate with WPA-Supplicant on interface eth0
wpa-iface eth0
# In this case we have a wired network:
wpa-driver wired
# Tell the system we want to use WPA-Supplicant with our configuration file:
wpa-conf /etc/wpa_supplicant.conf
Bước tiếp theo là tạo và cài đặt chứng chỉ của bạn. Chúng tôi sẽ phải tạo chứng chỉ tự ký, sau đó tạo yêu cầu chứng chỉ dựa trên chứng chỉ tự ký mà chúng tôi đã tạo, sau đó cài đặt chứng chỉ.
Lưu ý: Khi tạo chứng chỉ của bạn, bất cứ khi nào nó yêu cầu tên của bạn, bạn phải cung cấp tên của máy tính sẽ được xác thực. Để an toàn, tôi khuyên bạn nên đặt tên khớp với cách gán tên cho máy tính, bao gồm cả phân biệt chữ hoa chữ thường. Nếu bạn không chắc chắn cách nó được gán cho máy tính của bạn, hãy mở một thiết bị đầu cuối và nhập tên máy chủ.
Thực hiện theo các bước sau:
sudo openssl req -x509 -nodes -days enter in days how long you want the cert valid for
-newkey rsa: 1024 -keyout enter a name for your private key/certificate here
.pem -out enter a name for your private key/certificate here
.pem
Ví dụ: sudo openssl req -x509 -nodes -day 365 -newkey rsa: 1024 -keyout privatecert.pem -out privatecert.pem
openssl req -new -newkey rsa: 1024 -nodes -keyout enter a name for your private key here
.pem - out enter a name for your certificate request here
.pem
Ví dụ: sudo openssl req -new -newkey rsa: 1024 -nodes -keyout privatekey.pem -out certreq.pem
Tất cả các chứng chỉ được tạo được đặt trong thư mục chính của bạn ( /home/<username>
). Phần tiếp theo là yêu cầu chứng chỉ từ CA của bạn bằng cách sử dụng yêu cầu chứng chỉ đã được tạo ở bước trước. Điều này sẽ cần phải được thực hiện trên máy Windows, vì một số lý do, Linux và Windows không hòa hợp với nhau khi yêu cầu và tải xuống chứng chỉ; Tôi chỉ thấy dễ dàng hơn khi gửi email yêu cầu chứng chỉ cho chính mình và thực hiện nó trên máy Windows.
Thực hiện theo các bước sau để hoàn thành yêu cầu chứng chỉ:
- Chuyển đến thư mục nhà của bạn trên máy Linux và tìm tệp yêu cầu chứng chỉ của bạn
- Hoặc gửi email tệp cho chính bạn hoặc mở tệp bằng trình soạn thảo văn bản (chẳng hạn như gedit) và sao chép và dán yêu cầu vào email và gửi cho chính bạn.
- Trên máy khách Windows, hãy mở một trang web bằng IE đến trang web CA của bạn (chẳng hạn như
http://caname/certsrv
).
- Chọn Yêu cầu Chứng chỉ
- Yêu cầu chứng chỉ nâng cao
- Bây giờ hãy mở email của bạn và nhận yêu cầu chứng chỉ mà bạn đã tự gửi email.
- Nếu bạn gửi email cho mình tệp, hãy mở nó bằng notepad và sao chép và dán nội dung vào hộp yêu cầu chứng chỉ được mã hóa Base-64. Nếu bạn gửi email cho mình nội dung của tệp yêu cầu chứng chỉ thay vì chính tệp đó, thì chỉ cần sao chép và dán yêu cầu từ đó vào hộp yêu cầu chứng chỉ được mã hóa Base-64.
- Nhấp vào Gửi và tải xuống chứng chỉ ở dạng Base-64, không phải DER.
- Lưu chứng chỉ vào máy tính để bàn của bạn và đặt tên cho nó
your Linux machine name
.pem. Hệ thống sẽ tự động nối thêm .cer
vào cuối của nó, vì vậy chỉ cần xóa nó đi. Linux sử dụng .pem để mở rộng chứng chỉ.
- Lấy tập tin này và gửi lại email cho chính bạn.
- Bây giờ, trên máy Linux của bạn, hãy lấy chứng chỉ của bạn và lưu nó ở đâu đó (tốt nhất là thư mục nhà của bạn để giữ mọi thứ ngăn nắp và cùng nhau).
- Bây giờ, chúng tôi cần sao chép chứng chỉ mà bạn vừa nhận được vào
/etc/ssl/certs
thư mục của mình và chúng tôi cần sao chép khóa riêng / chứng chỉ và khóa riêng được tạo trước đó trong /etc/ssl/private
thư mục của bạn . Bây giờ, chỉ root mới có quyền làm điều này, vì vậy bạn có thể làm điều này bằng dòng lệnh bằng cách gõ sudo cp /home/<username>/<certificate>.pem /etc/ssl/private
hoặc /etc/ssl/certs
. Điều này cũng có thể được thực hiện từ GUI bằng cách sao chép và dán bằng cách sử dụng lệnh gksudo và gõ bằng nautilus. Nautilus là trình duyệt tệp GUI mà Ubuntu sử dụng và nó sẽ chạy nó dưới dạng root cho phép bạn sao chép và dán vào các thư mục mà chỉ root mới có quyền truy cập.
Bây giờ chứng chỉ của chúng tôi đã sẵn sàng, chúng tôi cần nói với openssl cách chúng tôi muốn sử dụng chứng chỉ. Để thực hiện việc này, chúng tôi phải chỉnh sửa tệp openssl.cnf và yêu cầu nó xác thực máy Linux của chúng tôi với tư cách là khách hàng chứ không phải người dùng.
Để làm điều này, hãy làm theo các bước sau:
- sudo gedit /etc/ssl/openssl.cnf
- Cuộn xuống khoảng một nửa và bạn sẽ thấy một phần được gọi là
[usr_cert]
. Trong phần này, chúng ta cần nơi nsCertType
được định nghĩa là "Đối với khách hàng bình thường, điều này là điển hình" , và nó nên có nsCertType = client, email
và nó sẽ được nhận xét. Bỏ ghi chú dòng này và xóa email để nó hiển thị nsCertType = client
. Bây giờ lưu tập tin.
Bây giờ bạn nên có mọi thứ bạn cần được cấu hình đúng cách để máy Linux chạy trong môi trường miền Windows và xác thực bằng cách sử dụng 802.1x.
Tất cả những gì còn lại bây giờ là khởi động lại dịch vụ mạng của bạn để Linux sẽ sử dụng wpa_supplicant.conf
tệp hiện được gắn với eth0
giao diện của bạn và xác thực. Vì vậy, chỉ cần chạy sudo service networking restart
. Nếu bạn không nhận được địa chỉ IP sau khi giao diện của bạn sao lưu, bạn có thể yêu cầu IP thủ công từ máy chủ DHCP của mình bằng cách nhập sudo dhclient
.