Погані новини, всі! Схоже, у Fedora 21 є нефіксована помилка: Провідне з'єднання з 802.1x PEAP / MSCHAPv2 не працює . Тож як відповідь нижче може працювати для інших дистрибутивів, користувачам Fedora 21 наразі не пощастило.
Я ніколи цього не пробував, але ця публікація містить досить детальну інформацію щодо налаштування 802.1x між клієнтом Linux та доменом Windows. Зверніть увагу на частину запиту на сертифікат: вона повинна вирішити вашу проблему з неекспортируемим сертифікатом. Версії програмного забезпечення досить старі ( Ubuntu 8,04, так само як і раніше Trust's Power Broker ), але основна ідея мені здається твердою.
Я відформатував вищезгаданий пост, щоб полегшити його читання. Цитування робить поле коду сірим на сірому, тому я його випав, вибачте:
Відмова від відповідальності: Цей посібник написаний з точки зору дистрибуції Linux Ubuntu 8.04. Щоб ця робота працювала з іншими дистрибутивами Linux або Unix, можливо, знадобляться деякі зміни.
Дві основні речі, необхідні вашій системі Linux для автентифікації понад 802.1x, - це сертифікат клієнта та обліковий запис у домені Windows. Під час процесу аутентифікації клієнт Linux представляє свій комп'ютерний сертифікат комутатору, який, в свою чергу, подає його серверу RADIUS, який перевіряє сертифікат, і перевіряє обліковий запис комп'ютера, якому сертифікат призначений в Active Directory. Якщо сертифікат та обліковий запис комп'ютера дійсні, сервер RADIUS затверджує запит аутентифікації, надсилаючи його назад до комутатора, який, в свою чергу, автентифікує порт, до якого підключено вікно Linux.
Перше, що потрібно зробити - це приєднати комп'ютер Linux до домену Windows. Оскільки Linux не може приєднатися до домену Windows, ми мусимо завантажити необхідне програмне забезпечення, яке дозволяє нам це робити. Так само робить програмне забезпечення, яке дозволяє нам робити саме це. Встановити це на Ubuntu дуже просто, просто виконайте наступні дії:
- sudo apt-get update
- sudo apt-get install аналогічно-відкрити
- sudo domainjoin-cli приєднайтесь
enter the FQDN of your domain here
enter your admin account here
, ви можете використовувати формат user@domain.com
. Ви також повинні мати можливість використовувати версію GUI, перейшовши наSystem → Administration → Likewise.
- sudo update-rc.d так само - відкрити параметри за замовчуванням
- sudo /etc/init.d/likewise-відкрити старт
Якщо ви не працюєте з Ubuntu, ви можете завантажити програмне забезпечення тут http://www.likewisesoftware.com/products/likewise_open . Тепер ви можете вийти з системи та ввійти назад, використовуючи свій обліковий запис домену. Я вважаю, що або формат, user@domain.com
і домен \ користувач працюють як. Я перевірю це пізніше.
На машині Linux є три файли, які повинні бути правильно налаштовані для того, щоб ця автентифікація відбулася. Ці три файли:
- /etc/wpa_supplicant.conf
- / і т.д. / мережа / інтерфейси
- /etc/openssl/openssl.cnf
По-перше, ми налаштуємо програмне забезпечення, яке дозволить нашій машині Linux використовувати сертифікат клієнта для автентифікації в мережі з підтримкою 802.1x; wpa_supplicant
буде використано для цього.
Виконайте наступні дії, щоб налаштувати файл wpa_supplicant.conf:
- sudo gedit /etc/wpa_supplicant.conf
Вставте наступне у файл та збережіть його:
# 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"
}
Тепер ми повинні відредагувати ваш файл інтерфейсів. Виконайте наступні дії, щоб налаштувати файл інтерфейсів:
- sudo gedit / тощо / мережа / інтерфейси
Вставте наступне у файл під eth0
інтерфейсом і збережіть його:
# 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
Наступним кроком є створення та встановлення ваших сертифікатів. Нам доведеться генерувати самопідписаний сертифікат, потім генерувати запит на сертифікат на основі створеного нами самопідписаного сертифіката, а потім встановити сертифікати.
Примітка. Під час створення ваших сертифікатів, коли він запитує ваше ім’я, ви повинні вказати ім'я комп'ютера, який буде автентичним. Для забезпечення безпеки я рекомендую вказати ім’я так, як воно присвоєно комп'ютеру, включаючи залежність від регістру. Якщо ви не впевнені, як це призначено вашому комп'ютеру, відкрийте термінал і введіть ім’я хоста.
Виконайте такі дії:
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
Приклад: sudo openssl req -x509 -nodes -days 365 -newkey rsa: 1024 -keyout privcert.pem -out privcert.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
Приклад: sudo openssl req -new -newkey rsa: 1024-вузли -keyout privkey.pem -out certreq.pem
Усі створені сертифікати розміщуються у вашому домашньому каталозі ( /home/<username>
). Наступна частина полягає в тому, щоб запитувати сертифікат у вашої організації з використанням запиту на сертифікат, створеного на попередньому кроці. Це потрібно зробити на машині Windows, оскільки чомусь Linux і Windows не надто добре уживаються при запиті та завантаженні сертифікатів; Мені просто стало простіше надіслати запит на сертифікат собі та виконати його на машині Windows.
Виконайте такі дії, щоб виконати запит на сертифікат:
- Перейдіть у домашній каталог на машині Linux і знайдіть файл запиту вашого сертифіката
- Або надішліть файл електронною поштою самому або відкрийте файл за допомогою текстового редактора (наприклад, gedit) і скопіюйте та вставте запит в електронний лист та надішліть його собі.
- На клієнті Windows відкрийте веб-сторінку за допомогою IE на веб-сайті вашої організації (наприклад
http://caname/certsrv
).
- Виберіть Запит на сертифікат
- Розширений запит на сертифікат
- Тепер відкрийте свою електронну пошту та отримайте запит на сертифікат, який ви надіслали електронною поштою.
- Якщо ви самі надіслали файл електронною поштою, відкрийте його з блокнотом та скопіюйте та вставте вміст у поле запиту сертифікованого сертифікату Base-64. Якщо ви відправили електронною поштою вміст файла запиту на сертифікат, а не сам файл, просто скопіюйте та вставте запит звідти у поле запиту сертифікованого сертифікату Base-64.
- Клацніть Надіслати та завантажте сертифікат у формі Base-64, а не DER.
- Збережіть сертифікат на робочому столі та назвіть його
your Linux machine name
.pem. Система автоматично додасть її .cer
до кінця, тому просто видаліть її. Linux використовує .pem для розширень сертифікатів.
- Візьміть цей файл і надішліть його електронною поштою.
- Тепер на вашій машині Linux дістаньте свій сертифікат і збережіть його десь (бажано домашню папку, щоб все було організовано та разом).
- Тепер нам потрібно скопіювати ваш сертифікат, який ви тільки що отримали, у свою
/etc/ssl/certs
папку, і нам потрібно скопіювати ваш приватний ключ / сертифікат та приватний ключ, створені раніше у вашій /etc/ssl/private
папці. Тепер тільки root має дозвіл на це, тому ви можете це зробити за допомогою командного рядка, ввівши sudo cp /home/<username>/<certificate>.pem /etc/ssl/private
або /etc/ssl/certs
. Це також можна зробити з графічного інтерфейсу, скопіювавши та вставивши за допомогою команди gksudo та набравши в nautilus. Nautilus - це браузер файлів GUI, який використовує Ubuntu, і він запустить це як root, що дозволяє копіювати та вставляти в каталоги, до яких має доступ лише root.
Тепер, коли наші сертифікати вже є, нам потрібно розповісти openssl, як ми хочемо використовувати сертифікати. Для цього нам слід відредагувати файл openssl.cnf і сказати йому, щоб він автентифікував нашу Linux-машину як клієнта, а не користувача.
Для цього виконайте наступні дії:
- sudo gedit /etc/ssl/openssl.cnf
- Прокрутіть вниз близько половини, і ви побачите розділ, який називається
[usr_cert]
. У цьому розділі нам потрібне те, де значення nsCertType
визначено як "Для звичайного використання клієнта це типово" , і він повинен мати, nsCertType = client, email
і це буде прокоментовано. Відкиньте цей рядок і видаліть електронний лист, щоб він відображався nsCertType = client
. Тепер збережіть файл.
Тепер у вас повинно бути все, що вам потрібно правильно налаштувати, щоб машина Linux працювала в середовищі домену Windows та аутентифікувалась за допомогою 802.1x.
Залишилося лише перезапустити мережевий сервіс, щоб Linux використовував wpa_supplicant.conf
файл, який тепер прив’язаний до вашого eth0
інтерфейсу, і автентифікувати. Тож просто біжи sudo service networking restart
. Якщо ви не отримаєте IP-адресу після відновлення інтерфейсу, ви можете вручну запросити IP-адресу від вашого сервера DHCP, ввівши sudo dhclient
.