Я собираюсь использовать свою рабочую станцию Linux в сети нашей компании, но у меня возникли некоторые проблемы, в частности, 802.1xi.
Я root на моей машине и администратор домена Windows, поэтому я должен иметь доступ ко всему, что мне нужно, чтобы это работало. В настоящее время моя Linux-машина имеет ограниченные возможности подключения, что заставляет меня поверить, что она была включена в стандартную сеть VLAN для клиентов, не поддерживающих стандарт 802.1x.
Я предполагаю, что мой общий вопрос: как я могу заставить мою машину linux использовать 802.1x в проводной сети Windows? Сеть представляет собой типичный домен Windows и использует учетные записи компьютеров, а также учетные записи пользователей.
Это то, что я знаю и пробовал до сих пор:
Я считаю, что мне нужно получить действительный сертификат клиентского компьютера для компьютера, сертификат CA для домена и закрытый ключ для клиента
Идея 1: получить действительный ключ от машины / домена с Windows. Я запустил виртуальную машину Windows на компьютере с Linux и соединил ее с доменом, думая, что это даст действительный сертификат клиента, который я мог бы получить для машины с Linux. - с этой целью я затем экспортировал сертификат клиента и сертификат с сервера Windows ca, а затем преобразовал их в формат PEM, готовый для сетевого менеджера в Linux (при условии, что требуется PEM, а не DER). - Затем я попытался экспортировать закрытый ключ на самой виртуальной машине Windows, используя certmgr, но он был помечен как не экспортируемый :-(
Идея 2 была powerbroker ... - Я использовал powerbroker open (формально аналогично), чтобы присоединить машину linux к домену, getent passwd теперь показывает всех пользователей домена. - Я думал, что это поместит клиентский сертификат и закрытый ключ в систему (/ etc / ssl / certs?), Но я ничего не могу найти
Идея 3, спросите кого-то, кто знает, что они на самом деле делают.
Я должен отметить, что изначально на этой машине с Linux имелись окна (которые я установил после установки Linux), поэтому я знаю, что сетевой коммутатор настроен правильно, и MAC и т. Д. Принимаются в сети; я уверен, что это просто проблема 802.1x
Редактировать: полностью забыл упомянуть его Fedora 21 XFCE Spin, 64bit.
Ответы:
Плохие новости всем! Кажется, в 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, это очень просто, просто выполните следующие действия:
enter the FQDN of your domain here
enter your admin account here
, вы можете использовать форматuser@domain.com
. Вы также должны иметь возможность использовать версию GUI, перейдя вSystem → Administration → Likewise.
Если вы не используете Ubuntu, вы можете загрузить программное обеспечение здесь http://www.likewisesoftware.com/products/likewise_open . Теперь вы можете выйти и снова войти, используя учетную запись вашего домена. Я считаю, что любой формат
user@domain.com
и домен \ пользователь оба работают. Я проверю это позже.На компьютере Linux есть три файла, которые должны быть правильно настроены, чтобы эта аутентификация прошла. Эти три файла:
Сначала мы настроим программное обеспечение, чтобы позволить нашей машине Linux использовать сертификат клиента для аутентификации в сети с поддержкой 802.1x;
wpa_supplicant
будет использоваться для этого.Выполните следующие шаги для настройки вашего файла wpa_supplicant.conf:
Вставьте следующее в файл и сохраните его:
Теперь мы должны отредактировать файл вашего интерфейса. Выполните следующие шаги для настройки файла интерфейсов:
Вставьте следующее в файл под
eth0
интерфейсом и сохраните его:Следующим шагом является создание и установка ваших сертификатов. Нам нужно будет создать самоподписанный сертификат, затем сгенерировать запрос сертификата на основе созданного нами самоподписанного сертификата, а затем установить сертификаты.
Примечание: при создании ваших сертификатов, когда он запрашивает ваше имя, вы должны указать имя компьютера, который будет проходить аутентификацию. В целях безопасности я рекомендую сделать так, чтобы имя совпадало с тем, как оно назначено компьютеру, в том числе с учетом регистра. Если вы не уверены, как он назначен вашему компьютеру, откройте терминал и введите имя хоста.
Следуй этим шагам:
sudo openssl req -x509 -nodes -days
enter in days how long you want the cert valid for
-newkey rsa: 1024 -keyoutenter a name for your private key/certificate here
.pem -outenter 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 - outenter 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.Для завершения запроса сертификата выполните следующие действия:
http://caname/certsrv
).your Linux machine name
.pem. Система автоматически добавит.cer
его в конец, поэтому просто удалите его. Linux использует .pem для расширений сертификатов./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 как клиента, а не пользователя.
Для этого выполните следующие действия:
[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
.источник