wpa_supplicant

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Wpa supplicant and the translation is 96% complete.

Other languages:
English • ‎русский

wpa_supplicant is a wifi supplicant to handle network authentication.

Установка

В качестве предварительного условия в ядре должна быть активирована поддержка беспроводных сетей, как описано в Wifi/IEEE_802.11/ru, а также необходимых драйверов беспроводных адаптеров.[1]

USE-флаги

USE flags for net-wireless/wpa_supplicant IEEE 802.1X/WPA supplicant for secure wireless transfers

ap Add support for access point mode
bindist Flag to enable or disable options for prebuilt (GRP) packages (eg. due to licensing issues)
dbus Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
eap-sim Add support for EAP-SIM authentication algorithm
eapol_test Build and install eapol_test binary
fasteap Add support for FAST-EAP authentication algorithm
fils Add support for Fast Initial Link Setup (802.11ai)
hs2-0 Add support for 802.11u and Passpoint for HotSpot 2.0
libressl Use dev-libs/libressl instead of dev-libs/openssl when applicable (see also the ssl useflag)
macsec Add support for wired macsec
p2p Add support for Wi-Fi Direct mode
privsep Enable wpa_priv privledge separation binary
ps3 Add support for ps3 hypervisor driven gelic wifi
qt5 Add support for the Qt 5 application and UI framework
readline Enable support for libreadline, a GNU line-editing library that almost everyone wants
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
smartcard Add support for smartcards
tdls Add support for Tunneled Direct Link Setup (802.11z)
uncommon-eap-types Add support for GPSK, SAKE, GPSK_SHA256, IKEV2 and EKE
wimax Add support for Wimax EAP-PEER authentication algorithm
wps Add support for Wi-Fi Protected Setup

Emerge

После просмотра USE-флагов установите net-wireless/wpa_supplicant, используя команду Portage emerge:

root #emerge --ask net-wireless/wpa_supplicant

Настройка

Файлы

Важно
Приложения, перечисленные в списке Network management, обычно не работают вместе. Убедитесь, что одновременно запущен только один из этих сервисов. Запуск более одного сервиса управления сетью приведёт к непредсказуемым результатам!

Убедитесь, что выбрали соответствующую установку.

Глобальные настройки

Для использования с единственным беспроводным интерфейсом требуется всего один конфигурационный файл. Этот файл по умолчанию не существует; шаблонный файл конфигурации может быть скопирован из /usr/share/doc/${P}/wpa_supplicant.conf.bz2, где значение переменной P – название и версия установленного в данный момент Wpa supplicant:

root #bzless /usr/share/doc/${P}/wpa_supplicant.conf.bz2 > /etc/wpa_supplicant/wpa_supplicant.conf

Далее, отредактируйте файл:

Файл /etc/wpa_supplicant/wpa_supplicant.conf
# Позволять пользователям из группы 'wheel' контролировать wpa_supplicant
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
 
# Разрешить wpa_gui / wpa_cli запись в файл
update_config=1

Чтобы разрешить непривилегированным пользователям управлять соединением с использованием wpa_gui / wpa_cli, убедитесь, что пользователи добавлены в группу wheel.

Настройка с dhcpcd в качестве менеджера сетей

Emerge wpa_supplicant (Version >=2.6-r2 is needed in order to get the CONFIG_MATCH_IFACE option added in April 2017.)

root #emerge --ask net-wireless/wpa_supplicant

Complete its conf.d file with the -M option for the wireless network interface:

Файл /etc/conf.d/wpa_supplicant
wpa_supplicant_args="-B -M -c/etc/wpa_supplicant/wpa_supplicant.conf"

In case authentication for the wired interface is needed this configuration file should look like

Файл /etc/conf.d/wpa_supplicant
wpa_supplicant_args="-ieth0 -Dwired -c/etc/wpa_supplicant/wpa_supplicant_wired.conf -B -M -c/etc/wpa_supplicant/wpa_supplicant.conf"

With the configuration done, run it as a service:

root #rc-update add wpa_supplicant default
root #/etc/init.d/wpa_supplicant start


В случае если необходим устаревающий драйвер WEXT, изменение драйвера может помочь решить проблемы, когда адаптер подключается и тут же отключается по причине 3. Выполните wpa_supplicant -h, чтобы увидеть список доступных драйверов, которые были встроены во время компиляции.

Файл /etc/conf.d/wpa_supplicantНастройка драйвера для wext
wpa_supplicant_args="-D wext"

Настройка со сценариями Gentoo net.*

Укажите сетевым сценариям использовать wpa_supplicant:

Файл /etc/conf.d/net
modules_wlan0="wpa_supplicant"
config_wlan0="dhcp"

Хорошая идея после последующей настройки изменить права доступа, чтобы быть уверенным в том, что WiFi пароли не могут быть просмотрены в открытом виде всеми, кто использует компьютер:[2]

root #chmod 600 /etc/wpa_supplicant/wpa_supplicant.conf

Использование

Использование wpa_gui

Самый простой способ использовать wpa_supplicant – через его графический интерфейс wpa_gui. Чтобы включить его, соберите wpa_supplicant с USE-флагом qt5.

Использование wpa_cli

Wpa_supplicant также имеет интерфейс командной строки. Ввод wpa_cli запускает его в интерактивном режиме с дополнением по tab. Ввод help в командной строке отобразит список всех доступных команд (нажмите "развернуть", чтобы увидеть ниже вывод команды wpa_cli):

root #echo "update_config=1" >>/etc/wpa_supplicant/wpa_supplicant.conf
root #wpa_cli
wpa_cli v2.5
 Copyright (c) 2004-2015, Jouni Malinen <j@w1.fi> and contributors
 
 This software may be distributed under the terms of the BSD license.
 See README for more details.
 
 
 Selected interface 'wlan0'
 
 Interactive mode
 
 > scan
 OK
 > scan_results
 bssid / frequency / signal level / flags / ssid
 01:23:45:67:89:ab       2437    0       [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS]    hotel-free-wifi
 > add_network
 0
 > set_network 0 ssid "hotel-free-wifi"
 OK
 > set_network 0 psk "password"
 OK
 > enable_network 0
 OK
 <3>CTRL-EVENT-SCAN-RESULTS 
 <3>WPS-AP-AVAILABLE 
 <3>Trying to associate with 01:23:45:67:89:ab (SSID='hotel-free-wifi' freq=2437 MHz)
 <3>Associated with 01:23:45:67:89:ab
 <3>WPA: Key negotiation completed with 01:23:45:67:89:ab [PTK=CCMP GTK=TKIP]
 <3>CTRL-EVENT-CONNECTED - Connection to 01:23:45:67:89:ab completed [id=0 id_str=]
 > save_config 
 OK
 > quit

Подробнее о том, как подключиться, можно найти в Arch Linux wiki.[3]

Использование wpa_passphrase

wpa_supplicant включает в себя инструмент для быстрой записи блока network из командной строки для сетей с Preshared-Key (PSK – пароль), wpa_passphrase.

root #wpa_passphrase <ssid> [passphrase]

SSID необходим. Если пропустить парольную фразу, её можно будет ввести, когда она будет запрошена.

Получившийся вывод может быть затем скопирован или направлен в /etc/wpa_supplicant/wpa_supplicant.conf.

Редактирование вручную

Конечно, конфигурационный файл /etc/wpa_supplicant/wpa_supplicant.conf может быть также отредактирован вручную. Однако, это может быть очень утомительно, если компьютер должен подключаться ко множеству различных точек доступа.

Примеры можно найти в man 5 wpa_supplicant.conf и /usr/share/doc/wpa_supplicant-2.4-r3/wpa_supplicant.conf.bz2.

WPA2 с wpa_supplicant

Подключение к любой точке доступа с YourSSID

Файл /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
#ap_scan=0
#update_config=1
 
network={
        ssid="YourSSID"
        psk="your-secret-key"
        scan_ssid=1
        proto=RSN
        key_mgmt=WPA-PSK
        group=CCMP TKIP
        pairwise=CCMP TKIP
        priority=5
}

Используйте bssid для указания точки доступа, к которой следует подключиться, по её MAC-адресу в случае, если есть повторители. Не забывайте воспользоваться wpa_passphrase <ssid> [passphrase] для создания psk

Файл /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
ap_scan=1
 
network={
        bssid=00:50:17:31:1a:11
        ssid="YourSSID"
        psk="your-secret-key"
        scan_ssid=1
        proto=RSN
        key_mgmt=WPA-PSK
        group=CCMP TKIP
        pairwise=CCMP TKIP
        priority=5
}

Автоматическое подключение к любой незащищённой сети

Файл /etc/wpa_supplicant/wpa_supplicant.conf
network={
        key_mgmt=NONE
        priority=-999
}

Устранение проблем

В случае если это не работает как ожидалось, попробуйте что-нибудь из перечисленного ниже и проанализируйте вывод.

Проверьте среди известных ошибок

Запустите wpa_supplicant в режиме отладки

Убедитесь, что остановлены все запущенные процессы wpa_supplicant:

root #killall wpa_supplicant

Что-либо наподобие этого может быть использовано для отладки (нажмите "развернуть", чтобы посмотреть вывод ниже):

root #wpa_supplicant -Dnl80211 -iwlan0 -C/var/run/wpa_supplicant/ -c/etc/wpa_supplicant/wpa_supplicant.conf -dd
wpa_supplicant v2.2
random: Trying to read entropy from /dev/random
Successfully initialized wpa_supplicant
Initializing interface 'wlp8s0' conf '/etc/wpa_supplicant/wpa_supplicant.conf' driver 'nl80211' ctrl_interface '/var/run/wpa_supplicant' bridge 'N/A'
Configuration file '/etc/wpa_supplicant/wpa_supplicant.conf' -> '/etc/wpa_supplicant/wpa_supplicant.conf'
Reading configuration file '/etc/wpa_supplicant/wpa_supplicant.conf'
ctrl_interface='DIR=/var/run/wpa_supplicant GROUP=wheel'
update_config=1
Line: 6 - start of a new network block

Включение журналирования

Включение журналирования для сценариев net.* Gentoo

Файл /etc/conf.d/netдля использования с Настройкой со сценариями Gentoo net.*
modules_wlan0="wpa_supplicant"
wpa_supplicant_wlan0="-Dnl80211 -d -f /var/log/wpa_supplicant.log"
config_wlan0="dhcp"

Теперь из одного терминала запустите команду tail, чтобы отслеживать вывод, и перезапустите устройство net.wlan0 в другом терминале:

root #tail -f /var/log/wpa_supplicant.log
root #/etc/init.d/net.wlan0 restart

Ссылки

Смотрите также

  • iwd — an up-and-coming wireless daemon for Linux. iwd предназначен для замены wpa_supplicant.

Внешние ресурсы