Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление


Информация
titleДанная статья применима к:
  • 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. При подключении указанные адаптеры регистрируются операционной системой как сетевое устройство wlan0, и далее в примерах используется это имя адаптера. В статье даются базовые настройки, более подробную информацию следует искать в справочной системе man.

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

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

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

Для выполнения простейших проверок дополнительные пакеты не требуются. Для детальной проверки установить пакеты rfkill и iw:

Command
sudo apt install rfkill iw

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

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

    Command
    Titlelsusb

    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. Убедиться, что устройство опознано как сетевой адаптер (дополнительные пакеты не требуются):

    Command
    Titleip 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;

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

    Command
    Titlesudo nmcli dev status

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


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

    Command
    Titlesudo rfkill list

    0: phy0: Wireless LAN
            Soft blocked: no
            Hard blocked: no

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

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

      Command
      sudo rfkill unblock <имя_устройства>

      Если это не помогает, то, возможно, в системе отсутствуют драйверы для устройства;

    2. Если устройство заблокировано аппаратно ("Hard blocked: yes"), то следует искать способ разблокировки в настройках оборудования (например, включить WiFi кнопкой на ноутбуке);

  5. Убедиться, что устройство поддерживает нужные режимы работы (в частности, режим точки доступа - AP (Access Point)). Требуется пакет iw. Команда может выглядеть так:

    Command
    Titlesudo 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-адаптер установлен в компьютере с сетевой картой с именем eth0, подключенной к внешней сети (Интернет или сеть предприятия). Для корректного подключения клиентов выполняются следующие настройки:

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

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

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

Настройка сетевого подключения

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

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


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

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


    3. Назначить IPv4-адрес:

      Command
      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 при создании подключения через графический интерфейс;

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

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


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

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


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

      Command
      sudo nmcli con up alse



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

    Command
    Titleip route

    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

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

Настройка DHCP

  1. Если на сервере уже используется служба DHCP, то следует выполнить настройку этой службы в соответствии с принятыми правилами эксплуатации. Подробнее про работу с DHCP см. статью DHCP а также статью Терминальный сервер LTSP (ltsp-server-standalone) на базе Astra Linux. Если службы DHCP нет, то можно использовать пакет dnsmasq - упрощенную службу DHCP. Команда для установки пакета:

    Command
    sudo apt install dnsmasq


  2. Внести в конфигурационный файл 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-адаптера.

  3. Перезапустить службу dnsmasq:

    Command
    sudo systemctl restart dnsmasq


  4. Убедиться, что служба перезапустилась без ошибок и правильно определила диапазон выдаваемых адресов:

    Command
    Titlesudo 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 следует адаптировать команды в соответствии с принятыми правилами эксплуатации. Команды::

Command

sudo iptables -t nat -F
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

Для сохранения настроек IPTABLES после перезагрузки компьютера см. статью Сохранение и восстановление правил iptables.

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

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

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

Command
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:

    Command
    sudo systemctl restart NetworkManager


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

    Command
    sudo nmcli dev status


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

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

Command
 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


Обновление конфигурации и включение точки доступа будет выполнено после перезапуска службы.

Для отладки остановить службу:

Command
sudo systemctl stop hostapd


Для запуска службы в режиме отладки выполнить команду:

Command
sudo hostapd -d /etc/hostapd/hostapd.conf

Выйти из режима отладки можно нажав сочетание клавиш Ctrl+C.

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

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

Блок кода
DAEMON_CONF="/etc/hostapd/hostapd.conf"

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

Command
sudo systemctl start hostapd