Данная статья применима к:
Введение
В статье описаны основные приемы работы с адаптерами WiFi. При написании статьи использовались виртуальные машины КVM (см. Виртуализация QEMU/KVM в Astra Linux), в качестве устройств WiFi использовались USB-адаптеры TP-Link LT-WDN3200 (чип Ralink RT5572) и адаптер неустановленной модели с чипом Ralink RT5370. При подключении указанные адаптеры регистрируются операционной системой как wlan0, и далее в примерах используется это имя адаптера.
Проверка оборудования
Процедуры проверки оборудования позволяют убедиться, что оборудование опознано операционной системой и готово к настройке. Простейшие проверки можно выполнить без установки дополнительных пакетов, для более детальных проверок понадобятся дополнительные пакеты.
Установка пакетов для проверки оборудования
Для детальной проверки установить пакеты rfkill и iw:
Проверка и подготовка оборудования
Убедиться, что устройство действительно подключено (дополнительные пакеты не требуются):
lsusbВывод команды показывает наличие подключенного USB-устройства "Ralink Technology, Corp. RT5370 Wireless Adapter"
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubПри работе с виртуальными машинами QEMU/KVM переназначение USB-устройств через команду меню может работать некорректно, для переназначения устройств следует использовать панель виртуального оборудования и добавлять устройства как "USB-устройство узла" ("USB Host Device");Убедиться, что устройство опознано как сетевой адаптер (дополнительные пакеты не требуются):
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:0f:e7:bf brd ff:ff:ff:ff:ff:ff
inet 192.168.56.31/24 brd 192.168.56.255 scope global noprefixroute dynamic eth0
valid_lft 966sec preferred_lft 966sec
inet6 fe80::5054:ff:fe0f:e7bf/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 8a:69:8b:6c:25:92 brd ff:ff:ff:ff:ff:ffВывод команды показывает наличие сетевого адаптера wlan0;
- Убедиться, что устройство управляется (опознано) службой Network Manager:
sudo nmcli dev status
DEVICE TYPE STATE CONNECTION
eth0 ethernet подключено Проводное соединение 1
wlan0 wifi отключено -- Убедиться, что использование устройства разрешено (в частности, устройство не отключено аппаратно или настройками BIOS). Требуется пакет rfkill. Команда:
sudo rfkill listВывод команды показывает, что устройство с именем phy0 не заблокировано ("no"). Если устройство заблокировано ('yes"), то:
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: noЕсли устройство заблокировано программно ("Soft blocked: yes"), то можно попробовать разблокировать его командой:
sudo rfkill unblock <имя_устройства>Если это не помогает, то, возможно, отсутствуют драйверы для устройства;- Если устройство заблокировано аппаратно ("Hard blocked: yes"), то следует искать способ разблокировки в настройках оборудования (например, включить WiFi кнопкой на ноутбуке);
Убедиться, что устройство поддерживает нужные режимы работы (в частности, режим точки доступа - AP (Access Point). Требуется пакет iw. Команда может выглядеть так:
sudo iw list | grep "Supported interface modes:" -A 10Вывод команды показывает наличие режима работы AP;
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* monitor
* mesh point
Band 1:
Capabilities: 0x17e
HT20/HT40
SM Power Save disabled
Настройка адаптера WiFi как точки доступа с выходом во внешнюю сеть
Далее предполагается, что WiFi-адаптер установлен в компьютере с сетевой картой с именем eth0, подключенной к внешней сети (Интернет или сеть предприятия). Для корректного подключения клиентов выполняются следующие настройки:
- Настройки сетевого подключения;
- Настройка службы DHCP для назначения IPv4-адресов WiFi-клиентам при их подключении;
- Настройка правил IPTABLES для разрешения перенаправления сетевых пакетов от WiFi-клиентов (от WiFi адаптера) во внешнюю сеть.
Настройка точки доступа при использовании Network Manager
При использовании Network Manager для включения точки доступа WiFi выполнить следующие операции:
Настройка сетевого подключения
- Создать и настроить сетевое подключение. Это можно сделать через графический интерфейс Network Manager или из командной строки следующими командами:
Создание "пустого" соединения с именем соединения alse и с идентификатором сети (SSID) alse-wifi:
sudo nmcli con add type wifi ifname wlan0 con-name alse autoconnect yes ssid alse-wifiНазначить параметры WiFi:
sudo nmcli con mod alse 802-11-wireless.mode ap 802-11-wireless.band bgНазначить IPv4-адрес:
sudo nmcli con mod alse ipv4.method shared ipv4.addresses 10.42.0.1/24 gw4 10.42.0.1
Для примера использован адрес 10.42.0.1. Такой адрес автоматически назначается Network Manager-ом при создании подключения через графический интерфейс;Назначить параметры IPv6:
sudo nmcli con mod alse ipv6.method shared ipv6.ip6-privacy 0Назначить параметры безопасности:
sudo nmcli con mod alse wifi-sec.key-mgmt wpa-psk wifi-sec.psk "<пароль_для_подключния>"Активировать интерфейс:
nmcli con up alse
- После настройки и активации сетевого подключения убедиться, что Network Manager создал путь для сетевых пакетов:
ip routeПуть для сетевых пакетов WiFi: "10.42.0.0/24 dev wlan0 proto kernel scope link src 10.42.0.1 metric 600"
default via 192.168.56.1 dev eth0 proto dhcp metric 100
default via 10.42.0.1 dev wlan0 proto static metric 600
10.42.0.0/24 dev wlan0 proto kernel scope link src 10.42.0.1 metric 600
192.168.56.0/24 dev eth0 proto kernel scope link src 192.168.56.31 metric 100
Настройка DHCP
Если на сервере уже используется служба DHCP, то следует выполнить настройку этой службы в соответствии с принятыми правилами эксплуатации. Подробнее про работу с DHCP см. DHCP а также Терминальный сервер LTSP (ltsp-server-standalone) на базе Astra Linux. Если сулужбы DHCP нет, то можно использовать пакет dnsmasq. Команда для установки пакета:
sudo apt install dnsmasq- Внести в конфигурационный файл dnsmasq следующее содержимое:
log-facility=/var/log/dnsmasq.log
interface=wlan0
dhcp-range=10.42.0.10,10.42.0.250,12h
dhcp-option=3,10.42.0.1
dhcp-option=6,10.42.0.1
#no-resolv
log-queries
в настройках использована сеть 10.42.0.0/24, соответствующая ранее назначенному IPv4-адресу WiFi-адаптера. - Перезапустить службу dnsmasq:
sudo systemctl restart dnsmasq Убедиться, что служба перезапустилась без ошибок и правильно определила диапазон выдаваемых адресов:
sudo tail /var/log/dnsmasq.log
Feb 10 11:51:04 dnsmasq[5008]: started, version 2.76 cachesize 150
Feb 10 11:51:04 dnsmasq[5008]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify
Feb 10 11:51:04 dnsmasq-dhcp[5008]: DHCP, IP range 10.42.0.10 -- 10.42.0.250, lease time 12h
Feb 10 11:51:04 dnsmasq[5008]: reading /etc/resolv.conf
Feb 10 11:51:04 dnsmasq[5008]: using nameserver 8.8.8.8#53
Feb 10 11:51:04 dnsmasq[5008]: read /etc/hosts - 5 addresses
Включение перенаправления пакетов
Для включения перенаправления (трансляции) пакетов от WiFi-адаптера во внешнюю сеть выполнить команды (команды приведены в качестве примера, первые две команды очищают таблицы маршрутизации, при установленных настройка IPTABLES следует адаптировать команды в соответствии с принтыми правилами эксплуатации):
sudo iptables -F
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
echo '1' | sudo tee /proc/sys/net/ipv4/ip_forward
Настройка точки доступа без использования Network Manager
Для управления WiFi-адаптером в режиме точки доступа вместо Network Manager можно использовать пакет hostapd. Настройка службы DHCP и включение перенправления пакетов при этом выполняется так же, как в случае работы с Network Manager (см. выше).
Установить пакет hostapd можно командой:
- В файл конфигурации Network Manager /etc/NetworkManager/NetworkManager.conf в секцию [keyfile] (если секции нет - добавить) добавить список исключенных из управления устройств, содержащий адаптера. В итоге соответствующая часть файла должна иметь вид:
[keyfile]
unmanaged-devices=interface-name:wlan0 Перезапустить службу Network Manager:
sudo systemctl restart networkmanagerУбедиться, что устройство исключено из управляемых устройств (не отображается в списке):
sudo nmcli dev status
Настройка и отладка службы hostapd
Привести конфигурационный файл службы hostapd /etc/hostapd/hostapd.conf к виду:
interface=wlan0
channel=6
ieee80211n=1
hw_mode=g
ssid=alse-wifi
wpa=2
wpa_passphrase=<пароля_для_подключения>
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
auth_algs=1
Обновеление конфигурации и включение точки доступа будет выполнено после перезапуска службы.
Для отладки основить службу:
sudo systemctl stop hostapd
Для запуска службы в режиме отладки:
sudo hostapd -d /etc/hostapd/hostapd.conf
Выйти из режима отладки можно нажав сочетание клавиш Ctrl+C.