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

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

Версия 1 Следующий »

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


Введение

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

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

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

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

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

sudo apt install rfkill iw

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

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

    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;

  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-адаптер установлен в компьютере с сетевой картой с именем 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 802-11-wireless.band bg


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


    4. Назначить параметры IPv6:
      sudo nmcli con mod alse ipv6.method shared ipv6.ip6-privacy 0


    5. Назначить параметры безопасности:
      sudo nmcli con mod alse wifi-sec.key-mgmt wpa-psk wifi-sec.psk "<пароль_для_подключния>"


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

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


    ip 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. Команда для установки пакета:

    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:
    sudo systemctl restart dnsmasq

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

    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 -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 можно командой:

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

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




  • Нет меток