Плохие новости всем! Кажется, в Fedora 21 есть нефиксированная ошибка: проводное соединение с 802.1x PEAP / MSCHAPv2 не работает . Поэтому, хотя приведенный ниже ответ может работать для других дистрибутивов, пользователям Fedora 21 в настоящее время не повезло.
Сам никогда не пробовал, но этот пост, кажется, содержит довольно подробное пошаговое руководство по настройке 802.1x между клиентом Linux и доменом Windows. Обратите внимание на часть запроса сертификата: она должна решить вашу проблему неэкспортируемого сертификата. Версии программного обеспечения довольно старые ( Ubuntu 8.04 и Power Broker от Beyond Trust все еще аналогичны ), но основная идея кажется мне твердой.
Я отформатировал вышеупомянутый пост, чтобы его было легче читать. При цитировании поля кода становятся серыми на сером, поэтому я пропустил их, извините:
Отказ от ответственности: Это руководство написано с точки зрения дистрибутива 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 установить аналогично-открыть
- 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-open start
Если вы не используете 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 / etc / network / interfaces
Вставьте следующее в файл под 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 -nodes -keyout privkey.pem -out certreq.pem
Все созданные сертификаты находятся в вашем домашнем каталоге ( /home/<username>
). Следующая часть - запросить сертификат у вашего ЦС, используя запрос на сертификат, созданный на предыдущем шаге. Это необходимо сделать на компьютере с Windows, поскольку по какой-то причине Linux и Windows не очень хорошо ладят при запросе и загрузке сертификатов; Я просто обнаружил, что мне проще отправить запрос на сертификат по электронной почте и выполнить его на компьютере с Windows.
Для завершения запроса сертификата выполните следующие действия:
- Перейдите в свой домашний каталог на компьютере с Linux и найдите файл запроса сертификата.
- Либо отправьте файл по электронной почте себе, либо откройте файл в текстовом редакторе (например, gedit), скопируйте и вставьте запрос в электронное письмо и отправьте его себе.
- В клиенте Windows откройте веб-страницу с помощью IE на веб-сайте своего ЦС (например,
http://caname/certsrv
).
- Выберите Запросить сертификат
- Расширенный запрос сертификата
- Теперь откройте свою электронную почту и получите запрос на сертификат, который вы отправили себе по электронной почте.
- Если вы отправили файл по электронной почте, откройте его с помощью блокнота, скопируйте и вставьте содержимое в поле запроса сертификата в кодировке Base-64. Если вы отправили по электронной почте содержимое файла запроса сертификата, а не сам файл, просто скопируйте и вставьте запрос оттуда в поле запроса сертификата в кодировке Base-64.
- Нажмите Submit и загрузите сертификат в форме 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 - это файловый браузер с графическим интерфейсом, который использует 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
.