LXF97:RADIUS
(не показаны 6 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
− | * ''' | + | * '''WPA Enterprise Linux на страже безопасности домашней Wi-Fi сети''' |
− | + | [[Категория:Учебники]] | |
+ | ==Linux в сети WPA: есть контакт!== | ||
− | |||
− | + | :'''ЧАСТЬ 2''' Теперь, когда в вашем распоряжении есть защищенная по максимуму Wi-Fi-сеть, дело за малым: осталось только подключить к ней свой собственный ноутбук. Этим и займется '''Андрей Боровский'''. | |
+ | |||
+ | [[LXF96:RADIUS|В прошлой статье]] мы познакомились с сервером FreeRADIUS и дополнительными возможностями авторизации WPA Enterprise, которые он предоставляет. На этот раз речь пойдет о настройке авторизации беспроводных клиентов Linux в сетях, использующих авторизацию WPA Enterprise. Конечно, в вашей беспроводной сети наверняка есть и Windows-машины, но останавливаться на методах настройки Windows мы не будем. Настройка авторизации клиентов Windows в беспроводной сети (в том числе и методами WPA) довольно проста и подробно документирована (пошаговые руководства на русском языке можно найти и в Сети). В мире Linux дела обстоят несколько сложнее. Впрочем, как мы увидим, не намного. | ||
Самая серьезная проблема, с которой вы столкнетесь при подключении Linux-машины к беспроводной сети, заключается в подборе | Самая серьезная проблема, с которой вы столкнетесь при подключении Linux-машины к беспроводной сети, заключается в подборе | ||
Строка 19: | Строка 21: | ||
Аутентификацией WPA в Linux управляет демон ''wpa_supplicant''. Перед началом настройки беспроводного клиента WPA-enterprise убедитесь в том, что этот демон установлен в вашей системе. Помимо него, нам понадобятся демон управления сетями ''NetworkManager'', утилита ''wavemon'', а также, в зависимости от того, по какому пути пойдет настройка – графическая оболочка ''GNOME NetworkManager Applet'' ['''или ее KDE-аналог – ''KNetworkManager'', – прим. ред.'''], утилиты ''wpa_gui'' и ''KWlan''. Все перечисленные программы можно найти в любом современном дистрибутиве Linux. Многие системы устанавливают их по | Аутентификацией 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: | ||
+ | |||
+ | <code> | ||
+ | sudo /etc/init.d/dbus restart | ||
+ | </code> | ||
+ | |||
+ | Если же апплет ''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 | ||
+ | </code> | ||
+ | |||
+ | Здесь '''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''' и добавьте в него запись вида | ||
+ | |||
+ | <code> | ||
+ | network={ | ||
+ | ssid=”lochi7” | ||
+ | scan_ssid=1 | ||
+ | key_mgmt=WPA-EAP | ||
+ | eap=PEAP | ||
+ | identity=”kub” | ||
+ | password=”password” | ||
+ | phase2=”auth=MSCHAPV2” | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Атрибут '''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, в процессе двусторонней передачи данных, добавьте в конфигурационную запись строку: | ||
+ | |||
+ | <code> | ||
+ | pairwise=CCMP | ||
+ | </code> | ||
+ | |||
+ | Атрибут '''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 на клиентской машине потребуется установить клиентский сертификат, корневой сертификат, удостоверяющий подпись клиентского и серверного сертификатов, и файл секретного ключа клиентского сертификата. Методы генерации всех этих файлов были подробно рассмотрены нами в предыдущей статье ([http://wiki.linuxformat.ru/index.php/LXF96:RADIUS '''LXF96''']), и сейчас нам остается выполнить лишь одно дополнительное преобразование. Напомню, что мы создавали файлы сертификатов в формате DER, тогда как демон wpa_supplicant и его друзья предпочитают сертификаты в формате PEM. Преобразовать клиентский сертификат из формата DER в формат PEM можно с помощью команды: | ||
+ | |||
+ | <code> | ||
+ | openssl x509 -in user1.crt -out user1.pem | ||
+ | </code> | ||
+ | |||
+ | Точно также следует преобразовать и корневой сертификат. При аутентификации по протоколу EAP-TLS запись '''network {...}''' в | ||
+ | файле ''wpa_supplicant'' должна принять вид | ||
+ | |||
+ | <code> | ||
+ | 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” | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Теперь атрибут '''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'''. В большинстве случаев подключение к доступной сети будет выполняться автоматически. | ||
+ | |||
+ | ===Вспомогательные утилиты=== | ||
+ | |||
+ | Проверить параметры подключения к беспроводной сети можно с помощью утилиты wavemon (Рис. 2). Эта консольная утилита позволяет отслеживать в реальном времени такие параметры беспроводного соединения, как скорость передачи, количество переданных пакетов, трафик, уровень сигнала и отношение сигнал/шум. | ||
+ | |||
+ | [[Изображение:RADIUS2.jpg|Рис. 2. Проверка работы беспроводной сети с помощью ''wavemon'']] | ||
+ | |||
+ | Было бы странно, если бы в эпоху безалкогольного шампанского и электрических зубных щеток не существовало GUI-утилит для настройки ''wpa_supplicant''. С одной из таких утилит – ''nm-applet'' – мы уже познакомились. Если вы почему-либо не можете использовать ''NetworkManager'' для настройки WPA-соединения, к вашим услугам две другие графические утилиты – ''wpa_gui'' и ''KWlan''. | ||
+ | |||
+ | Утилита ''wpa_gui'' предоставляет в распоряжение пользователя графический интерфейс (на базе Qt) и довольно удобные возможности настройки протоколов, методов и параметров аутентификации в беспроводных сетях (Рис. 3), а также средство сканирования эфира в поисках точек доступа. С помощью ''wpa_gui'' можно настраивать параметры аутентификации в нескольких беспроводных сетях. Переключение между сетями выполняется при выборе имени новой сети в раскрывающемся списке '''Network'''. | ||
+ | |||
+ | [[Изображение:RADIUS3.jpg|Рис. 3. Настройка ''wpa_supplicant'' с помощью ''wpa_gui''.]] | ||
+ | |||
+ | Базирующийся на ''wpa_gui'' сетевой менеджер ''KWlan'' умеет управлять не только беспроводными, но и кабельными соединениями, а также подключениями dial-up. В случае работы с беспроводными соединениями ''KWlan'' выступает в роли графической оболочки для демона ''wpa_supplicant''. Возможности управления настройками WPA у ''KWlan'' те же, что и у ''wpa_gui'' (настройка протоколов и методов аутентификации, создание нескольких профилей для подключения к разным сетям), но интерфейс ''KWlan'', на мой взгляд, удобнее (Рис. 4). | ||
+ | |||
+ | [[Изображение:RADIUS4.jpg|Рис. 4. Настройка беспроводного соединения с помощью KWlan.]] | ||
+ | |||
+ | Помимо настроек аутентификации WPA, ''KWlan'' поддерживает настройки IP-адреса, адресов шлюза, DNS и других параметров соединения для каждого профиля. ''KWlan'' может отображать текущее состояние сетевого соединения (Рис. 5) и запускать/останавливать демон ''wpa_supplicant''; впрочем, последняя функция пока что работает не очень надежно. | ||
+ | |||
+ | [[Изображение:RADIUS5.jpg|Рис. 5. ''KWlan'': ура, беспроводное подключение работает!]] | ||
+ | |||
+ | Подводя итоги, можно утверждать, что по простоте настройки аутентификации WPA Linux приближается к Windows (чего, увы, все | ||
+ | еще нельзя сказать о спектре поддерживаемых беспроводных карт). В этой статье были рассмотрены не все возможности и инструменты настройки WPA Enterprise на платформе Linux, но теперь, когда общая картина вам ясна, использование любого специфического инструмента не должно быть для вас сложным делом. '''LXF''' |
Текущая версия на 10:37, 17 ноября 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 – файлы сертификатов, ключа и пароль к секретному ключу. Пояснения смысла полей ввода этого окна вы найдете ниже, в разделе «Настройка подключения к сети».
Убедившись, что подключение к сети с помощью 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
Здесь ath0 – имя настраиваемого беспроводного сетевого интерфейса. Далее следуют статические адреса узла и шлюза. Если узлы вашей сети получает адреса по DHCP, вместо этих настроек надо написать
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. В большинстве случаев подключение к доступной сети будет выполняться автоматически.
[править] Вспомогательные утилиты
Проверить параметры подключения к беспроводной сети можно с помощью утилиты wavemon (Рис. 2). Эта консольная утилита позволяет отслеживать в реальном времени такие параметры беспроводного соединения, как скорость передачи, количество переданных пакетов, трафик, уровень сигнала и отношение сигнал/шум.
Было бы странно, если бы в эпоху безалкогольного шампанского и электрических зубных щеток не существовало GUI-утилит для настройки wpa_supplicant. С одной из таких утилит – nm-applet – мы уже познакомились. Если вы почему-либо не можете использовать NetworkManager для настройки WPA-соединения, к вашим услугам две другие графические утилиты – wpa_gui и KWlan.
Утилита wpa_gui предоставляет в распоряжение пользователя графический интерфейс (на базе Qt) и довольно удобные возможности настройки протоколов, методов и параметров аутентификации в беспроводных сетях (Рис. 3), а также средство сканирования эфира в поисках точек доступа. С помощью wpa_gui можно настраивать параметры аутентификации в нескольких беспроводных сетях. Переключение между сетями выполняется при выборе имени новой сети в раскрывающемся списке Network.
Базирующийся на wpa_gui сетевой менеджер KWlan умеет управлять не только беспроводными, но и кабельными соединениями, а также подключениями dial-up. В случае работы с беспроводными соединениями KWlan выступает в роли графической оболочки для демона wpa_supplicant. Возможности управления настройками WPA у KWlan те же, что и у wpa_gui (настройка протоколов и методов аутентификации, создание нескольких профилей для подключения к разным сетям), но интерфейс KWlan, на мой взгляд, удобнее (Рис. 4).
Помимо настроек аутентификации WPA, KWlan поддерживает настройки IP-адреса, адресов шлюза, DNS и других параметров соединения для каждого профиля. KWlan может отображать текущее состояние сетевого соединения (Рис. 5) и запускать/останавливать демон wpa_supplicant; впрочем, последняя функция пока что работает не очень надежно.
Подводя итоги, можно утверждать, что по простоте настройки аутентификации WPA Linux приближается к Windows (чего, увы, все еще нельзя сказать о спектре поддерживаемых беспроводных карт). В этой статье были рассмотрены не все возможности и инструменты настройки WPA Enterprise на платформе Linux, но теперь, когда общая картина вам ясна, использование любого специфического инструмента не должно быть для вас сложным делом. LXF