WPA_SUPPLICANT(8)

НАЗВАНИЕ
wpa_supplicant - клиент защищённого доступа Wi-Fi и проситель IEEE 802.1X

ОБЗОР
wpa_supplicant [ -BddfhKLqqtuvW ] [ -iинтерфейс ] [ -cфайл_конфигурации ] [ -Dдрайвер ] [ -PPID_файл ] [ -fфайл_вывода ]

ОБЩИЙ ОБЗОР

Беспроводные сети не требуют физического доступа к сетевому оборудованию таким же образом, что и проводные сети. Это упрощает неавторизованным пользователям пассивное наблюдение за сетью и перехват всех переданных кадров. В добавок, неавторизованное использование сети значительно проще. Во многих случаях, это может произойти без явного уведомления пользователя, поскольку беспроводной сетевой адаптер может быть настроен на автоматическое вхождение в любую доступную сеть.

Для обеспечения уровня безопасности беспроводных сетей можно воспользоваться шифрованием на уровне канала. Исходный стандарт беспроводных сетей IEEE 802.11 включает простой механизм шифрования WEP. Однако доказано, что он имеет недостатки во многих аспектах, а сети защищённые с помощью WEP не могут считаться безопасными. Для улучшения безопасности сети можно использовать аутентификацию IEEE 802.1X и часто меняемые динамические ключи WEP, но даже в этом случае можно ожидать унаследованных проблем, возникающих при использовании WEP для шифрования. Защищённый доступ Wi-Fi (WPA) и поправка IEEE 802.11i к стандарту беспроводной сети вводит хорошо улучшенный механизм безопасности беспроводных сетей. Сети, использующие IEEE 802.11i можно назвать действительно безопасными, поскольку при этом применяется CCMP (механизм шифрования основанный на сильном криптографическом алгоритме AES), который может обеспечить эффективную защиту от неавторизованного доступа тем приложениям, которые в ней нуждаются.

wpa_supplicant является компонентом просителя WPA, то есть той частью, которая запускается на стороне клиентской станции. wpa_supplicant осуществляет обмен данными с аутентификатором WPA и аутентификацией по протоколу EAP с сервером аутентификации. К тому же, wpa_supplicant контролирует переход между сетями (roaming) и аутентификацию/ассоциацию IEEE 802.11 в драйвере беспроводной локальной сети.

wpa_supplicant представляет собой "демон", программу которая запускается в фоновом режиме и действует в качестве служебного компонента, управляющего беспроводным соединением. wpa_supplicant поддерживает различные программы-оболочки, например текстовый wpa_cli, входящий в состав wpa_supplicant.

Прежде чем wpa_supplicant сможет выполнить свою работу, сетевой интерфейс должен был доступен. Это означает, что физическое устройство должно присутствовать и быть включённым, а драйвер устройства должен быть загружен. Демон немедленно прекратит работу, если устройство ещё не доступно.

После того, как wpa_supplicant настроил сетевое устройство, могут быть запущены более высокоуровневые средства настройки, например DHCP. Существуют различные способы для встраивания wpa_supplicant в сценарии настройки сети компьютера, некоторые из которых описаны в разделе ниже.

Для ассоциирования с точкой доступа при помощи WPA используются следующие шаги:

•   wpa_supplicant запрашивает драйвер ядра просканировать окружающие базовые станции (BSS)

•   wpa_supplicant выбирает базовую станцию (BSS) основываясь на её настройках

•   wpa_supplicant запрашивает драйвер ядра ассоциироваться с указанной выбранной базовой станцией (BSS)

•   Если WPA-EAP: встроенный проситель IEEE 802.1X завершает аутентификацию EAP на сервере аутентификации (ретранслируемом с помощью аутентификатора в точке доступа)

•   Если WPA-EAP: от просителя IEEE 802.1X принимается мастер-ключ

•   Если WPA-PSK: wpa_supplicant использует общий ключ PSK в качестве мастер-ключа сеанса

•   wpa_supplicant завершает четырёхэтапное рукопожатие WPA и рукопожатие группового ключа (Group Key Handshake) с аутентификатором точки доступа

•   wpa_supplicant настраивает ключи шифрования для направленного вещания и широковещания

•   могут передаваться и приниматься обычные пакеты данных

ПОДДЕРЖИВАЕМЫЕ ВОЗМОЖНОСТИ

Список поддерживаемых возможностей WPA/IEEE 802.11i:

•   WPA-PSK ("WPA-Personal")

•   WPA с EAP (например, с сервером аутентификации RADIUS) ("WPA-Enterprise") Просителем IEEE 802.1X поддерживаются следующие встроенные методы аутентификации:

    •   EAP-TLS

    •   EAP-PEAP/MSCHAPv2 (PEAPv0 и PEAPv1)

    •   EAP-PEAP/TLS (PEAPv0 и PEAPv1)

    •   EAP-PEAP/GTC (PEAPv0 и PEAPv1)

    •   EAP-PEAP/OTP (PEAPv0 и PEAPv1)

    •   EAP-PEAP/MD5-Challenge (PEAPv0 и PEAPv1)

    •   EAP-TTLS/EAP-MD5-Challenge

    •   EAP-TTLS/EAP-GTC

    •   EAP-TTLS/EAP-OTP

    •   EAP-TTLS/EAP-MSCHAPv2

    •   EAP-TTLS/EAP-TLS

    •   EAP-TTLS/MSCHAPv2

    •   EAP-TTLS/MSCHAP

    •   EAP-TTLS/PAP

    •   EAP-TTLS/CHAP

    •   EAP-SIM

    •   EAP-AKA

    •   EAP-PSK

    •   EAP-PAX

    •   LEAP (замечание: требует особой поддержки драйвером аутентификации IEEE 802.11)

    •   (следующие методы поддерживаются, но они пока не порождают обмен ключевым материалом, они не могут использоваться для обмен ключами по WPA или IEEE 802.1X WEP)

    •   EAP-MD5-Challenge

    •   EAP-MSCHAPv2

    •   EAP-GTC

    •   EAP-OTP

•   управление ключами по CCMP, TKIP, WEP104, WEP40

•   RSN/WPA2 (IEEE 802.11i)

    •   пре-аутентификация

    •   кэширование PMKSA

ДОСТУПНЫЕ ДРАЙВЕРЫ

Драйверы, доступные для указания в опции -D:Сводная информация по доступным драйверам приведена ниже. Поддержка каждого из драйверов выбирается во время сборки wpa_supplicant. Список поддерживаемых в вашей системе драйверов можно узнать с помощью опции -D, обратитесь к справочному выводу wpa_supplicant (wpa_supplicant -h).

hostap
    (по умолчанию) Ведущий драйвер точки доступа (Intersil Prism2/2.5/3). (Он также может использоваться совместно с загрузчиком драйвера Linuxant).

hermes
    Драйвер Agere Systems Inc. (Hermes-I/Hermes-II).

madwifi
    Поддерживаемые MADWIFI 802.11 (Atheros, etc.).

wext
    Беспроводные расширения Linux (обобщённый).

broadcom
    Драйвер Broadcom wl.o.

wired
    Проводной драйвер Ethernet wpa_supplicant

roboswitch
    Драйвер коммутатора Broadcom wpa_supplicant

bsd Поддерживаемые BSD 802.11 (Atheros, etc.).

ndis
    Драйвер Windows NDIS.

ОПЦИИ КОМАНДНОЙ СТРОКИ

Большинство опций командной строки имеют глобальную область действия. Некоторые относятся к интерфейсу, и они применимы только в том случае, если указана хотя бы одна опция -i, иначе они будут проигнорированы. Группы опций для разных интерфейсов могут разделяться опцией -N.

-b интерфейс_моста
    Необязательное имя интерфейса моста. (Для интерфейса)

-B  Запустить демона в фоновом режиме.

-c имя_файла
    Путь к файлу конфигурации. (Для интерфейса)

-C ctrl_interface
    Путь к сокету управления_интерфейсом (используется только если -c отсутствует).

-i имя_интерфейса
    Интерфейс для прослушивания. Можно указывать несколько экземпляров этой опции по одной для каждого интерфейса, разделённых опцией -N (смотри ниже).

-d  Увеличивает подробность отладочных сообщений (-dd ещё больше).

-D драйвер
    Используемый драйвер (можно указать несколько драйверов: nl80211,wext). (На интерфейс, смотри доступные опции далее).

-f выходной_файл
    Журналировать вывод в указанный файл, а не на стандартный вывод.

-g глобальный_сокет_управления_интерфейсом
    Путь к глобальному_сокету_управления_интерфейсом. Если указано, определение интерфейса можно опустить.

-K  Включать ключи (пароли и т.п.) в отладочный вывод.

-t  Включать отметки времени в отладочный вывод.

-h  Помощь. Показать справку по использованию.

-L  Показать лицензию (GPL и BSD).

-p  Параметры драйвера. (На интерфейс)

-P PID_файл
    Путь к файлу с идентификатором процесса.

-q  Уменьшить подробность отладочных сообщений (-qq ещё меньше).

-u  Включить управляющий интерфейс DBus. Если включено, то определение интерфейса можно опустить.

-v  Показать версию.

-W  Ждать управляющий интерфейс перед запуском.

-N  Начать описание новых интерфейсов.

ПРИМЕРЫ

В большинстве случаев wpa_supplicant запускается следующим образом:

    wpa_supplicant -B -c/etc/wpa_supplicant.conf -iwlan0

Эта команда заставляет процесс ответвиться в фоновый режим.

Наилегчайший способ отладки проблем и получения журнала об ошибках для составления отчета об ошибке, заключается в запуске wpa_supplicant в фоновом режиме с включенным режимом отладки:

    wpa_supplicant -c/etc/wpa_supplicant.conf -iwlan0 -d

Если определённая обёртка драйвера не известна заранее, в командной строке можно указать несколько обёрток драйверов, разделённых запятой. wpa_supplicant будет использовать первую обёртку драйвера, которая сможет инициализировать интерфейс.

    wpa_supplicant -Dnl80211,wext -c/etc/wpa_supplicant.conf -iwlan0

wpa_supplicant может управлять несколькими (радио) интерфейсами, по одному запущенному процессу для каждого отдельного интерфейса или просто запуском одного процесса со списком опций в командной строке. Каждый интерфейс отделяется аргументом -N. Например, следующая командная строка запустит wpa_supplicant для двух интерфейсов:

    wpa_supplicant 	-c wpa1.conf -i wlan0 -D hostap -N 	-c wpa2.conf -i ath0 -D madwifi

ТРЕБОВАНИЯ К ОПЕРАЦИОННОЙ СИСТЕМЕ

Текущие аппаратные/программные требования:

•   ядро Linux 2.4.x или 2.6.x с беспроводными расширениями Linux v15 или новее

•   FreeBSD 6-CURRENT

•   Microsoft Windows с WinPcap (по меньшей мере WinXP, может работать с другими версиями)

ПОДДЕРЖИВАЕМЫЕ ДРАЙВЕРЫ

Драйвер точки доступа для Prism2/2.5/3 (снимок разрабатываемой версии/v0.2.x)
    (http://hostap.epitest.fi/) Драйвер должен быть настроен в режиме управления (iwconfig wlan0 mode managed). Отметим, что фирменное программное обеспечение компьютера должно иметь версию 1.7.0 или новее, чтобы работать в режиме WPA.

Загрузчик драйвера Linuxant
    (http://www.linuxant.com/driverloader/) с драйвером Windows NDIS для вашей беспроводной сетевой карты, поддерживающим WPA.

Agere Systems Inc. драйвер для Linux
    (http://www.agere.com/support/drivers/) Отметим, что файл интерфейса драйвера (driver_hermes.c) и аппаратно-зависимые файлы не включаются в комплект поставки wpa_supplicant. Вам может потребоваться скопировать их из пакета с исходными текстами драйвера Agere.

Драйвер madwifi для карт, основанных на наборе микросхем Atheros (ar521x)
    (http://sourceforge.net/projects/madwifi/) Отметим, что вам потребуется изменить файл конфигурации wpa_supplicant, чтобы использовать правильный путь до корневого каталога драйвера madwifi (CFLAGS += -I../madwifi/wpa - строка в примере defconfig).

Linux ndiswrapper
    (http://ndiswrapper.sourceforge.net/) с драйвером Windows NDIS.

Драйвер Broadcom wl.o
    Это обобщённый драйвер Linux для карт IEEE 802.11a/g. Однако, это собственнический драйвер, который не доступен общественности, исключая связанные с особыми обстоятельствами, главным образом с беспроводными маршрутизаторами и точками доступа на основе Broadcom, которые используют Linux. Драйвер в двоичном виде может быть скачан, например, с сайта поддержки Linksys (http://www.linksys.com/support/gpl.asp) для Linksys WRT54G. Архив GPL включает в себя кросс-компилятор и необходимый заголовочный файл wlioctl.h, для сборки wpa_supplicant. Этот драйвер поддерживает wpa_supplicant, ожидается что он будет работать также с другими устройствами, основанными на драйвере Broadcom (подразумевая, что драйвер содержит поддержку клиентского режима).

Драйвер Intel ipw2100
    (http://sourceforge.net/projects/ipw2100/)

Драйвер Intel ipw2200
    (http://sourceforge.net/projects/ipw2200/)

Беспроводные расширения Linux
    Теоретически, любой драйвер, поддерживающий беспроводные расширения Linux может использоваться вместе с IEEE 802.1X (то есть, не WPA) при использовании опции ap_scan=0 в файле конфигурации.

Проводные драйверы Ethernet
    Воспользуйтесь ap_scan=0.

Слой BSD net80211 (например, драйвер Atheros)
    В настоящее время он доступен в ветке FreeBSD 6-CURRENT.

Windows NDIS
    Текущий версия для Windows требует для работы WinPcap (http://winpcap.polito.it/). Обратитесь к README-Windows.txt за более подробной информацией.

wpa_supplicant был спроектирован пригодным для переноса на различные драйверы и операционные системы. Надеемся, что в будущем будет добавлена поддержка большего количество беспроводных карт и операционных систем. Обратитесь к developer.txt за более подробной информацией об архитектуре wpa_supplicant и о переносе на другие драйверы. Одной из главных целей было добавление полной поддержки WPA/WPA2 в беспроводные расширения Linux, с целью избежать реализации специального кода для взаимодействия между каждым новым драйвером и wpa_supplicant.

АРХИТЕКТУРА

Система wpa_supplicant состоит из следующих компонентов:

wpa_supplicant.conf
    Файл конфигурации, описывающий все сети, к которым пользователь хочет подключать компьютер.

wpa_supplicant
    Программа, которая напрямую взаимодействует с сетевым интерфейсом.

wpa_cli
    Программа-клиент, которая предоставляет высокоуровневый интерфейс к функциям демона.

wpa_passphrase
    Служебный инструмент, необходимый для создания файлов wpa_supplicant.conf, включающих зашифрованные пароли.

БЫСТРОЕ НАЧАЛО

Для начала, создайте файл конфигурации, например /etc/wpa_supplicant.conf, который описывает интересные вам сети. За более подробной информацией обратитесь к wpa_supplicant.conf(5).

Когда файл конфигурации готов, вы можете проверить работает ли он, запустив wpa_supplicant с помощью следующей команды, которая запустит его в интерактивном режиме со включенным режимом отладки:

    wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -d

Если всё хорошо, вы можете выполнить следующую команду, которая запустит wpa_supplicant в фоновом режиме без отладки:

    wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B

Отметим, что если перед сборкой пакета вы указали более одного драйвера в файле конфигурации (.config), вам может потребоваться указать в командной строке опцию -D<название_драйвера>, для указания используемого интерфейса.

ИНТЕРФЕЙС К PCMCIA-CS/CARDMRG

Например, для включения поддержки WPA можно воспользоваться следующими небольшими изменениями в сценариях pcmcia-cs:

Добавить MODE="Managed" и WPA="y" в сетевую схему в /etc/pcmcia/wireless.opts.

Добавить следующий блок в конец обработчика действия start в /etc/pcmcia/wireless:

    if [ "$WPA" = "y" -a -x /usr/local/bin/wpa_supplicant ]; then
        /usr/local/bin/wpa_supplicant -B -c/etc/wpa_supplicant.conf -i$DEVICE
    fi

Добавить следующий блок в конец обработчика действия stop (может потребоваться отделение от других действий) в /etc/pcmcia/wireless:

    if [ "$WPA" = "y" -a -x /usr/local/bin/wpa_supplicant ]; then
        killall wpa_supplicant
    fi

Это заставит cardmgr запускать wpa_supplicant при подключении карты.

СМОТРИ ТАКЖЕ

wpa_background(8) wpa_supplicant.conf(5) wpa_cli(8) wpa_passphrase(8)

ПРАВА

wpa_supplicant Copyright © 2003-2007, Джуни Мэлайнен (Jouni Malinen) <j@w1.fi> и вкладчики. Все права защищены.

Эта программа распространяется под двумя лицензиями: GPL версии 2 и лицензией BSD. Любая из лицензий может использоваться на ваш выбор.

АВТОРЫ ПЕРЕВОДА
Перевод выполнен на сайте коллективных переводов http://translated.by. Авторы перевода Олег Безначев aka saturn721, Владимир Ступин <wheel69@yandex.ru>, alexanderyt.