Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Common Edition 2.12

Введение

В статье описаны основные приемы работы с адаптерами WiFi. При написании статьи использовались виртуальные машины КVM (см. Виртуализация QEMU/KVM в Astra Linux), в качестве устройств WiFi использовались USB-адаптеры TP-Link LT-WDN3200 (чип Ralink RT5572) и адаптер неустановленной модели с чипом Ralink RT5370. В статье даются базовые настройки, более подробную информацию следует искать в справочной системе man. Процедуры проверки оборудования позволяют убедиться, что оборудование опознано операционной системой, поддерживает необходимые функции и готово к настройке. Простейшие проверки можно выполнить без установки дополнительных пакетов, для более детальных проверок понадобятся дополнительные пакеты.

Установка пакетов для проверки оборудования

Для выполнения проверок установить пакеты:

sudo apt install rfkill iw usbutils

Проверка оборудования

  1. Убедиться, что устройство действительно подключено (требуется пакет usbutils):

    lsusb

    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
    Вывод команды показывает наличие подключенного USB-устройства "Ralink Technology, Corp. RT5370 Wireless Adapter"

    При работе с виртуальными машинами QEMU/KVM переназначение USB-устройств через команду меню может работать некорректно, для переназначения устройств следует использовать панель виртуального оборудования и добавлять устройства как "USB-устройство узла"  ("USB Host Device");
  2. Убедиться, что устройство опознано как сетевой адаптер (дополнительные пакеты не требуются):

    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.

    Далее в примерах и конфигурационных файлах используется имя сетевого адаптера wlan0. В реальной системе имя сетевого адаптера может отличаться, соответственно во всех командах следует использовать актуальное имя.

  3. Убедиться, что устройство управляется (опознано) службой Network Manager (дополнительные пакеты не требуются):

    sudo nmcli dev status

    DEVICE  TYPE      STATE           CONNECTION         
    eth0    ethernet  подключено      Проводное соединение 1
    wlan0   wifi      отключено       --                    

  4. Убедиться, что использование устройства разрешено (в частности, устройство не отключено аппаратно или настройками BIOS). Требуется пакет rfkill. Команда:

    sudo rfkill list

    0: phy0: Wireless LAN
            Soft blocked: no
            Hard blocked: no
    Вывод команды показывает, что устройство с именем phy0 не заблокировано ("no"). Если устройство заблокировано ('yes"), то:

    1. Если устройство заблокировано программно ("Soft blocked: yes"), то можно попробовать разблокировать его командой:

      sudo rfkill unblock <номер_устройства>
      Если это не помогает, то, возможно, в системе отсутствуют драйверы для устройства.

    2. Если устройство заблокировано аппаратно ("Hard blocked: yes"), то следует искать способ разблокировки в настройках оборудования (например, включить WiFi кнопкой на ноутбуке);
  5. Убедиться, что устройство поддерживает нужные режимы работы (режим точки доступа - AP (Access Point)). Требуется пакет iw. Команда может выглядеть так:

    sudo iw list | grep "Supported interface modes:" -A 10

            Supported interface modes:
                     * IBSS
                     * managed
                     * AP
                     * AP/VLAN
                     * monitor
                     * mesh point
            Band 1:
                    Capabilities: 0x17e
                            HT20/HT40
                            SM Power Save disabled
    Приведенный выше пример вывода команды показывает наличие режима работы AP. Если про проверке устройства возникает ошибка, то для выяснения его возможностей обратитесь к документации на это устройство.

Программное отключение WiFi

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

При наличии установленного пакета rfkill получить список модулей можно командой:

sudo rfkill list
Программно отключить модуль WiFi можно командой:
sudo rfkill block <номер_устройства>
См. также статью Базы Знаний: Автоотключение WiFi при подключении по Ethernet.

Настройка адаптера WiFi как точки доступа с выходом во внешнюю сеть

Далее предполагается, что WiFi-адаптер установлен в компьютере с сетевой картой с именем eth0, подключенной к внешней сети (Интернет или сеть предприятия). Для корректного подключения клиентов выполняются следующие настройки:

  1. Настройки сетевого подключения;
  2. Настройка службы DHCP для назначения IPv4-адресов WiFi-клиентам при их подключении;
  3. Настройка правил IPTABLES для разрешения перенаправления сетевых пакетов от WiFi-клиентов (от WiFi адаптера) во внешнюю сеть.

Настройка точки доступа при использовании Network Manager

При использовании Network Manager для включения точки доступа WiFi выполнить следующие операции:

  1. Создать и настроить сетевое подключение. Это можно сделать через графический интерфейс Network Manager или из командной строки следующими командами:
    1. Создание "пустого" соединения с именем соединения alse и с идентификатором сети (SSID) alse-wifi:

      sudo nmcli con add type wifi ifname wlan0 con-name alse autoconnect yes ssid alse-wifi

    2. Назначить параметры WiFi:

      sudo nmcli con mod alse 802-11-wireless.mode ap

    3. Назначить параметры IPv6:

      sudo nmcli con mod alse ipv6.method shared ipv6.ip6-privacy 0

    4. Назначить параметры безопасности:

      sudo nmcli con mod alse wifi-sec.key-mgmt wpa-psk wifi-sec.psk "<пароль_для_подключения>"

    5. Активировать интерфейс:

      sudo nmcli con up alse

  2. После настройки и активации сетевого подключения убедиться, что служба Network Manager создала путь (route) для пересылки сетевых пакетов от WiFi-адаптера во внешнюю сеть:

    ip route

    default via 192.168.56.1 dev eth0 proto dhcp metric 100
    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

    Путь для сетевых пакетов WiFi-адаптера: "10.42.0.0/24 dev wlan0 proto kernel scope link src 10.42.0.1 metric 600"

Настройка точки доступа без использования Network Manager

Для управления WiFi-адаптером в режиме точки доступа вместо Network Manager можно использовать пакет hostapd. Настройка службы DHCP и включение перенаправления пакетов при этом выполняется так же, как в случае работы с Network Manager (см. выше).

Установить пакет hostapd можно командой:

sudo apt install hostapd
Пакет hostapd можно использовать совместно с Network Manager, если вывести WiFi-адаптер из-под управления Network Manager. Для этого:

  1. В файл конфигурации Network Manager /etc/NetworkManager/NetworkManager.conf в секцию [keyfile] (если секции нет - добавить) добавить список исключенных из управления устройств, содержащий адаптера. В итоге соответствующая часть файла должна иметь вид:

    [keyfile]
    unmanaged-devices=interface-name:wlan0
  2. Перезапустить службу Network Manager:

    sudo systemctl restart NetworkManager

  3. Убедиться, что устройство исключено из управляемых устройств (не отображается в списке):

    sudo nmcli dev status

Настройка адаптера

Если служба Network Manager не используется, то WiFi-адаптеру вручную должен быть назначен сетевой адрес:

 sudo ifconfig wlan0 10.42.0.1/24
Для того, чтобы адрес сохранялся после перезагрузки следует настроить используемую сетевую службу (см. Настройка сетевых подключений в Astra Linux).

Настройка и отладка службы 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.

Убедившись в корректной работе:

Указать в файле настроек системной службы hostapd /etc/default/hostapd расположение конфигурации:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Запустить службу:

sudo systemctl start hostapd