LXF97:RADIUS
Строка 1: | Строка 1: | ||
− | * ''' | + | * '''WPA Enterprise Linux на страже безопасности домашней Wi-Fi сети''' |
− | + | ||
+ | ==Linux в сети WPA: есть контакт!== | ||
+ | |||
'''ЧАСТЬ 2''' Теперь, когда в вашем распоряжении есть защищенная по максимуму Wi-Fi-сеть, дело за малым: осталось только подключить к ней свой собственный ноутбук. Этим и займется '''Андрей Боровский'''. | '''ЧАСТЬ 2''' Теперь, когда в вашем распоряжении есть защищенная по максимуму Wi-Fi-сеть, дело за малым: осталось только подключить к ней свой собственный ноутбук. Этим и займется '''Андрей Боровский'''. | ||
Строка 32: | Строка 34: | ||
</code> | </code> | ||
− | Если же апплет ''NetworkManager'' запустился успешно и обнаружил настройки беспроводной сети, в системном лотке рабочего стола появляется пиктограмма с несколькими точками и бегущими по кругу стрелками. Щелчок мышью по этой пиктограмме открывает окно, в котором перечислены обнаруженные сети. Справа от имени каждой беспроводной сети расположен значок, указывающий на наличие | + | Если же апплет ''NetworkManager'' запустился успешно и обнаружил настройки беспроводной сети, в системном лотке рабочего стола появляется пиктограмма с несколькими точками и бегущими по кругу стрелками. Щелчок мышью по этой пиктограмме открывает окно, в котором перечислены обнаруженные сети. Справа от имени каждой беспроводной сети расположен значок, указывающий на наличие защиты сети, и индикатор качества сигнала. Чтобы подключиться к одной из обнаруженных сетей, следует щелкнуть по ее имени. Правда, по умолчанию для сетей WPA апплет ''NetworkManager'' предлагает только аутентификацию WPA Personal, то есть WPA-PSK. Для под ключения к сети с использованием других методов аутентификации выберите команду '''Connect to Other Wireless Network....''' В открывшем ся окне (Рис. 1) можно ввести необходимые параметры. Для настройки аутентификации по протоколу PEAP MS CHAP V2 вам понадобятся имя пользователя сети и пароль, а для настройки авторизации методом EAP TLS – файлы сертификатов, ключа и пароль к секретному ключу. Пояснения смысла полей ввода этого окна вы найдете ниже, в разделе '''«Настройка подключения к сети»'''. |
+ | |||
+ | [[Изображение:Radius1.jpg|Рис. 1. Подключение к сети WPA Enterprise с помощью апплета | ||
+ | ''NetworkManager'']] | ||
+ | |||
+ | Убедившись, что подключение к сети с помощью ''NetworkManager'' работает, вы можете добавить ''NetworkManager'' в rc-скрипты для его автоматического запуска в процессе загрузки ОС. | ||
+ | |||
+ | Недостатком апплета ''NetworkManager'' на сегодняшний день является то, что утилита не умеет настраивать параметры IP-адреса сетевого интерфейса. Отсутствие средств такой настройки не является проблемой, если вы используете DHCP во всех сетях, к которым подключаетесь, но многие, в том числе и я, используют в домашней сети статические адреса. Настроить статический IP для соединения, управляемого ''NetworkManager'', можно стандартными средствами вашего дистрибутива Linux, однако тут возникает еще одна проблема – хотя штатные средства настройки сетевых интерфейсов ОС обычно позволяют создавать несколько профилей (DHCP для одной сети, статический адрес – для другой), эти профили нельзя привязать к профилям ''NetworkManager'', так что при переключении с одной сети на другую (которое ''NetworkManager'' выполняет автоматически) профили настроек сетевых интерфейсов придется менять вручную. Разработчики ''NetworkManager'' обещают добавить поддержку настроек IP-адресов в следующую версию (0.7) своей утилиты, а пока что придется мириться с этим неудобством. | ||
+ | |||
+ | ===Настройка ''wpa_suppplicant''=== | ||
+ | |||
+ | Если простая настройка сети с помощью ''NetworkManager'' у вас не работает, придется прибегнуть к ручной настройке ''wpa_supplicant''. В системе Linux ''wpa_supplicant'' (который, кстати, доступен и на платформе Windows) обычно запускается как демон, поэтому мы будем называть его «демон аутентификации». Демон аутентификации ''wpa_supplicant'' отвечает за решение двух задач безопасного беспроводного соединения – безопасной аутентификации по протоколам WPA/WPA2 и управления ключами, используемыми при шифровании передаваемых данных. | ||
+ | |||
+ | Поскольку ''wpa_supplicant'' и сопутствующие ему модули развиваются очень быстро, всегда есть вероятность, что оборудование, не поддерживаемое старой версией ''wpa_supplicant'' или Wi-Fi-драйвера, будет поддерживаться более новыми версиями. Если экземпляр ''wpa_supplicant'' из вашего дистрибутива не сумел наладить взаимодействие с вашей беспроводной картой, попробуйте собрать программу из исходных текстов последнего релиза (который всегда доступен на официальном сайте http://hostap.epitest.fi/wpa_supplicant/). Для успешной сборки ''wpa_supplicant'' вам понадобятся исходные тексты драйверов | ||
+ | (обновление драйвера может решить проблему взаимодействия ''wpa_supplicant'' и беспроводной карты). Исходные тексты драйверов следует загружать отдельно, с сайтов разработчиков. Список поддерживаемых драйверов, как и ссылки на сайты, можно найти на той же официальной странице. | ||
+ | |||
+ | Демон ''wpa_supplicant'' имеет модульную структуру, так что если вы собираете его из исходных текстов, вы должны убедиться, что в процессе сборки были подключены все необходимые модули. Список модулей, подключаемых к wpa_supplicant в процессе сборки, должен содержаться в файле '''.config''', расположенном в корневой директории исходных текстов ''wpa_spplicant'' (по умолчанию, в корневой директории расположен файл '''defconfig''', из которого перед началом сборки необходимо сделать файл конфигурации, подходящий для вашей системы). Файл '''.config''' состоит из набора строк вида: | ||
+ | |||
+ | <code> | ||
+ | CONFIG_<опция>=y | ||
+ | </code> | ||
+ | |||
+ | Убедитесь, что ваш файл '''.config''' включает строки | ||
+ | |||
+ | <code> | ||
+ | CONFIG_EAP_PEAP=y | ||
+ | CONFIG_EAP_TTLS=y | ||
+ | </code> | ||
+ | |||
+ | Они автоматически подключают модули, необходимые для поддержки аутентификации с помощью MS-CHAP V2 и цифровых сертификатов (EAP-TLS). Кроме списка модулей, реализующих методыи протоколы аутентификации, файл '''.config''' должен включать список поддерживаемых интерфейсов драйверов – например, | ||
+ | |||
+ | <code> | ||
+ | CONFIG_DRIVER_MADWIFI=y | ||
+ | CONFIG_DRIVER_NDISWRAPPER=y | ||
+ | CONFIG_DRIVER_WEXT=y | ||
+ | </code> | ||
+ | |||
+ | Проследите за тем, чтобы демон аутентификации был сконфигурирован с поддержкой интерфейса драйвера вашей Wi-Fi-карты. Двоичный пакет ''wpa_supplicant'', входящий в ваш дистрибутив Linux, сконфигурирован с поддержкой всех доступных демону Wi-Fi-драйверов. Это сделано с целью обеспечить максимальную совместимость двоичного пакета, однако в некоторых случаях драйверы конфликтуют между собой. Если вы никак не можете запустить процесс аутентификации и все другие средства не помогают, попробуйте удалить из файла конфигурации все директивы подключения драйверов, кроме одной, фактически используемой вашей беспроводной картой. | ||
+ | |||
+ | Поскольку мы настраиваем ''wpa_supplicant'' вручную, нам придется самостоятельно «привязать» наши настройки к сетевому интерфейсу – например, в Kubuntu в файл '''/etc/network/interfaces''' следует добавить запись вида: | ||
+ | |||
+ | <code> | ||
+ | auto ath0 | ||
+ | iface ath0 inet static | ||
+ | address 192.168.1.36 | ||
+ | netmask 255.255.255.0 | ||
+ | gateway 192.168.1.1 | ||
+ | wpa-driver madwifi | ||
+ | wpa-conf /etc/wpa_supplicant.conf | ||
+ | </codce> | ||
+ | |||
+ | Здесь '''ath0''' – имя настраиваемого беспроводного сетевого интерфейса. Далее следуют статические адреса узла и шлюза. Если узлы вашей сети получает адреса по DHCP, вместо этих настроек надо написать | ||
+ | |||
+ | <code> | ||
+ | iface ath0 inet dhcp | ||
+ | </code> | ||
+ | |||
+ | Последние две строчки настраивают собственно параметры WPA. В атрибуте '''wpa-driver''' указывается имя драйвера беспроводного адаптера, а в атрибуте '''wpa-conf''' – путь к файлу конфигурации ''wpa_supplicant''. В некоторых дистрибутивах Linux (и в старых версиях Kubuntu) параметры запуска ''wpa_supplicant'' следует прописывать в специальном файле '''/etc/sysconfig/wpa_supplicant''' (в старых версиях Kubuntu – '''/etc/default/wpasupplicant'''). Вот типичный пример такого файла: | ||
+ | |||
+ | <code> | ||
+ | INTERFACES=”-iwlan0” | ||
+ | DRIVERS=”-Dmadwifi” | ||
+ | </code> | ||
+ | |||
+ | Значением атрибута '''INTERFACES''' должен быть список интерфейсов устройств, для которых запускается демон ''wpa_supplicant'', а значением атрибута '''DRIVERS''' – список интерфейсов необходимых драйверов. | ||
+ | |||
+ | ===Настройка подключения к сети: PEAP MSCHAP V2 и EAP-TLS=== | ||
+ | |||
+ | Linux предоставляет много способов настройки аутентификации с | ||
+ | помощью wpa_supplicant, в том числе с применением вспомогатель- | ||
+ | ных утилит. Мы начнем с настройки путем непосредственного редакти- | ||
+ | рования файлов конфигурации. Вспомогательные утилиты настройки | ||
+ | авторизации (включая апплет GNOME NetworkManager) используют те | ||
+ | же обозначения полей, что и файл конфигурации wpa_supplicant, так | ||
+ | что, поняв принцип редактирования этого файла, вы поймете и прин- | ||
+ | ципы работы с графическими помощниками. | ||
+ | Для настройки авторизации PEAP MSCHAP V2 создайте файл /etc/ | ||
+ | wpa_supplicant.conf и добавьте в него запись вида | ||
+ | network={ | ||
+ | ssid=”lochi7” | ||
+ | scan_ssid=1 | ||
+ | key_mgmt=WPA-EAP | ||
+ | eap=PEAP | ||
+ | identity=”kub” | ||
+ | password=”password” | ||
+ | phase2=”auth=MSCHAPV2” | ||
+ | } | ||
+ | Атрибут ssid содержит значение SSID беспроводной сети. Строка | ||
+ | scan_ssid=1 необходима только в том случае, если в вашей сети | ||
+ | запрещена широковещательная передача SSID. Значением атрибута | ||
+ | key_mgmt должен быть список протоколов управления ключами (эле- | ||
+ | менты списка разделяются пробелом). Помимо используемого нами | ||
+ | протокола WPA-EAP, поддерживаются значения WPA-PSK, IEEE8021X | ||
+ | и NONE (для отключения WPA). Если вы хотите явным образом указать | ||
+ | алгоритм шифрования данных, можете указать атрибуты pairwise (для | ||
+ | двусторонней передачи данных) и group (для широковещательной | ||
+ | передачи). Значениями этих атрибутов являются списки имен протоко- | ||
+ | лов шифрования. По умолчанию атрибуту pairwise присвоено значение | ||
+ | TKIP CCMP, а атрибуту group – значение CCMP TKIP WEP104 WEP40. | ||
+ | Если вы хотите, например, запретить использование любых протоко- | ||
+ | лов, кроме AES, в процессе двусторонней передачи данных, добавьте в | ||
+ | конфигурационную запись строку: | ||
+ | pairwise=CCMP | ||
+ | Атрибут eap позволяет указать список поддерживаемых методов | ||
+ | аутентификации EAP. Мы присваиваем ему значение PEAP. В принци- | ||
+ | пе, атрибут eap можно опустить, так как по умолчанию в wpa_supplicant | ||
+ | включается поддержка всех методов аутентификации, поддержива- | ||
+ | емых выбранным протоколом. Атрибут identity содержит имя поль- | ||
+ | зователя для аутентификации по протоколу MS CHAP V2, а атрибут | ||
+ | password – пароль. Наконец, атрибут phase2 указывает, что в безопас- | ||
+ | ном туннеле, созданном по протоколу PEAP, должен использоваться | ||
+ | протокол аутентификации MS CHAP V2. После внесения изменений | ||
+ | в файл wpa_supplicant.conf, во избежание появления довольно стран- | ||
+ | ных ошибок, следует перезапустить сетевой сервис (а не только демон | ||
+ | wpa_supplicant). Не забудьте (при необходимости) перенастроить точ- | ||
+ | ку доступа, и если вы все сделали правильно, вы увидите сообщения | ||
+ | сервера FreeRADIUS об успешном прохождении процедуры аутентифи- | ||
+ | кации PEAP MS CHAP V2. | ||
+ | Для аутентификации по протоколу EAP-TLS на клиентской машине | ||
+ | потребуется установить клиентский сертификат, корневой сертификат, | ||
+ | удостоверяющий подпись клиентского и серверного сертификатов, и | ||
+ | файл секретного ключа клиентского сертификата. Методы генерации | ||
+ | всех этих файлов были подробно рассмотрены нами в предыдущей ста- | ||
+ | тье (LXF96), и сейчас нам остается выполнить лишь одно дополнитель- | ||
+ | ное преобразование. Напомню, что мы создавали файлы сертификатов в | ||
+ | формате DER, тогда как демон wpa_supplicant и его друзья предпочита- | ||
+ | ют сертификаты в формате PEM. Преобразовать клиентский сертификат | ||
+ | из формата DER в формат PEM можно с помощью команды: | ||
+ | openssl x509 -in user1.crt -out user1.pem | ||
+ | Точно также следует преобразовать и корневой сертификат. | ||
+ | При аутентификации по протоколу EAP-TLS запись network {...} в | ||
+ | файле wpa_supplicant должна принять вид | ||
+ | network={ | ||
+ | ssid=”lochi7” | ||
+ | key_mgmt=WPA-EAP | ||
+ | eap=TLS | ||
+ | identity=”user1” | ||
+ | ca_cert=”/usr/local/etc/certs/myroot_ca.pem” | ||
+ | client_cert=”/usr/local/etc/certs/user1.pem” | ||
+ | private_key=”/usr/local/etc/certs/user1.key” | ||
+ | private_key_passwd=”password” | ||
+ | } | ||
+ | Теперь атрибут eap указывает метод авторизации TLS. Атрибут | ||
+ | identity содержит имя пользователя, с которым связан клиентский сер- | ||
+ | тификат. Как отмечалось в предыдущей статье, мы можем настроить | ||
+ | сервер FreeRADIUS таким образом, чтобы он не проверял это значение. | ||
+ | Значением атрибута ca_cert должен быть путь к файлу корневого сер- | ||
+ | тификата, значением атрибута client_cert – путь к файлу клиентского | ||
+ | сертификата, а значением атрибута private_key – путь к файлу секрет- | ||
+ | ного ключа клиента. Пароль доступа к секретному ключу хранится в | ||
+ | атрибуте private_key_passwd. На этом настройка клиента для авториза- | ||
+ | ции по протоколу EAP-TLS закончена. Как и при настройке MS CHAP V2, | ||
+ | нам следует перезапустить сетевую систему. | ||
+ | Мы не коснулись еще одного важного аспекта настройки бес- | ||
+ | проводного клиента – поддержки нескольких сетей. Настроить wpa_ | ||
+ | supplicant для работы с несколькими сетями очень просто – доста- | ||
+ | точно добавить соответствующие записи network{...} в файл /etc/ wpa_ | ||
+ | supplicant.conf. В большинстве случаев подключение к доступной сети | ||
+ | будет выполняться автоматически. |
Версия 11:16, 16 октября 2008
|
|
|
- WPA Enterprise Linux на страже безопасности домашней Wi-Fi сети
Содержание |
Linux в сети WPA: есть контакт!
ЧАСТЬ 2 Теперь, когда в вашем распоряжении есть защищенная по максимуму Wi-Fi-сеть, дело за малым: осталось только подключить к ней свой собственный ноутбук. Этим и займется Андрей Боровский.
В прошлой статье мы познакомились с сервером FreeRADIUS и дополнительными возможностями авторизации WPA Enterprise, которые он предоставляет. На этот раз речь пойдет о настройке авторизации беспроводных клиентов Linux в сетях, использующих авторизацию WPA Enterprise. Конечно, в вашей беспроводной сети наверняка есть и Windows-машины, но останавливаться на методах настройки Windows мы не будем. Настройка авторизации клиентов Windows в беспроводной сети (в том числе и методами WPA) довольно проста и подробно документирована (пошаговые руководства на русском языке можно найти и в Сети). В мире Linux дела обстоят несколько сложнее. Впрочем, как мы увидим, не намного.
Самая серьезная проблема, с которой вы столкнетесь при подключении Linux-машины к беспроводной сети, заключается в подборе драйвера, поддерживающего вашу Wi-Fi-карту. Ситуация с поддержкой чипсетов беспроводных карт в ОС Linux сейчас напоминает положение дел с аппаратным ускорением графики в 2000–2001 годах: необходимые программные компоненты уже есть, но поддержка конкретного оборудования реализована не полностью. Справедливости ради надо отметить, что ситуация улучшается довольно быстро (см. врезку). При описании настройки авторизации беспроводного Linux-клиента я буду исходить из предположения, что вы уже прошли мучительный процесс поиска и установки Linux-драйвера для вашей Wi-Fi-карты (или подобрали поддерживаемую Linux Wi-Fi-карту) и научились «поднимать» беспроводной сетевой интерфейс в своей системе.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Аутентификацией WPA в Linux управляет демон wpa_supplicant. Перед началом настройки беспроводного клиента WPA-enterprise убедитесь в том, что этот демон установлен в вашей системе. Помимо него, нам понадобятся демон управления сетями NetworkManager, утилита wavemon, а также, в зависимости от того, по какому пути пойдет настройка – графическая оболочка GNOME NetworkManager Applet [или ее KDE-аналог – KNetworkManager, – прим. ред.], утилиты wpa_gui и KWlan. Все перечисленные программы можно найти в любом современном дистрибутиве Linux. Многие системы устанавливают их по
умолчанию, но в некоторых случаях нужные пакеты придется добавлять самостоятельно.
Настройка WPA с помощью NetworkManager
Начнем с самого простого и приятного способа настройки аутентификации в беспроводной сети. Современные дистрибутивы Linux содержат компонент NetworkManager; его главная задача заключается в том, чтобы обеспечить работу сети прямо из коробки. NetworkManager – это демон, который выполняет роль связующего звена между такими компонентами, как демон аутентификации wpa_supplicant, клиент DHCP и другими. Во многих системах NetworkManager будет запущен сразу после установки – проверить это можно с помощью утилиты nm-tool, о которой будет сказано ниже. Если NetworkManager не запускается автоматически, его следует запустить в режиме root командой NetworkManager. Если вы хотите получить консольный вывод NetworkManager (например, в случае возникновения ошибок), запускайте программу с ключом --no-daemon. Учтите, что файлы конфигурации, оставшиеся от предыдущих попыток настроить подключение к беспроводной сети другими способами, могут поме- шать NetworkManager определить параметры оборудования и сети. Например, мне, чтобы запустить NetworkManager, пришлось удалить файл /etc/network/interfaces со старыми настройками. После запуска демона вы можете проверить его работу с помощью утилиты nm-tool. Если с NetworkManager все в порядке и утилита nm-tool распечатала на экране консоли корректные сведения о ваших сетевых интерфейсах и сетях, к которым они подключены, можете плясать и петь – основная часть работы по настройке подключения к сети вами уже сделана.
Для управления NetworkManager существует несколько графических утилит, наиболее функциональной из которых является апплет NetworkManager для GNOME. Утилита настройки NetworkManager от GNOME запускается командой nm-applet. Если ее нет в вашей системе, значит, скорее всего, соответствующий пакет просто не установлен. Если апплет NetworkManager отказывается запускаться с сообщением “Failed to open device XXX”, вам следует перезапустить демон dbus:
sudo /etc/init.d/dbus restart
Если же апплет NetworkManager запустился успешно и обнаружил настройки беспроводной сети, в системном лотке рабочего стола появляется пиктограмма с несколькими точками и бегущими по кругу стрелками. Щелчок мышью по этой пиктограмме открывает окно, в котором перечислены обнаруженные сети. Справа от имени каждой беспроводной сети расположен значок, указывающий на наличие защиты сети, и индикатор качества сигнала. Чтобы подключиться к одной из обнаруженных сетей, следует щелкнуть по ее имени. Правда, по умолчанию для сетей WPA апплет NetworkManager предлагает только аутентификацию WPA Personal, то есть WPA-PSK. Для под ключения к сети с использованием других методов аутентификации выберите команду Connect to Other Wireless Network.... В открывшем ся окне (Рис. 1) можно ввести необходимые параметры. Для настройки аутентификации по протоколу PEAP MS CHAP V2 вам понадобятся имя пользователя сети и пароль, а для настройки авторизации методом EAP TLS – файлы сертификатов, ключа и пароль к секретному ключу. Пояснения смысла полей ввода этого окна вы найдете ниже, в разделе «Настройка подключения к сети».
Рис. 1. Подключение к сети WPA Enterprise с помощью апплета NetworkManager
Убедившись, что подключение к сети с помощью NetworkManager работает, вы можете добавить NetworkManager в rc-скрипты для его автоматического запуска в процессе загрузки ОС.
Недостатком апплета NetworkManager на сегодняшний день является то, что утилита не умеет настраивать параметры IP-адреса сетевого интерфейса. Отсутствие средств такой настройки не является проблемой, если вы используете DHCP во всех сетях, к которым подключаетесь, но многие, в том числе и я, используют в домашней сети статические адреса. Настроить статический IP для соединения, управляемого NetworkManager, можно стандартными средствами вашего дистрибутива Linux, однако тут возникает еще одна проблема – хотя штатные средства настройки сетевых интерфейсов ОС обычно позволяют создавать несколько профилей (DHCP для одной сети, статический адрес – для другой), эти профили нельзя привязать к профилям NetworkManager, так что при переключении с одной сети на другую (которое NetworkManager выполняет автоматически) профили настроек сетевых интерфейсов придется менять вручную. Разработчики NetworkManager обещают добавить поддержку настроек IP-адресов в следующую версию (0.7) своей утилиты, а пока что придется мириться с этим неудобством.
Настройка wpa_suppplicant
Если простая настройка сети с помощью NetworkManager у вас не работает, придется прибегнуть к ручной настройке wpa_supplicant. В системе Linux wpa_supplicant (который, кстати, доступен и на платформе Windows) обычно запускается как демон, поэтому мы будем называть его «демон аутентификации». Демон аутентификации wpa_supplicant отвечает за решение двух задач безопасного беспроводного соединения – безопасной аутентификации по протоколам WPA/WPA2 и управления ключами, используемыми при шифровании передаваемых данных.
Поскольку wpa_supplicant и сопутствующие ему модули развиваются очень быстро, всегда есть вероятность, что оборудование, не поддерживаемое старой версией wpa_supplicant или Wi-Fi-драйвера, будет поддерживаться более новыми версиями. Если экземпляр wpa_supplicant из вашего дистрибутива не сумел наладить взаимодействие с вашей беспроводной картой, попробуйте собрать программу из исходных текстов последнего релиза (который всегда доступен на официальном сайте http://hostap.epitest.fi/wpa_supplicant/). Для успешной сборки wpa_supplicant вам понадобятся исходные тексты драйверов (обновление драйвера может решить проблему взаимодействия wpa_supplicant и беспроводной карты). Исходные тексты драйверов следует загружать отдельно, с сайтов разработчиков. Список поддерживаемых драйверов, как и ссылки на сайты, можно найти на той же официальной странице.
Демон wpa_supplicant имеет модульную структуру, так что если вы собираете его из исходных текстов, вы должны убедиться, что в процессе сборки были подключены все необходимые модули. Список модулей, подключаемых к wpa_supplicant в процессе сборки, должен содержаться в файле .config, расположенном в корневой директории исходных текстов wpa_spplicant (по умолчанию, в корневой директории расположен файл defconfig, из которого перед началом сборки необходимо сделать файл конфигурации, подходящий для вашей системы). Файл .config состоит из набора строк вида:
CONFIG_<опция>=y
Убедитесь, что ваш файл .config включает строки
CONFIG_EAP_PEAP=y CONFIG_EAP_TTLS=y
Они автоматически подключают модули, необходимые для поддержки аутентификации с помощью MS-CHAP V2 и цифровых сертификатов (EAP-TLS). Кроме списка модулей, реализующих методыи протоколы аутентификации, файл .config должен включать список поддерживаемых интерфейсов драйверов – например,
CONFIG_DRIVER_MADWIFI=y CONFIG_DRIVER_NDISWRAPPER=y CONFIG_DRIVER_WEXT=y
Проследите за тем, чтобы демон аутентификации был сконфигурирован с поддержкой интерфейса драйвера вашей Wi-Fi-карты. Двоичный пакет wpa_supplicant, входящий в ваш дистрибутив Linux, сконфигурирован с поддержкой всех доступных демону Wi-Fi-драйверов. Это сделано с целью обеспечить максимальную совместимость двоичного пакета, однако в некоторых случаях драйверы конфликтуют между собой. Если вы никак не можете запустить процесс аутентификации и все другие средства не помогают, попробуйте удалить из файла конфигурации все директивы подключения драйверов, кроме одной, фактически используемой вашей беспроводной картой.
Поскольку мы настраиваем wpa_supplicant вручную, нам придется самостоятельно «привязать» наши настройки к сетевому интерфейсу – например, в Kubuntu в файл /etc/network/interfaces следует добавить запись вида:
auto ath0 iface ath0 inet static address 192.168.1.36 netmask 255.255.255.0 gateway 192.168.1.1 wpa-driver madwifi wpa-conf /etc/wpa_supplicant.conf
</codce>
Здесь ath0 – имя настраиваемого беспроводного сетевого интерфейса. Далее следуют статические адреса узла и шлюза. Если узлы вашей сети получает адреса по DHCP, вместо этих настроек надо написать
<code>
iface ath0 inet dhcp
Последние две строчки настраивают собственно параметры WPA. В атрибуте wpa-driver указывается имя драйвера беспроводного адаптера, а в атрибуте wpa-conf – путь к файлу конфигурации wpa_supplicant. В некоторых дистрибутивах Linux (и в старых версиях Kubuntu) параметры запуска wpa_supplicant следует прописывать в специальном файле /etc/sysconfig/wpa_supplicant (в старых версиях Kubuntu – /etc/default/wpasupplicant). Вот типичный пример такого файла:
INTERFACES=”-iwlan0” DRIVERS=”-Dmadwifi”
Значением атрибута INTERFACES должен быть список интерфейсов устройств, для которых запускается демон wpa_supplicant, а значением атрибута DRIVERS – список интерфейсов необходимых драйверов.
Настройка подключения к сети: PEAP MSCHAP V2 и EAP-TLS
Linux предоставляет много способов настройки аутентификации с помощью wpa_supplicant, в том числе с применением вспомогатель- ных утилит. Мы начнем с настройки путем непосредственного редакти- рования файлов конфигурации. Вспомогательные утилиты настройки авторизации (включая апплет GNOME NetworkManager) используют те же обозначения полей, что и файл конфигурации wpa_supplicant, так что, поняв принцип редактирования этого файла, вы поймете и прин- ципы работы с графическими помощниками. Для настройки авторизации PEAP MSCHAP V2 создайте файл /etc/ wpa_supplicant.conf и добавьте в него запись вида network={ ssid=”lochi7” scan_ssid=1 key_mgmt=WPA-EAP eap=PEAP identity=”kub” password=”password” phase2=”auth=MSCHAPV2” } Атрибут ssid содержит значение SSID беспроводной сети. Строка scan_ssid=1 необходима только в том случае, если в вашей сети запрещена широковещательная передача SSID. Значением атрибута key_mgmt должен быть список протоколов управления ключами (эле- менты списка разделяются пробелом). Помимо используемого нами протокола WPA-EAP, поддерживаются значения WPA-PSK, IEEE8021X и NONE (для отключения WPA). Если вы хотите явным образом указать алгоритм шифрования данных, можете указать атрибуты pairwise (для двусторонней передачи данных) и group (для широковещательной передачи). Значениями этих атрибутов являются списки имен протоко- лов шифрования. По умолчанию атрибуту pairwise присвоено значение TKIP CCMP, а атрибуту group – значение CCMP TKIP WEP104 WEP40. Если вы хотите, например, запретить использование любых протоко- лов, кроме AES, в процессе двусторонней передачи данных, добавьте в конфигурационную запись строку: pairwise=CCMP Атрибут eap позволяет указать список поддерживаемых методов аутентификации EAP. Мы присваиваем ему значение PEAP. В принци- пе, атрибут eap можно опустить, так как по умолчанию в wpa_supplicant включается поддержка всех методов аутентификации, поддержива- емых выбранным протоколом. Атрибут identity содержит имя поль- зователя для аутентификации по протоколу MS CHAP V2, а атрибут password – пароль. Наконец, атрибут phase2 указывает, что в безопас- ном туннеле, созданном по протоколу PEAP, должен использоваться протокол аутентификации MS CHAP V2. После внесения изменений в файл wpa_supplicant.conf, во избежание появления довольно стран- ных ошибок, следует перезапустить сетевой сервис (а не только демон wpa_supplicant). Не забудьте (при необходимости) перенастроить точ- ку доступа, и если вы все сделали правильно, вы увидите сообщения сервера FreeRADIUS об успешном прохождении процедуры аутентифи- кации PEAP MS CHAP V2. Для аутентификации по протоколу EAP-TLS на клиентской машине потребуется установить клиентский сертификат, корневой сертификат, удостоверяющий подпись клиентского и серверного сертификатов, и файл секретного ключа клиентского сертификата. Методы генерации всех этих файлов были подробно рассмотрены нами в предыдущей ста- тье (LXF96), и сейчас нам остается выполнить лишь одно дополнитель- ное преобразование. Напомню, что мы создавали файлы сертификатов в формате DER, тогда как демон wpa_supplicant и его друзья предпочита- ют сертификаты в формате PEM. Преобразовать клиентский сертификат из формата DER в формат PEM можно с помощью команды: openssl x509 -in user1.crt -out user1.pem Точно также следует преобразовать и корневой сертификат. При аутентификации по протоколу EAP-TLS запись network {...} в файле wpa_supplicant должна принять вид network={ ssid=”lochi7” key_mgmt=WPA-EAP eap=TLS identity=”user1” ca_cert=”/usr/local/etc/certs/myroot_ca.pem” client_cert=”/usr/local/etc/certs/user1.pem” private_key=”/usr/local/etc/certs/user1.key” private_key_passwd=”password” } Теперь атрибут eap указывает метод авторизации TLS. Атрибут identity содержит имя пользователя, с которым связан клиентский сер- тификат. Как отмечалось в предыдущей статье, мы можем настроить сервер FreeRADIUS таким образом, чтобы он не проверял это значение. Значением атрибута ca_cert должен быть путь к файлу корневого сер- тификата, значением атрибута client_cert – путь к файлу клиентского сертификата, а значением атрибута private_key – путь к файлу секрет- ного ключа клиента. Пароль доступа к секретному ключу хранится в атрибуте private_key_passwd. На этом настройка клиента для авториза- ции по протоколу EAP-TLS закончена. Как и при настройке MS CHAP V2, нам следует перезапустить сетевую систему. Мы не коснулись еще одного важного аспекта настройки бес- проводного клиента – поддержки нескольких сетей. Настроить wpa_ supplicant для работы с несколькими сетями очень просто – доста- точно добавить соответствующие записи network{...} в файл /etc/ wpa_ supplicant.conf. В большинстве случаев подключение к доступной сети будет выполняться автоматически.