Настройка 802.11 a/b/g (Wi-Fi) с использованием протоколов WPA и WEP
В этой главе:
Функции Wi-Fi включены в состав двух вариантов сетевого стека с суффиксом -hc ( io-pkt-v4-hc и io-pkt-v6-hc). Стек NetBSD имеет свой собственный MAC-уровень 802.11, который не зависит от драйвера. Поскольку во многих других стеках MAC-уровень 802.11 интегрирован в драйверы, каждому из этих драйверов необходимы отдельные интерфейсы и утилиты для настройки. Если все драйверы беспроводных устройств совместимы с уровнем 802.11, входящим в состав стека, для их настройки и управления ими можно использовать один набор утилит.
С помощью подсистемы Wi-Fi можно подключаться к беспроводным локальным сетям стандарта IEEE 802.11 и управлять ими. Стек io-pkt-* позволяет:
С помощью специального режима можно быстро создавать беспроводные сети, в которых узлы, находящиеся в зоне ее действия (например, в помещении) непосредственно взаимодействуют друг с другом без участия точки беспроводного доступа. Несмотря на то, что такую сеть легко создать, она не позволяет объединять большое количество узлов из-за низкой производительности, ограниченной зоны охвата, отсутствия централизованного администрирования и ненадежного кодирования информации.
Более распространенной конфигурацией сети является инфраструктурный режим, в котором все беспроводные узлы (клиенты) подключаются к сети через точку беспроводного доступа (Wireless Access Point, WAP). Точка беспроводного доступа контролирует доступ к сети и выполняет аутентификацию клиентов. Для обслуживания большого количества клиентов в сети могут работать несколько точек беспроводного доступа.
Менеджер io-pkt-* играет роль сетевого стека точек беспроводного доступа и клиентов; он выполняет аутентификацию и кодирование с помощью протоколов WEP, WPA и WPA2, а также в незащищенном режиме. В беспроводных сетях рекомендуется использовать протоколы кодирования WPA/WPA2, поскольку протокол WEP менее надежен и имеет известные уязвимости. Он поддерживается для обратной совместимости с существующими беспроводными сетями.
Информацию о подключении клиента см. в разделе "Управление подключениями к беспроводным сетям с помощью демона wpa_supplicant" данной статьи.
Уровень net80211 обеспечивает поддержку плат беспроводной связи.
Уровень net80211 выполняет следующие функции:
Уровень ieee80211 логически расположен между драйвером устройства и модулем Ethernet, однако при передаче данных драйвер устройства косвенно обращается к нему, а не передает через него управление. Уровень ieee80211 принимает пакеты от драйвера, извлекает из них всю информацию, которая относится к беспроводным устройствам, и, если пакет включает в себя данные, передает кадр Ethernet верхнему уровню ether_input
.
Для описания устройства ieee80211 на уровне ieee80211 используется структура struct ieee80211com
, которая объявлена в заголовочном файле <sys/net80211/ieee80211_var.h>
. Эта структура позволяет драйверу регистрировать устройство на уровне ieee80211 помощью функции ieee80211_ifattach(). Структура включает в себя указатель struct ifnet
, callback-функции и флаги характеристик устройства. При отсоединении устройства уровень ieee80211 может получать уведомления с помощью функции ieee80211_ifdetach().
Как правило, узел представляет собой базовую станцию в беспроводной сети с инфраструктурным режимом, однако он также может входить в специальную сеть. Узел описывается с помощью структуры struct ieee80211_node
, которая объявлена в заголовочном файле <sys/net80211/ieee80211_node.h>
. Эта структура включает в себя одноадресный ключ кодирования информации на узле, текущую мощность передачи, согласованную скорость связи и различные статистические показатели.
Список всех узлов, которые видит конкретное устройство, хранится в поле ic_sta экземпляра структуры struct ieee80211com
; для работы с ним используются вспомогательные функции, которые находятся в файле sys/net80211/ieee80211_node.c
. Эти функции сканируют узлы, выполняют обход списка узлов и управляют структурой сети.
На уровне 802.11 выполняется кодирование и декодирование сетевых кадров с помощью различных методов, таких как протокол WEP и нулевое кодирование информации. Управление ключами кодирования выполняется в основном с помощью интерфейса ioctl() и внутри уровня ieee80211; драйверы используют ключи кодирования только для проверки обязательности инкапсуляции при отправке пакетов и по необходимости вызывают функцию ieee80211_crypto_encap().
Подключение к беспроводной сети в ЗОСРВ «Нейтрино» начинается с запуска менеджера стека с требуемым драйвером устройства. Сведения о штатных драйверах можно получить в разделах devnp-*. В этом примере мы воспользуемся драйвером devnp-ral.so для сетевых адаптеров с чипсетом RAL. При установке по умолчанию все двоичные файлы драйвера помещаются в промежуточный каталог /<cpu>/lib/dll
(/lib/dll
в target-системе).
![]() | Вариант стека io-pkt-v4 не включает в себя уровень 802.11 и не поддерживает драйверы Wi-Fi. При попытке загрузить драйвер Wi-Fi в стек io-pkt-v4, возникает большое количество неразрешенных символов и драйвер не запускается. |
В этом примере запустите стек с помощью одной из следующих команд:
Если сетевой драйвер установлен в каталог, отличный от /lib/dll
, следует указать полный путь и имя файла драйвера в командной строке.
После запуска стека и подходящего драйвера необходимо выполнить обнаружение доступных беспроводных сетей. Можно пропустить этот этап, если известно имя сети (SSID, Service Set Identifier или идентификатор набора служб), к которой необходимо подключиться. Чтобы убедиться в том, что требуемая сеть активна и находится в зоне доступа, выполните следующие действия:
ifconfig ral0 up
wlanctl ral0
Эта команда возвращает список доступных сетей и их конфигураций, где указаны имя сети (SSID), режим ее работы (специальный или инфраструктурный), радиоканал и др.
ifconfig ral0 scan
Адаптер беспроводной сети сканирует точки беспроводного доступа или специальные узлы, находящиеся в радиусе его действия, и возвращает список доступных сетей и их конфигурации. Результаты сканирования сетей также можно получать с помощью утилиты wpa_supplicant, которая будет рассмотрена далее в этой главе.
После запуска подходящего драйвера и обнаружения беспроводной сети необходимо выбрать режим ее работы (специальный или инфраструктурный), метод аутентификации и при необходимости протокол кодирования информации.
![]() | Рекомендуется применять кодирование информации при отсутствии средств физической защиты беспроводной сети. |
По умолчанию большинство сетевых драйверов используют инфраструктурный режим, поскольку подключение к беспроводным сетям обычно осуществляется через точку беспроводного доступа (WAP). Изменить режим сети на специальный можно с помощью команды ifconfig:
ifconfig ral0 mediaopt adhoc
ifconfig ral0 -mediaopt adhoc
Информацию о средах передачи данных, поддерживаемых драйвером, см. на страницах документации, посвященных конкретым драйверам. В специальном режиме узел информирует о своем присутствии другие узлы сети, которые находятся в радиусе его действия. Это означает, что другие устройства 802.11 могут обнаруживать вашу сеть и подключаться к ней.
Настройка кодирования информации в инфраструктурном и специальном режимах выполняется одинаково. Необходимо использовать метод аутентификации и ключ кодирования информации, которые были выбраны для сети. Для подключения к одноранговым узлам специальной сети необходимо, чтобы они использовали одинаковый метод аутентификации и ключ кодирования. Клиент, который подключается к точке беспроводного доступа (WAP), должен использовать метод аутентификации и ключ кодирования, указанные в ее настройках.
Как правило, для подключения к сети Wi-Fi рекомендуется использовать демона wpa_supplicant. Он поддерживает незащищенные сети, протоколы WEP, WPA, WPA2 и позволяет сохранять настройки сети в конфигурационном файле, который сканируется при запуске и избавляет пользователя от необходимости перенастраивать сеть после перезагрузки или смены домена. В следующих подразделах рассматривается подключение к сети в особых случаях, где использовать демона wpa_supplicant нежелательно.
Подключаться к беспроводной сети можно:
В будущем в составе оболочки Photon появится графический пользовательский интерфейс для настройки Wi-Fi, который непосредственно взаимодействует с утилитой wpa_supplicant.
После подключения необходимо настроить интерфейс стандартным образом:
![]() | Если в беспроводной сети не используется кодирование информации, любой пользователь, который находится в зоне ее действия (например, вблизи здания), пользуется беспрепятственным доступом ко всему сетевому трафику. Можно создать сеть без кодирования информации, однако рекомендуется делать это только при использовании других механизмов защиты.
Многие пользовательские устройства (например, беспроводные маршрутизаторы для подключения локальной сети к Интернету) поставляются с отключенными функциями защиты, такими как кодирование информации. Рекомендуется включать кодирование при создании беспроводной сети. |
Чтобы создать сеть без кодирования и аутентификации, введите команду:
ifconfig ral0 ssid "network name" -nwkey
Параметр -nwkey отключает кодирование с помощью протокола WEP и удаляет временный ключ.
![]() | Менеджер io-pkt-* не поддерживает одновременное отключение аутентификации с помощью общего ключа (Shared Key Authentication, SKA) и кодирования WEP. |
После ввода имени сеть 802.11 становится активной (это можно проверить с помощью утилиты ifconfig). Специальная сеть активна только при условии, что в ней находится как минимум еще один узел:
ifconfig ral0 ral0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500%% ssid "network name" %% powersave off %% bssid 00:11:22:33:44:55 chan 11%% address: 11:44:88:44:88:44%% media: IEEE802.11 autoselect (OFDM36 mode 11g) %% status: active%%
После того, как сеть становится активной, можно отправлять и принимать пакеты по беспроводному каналу.
Подключаться к незащищенной сети Wi-Fi также можно с помощью демона wpa_supplicant. Например, если файл /etc/wpa_supplicant.conf
содержит следующий фрагмент:
network = {ssid = "network name"key_mgmt = NONE}
можно выполнить команду:
wpa_supplicant -i ral0 -c/etc/wpa_supplicant.conf
Для управления демоном wpa_supplicant также предусмотрена утилита wpa_cli. Чтобы проверить состояние сети, можно воспользоваться утилитой ifconfig или wpa_cli. Информацию о дальнейшей настройке сети см. в разделе "Клиент в инфраструктурном и специальном режимах" данной статьи.
Протокол WEP применяется как для аутентификации, так и для обеспечения конфиденциальности в беспроводной сети. Аутентификация — обязательная процедура, которая выполняется перед подключением станции к точке доступа. В стандарте IEEE 802.11 определены следующие типы аутентификации по протоколу WEP:
![]() | Если станция WEP активна, но трафик отсутствует (например, не работает утилита dhcp.client), следует проверить ключ, с помощью которого устанавливалось соединение. |
Следует иметь в виду, что многие точки доступа позволяют вводить кодовую фразу для генерации соответствующих ключей WEP. Алгоритм генерации ключа зависит от производителя устройства. В указанных случаях must использоваться сгенерированные шестнадцатиричные ключи (с префиксом 0x
в утилите ifconfig), а не кодовая фраза. Точки доступа, напротив, позволяют вводить ключи в формате ASCII, а шестнадцатеричный ключ формируется путем преобразования текста в соответствующие шестнадцатеричные коды ASCII. Стек поддерживает такое преобразование.
С учетом общих проблем протокола WEP рекомендуется по возможности выполнять аутентификацию и кодирование информации с использованием протоколов WPA / WPA2.
Имя сети может включать в себя до 32 символов, а ключ WEP должен иметь длину 40 или 104 бита (что соответствует 5 или 13 символам либо шестнадцатеричному числу с 10 или 26 разрядами).
Для настройки сети с протоколом WEP можно использовать утилиту ifconfig или wpa_supplicant.
Команда ifconfig имеет следующий формат:
ifconfig if_name ssid the_ssid nwkey the_key
Например, для интерфейса ral0 и 128-битного кодирования WEP можно ввести команду:
ifconfig ral0 ssid "corporate lan" nwkey \ corpseckey456 up
После указания имени сети и метода кодирования информации сеть 802.11 должна стать активной (это можно проверить с помощью утилиты ifconfig). Специальная сеть находится в активном состоянии только при условии, что в ней имеется как минимум еще один узел (SSID):
ifconfig ral0 ral0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ssid "corporate lan" nwkey corpseckey456 powersave off bssid 00:11:22:33:44:55 chan 11 address: 11:44:88:44:88:44 media: IEEE802.11 autoselect (OFDM36 mode 11g) status: active
После того, как сеть становится активной, можно отправлять и принимать пакеты по беспроводному каналу.
Чтобы воспользоваться утилитой wpa_supplicant, следует настроить ее с помощью конфигурационного файла. Пример:
network = {ssid = "corporate lan" # Сеть Wi-Fi, к которой нужно подключитьсяkey_mgmt= NONE # NONE используется для WEP или незащищенной сетиwep_key0 = "corpseckey456" # Обычно можно создавать список от wep_key0 до# wep_key3 и задавать требуемый ключ с помощью индекса}
Затем можно выполнить команду:
wpa_supplicant -i ral0 -c your_config_file
По умолчанию используется конфигурационный файл /etc/wpa_supplicant.conf
. Для управления демоном wpa_supplicant также можно использовать утилиту wpa_cli. Информацию о дальнейшей настройке сети см. в разделе "Клиент в инфраструктурном и специальном режимах" данной статьи.
Механизм обеспечения безопасности, изначально предусмотренный в стандарте IEEE 802.11, не обладал высокой надежностью и обеспечивал достаточный уровень защиты для большинства сетей. Специалисты по безопасности, входившие в состав рабочей группы IEEE 802.11 ( http://www.ieee802.org/11/), провели работу над устранением недостатков базового стандарта, которая завершилась в мае 2004 г. Дополнение IEEE 802.11i к стандарту IEEE 802.11 было утверждено в июне 2004 г. и опубликовано в июле 2004 г.
Организация Wi-Fi Alliance воспользовалась предварительной версией стандарта IEEE 802.11i (3.0) и определила подмножество расширений безопасности под названием Wi-Fi Protected Access (WPA) для внедрения в существующее оборудование беспроводных сетей. В настоящее время эти расширения стали обязательными компонентами тестирования и сертификации совместимости в Wi-Fi Alliance. Информация о протоколе WPA опубликована на веб-сайте Wi-Fi Alliance: http://www.wi-fi.org/.
В стандарте IEEE 802.11 определен алгоритм защиты беспроводных сетей WEP (Wired Equivalent Privacy или конфиденциальность на уровне проводных сетей). Для защиты от подделки пакетов в нем предусмотрен шифр RC4 с 40-разрядными ключами, 24-разрядный вектор инициализации (Initialization vector, IV) и код CRC32. Практика показала, что все перечисленные механизмы неэффективны:
Протокол WPA является промежуточным решением перечисленных проблем безопасности. Вместо WEP в нем используется протокол обеспечения целостности временного ключа (Temporal Key Integrity Protocol, TKIP), который обладает высоким уровнем надежности и совместим с существующими устройствами. Как и в протоколе WEP, в нем применяется механизм кодирования информации RC4, однако каждому пакету присваивается отдельный ключ. Кроме того, в TKIP реализована защита от повторов и аутентификация пакетов с использованием ключей.
Для управления ключами в WPA можно использовать один из двух механизмов:
Оба механизма генерируют первичный ключ сеанса для аутентификатора (Authenticator, AP) и клиента (Supplicant или client station).
В протоколе WPA реализована новая процедура согласования ключа (четырехстороннее и групповое согласование) для генерации ключей кодирования данных и их передачи между аутентификатором и клиентом. Эта процедура также проверяет, что аутентификатору и клиенту известен первичный ключ сеанса. В обоих механизмах управления ключами используется одинаковая процедура согласования; отличаются только методы генерации главного ключа сеанса.
Библиотека wlconfig представляет собой программный интерфейс с клиентом для настройки беспроводного соединения.
Для работы с Wi-Fi используются следующие утилиты:
/dev/urandom
для генерации случайных чисел ctrl_interface
(см. пример конфигурационного файла wpa_supplicant.conf
). ![]() | Использовать каталог /dev/shmem для этой цели невозможно, поскольку в нем нельзя создавать подкаталоги. |
Также существует ряд редко используемых вспомогательных утилит:
Сетевая подсистема ЗОСРВ «Нейтрино» обеспечивает возможность подключения к беспроводной сети с использованием надежных протоколов WPA (Wi-Fi Protected Access, защищенный доступ к Wi-Fi) и WPA2 (802.11i).
Приложение wpa_supplicant позволяет не только управлять подключением к одной точке доступа, но и создавать конфигурации из нескольких беспроводных сетей с различными SSID и возможностью переключения между ними с помощью протоколов WPA и WEP. Приложение wpa_supplicant поддерживает методы аутентификации IEEE802.1X EAP (WPA), WPA-PSK и WPA-NONE (для специальных сетей), протоколы управления ключами и алгоритмы кодирования информации для протоколов TKIP и AES (CCMP). В домашней или небольшой офисной сети точки беспроводного доступа управляют ключами с помощью протокола WPA-PSK, а в крупной офисной сети взаимодействуют с центральными серверами аутентификации, такими как RADIUS.
Чтобы подключить клиента к точке беспроводного доступа с помощью WPA, необходимо сначала определить имя сети (как описано выше), а затем узнать используемые методы аутентификации и кодирования информации у сетевого администратора. Настройки приложения wpa_supplicant хранятся в конфигурационном файле (по умолчанию /etc/wpa_supplicant.conf
); само приложение выполняется в фоновом режиме как демон. Утилита wpa_cli позволяет изменять настройки wpa_supplicant в процессе работы. Настройки, задаваемые с помощью утилиты wpa_cli, сохраняются в конфигурационном файле /etc/wpa_supplicant.conf
.
Файл /etc/wpa_supplicant.conf
содержит множество настроек, однако приложение wpa_supplicant также использует различные настройки по умолчанию, которые облегчают конфигурирование беспроводной сети. Дополнительную информацию см. в документе https://man.netbsd.org/NetBSD-4.0/wpa_supplicant.conf.5.
Конфигурационный файл /etc/wpa_supplicant.conf
с именем сети и общим ключом для подключения к точке беспроводного доступа по протоколу WPA выглядит следующим образом:
network = {ssid = "my_network_name" # Имя сети, к которой выполняется подключениеpsk = "1234567890" # общий ключ, используемый точкой доступа}
![]() | Настоятельно рекомендуется предоставлять права на чтение и запись в этот файл только пользователю root , поскольку ключ хранится в нем в виде открытого текста. |
Запустите приложение wpa_supplicant командой:
wpa_supplicant -B -i ral0 -c /etc/wpa_supplicant.conf
Параметр -i задает сетевой интерфейс, а параметр -B указывает, что приложение будет выполняться в фоновом режиме.
По умолчанию приложение wpa_supplicant согласовывает применение протокола WPA для аутентификации, WPA-PSK для управления ключами и TKIP или AES для кодирования информации, а также использует инфраструктурный режим.
После того, как интерфейс становится активным (это можно проверить командой ifconfig ral0, где ral0 – имя интерфейса), можно применять соответствующие настройки протокола TCP/IP. Дополнительную информацию см. в разделе "Настройка TCP/IP в беспроводной сети" данной статьи.
При создании специальной сети с точкой беспроводного доступа файл /etc/wpa_supplicant.conf
может выглядеть следующим образом:
network = {mode = 1 # установка специального режима# значение 0 соответствует инфраструктурному режимуssid = "my_network_name" # имя специальной сетиkey_mgmt = NONE # задает WPA-NONEgroup = CCMP # используется кодирование информации AESpsk = "1234567890" # общий ключ, используемый точкой доступа}
![]() | Следует предоставлять права на чтение и запись в этот файл только пользователю root , поскольку ключ хранится в нем в виде открытого текста. |
Запустите wpa_supplicant командой:
wpa_supplicant -B -i ral0 -c /etc/wpa_supplicant.conf
где параметр -i задает сетевой интерфейс, а параметр -B указывает, что приложение будет выполняться в фоновом режиме.
В точке беспроводного доступа (WPA) могут применяться следующие методы аутентификации:
В этом разделе рассматривается корпоративная аутентификация.
В сертифицирующем органе Wi-Fi применяются следующие методы корпоративной аутентификации:
Менеджер io-pkt-* поддерживает все перечисленные методы, кроме EAP-SIM. Сертификаты находятся в файле /etc/cert/user.pem
и CA сертификаты в файле /etc/cert/root.pem
. В следующем примере показано определение сети для демона wpa_supplicant с использованием всех перечисленных корпоративных методов аутентификации:
ctrl_interface = /var/run/wpa_supplicantctrl_interface_group = 0update_config = 1# 3.1.2 linksys -- WEPnetwork = {ssid = "linksys"key_mgmt = NONEwep_key0 = "LINKSYSWEPKEY"}# 3.1.3 linksys -- WPAnetwork = {ssid = "linksys"key_mgmt = WPA-PSKpsk = "LINKSYSWPAKEY"}# 3.1.4 linksys -- WPA2network = {ssid = "linksys"proto = RSNkey_mgmt = WPA-PSKpsk = "LINKSYS_RSN_KEY"}# 3.1.5.1 linksys -- EAP-TLSnetwork = {ssid = "linksys"key_mgmt = WPA-EAPeap = TLSidentity = "client1"ca_cert = "/etc/cert/root.pem"client_cert = "/etc/cert/client1.pem"private_key = "/etc/cert/client1.pem"private_key_passwd = "wzhang"}# 3.1.5.2 linksys -- PEAPv1/EAP-GTCnetwork = {ssid = "linksys"key_mgmt = WPA-EAPeap = PEAPidentity = "client1"password = "wzhang"ca_cert = "/etc/cert/root.pem"phase1 = "peaplabel=0"phase2 = "autheap=GTC"}# 3.1.5.3 linksys -- EAP-TTLS/MSCHAPv2network = {ssid = "linksys"key_mgmt = WPA-EAPeap = TTLSidentity = "client1"password = "wzhang"ca_cert = "/etc/cert/root.pem"phase2 = "autheap=MSCHAPV2"}# 3.1.5.4 linksys -- PEAPv1/EAP-MSCHAPV2network = {ssid = "linksys"key_mgmt = WPA-EAPeap = PEAPidentity = "client1"password = "wzhang"ca_cert = "/etc/cert/root.pem"phase1 = "peaplabel=0"phase2 = "auth=MSCHAPV2"}
Запустите wpa_supplicant командой:
wpa_supplicant -i if_name \ -c full_path_to_your_config_file
утилита считает конфигурационный файл и выполнит аутентификацию для подключения клиента к сети Wi-Fi.
wpa_supplicant является стандартным инструментом для хранения параметров беспроводных сетей и управления автоматическим подключением к ним без участия пользователя.
Для поддержки беспроводных сетей демон wpa_supplicant:
/etc/wpa_supplicant.conf
)
В каталоге /etc
размещен файл wpa_supplicant.conf
с подробным описанием основных параметров демона, многочисленных параметров сетей, а также примерами их настройки.
Для настройки демона wpa_supplicant имеется командно-строковый инструмент wpa_cli, с помощью которого можно запрашивать у стека информацию о беспроводных сетях и обновлять конфигурационный файл «на лету».
Чтобы дать утилите wpa_cli возможность обновлять файл wpa_supplicant.conf
, отредактируйте его и раскомментируйте параметр update_config=1 (следует учитывать, что при перезаписи конфигурационного файла утилита wpa_cli удаляет все комментарии). Скопируйте файл в каталог /etc
, сделайте пользователя root
владельцем этого файла и запретите всем остальным пользователям чтение и запись, поскольку ключи и пароли хранятся в нем в виде открытого текста.
Ниже приведен пример сеанса подключения системы с USB-ключом Wi-Fi и чипсетом RAL к точке беспроводного доступа (WAP) по протоколу WEP:
# cp $HOME/stage/etc/wpa_supplicant.conf /etc # chown root:root /etc/wpa_supplicant.conf # chmod 600 /etc/wpa_supplicant.conf # io-pkt-v4-hc -dural $ ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 ural0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 ssid "" powersave off address: 00:ab:cd:ef:d7:ac media: IEEE802.11 autoselect status: no network # wpa_supplicant -B -iural0 # wpa_cli wpa_cli v0.4.9 Copyright (c) 2004-2005, Jouni Malinen <jkmaline@cc.hut.fi> and contributors This program is free software. You can distribute it and/or modify it under the terms of the GNU General Public License version 2. Alternatively, this software may be distributed under the terms of the BSD license. See README and COPYING for more details. Selected interface 'ural0' Interactive mode > scan OK > scan_results bssid / frequency / signal level / flags / ssid 00:02:34:45:65:76 2437 10 [WPA-EAP-CCMP] A_NET 00:23:44:44:55:66 2412 10 [WPA-PSK-CCMP] AN_OTHERNET 00:12:4c:56:a7:8c 2412 10 [WEP] MY_NET > list_networks network id / ssid / bssid / flags 0 simple any 1 second ssid any 2 example any > remove_network 0 OK > remove_network 1 OK > remove_network 2 OK > add_network 0 > set_network 0 ssid "MY_NET" OK > set_network 0 key_mgmt NONE OK > set_network 0 wep_key0 "My_Net_Key234" OK > enable_network 0 OK > save OK > list_network network id / ssid / bssid / flags 0 QWA_NET any > status <2>Trying to associate with 00:12:4c:56:a7:8c (SSID='MY_NET' freq=2412 MHz) wpa_state=ASSOCIATING > status <2>Trying to associate with 00:12:4c:56:a7:8c (SSID='MY_NET' freq=2462 MHz) <2>Associated with 00:12:4c:56:a7:8c <2>CTRL-EVENT-CONNECTED - Connection to 00:12:4c:56:a7:8c completed (auth) bssid=00:12:4c:56:a7:8c ssid=MY_NET pairwise_cipher=WEP-104 group_cipher=WEP-104 key_mgmt=NONE wpa_state=COMPLETED > quit # # # dhcp.client -i ural0 $ ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 ural0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ssid MY_NET nwkey My_Net_Key234 powersave off bssid 00:12:4c:56:a7:8c chan 11 address: 00:ab:cd:ef:d7:ac media: IEEE802.11 autoselect (OFDM54 mode 11g) status: active inet 10.42.161.233 netmask 0xfffffc00 broadcast 10.42.160.252
Точка беспроводного доступа (Wireless Access Point, WAP) — это система, которая предоставляет клиентам доступ к Интернету или другой сети по беспроводному каналу связи. WAP работает в режиме BSS, имеет как минимум один беспроводной сетевой интерфейс для подключения клиентов и один проводной сетевой интерфейс для подключения к остальной части сети. WAP играет роль моста или шлюза, который соединяет беспроводных клиентов с проводной внутренней сетью или Интернетом
Чтобы настроить точку беспроводного доступа, необходимо сначала запустить драйвер сетевого адаптера.
![]() | Не все сетевые адаптеры поддерживают работу в режиме точки доступа. Дополнительную информацию см. в документации соответствующего устройства. |
В примерах работы с точками беспроводного доступа будут использоваться драйвер devnp-ral.so чипсетов RAL для беспроводных интерфейсов и драйвер devnp-i82544.so проводного интерфейса. После установки по умолчанию все двоичные файлы драйверов находятся в каталоге $KPDA_TARGET/<cpu>/lib/dll
или одноименном подкаталоге промежуточного каталога при самостоятельной сборке исходного кода.
Выполните одну из следующих команд:
Если драйвер установлен в каталог, отличный от /lib/dll
, необходимо указать полный путь и имя файла драйвера в командной строке.
На следующем этапе настройки точки беспроводного доступа (WAP) необходимо определить ее роль по отношению к остальной сети — шлюз или мост.
Точка беспроводного доступа (WAP), которая работает в режиме шлюза, передает трафик между двумя подсетями (беспроводной и проводной). Это означает, что клиенты беспроводной сети передают пакеты TCP/IP клиента проводной сети не напрямую, а через шлюз (точку беспроводного доступа). Каждому сетевому интерфейсу точки беспроводного доступа также назначается IP-адрес.
Такая конфигурация широко используется в домашних и небольших офисных сетях (SOHO, Small Office, Home Office), где WAP подключается непосредственно к поставщику услуг Интернета. С помощью этой конфигурации можно:
Настройка TCP/IP для проводных и беспроводных сетевых интерфейсов шлюза и брандмауэра выполняется одинаково. Подробную информацию о настройке NAT см. по ссылке http://www.netbsd.org/documentation/.
Когда сеть становится активной, необходимо назначить IP-адрес каждому интерфейсу точки беспроводного доступа, включить передачу пакетов между интерфейсами и применить требуемую конфигурацию брандмауэра и NAT. Дополнительную информацию см. в разделе "Сервер DHCP в точке беспроводного доступа, работающей в режиме шлюза" данной статьи.
В режиме моста точка беспроводного доступа (WAP) соединяет беспроводную и проводную сети так, как будто они физически подключены друг к другу (широковещательный домен, канальный уровень). Все проводные и беспроводные узлы находятся в одной подсети TCP/IP и могут обмениваться пакетами напрямую, не используя точку беспроводного доступа в качестве шлюза, при этом нет необходимости присваивать IP-адреса сетевым интерфейсам точки беспроводного доступа.
Точка беспроводного доступа, которая работает в режиме моста, предоставляет доступ к корпоративной или домашней сети клиентам и позволяет конфигурировать их так же, как беспроводные узлы, не используя дополнительные службы (например, DHCP) и настраивая таблицы маршрутизации. Беспроводные клиенты пользуются доступом к тем же ресурсам сети, что и проводные клиенты.
![]() | Несмотря на то, что для установления соединений TCP/IP между беспроводными и проводными клиентами не обязательно присваивать IP-адреса сетевым интерфейсам точки беспроводного доступа, целесообразно назначить IP-адрес хотя бы одному интерфейсу, чтобы управлять устройством или собирать статистику. |
Для настройки режима моста на точке беспроводного доступа (WAP) необходимо сначала создать интерфейс моста:
ifconfig bridge0 create
Здесь bridge – тип интерфейса, а 0 – номер его экземпляра. bridge и 0 нельзя разделять пробелом; bridge0 является именем нового интерфейса.
Команда brconfig создает логический канал между интерфейсами моста (в данном случае bridge0). Следующая команда включает в мост беспроводной интерфейс ral0 и проводной интерфейс wm0, а параметр up делает мост активным:
brconfig bridge0 add ral0 add wm0 up
![]() | Не забывайте указывать параметр up, поскольку мост не активируется автоматически. |
Следующая команда отображает информацию о состоянии созданного интерфейса моста:
brconfig bridge0 bridge0: flags=41<UP,RUNNING> Configuration: priority 32768 hellotime 2 fwddelay 15 maxage 20 Interfaces: en0 flags=3<LEARNING, DISCOVER> port 3 priority 128 ral0 flags=3<LEARNING,DISCOVER> port 2 priority 128 Address cache (max cache: 100, timeout: 1200):
![]() | При создании новой беспроводной сети рекомендуется использовать протокол WPA или WPA2 (RSN) вместо WEP, поскольку WPA и WPA2 обеспечивают более надежную защиту. Протокол WEP следует использовать только в случае, если в сети имеются устройства, которые не поддерживают WPA или WPA2. |
Настройка аутентификации и кодирования данных с помощью WEP аналогична настройке беспроводного клиента, поскольку точка беспроводного доступа и клиент используют одни и те же параметры.
Чтобы настроить сетевой адаптер в качестве точки беспроводного доступа, необходимо сначала перевести его в режим точки доступа:
ifconfig ral0 mediaopt hostap
Скорее всего, также потребуется изменить тип среды передачи (скорость канала) беспроводного адаптера, поскольку автоматически заданное значение может оказаться неподходящим. Команда ifconfig -m отображает все доступные типы среды передачи и их параметры. Например, если поддерживается среда передачи:
media OFDM54 mode 11g mediaopt hostap
можно ввести команду:
ifconfig ral0 media OFDM54 mediaopt hostap
чтобы установить на беспроводном адаптере скорость передачи 54 Мбит/с.
Далее следует задать имя сети или SSID длиной до 32 символов:
ifconfig ral0 ssid "my lan"
Последним параметром, который необходимо задать, является ключ WEP длиной 40 или 104 бита. Можно указать его значение в виде 5 или 13 символов либо 10- или 26- разрядного шестнадцатеричного числа. Пример:
ifconfig ral0 nwkey corpseckey456
Также необходимо активировать сетевой интерфейс с помощью параметра up:
ifconfig ral0 up
Можно объединить вышеуказанные команды:
ifconfig ral0 ssid "my lan" nwkey corpseckey456 \ mediaopt hostap up
Сетевой интерфейс должен быть активным:
ifconfig ral0 ral0: flags=8943<UP,BROADCAST, RUNNING, PROMISC, SIMPLEX, MULTICAST> mtu 1500 ssid "my lan" apbridge nwkey corpseckey456 powersave off bssid 11:22:33:44:55:66 chan 2 address: 11:22:33:44:55:66 media: IEEE802.11 autoselect hostap (autoselect mode 11b hostap) status: active
В ЗОСРВ «Нейтрино» протоколы WPA/WPA2 поддерживаются демоном hostapd, который является «напарником» клиентского демона wpa_supplicant и управляет адаптером беспроводной сети в режиме точки доступа. Настройки hostapd хранятся в конфигурационном файле /etc/hostapd.conf
.
Перед запуском процесса hostapd необходимо перевести сетевой адаптер в режим точки доступа:
ifconfig ral0 mediaopt hostap
Скорее всего, также потребуется изменить тип среды передачи (скорость канала) беспроводного адаптера, поскольку автоматически заданное значение может оказаться неподходящим. Команда ifconfig -m отображает все доступные типы среды передачи и их параметры. Например, если поддерживается среда передачи:
media OFDM54 mode 11g mediaopt hostap
можно ввести команду:
ifconfig ral0 media OFDM54 mediaopt hostap
чтобы установить на беспроводном адаптере скорость передачи 54 Мбит/с.
Демон hostapd выполняет заключительную часть конфигурирования. Поскольку он автоматически активирует сетевой интерфейс, выполнять это действие с помощью утилиты ifconfig не требуется. Ниже приведен пример конфигурационного файла /etc/hostapd.conf
:
interface=ral0ssid=my home lanmacaddr_acl=0auth_algs=1wpa=1wpa_passphrase=myhomelanpass23456wpa_key_mgmt=WPA-PSKwpa_pairwise=CCMP
В этой конфигурации для аутентификации используется протокол WPA-PSK, а для кодирования данных — протокол AES.
![]() | Поля auth_algs и wpa содержат биты, а не числовые значения. |
Теперь можно запустить демон hostapd, указав конфигурационный файл:
hostapd -B /etc/hostapd.conf
Команда ifconfig должна показать, что сетевой интерфейс активен:
ifconfig ral0 ral0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2290 ssid "my home lan" apbridge nwkey 2:"",0x49e2a9908872e76b3e5e0c32d09b0b52,0x00000000dc710408c04b32b07c9735b0,"" powersave off bssid 00:15:e9:31:f2:5e chan 4 address: 00:15:e9:31:f2:5e media: IEEE802.11 OFDM54 hostap (OFDM54 mode 11g hostap) status: active
Теперь точка беспроводного доступа (WAP) готова к подключению клиентов.
IP-адрес назначается беспроводному интерфейсу независимо от конфигурации сети 802.11 при помощи тех же утилит или демонов, что в проводной сети. Важно выбрать подходящий метод конфигурирования TCP/IP — динамический или статический. Статическое конфигурирование TCP/IP можно применять независимо от состояния беспроводной сети — она может быть как активной, так и временно недоступной. При динамическом конфигурировании TCP/IP с помощью протокола DHCP беспроводная сеть должна быть активной, поскольку конфигурирование выполняется находящимся в ней сервером DHCP. Как правило, динамическое конфигурирование используется в сетях с централизованным управлением, где точка беспроводного доступа (WAP) работает в инфраструктурном режиме.
Самый распространенный вариант использования динамического конфигурирования — подключение клиента к сети с помощью точки беспроводного доступа. Как правило, в такой сети имеется сервер DHCP. Когда сеть 802.11 становится активной, для настройки TCP/IP достаточно запустить утилиту dhcp.client. Пример:
dhcp.client -iral0
В качестве альтернативы можно воспользоваться библиотекой lsm-autoip.so. Auto IP — протокол, который обеспечивает согласование узлов по мере их появления в сети; для его запуска не нужно ждать активации канала связи с сетью. Auto IP назначает IP-адрес сетевому интерфейсу и разрешает конфликты, которые возникают при изменении IP-адресов узлов сети. IP-адрес становится доступным для использования после активации беспроводной сети. Дополнительную информацию см. в документации протокола Auto IP.
При статическом конфигурировании параметры изменяются только пользователем. Ниже приведен пример статической конфигурации, в которой беспроводному интерфейсу назначен IP-адрес 10.0.0.5
, а сетевому шлюзу — IP-адрес 10.0.0.1
:
# ifconfig ral0 10.0.0.5 # route add default 10.0.0.1 # # cat /etc/resolv.conf domain company.com nameserver 10.0.0.2 nameserver 10.0.0.3
Статическое конфигурирование также используется в специальных сетях. Сеть, которая работает в специальном режиме, обычно состоит из отдельных узлов и не включает в себя централизованные службы. Из-за отсутствия центрального сервера такая сеть, скорее всего, не поддерживает протокол DHCP.
Если в специальной сети имеются узлы Windows или Apple, они получают IP-адреса с помощью протокола Auto IP. Этот протокол предотвращает конфликты IP-адресов (когда два или более узлов используют один и тот же IP-адрес) и избавляет пользователя от необходимости задавать новый IP-адрес вручную. IP-адрес назначается автоматически, что позволяет обмениваться пакетами TCP/IP с другими узлами без дополнительной подготовки.
При использовании статической конфигурации в специальной сети пользователю необходимо самостоятельно назначать всем узлам уникальные IP-адреса, которые относятся к одной подсети.
Если точка беспроводного доступа (WAP) настроена как шлюз, беспроводная и проводная сети находятся в разных подсетях. В этом случае может использоваться как инфраструктурный, так и специальный режим; приведенные ниже указания применимы к обоим из них. Использование инфраструктурного режима более вероятно, поскольку он обеспечивает централизованное администрирование сети. Службы DHCP могут выполняться непосредственно на шлюзе с помощью демона dhcpd, либо на другом сервере DHCP, который обслуживает подсети и находится в сети поставщика услуг Интернета или корпоративной сети. Для связи с таким сервером можно использовать программу dhcprelay.
Демон dhcpd можно использовать на шлюзе домашней или небольшой офисной сети (SOHO), который напрямую подключен к Интернету или IP-сети, где у пользователя отсутствуют возможности управления и административные права. Вероятно, что в этом случае также используется NAT, поскольку поставщик услуг Интернета предоставляет пользователю единственный IP-адрес (Internet Service Provider, ISP). Пользователь также может иметь административные права в подсети, которой он управляет.
Утилита dhcprelay представляет собой ретранслятор, который используется для удаленного управления подсетью. Он перенаправляет DHCP-запросы клиентов подсети серверу, который находится в другом месте сети, и возвращает ответные пакеты клиентам.
В приведенных выше примерах конфигураций предполагается, что помимо адаптера беспроводной сети в системе существует другой интерфейс с настроенным протоколом TCP/IP, который обеспечивает доступ ко всем серверам, указанным в этих конфигурациях и находящимся вне беспроводной сети. Шлюз обеспечивает обмен трафиком IP между этим интерфейсом и беспроводным интерфейсом.
В этом разделе описан порядок запуска сервера DHCP на шлюзе.
Конфигурационный файл демона dhcpd называется dhcpd.conf
. В нем указан диапазон адресов подсети, которые динамически назначаются клиентам, а также две статические записи серверов с фиксированными IP-адресами — сервера печати и тостера с сетевыми функциями. Конфигурация сервера DHCP применяется не только к беспроводным, но и к проводным сетям.
ddns-update-style none;#option subnet-mask 255.255.255.224;default-lease-time 86400;#max-lease-time 7200;subnet 192.168.20.0 netmask 255.255.255.0 {range 192.168.20.41 192.168.20.254;option broadcast-address 192.168.20.255;option routers 192.168.20.1;option domain-name-servers 192.168.20.1;option domain-name "soho.com";host printerserver {hardware ethernet 00:50:BA:85:EA:30;fixed-address 192.168.20.2;}host networkenabledtoaster {hardware ethernet 00:A0:D2:11:AE:81;fixed-address 192.168.20.40;}}
Сервер имен, IP-адрес маршрутизатора и IP-адрес узла передаются клиентам беспроводной сети. IP-адрес маршрутизатора — это IP-адрес сетевого интерфейса шлюза, подключенного к беспроводной сети. В качестве сервера имен указан адаптер беспроводной сети шлюза, поскольку шлюз выполняет функции разрешения имен. Сервер имен шлюза перенаправляет запросы с неизвестными именами узлов серверу имен поставщика услуг Интернета. Внутренней беспроводной сети присвоен адрес 192.168.20.0
. Диапазон адресов с 192.168.20.1
по 192.168.20.40
зарезервирован для статического присвоения; динамический диапазон начинается с адреса 192.168.20.41
.
По окончании редактирования конфигурационного файла необходимо запустить демон dhcpd, предварительно убедившись в том, что существуют каталоги /var/run
и /var/state/dhcp
, а также файл /var/state/dhcp/dhcpd.leases
. Перед первым запуском демона dhcpd можно создать пустой файл.
Если конфигурационный файл не находится в каталоге по умолчанию, необходимо указать путь к нему при запуске dhcpd. Необходимо также указать имя внутреннего беспроводного интерфейса, поскольку его обслуживание должно выполняться только демоном dhcpd. Для интерфейса ral0, который мы использовали при рассмотрении беспроводных сетей, команда запуска демона выглядит следующим образом:
dhcpd -cf /etc/dhcpd.conf ral0
Сервер DHCP начнет работу. При возникновении неполадок можно запускать демона dhcpd в отладочном режиме с помощью ключа -d. Демон dhcpd также регистрирует сообщения в системном журнале с помощью сервиса slogger.
В отличие от сервера DHCP, ретранслятор dhcprelay не использует конфигурационный файл, а запускается непосредственно из командной строки. Пользователю необходимо знать IP-адрес удаленного сервера DHCP в сети, к которой подключен шлюз. После запуска dhcprelay, ретранслирует запросы и ответы между клиентом беспроводной сети и сервером DHCP, который находится у поставщика услуг Интернета или в корпоративной сети:
dhcprelay -i ral0 10.42.42.42
В этом примере выполняется ретрансляция запросов между беспроводным интерфейсом ral0 и сервером DHCP с IP-адресом 10.42.42.42
.
Чтобы настроить точку доступа в качестве маршрутизатора:
Допустим, что беспроводная сеть называется MY_WIRELESS_NET и имеет пароль WEP MYWIRELESSWEP. Выполните следующие действия:
sysctl -w net.inet.ip.forwarding=1
ifconfig in_nic mediaopt hostap
ifconfig in_nic ssid MY_WIRELESS_NET \ nwkey MYWIRELESSWEP
ifconfig in_nic 10.42.0.1 up
dhcpd.conf
следует указать раздел с определением внутренней сети:
subnet 10.42.42.0 netmask 255.255.255.0 {range 10.42.0.2 10.42.0.120;...;}
Затем запустите dhcpd:
dhcpd -cf full_path_to_your_dhcp_config_file -lf \ full_path_to_your_release_file ni_nic
Если файл dhcpd.conf
и релиз-файл находятся в каталоге /etc
(по умолчанию), можно не указывать их местоположение. Дополнительную информацию см. в описании демона dhcpd.
Чтобы воспользоваться протоколом WPA или WPA2, необходимо настроить и запустить hostapd — серверное приложение, которое работает в паре с клиентским приложением wpa_supplicant, для аутентификации и обмена ключами в сети.
Также можно настроить точку доступа в качестве NAT-маршрутизатора сети следующим образом:
mount -Ttcpip lsm-pfv4.so
Эта команда загружает модуль фильтров пакетов (PF), после чего можно выполнить конфигурирование с помощью утилиты pfctl.
Подробную информацию о настройке NAT см. на веб-сайте http://www.netbsd.org/documentation/.
Предыдущий раздел: перейти