Bog BOS: hardware: Беспроводные локальные сети IEEE 802.11 (Wi-Fi, Radio Ethernet, WLAN)
Стандарт беспроводных локальных сетей IEEE 802.11 (Wi-Fi) основывается на технологии
расширенного спектра (узкий радиосигнал в широкой полосе, иногда быстро перемещающийся)
с использованием нелицензируемый (не в этой стране) или лицензируемый на упрощенных
условиях частотный диапазон радиоволн или инфракрасные волны (в пределах комнаты).
В любом случае мощность радиопередатчика не превышает 1 Вт, а область действия - 100 метров в помещении
с картонными стенками и 500 метров на открытой местности. Впрочем, использование направленных
антенн (усилителей) позволяет увеличить радиус покрытия до десятков километров,
а применение ретрансляторов расширяет область действия еще больше.
Узкий радиосигнал обеспечивает энергетическую эффективность, а широкая полоса - защиту от помех.
Регуляторы: ITU-R, CEPT, Государственная комиссия по радиочастотам.
Институты стандартизации: IEEE (принимает стандарты 802), Wi-Fi альянс (1999,
Wireless Ethernet Compatibility Alliance, WECA, сертификация продуктов 802.11).
Требуется предварительное ознакомление с моделью локальной сети IEEE 802
- Топология и архитектура локальной сети 802.11
- Уровень MAC
- Физический уровень
- Радиосигнал
- Антенны
- Безопасность
- Инфраструктура Wi-Fi в Linux
- LG LW2100P 802.11b PCI
- Драйвер prism2
- Драйвер orinoco
- BroadComm
- USB Realtek RTL8187
- Драйвер madwifi (Atheros)
- wlanctl-ng для стека wlan-ng
- wireless-tools и Wireless Extensions
- iw
- wpa_supplicant - клиент IEEE 802.1X, WPA, WPA2 и EAP
- hostapd - аутентификатор IEEE 802.1X, WPA, WPA2 и EAP
- Сканеры, анализаторы трафика и средства взлома
- Kismet
- aircrack-ng
- Маршрутизатор Zyxel P-330W EE
- коммуникатор Nokia E90
- игровая приставка Nintendo Wii
Элементарной единицей сети является станция - устройство,
физический и MAC-уровень, которого соответствует стандарту IEEE 802.11.
Станции объединяются в базовый набор услуг (basic service set - BSS).
Все станции BSS реализуют одинаковый протокол MAC и конкурируют за доступ к разделяемой среде передачи.
Протокол MAC может быть распределенным или управляться централизованно.
Доступом всех станций к среде для передачи PDU (Protocol Data Unit) управляет одна координационная функция.
BSS может быть изолированым (одноячеечная конфигурация).
Распределительная система (DS, Distribution System) соединяет несколько BSS в расширенный набор услуг ESS
(Extended Service Set). ESS представляется единой логической локальной сетью на
уровне LLC (LLC одинаков для всего семейства протоколов IEEE 802).
Точка доступа (AP, базовая станция, мост) - станция, которая обеспечивает доступ соотнесенных
с ней станций к распределительной системе.
Распределительная система может быть реализована в виде беспроводной сети, проводной сети или
коммутатора. Станция может входить в несколько BSS.
Имя сети - SSID (Service Set Identification), BSSID - MAC адрес точки доступа, ESSID.
Подключение и отключение станции к BSS может производиться динамически.
Станции могут мигрировать между точками доступа (IEEE 802.11f, 2003, Inter Access Point Protocol, IAAP),
а могут отключаться от одной точки доступа и подключаться к другой.
Станции могут взаимодействовать друг с другом без использования точки доступа
(IBSS, Independent BSS, Ad Hoc, Peer to Peer; есть еще несовместимый режим Lucent demo ad-hoc mode),
в этом случае некому заниматься аутентификацией.
Две точки доступа могут объединять две подсети в единое целое - мост (bridge, IEEE 802.11c).
Для увеличения расстояния, покрываемого такой объединяющей беспроводной сетью, можно использовать дополнительное
устройство с двумя точками доступа, соединёнными между собой, посередине "пролёта" - повторитель (repeater).
Для информирования станций о допустимых частотах, мощнности передатчика и прочих ограничениях
регулирующих органов точка доступа использует стандарт IEEE 802.11d.
IEEE 802.11e позволяет согласовать качество обслуживания (QoS), в основном для телефонов VoIP.
WMM (Wi-Fi multimedia) - красивое название для 802.11e.
Автоматический выбор канала и достаточной мощности передотчика описывается в IEEE 802.11h.
MSDU (модуль данных службы MAC) - блок данных, передаваемых пользователем уровня
MAC для доставки (обычно это PDU LLC). Станция оказывает следующие услуги IEEE 802.11:
- аутентификация - определено несколько схем аутентификации и есть возможность расширения;
успешная аутентификация требуется до ассоциации (привязки станции к точке доступа);
запрос на аутентификацию содержит: алгоритм аутентификации, номер транзакции аутентификации,
пароль/отзыв (challenge) - отмена аутентификации
- надежная доставка MSDU в пределах BSS - при получении информационного
кадра станция посылает подтверждение (ACK);
для повышения надежности (в случае "скрытых узлов" или чрезмерного трафика)
может использоваться обмен 4 кадрами - источник посылает запрос на
передачу (RTS, здесь же задаётся желаемая продолжительность обмена),
получатель (точка доступа?) подтверждает готовность к приему
(CTS, здесь задаётся разрешённая продолжительность обмена,
решение принимается на основе уровня RSSI - Received Signal Strength Indication,
при низком RSSI предполагается отсутствие помех и других передач, метод вычисления RSSI не определён),
источник посылает информационный кадр (MSDU) или несколько кадров в пределах разрешённого интервала времени,
получатель посылает подтверждение (ACK);
остальные станции должны воздерживаться
от передачи в промежутках 2- или 4-х кадрового сеанса обмена - конфиденциальность - опциональное шифрование по алгоритму WEP
Распределительная система оказывает следующие услуги IEEE 802.11:
- ассоциация - привязка станции к точке доступа, обслуживающей BSS;
станция указывает свои характерстики, SSID, канал, мощность;
точка доступа решает пустить ли её в сеть - разрыв ассоциации (по явной инициативе станции или по инмциативе точки доступа за неактивность)
- повторная ассоциация - передача информации о станции от одной точки доступа к другой
- интеграция - передача данных между станцией 802.11 и станцией интегральной локальной сети 802.x
- распределение - обмен кадрами MAC между станциями из различных BSS (механизм маршрутизации
стандартом не определен)
Точка доступа (и станции в режиме ad hoc) регулярно рассылает "маячки" (beacon, бакен) -
кадры, содержащие информацию о поддерживаемых скоростях, номере канала, наличии WEP и может быть SSID.
Они же обеспечивают синхронизацию времени (imer synchronization function, TSF).
В настройках точки доступа можно запретить рассылку "маячков" или, по крайней мере, включение в них SSID.
В этом случае станция перед подключением должны послать пробный запрос, содержаший
требуемый SSID и скорость передачи, на что точка доступа при совпадении SSID
возвращает скорость передачи, канал и SSID.
Точка доступа может быть совмещена с коммутатором или маршрутизатором.
Станция для подключения компьютера к беспроводной сети Wi-Fi выполняется
в виде PC Card (PCMCIA, CardBus, ExpressCard),
карты PCI или mini-PCI (зачастую представляют собой переходник PC Card)
или USB устройства (в материнскую плату Asus P5K Deluxe
оказалось впаяна(!) USB станция Realtek RTL8187_Wireless).
Станции также встраиваются в PDA, коммуникаторы (например, Nokia E90)
и даже игрушки (Nintendo Wii).
Удобнее всего USB устройство - его можно вынести туда, где качество сигнала лучше.
Станция иметь встроенную или внешнюю антенну (антенны).
Наличие 2 антенн позволяет во время приёма преамбулы определить какая из них
принимает сигнал лучше и использовать именно её. Сравнение и переключение
производится аппаратно, драйвер должен только дать разрешение на использование.
При передаче драйвер должен явно определить какую антенну использовать.
Антенны работают по очереди, так что не стоит пытаться использовать 2 направленные
в разные стороны узконаправленные антенны.
Для управления доступом к среде передачи используется двухуровневый протокол доступа
DFWMAC (distributed foundation wireless MAC), обеспечивающий базовый распределенный механизм управления
доступом (DCF - distributed coordination function) и необязательный надстроенный над ним механизм
централизованного управления (PCF - point coordination function).
DCF использует простой алгоритм CSMA без обнаружения коллизий (CSMA/CA) - прослушивание
среды перед передачей в течение межкадрового промежутка IFS. Если при этом будет услышан запрос (RTS)
от другой станции, то из него извлекается продолжительность предстоящего обмена и добровольного молчания.
Предусмотрены 3 значения IFS для обеспечения приоритетного доступа к среде:
SIFS (short IFS) - короткий интервал для немедленной реакции (ACK, CTS, очередная часть
фрагментированного пакета, ответ на запрос PCF),
PIFS (PCF IFS) - средний интервал для обеспечения приоритета централизованного управления PCF,
DIFS (DCF IFS) - самый длинный интервал при использовании DCF,
EIFS (Extend IFS) - ещё более длинный интервал (?).
Все интервалы дискретны: 50 мкс для модуляции FHSS, 20 мкс - для DSSS.
PCF реализован с помощью опросов (poll), производимых центральным координатором (точкой доступа).
Некоторая часть временного интервала (суперкадра) резервируется для "неорганизованных" станций, использующих DCF.
На практике применяется редко.
Управление энергопотреблением:
- режим постоянной готовности - приёмник всегда слушает и потребляет энергию
- режим сохранения энергии - приёмник большую часть времени выключен, но регулярно просыпается
и опрашивает точку доступа о наличии сообщений для данной станции
Формат кадра MAC (максимальный размер - 2346 байт)
- FC, управление кадром, 2 байта
- версия протокола, 2 бита
- тип кадра - 2 бита, подтип кадра - 4 бита
- 00 - управление (management)
- 0000 - запрос ассоциации от станции к точке доступа, кадр содержит информации о
возможностях станции (шифрование, ответы на запросы PCF и т.д.) - 0001 - ответ точки доступа на запрос ассоциации
- 0010 - запрос повторной ассоциации
- 0011 - ответ на запрос повторной ассоциации
- 0100 - пробный запрос, используется для обнаружения BSS; содержит SSID и скорость передачи
- 0101 - ответ на пробный запрос: скорость передачи, номер канала, SSID
- 1000 - маячок (сигнальный кадр, beacon): номер канала, SSID и пр.; рассылается точкой доступа
- 1001 - объявление наличия трафика, используется для пробуждения станции из режима
энергосбережения - 1010 - разрыв ассоциации
- 1011 - аутентификация
- 1100 - отмена аутентификации
- 0000 - запрос ассоциации от станции к точке доступа, кадр содержит информации о
- 01 - контроль (control, управление потоком)
- 1010 - опрос точки доступа после выхода станции из режима энергосбережения на наличие
буферизованного кадра - 1011 - RTS
- 1100 - CTS
- 1101 - ACK
- 1110 - конец режима "без состязания" (CF) алгоритма PCF
- 1111 - подтверждение конца режима CF
- 1010 - опрос точки доступа после выхода станции из режима энергосбережения на наличие
- 10 - данные
- 0000 - просто данные
- 0001 - данные и подтверждение опроса (только в период CF)
- 0010 - данные и опрос (только в период CF)
- 0011 - данные, подтверждение, опрос (только в период CF)
- 0100 - нет данных (станция в бите управления питанием извещает точку доступа о режиме
энергосбережения) - 0101 - подтверждение опроса (только в период CF)
- 0110 - опрос (только в период CF)
- 0111 - подтверждение, опрос (только в период CF)
- 00 - управление (management)
- кадр предназначен для распределительной системы, 1 бит
- кадр исходит из распределительной системы, 1 бит
- MF, это не последний фрагмент кадра, 1 бит
- RT, повторная передача кадра, 1 бит
- PM, станция находится в режиме энергосбережения, 1 бит
- MD, станция имеет еще данные для передачи, 1 бит
- W, используется алгоритм конфиденциальности WEP, 1 бит
- O, кадры должны обрабатываться по порядку, 1 бит
- D/I, идентификатор длительности/соединения, 2 байта, либо время резервирования среды передачи
в микросекундах, либо идентификатор ассоциации - адрес источника (6 байт)
- адрес назначения (6 байт)
- адрес передающей станции (6 байт)
- SC, управление очередностью, 2 байта: номер фрагмента (4 бита), порядковый номер кадра (12 бит)
- адрес принимающей станции (6 байт)
- MSDU или фрагмент MSDU (PDU LLC или управляющий кадр MAC), от нуля до 2312 байт;
MSDU может дробиться на фрагменты передающей станции, чтобы сократить время передачи кадра - CRC-32, 4 байта
Стандартами предусмотрены следующие среды передачи
- диапазон 2.4-2.4835 ГГц (23-70 каналов шириной 1 МГц);
расширение спектра методом скачкообразной перестройки частоты (FHSS), параметры алгоритма стандартом
не задаются, возможно сосуществование нескольких сетей; IEEE 802.11 (1997)
- 1 Мб/с (2-х уровневая GFSK, 1 млн. символов/с, 1 бит/символ)
- 2 Мб/с (4-х уровневая GFSK, 1 млн. символов/с, 2 бит/символ), опция
- диапазон 2.4-2.4835 ГГц, до 14 каналов шириной 22 МГц (каналы пересекаются, так что места хватает только на 3);
расширение спектра методом прямой последовательности (DSSS); сеть занимает канал полностью; IEEE 802.11 (1997)
- 1 Мб/с (DBPSK, последовательность Баркера длиной 11, 1 млн. символов/с, 1 бит/символ)
- 2 Мб/с (DQPSK, последовательность Баркера длиной 11, 1 млн. символов/с, 2 бит/символ), опция
- инфракрасный диапазон (850-950 нм), ненаправленная передача до 20 м; IEEE 802.11 (1997)
- 1 Мб/с (16-PPM, 4 млн. символов/с)
- 2 Мб/с (4-PPM, 4 млн. символов/с)
- диапазон 2.4-2.4835 ГГц, до 14 каналов шириной 22 МГц (каналы пересекаются, так что места хватает только на 3);
расширение спектра методом прямой последовательности (DSSS);
заголовки и управляющие кадры передаются "старым" методом на скорости 1 Mbps;
100 м на открытом пространстве; типовая скорость в непосредственной близости - 5.5 Mbps;
IEEE 802.11b (1999)
- 5.5 Mb/s (DBPSK, последовательность CCK длиной 8, 1.375 млн. символов/с, 4 бит/символ)
- 11 Mb/s (DQPSK, последовательность CCK длиной 8, 1.375 млн. символов/с, 8 бит/символ)
- диапазон 5.17-5.32 ГГц (UNII 1 и UNII 2), до 12 каналов шириной 20 МГц (каналы пересекаются)
и 11 каналов в диапазоне 5.725-5.825 (UNII 3);
ортогональное частотное уплотнение (OFDM);
до 52 накладывающихся поднесущих с интервалами в 0.3125 МГц;
из них 48 параллельно передают данные, а 4 используются для синхронизации;
100 м на открытом пространстве; типовая скорость в непосредственной близости - 18 Mbps;
IEEE 802.11a (1999); 802.11h (обнаружение радаров и "уход с дороги" для диапазона UNII 3)
- 6 Mbps (BPSK, 48 битов кода/символ, 24 бита данных на символ)
- 9 Mbps (BPSK, 48 битов кода/символ, 36 бита данных на символ), опция
- 12 Mbps (QPSK, 96 битов кода/символ, 48 бита данных на символ)
- 18 Mbps (QPSK, 96 битов кода/символ, 72 бита данных на символ), опция
- 24 Mbps (16-QAM, 192 битов кода/символ, 96 бита данных на символ)
- 36 Mbps (16-QAM, 192 битов кода/символ, 144 бита данных на символ), опция
- 48 Mbps (64-QAM, 288 битов кода/символ, 192 бита данных на символ), опция
- 54 Mbps (64-QAM, 288 битов кода/символ, 216 бита данных на символ), опция
- диапазон 2.4-2.4835 ГГц, до 14 каналов шириной 22 МГц (каналы пересекаются, так что места хватает только на 3);
ортогональное частотное уплотнение (OFDM);
160 м на открытом пространстве; типовая скорость в непосредственной близости - 18 Mbps;
IEEE 802.11g (2003);
QAM - 802.11n (2009?);
каждая станция должна поддерживать диапазоны 2.4 и 5 GHz;
используется технология MIMO (Multiple in Multiple out) - одновременное использование нескольких антенн;
100 м на открытом пространстве; типовая скорость в непосредственной близости - 120 Mbps;
BPSK - двухуровневая фазовая модуляция. 0 - представляется сигналом одной фазы,
1 - другой.
DBPSK - дифференциальная двухуровневая фазовая модуляция. 1 - представляется
в виде смены фазы сигнала, 0 - сохранением фазы сигнала.
QPSK - четырехуровневая фазовая модуляция. Каждый сигнал представляет 2 бита.
DQPSK - дифференциальная четырехуровневая фазовая модуляция.
GFSK - гауссова частотная манипуляция, для кодирования используются отклонения от текущей
несущей частоты.
PPM - фазо-импульсная модуляция, группа из 4 бит (2 бит) данных отображается в один из
16 (4) символов PPM, причем символ представляет собой строку из 15 (3) нулей и 1 единицы (модуляция
интенсивности).
QAM - квадратурная амплитудная модуляция. 2 независимых сигнала передаются на одной частоте
с использованием амплитудной модуляции (4-уровневой для 16-QAM, 8-уровневой для 64-QAM),
но со сдвигом фазы 90°.
FHSS - расширение спектра со скачкообразной перестройкой частоты, модулированный одним
из способов (ASK, FSK, PSK или их модификация) узкополосный аналоговый сигнал модулируется еще раз на частоте из
большого набора частот, лежащих в широкой полосе; через определенный интервал времени опорная частота изменяется;
последовательность опорных частот задается псевдослучайной последовательностью, известной как передатчику,
так и приемнику (код расширения, расширяющая последовательность).
На переключение частоты требуется немалое время, что сильно ограничивает скорость передачи.
DSSS - расширение спектра методом прямой последовательности, каждому исходному биту
ставится в соответствие несколько битов передаваемого сигнала. Одним из способов преобразования является
применение операции XOR для битов данных и битовой последовательности кода расширения (например, псевдослучайной),
подаваемой с большей частотой. Использование в качестве кода расширения кодов Баркера длиной 11 (специально
подобранная последовательность) увеличивает устойчивость к интерференции и многолучевому распространению.
OFDM - одновременно используется несколько несущих сигналов на различных частотах, каждый сигнал
передает часть битов. Позволяет бороться с селективным замиранием и межсимвольной интерференцией
во многолучевой среде.
На физическом уровне имеется логика выбора скорости и модуляции в зависимости от
обстановки автоматически или вручную. Понижение скорости обычно увеличивает шанс каждого бита
дойти неповрежденным, но увеличивает время передачи всего пакета и увеличивает вероятность коллизий.
Так как протокол рассчитан на скорость 1 Mbps (задержки, RTS/CTS, кодирование заголовков), то на больших
скоростях доля накладных расходов возрастает.
Не стоит обольщаться большой "теоретической" скоростью передачи данных.
На близких расстояниях (1 метр) достигается 50% от заявленной скорости. С увеличением расстояния скорость очень
быстро падает.
Перед каждым пакетом добавляется 144 бита преамбулы (128 бит для синхронизации,
16 бит - начало кадра) и 48 бит заголовка физического уровня PHY (скорость передачи, размер пакета данных,
контрольная сумма). Преамбула и заголовок PHY всегда передаются на скорости 1Mbps.
Имеется вариант укороченной преамбулы (72 бита), несовместимой с очень старым оборудованием
(первоначальный 802.11). В современной сети её можно использовать без опасений
(96 мкс на пакет вместо 192 мкс).
Сигналы в интересующем нас диапазоне (300 МГц - 30 ГГц) распространяются по
эффективной линии прямой видимости. Радиогоризонт дальше оптического горизонта из-за
небольшого искривления линии распространения радиоволн вдоль поверхности земли.
Поправочный коэффициент приблизительно равен sqrt(4/3), т.е. максимальное расстояние между антеннами
в чистом поле (в метрах) рассчитывается как 3570*K*(sqrt(h1)+sqrt(h2)).
Огибания земной поверхности - нет, отражения от ионосферы - нет (т.е. космические шумы есть).
Имеется атмосферное поглощение (кислород - 30-60 ГГц - и водяной пар - 15-22 ГГц).
При частоте выше 10 ГГц происходит также затухание во время дождя и тумана.
Под прямой видимостью понимается не только отсутствие препятствий на пути луча,
но и свободный коридор немалого диаметра вокруг луча (зона Френеля?).
Затухание сигнала для изотропной антенны в свободном пространстве
(т.е. без учета поглощения в атмосфере и дождя ;)
пропорционально квадрату расстояния и квадрату частоты сигнала (т.к. затухание зависит
от частоты, то амплитуда принимаемого сигнала искажается).
Если выражать затухание в децибелах, то L =20 * lg (4pi*расстояние/длина_волны) дБ
(3 дБ - в 2 раза, 6 дБ - в 4 раза, 10 дБ - в 10 раз).
Для неизотропных антенн необходимо поделить на произведение коэффициентов усиления антенн.
При увеличении частоты затухание изотропной антенны усиливается, но и коэффициент усиления параболической
или рупорной антенны тоже увеличивается.
Мощность теплового шума пропорциональна ширине полосы сигнала (белый шум).
При комнатной температуре равен -204 дБВт/Гц (мощность в дБВт равна 10*lg(мощность_Вт)).
Дополнительно необходимо учитывать интермодуляционный шум , перекрестные помехи
(доминируют в нелицензируемом диапазоне), импульсные помехи,
отраженные от препятствий (зданий или земли, воды) или преломленные (в атмосфере или на углах препятствий)
копии сигнала (приходят с различными запаздываниями).
Максимальная мощность передатчика в диапазоне 2.4 ГГц, допускаемая FCC (США)
для DSSS и FHSS равна 1 Вт; ETSI (Европейский Союз) допускает не более 100 мВт.
Данный диапазон был выделен в США в безлицензионное использование потому что телекоммуникационные
коипании все равно отказывались его использовать из-за помех от СВЧ печей.
Чувствительность приемника измеряется в dBm (чем меньше, тем лучше)
при условии потери не более 3% 400-байтных пакетов в канале с Гауссовым распределением помех.
Зависит от метода модуляции. Типичными значениями являются -79 дБ для 11 Мб/с и -89 дБ для 1 Мб/с.
Мощность передатчика измеряется в ваттах или dBm (1 mW = 0 dBm, 1 W = 30 dBm, 100 mW = 20 dBm).
Типичным значенияем для массового обрудования является 15 dBm (31 мВ).
Максимально допустимое ослабление сигнала определяется как разность мощности передатчика
и чувствительности приемника (в dBm). Для расчета дальности необходимо добавить коэффициенты
усиления приемной и передающей антенн и вычесть ослабление сигнала в антенных кабелях
(хороший кабель - 0.25 дБ/м) и разъемах (1 дБ на разъем).
Ширина луча (по уровню половинной мощности) - это угол, в пределах которого
излучаемая мощность составляет не меньше половины мощности, которая излучается в
преимущественном направлении. Коэффициент усиления есть отношение мощности сигнала,
излучаемого в преимущественном направлении данной антенной, к мощности сигнала изотропной
антенны. Результат в децибелах (dBi) получается так - 10*ln(коэффициент)/ln(10) (3 дБ - в 2 раза).
Название характеристики вводит в заблуждение, так как в действительности
выходная мощность антенны равна входной мощности. Мощность не усиливается, а перераспределяется
по направлениям.
Типы антенн:
- полуволновой диполь (вибратор Герца) - два проводника, лежащих на одной прямой и разделенных
небольшой щелью; суммарная длина равна половине длины; диаграмма направленности - восьмерка
в вертикальной плоскости (максимум излучения в направлении, перпендикулярном линии проводников)
и равномерное излучение в горизонтальной плоскости; коэффициент усиления - 1.64 (2 дБ) - четвертьволновая вертикальная антенна (штыревая антенна, антенна Маркони);
D-Link ANT24-0400 (усиление сигнала - 4 дБ, диаграмма направленности -
покореженная восьмерка); D-Link ANT24-0500 (усиление сигнала - 5 дБ, диаграмма направленности -
покореженная восьмерка; ширина луча - 32°; $80);
- секторная антенна; D-Link ANT24-0801 (усиление сигнала - 8.5 дБ, угол раствора - 70°; $110);
- волновод (yagi); узконаправленная диаграмма направленности (множество побочных лучей);
D-Link ANT24-1201 (усиление сигнала - 12 дБ; угол раствора - 50°; $110);
D-Link ANT24-1801 (усиление сигнала - 18 дБ; угол раствора - 15°; $170);
- панельная направленная антенна (фазовый сдвиг?);
D-Link ANT24-1400 (усиление сигнала - 14 дБ; угол раствора - 30°; $140);
D-Link ANT24-1800 (усиление сигнала - 18 дБ; угол раствора - 15°; $170);
- параболическая отражающая антенна; обеспечивает малую ширину луча;
чем больше диаметр антенны, тем меньше ширина луча при равной частоте;
чем больше частота, тем больше коэффициент усиления;
коэффициент усиления - 7*площадь_лицевой_поверхности/длина_волны²
(площадь лицевой поверхности равна pi*радиус²) - рупорная антенна; коэффициент усиления - 10*площадь_раструба/длина_волны²
Популярным разъемом в последнее время становится реверсивный SMA-разъем (RP-SMA),
хотя может понадобится кабель-переходник (длина и характеристики имеют значение) между антенной и
антенным гнездом платы или точки доступа.
Также указывается поляризация и сопротивление (50 Ohms).
Электрическое поле параллельно антенне.
Вертикальная поляризация - электрическое поле перпендикулярно земле, горизонтальная - параллельно.
SWR (КСВ, Коэффициент стоячей волны): характерезует степень согласования антенны и фидера
(также говорят о согласовании выхода передатчика и фидера). На практике всегда часть
передаваемой энергии отражается и возвращается в передатчик.
Отраженная энергия ухудшает работу передатчика и может его повредить.
SWR=(Wпад+Wотр)/(Wпад-Wотр). В идеале КСВ=1, значения до 1,5 считаются приемлемым.
Устройство может иметь несколько антенн и в каждый момет времени выбирать
сигнал лучшего качества из возможных или использовать одну антенну для передачи, вторую для приема.
Из реального опыта направленных антенн на 15db хватает для организации устойчивого
соединения 11Мб на расстояниях 1.5-2км. С парой антенн 21db устойчиво работает на расстоянии 4-5км.
Любое препятствие (даже прямая видимость в створ между домами) сводит уровень сигнала до
недопустимо низких значений.
Конфиденциальность и целостность данных при передаче обеспечиватся
аутентификацией присоединения станции к точке доступа и шифрованием передаваемых данных.
Радиосигнал легко доступен любому постороннему в зоне приёма, поэтому требования к
аутентификации и шифрования значительно усилены по сравнению с проводными сетями.
Доступность сервиса не обеспечивается ничем.
Алгоритм шифрования кадра WEP: станция присоединяет к общему секретному ключу
длиной 40 бит или 104 бита псевдослучайный 24-битный вектор инициализации (IV), получая таким образом
начальное число генератора псевдослучайных чисел алгоритма шифрования RC4 (PRNG); генератор порождает
псевдослучайную последовательность бит, равную по длине кадру MAC; выполняется побитовая операция
XOR между полученной последовательностью и кадром MAC; получателю посылается IV и результат XOR.
Вектор инициализации периодически меняется (для каждого кадра MAC?).
Метод получения IV стандартом не определён. Заголовок не шифруется.
Секретный ключ может задаваться в настройках шестнадцатеричным числом, строкой или преобразуемой в
шестнадцатеричное число парольной фразой. Станция может хранить до 4 ключей.
Режимы аутентификации:
- аутентификация открытых систем - станции обмениваются кадрами аутентификации, не проверяя ответ;
при этом станция должна всё-таки предъявить точке доступа правильный SSID (имя сети);
обычно по умолчанию точка доступа рассылает SSID всем желающим слышать, но это можно выключить в настройках;
к сожалению, SSID можно извлечь из данных, передаваемых легальной станцией;
точка доступа может также ограничить доступ станциями, с известными ей MAC адресами;
MAC адрес легальной станции также извлекается простым подслушиванием;
если включить WEP шифрование в открытой системе, то станции начнут обмениваться зашифрованными
пакетами без предварительной аутентификации - неправильный ключ и данные невозможно дешифровать - аутентификация с общим ключом (preshared key) с использованием WEP -
станция посылает кадр аутентификации с указанием своего идентификатора;
точка доступа отвечает кадром аутентификации, в который включена 128-байтная псевдослучайная
последовательность (используется генератор PRNG WEP);
станция возвращает кадр аутентификации с этой последовательностью,
шифруя его с помощью общего секретного ключа по алгоритму WEP;
точка доступа дешифрует полученный кадр, проверяет CRC, проверяет правильность псевдослучайной последовательности,
посылает кадр аутентификации, содержащий код состояния; - стандарт IEEE 802.1x разрабатывался как универсальное средство
аутентификации клиентов (supplicant), пытающихся получить доступ к порту коммутатора
любой сети семейства 802 (аутентификатору);
шифрование этим стандартом не предусматривается;
весь трафик к порту блокируется (PAE, Port Access Entity), кроме пакетов аутентификации
(EAP инкапсулированные в EAPOL - Extensive Authentication Protocol over Local Area Network),
пока клиент не аутентифицируется и не пройдёт проверку прав доступа (авторизацию);
для аутентификации и авторизации используется строенный или выделенный сервер аутентификации;
между клиентом и точкой доступа (аутентификатором) используется протокол EAP (RFC 2284, RFC 3748);
между точкой доступа и внешним сервером аутентификации (если он есть) используется протокол
RADIUS (Remote Authentication Dial-In User Service, RFC 2138, RFC 2139, RFC 2865, FC 2866),
туннель шифруется с помощью общего ключа;
варианты EAP (Extensible Authentication Protocol) согласуются в начале переговоров:
- EAP-MD5: RADIUS сервер придумывает оклик и пересылает его клиенту через аутентификатора,
клиент шифрует его разделяемым секретом (паролем) и посылает обратно
(чем шифрует и при чём здесь MD5?) - EAP-TLS (RFC 2716), используются сертификаты клиента и сервера,
обеспечиваются взаимная проверка, шифрование, PKI - EAP-TTLS: создаётся TLS туннель, внутри которого передаются пакеты
PAP, CHAP, MS-CHAP, MS-CHAP-V2 и др. - EAP-FAST (Flexible Authentication via Secure Tunneling): зашифрованный туннель
создаётся с помощью механизма, аналогичного сертификатам
- EAP-MD5: RADIUS сервер придумывает оклик и пересылает его клиенту через аутентификатора,
- WPA (Wi-Fi protected access) использует ключ длиной 128 бит и 48-битный вектор инициализации;
методы аутентификации:
- использование IEEE 802.1x
- разделяемых ключей (PSK, Pre-Shared Key); обычно ключ генерируется из парольной фразы
(от 8 до 63 символов) или 64 шестнадцатеричных цифры (group master key, GMK),
которые в комбинации с SSID (?) дают PTK (pair transient key), чтобы не иметь единый ключ на всю сеть;
подрежимы:
- TKIP (Temporal Key Integrity Protocol) - защитная надстройка над WEP аутентификацией;
вместо того, чтобы напрямую использовать IV и 104-битный ключ для шифрования;
из разделяемого 128-битного секрета, MAC адреса станции и номера последовательности (TSC)
делается ключ сессии (TTAK), который совместно с IV используется для шифрования;
TSC состоит из адреса отправителя, адреса получателя, приоритета и данных (?);
IV увеличен до 48 бит;
в дополнение к контрольной сумме кадра и IVC использует более сложная схема хеширования MIC
(Message Integrity Check, Michael), учитывающая MAC отправителя, MAC получателя и затравку (seed);
MIC вычисляется на уровне пакета (не кадра) и шифруется вместе с данными
- использование AES (Advanced Encryption System) в режиме ?
- TKIP (Temporal Key Integrity Protocol) - защитная надстройка над WEP аутентификацией;
- IEEE 802.11i (2004), новая структура (framework) обеспечения безопасности безпроводной передачи данных;
используется только аутентификация открытых систем;
для согласования допустимых типов аутентификации (Authentication and Key Management (AKM) Suite)
и шифрования (Cipher Suite) используется протокол Robust Security Network (RSN);
список допустимых методов аутентификации и шифрования (RSN IE) рассылается точкой доступа в "маячках"
или ответах на пробные запросы, а станциями в запросах на ассоциацию;
отдельно согласовываются методы шифрования для широковещательных, групповых (group) и обычных (pairwise) обменов;
в качестве методов аутентификации могут использоваться IEEE 802.1x (см. выше) или PSK;
в любом случае в качестве протокола используется EAP (EAPOL);
затем происходит согласование уникального сессионного (PTK)
и группового (GTK) ключей с использованием мастер-ключей (PMK и GMK);
GMK используется для шифрования управляющего трафика;
PMK (26 бит) получается либо от сервера аутентификации (для IEEE 802.1x),
либо (в случае PSK) делается из парольной фразы и SSID (угроза атаки по словарю);
из PMK делаются KCK (EAPOL-key confirmation key) и KEK (key encryption key);
PTK получается из PMK, адреса станции, адреса точки доступа и случайных чисел от обоих;
GTK получается из GMK, адреса станции, адреса точки доступа и случайных чисел от обоих;
для предотвращения атак на повторение (replay) запрещается повторное использование случайных чисел;
для предотвращения подделки пакетов на этапе согласования ключей используется KCK;
методы шифрования:
- TKIP (см. выше)
- AES в режиме
CCMP (Counter Mode (CTR) with CBC-MAC (Cipher Block Chaining Message Authentication) Protocol),
CTR обеспечивает конфиденциальность, CBC-MAC обеспечивает целостность
- для совместимости может быть использован набор TSN (Transition Secure Network): WEP-40 и WEP-104
- WPA2 версия 1 означает соместимость устройства с IEEE 802.11i
- WAPI (WLAN Authentication and Privacy Infrastructure) - китайский стандарт, похожий на IEEE 802.11i,
подробности засекречены, соблюдение обязательно для продажи оборудования в Китае,
для получения разрешения требуется раскрыть всю интеллектуальную собственность, вложенную в продукт ;)
Так выглядит хорошо защищённая сеть:
ath0 Scan completed :
Cell 01 - Address: xx:xx:xx:xx:xx:xx
ESSID:""
Mode:Master
Frequency:2.437 GHz (Channel 6)
Quality=63/70 Signal level=-32 dBm Noise level=-95 dBm
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Extra:bcn_int=100
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
А так выглядит плохо защищённая сеть (но далеко ;):
ESSID:"ZyXEL"
Mode:Master
Frequency:2.412 GHz (Channel 1)
Quality=8/70 Signal level=-87 dBm Noise level=-95 dBm
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Extra:bcn_int=100
Бизнес сеть (разнообразие достаточно защищённых вариантов, 802.1X):
ESSID:"бизнес"
Mode:Master
Channel:10
Frequency:2.457 GHz
Quality=30/64 Signal level=9/65
Encryption key:on
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : 802.1X
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : 802.1X
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s
48 Mb/s; 54 Mb/s
Extra:tsf=0000004527570110
Атака на WEP по известному тексту. Каждый пакет содержит немного известной информации,
например, заголовок 802.2 SNAP. Подслушав пакет и зная исходные и зашифрованные значения некоторых полей,
можно с некоторой вероятностью предположить ключ - шифрование делается XOR-ом с кодирующей последовательностью,
часть которой становится доступной непосредственно. Небольшая длина ключа и IV делает возможным полный перебор.
Набрав достаточно много пакетов, можно увеличить вероятность почти до 1.
Перехват сеанса аутентификации легального клиента сразу даёт большой пример текста в открытом и зашифрованном виде.
Имитация клиента или точки доступа.
Атака man-in-the-middle.
DoS легко достигается глушением сигнала, нарушением протокола обмена
или выдачей фальшивых управляющих кадров. Например, повторное проигрывание кадра разрыва ассоциации.
Нелегальная точка доступа, подключённая к сети сотрудником или злоумышленником,
ставит под удар всю сеть.
Какая-то информация (например, SSID и MAC-адреса участников) видны даже при
использовании WPA2.
Имеется несколько несовместимых реализаций (framework) стека 802.11 в ядре Linux
(к тому же некоторые драйверы приносят свой стек).
Реализация стека wlan и утилиты управления wlanctl и wlancfg.
Реализация стека wlan-ng и утилиты управления wlanctl-ng и wlancfg.
Интерфейс Wireless Extensions for Linux API и
набор утилит управления wireless-tools (1997, ядро 2.0.30).
Реализация стека ieee80211 (модули ядра).
Реализация стека ieee80211/mac80211 (ранее называлась d80211,
поставляется с ядра 2.6.22) [насколько удалось понять] состоит из:
- iw - утилита управления, должна заменить wireless-tools (в Fedora 9 отсутствует)
- kernel/net/ieee80211 - "логическая" часть включает программную реализацию WEP, TKIP, CCMP;
временно включает softmac, пока не перепишут оставшиеся драйвера - kernel/net/mac80211 - программная реализация MAC уровня:
- rc80211_simple - Simple rate control algorithm for ieee80211
- mac80211 - IEEE 802.11 subsystem; параметр ieee80211_regdom задаёт орган, регулирующий радиодиапазон,
64 - международные правила (МКК)
- kernel/net/cfg80211 - интерфейс управления оборудованием; вместе с nl80211 (интерфейс netlink для стека 802.11)
должен со временем заменить Wireless-Extensions - kernel/drivers/net/wireless/mac80211 - самый нижний уровень для работы непосредственно с оборудованием,
включает драйверы устройств, в которых часть функций (MLME - MAC Sublayer Management Entity - в режиме станции)
реализована программно: ath5k, b43, iwl3945, iwl4965, p54_*, rt*, rtl* и др. - kernel/drivers/net/wireless - прочие драйверы, не соответствующие интерфейсу mac80211,
написанные ранее или MAC уровень которых реализован аппаратно:
hermes, orinoco*, prism54, wavelan, ipw2100, ipw2200
ieee80211/mac80211 поддерживает режимы работы беспроводного интерфейса:
- точка доступа в режиме инфраструктуры
- станция в режиме инфраструктуры (managed)
- режим мониторинга, все кадры принимаются без фильтрования, ничего не передаётся (см. вставка);
некоторые карты могут быть в режиме мониторинга одновременно с другими функциями;
также возможна вставка пакетов в поток - режим Ad Hoc
- режим WDS (Wireless Distribution System), канал передачи данных между точками доступа
При работе стека mac80211 для каждой карты создаётся главный интерфейс wmasterX
и необходимое число (по одному для каждого режима) дополнительных интерфейсов wlanX
(udev может вмешаться в наименование устройств).
wmasterX используется только слоем mac80211 (обещают скрыть его с глаз).
wlanX принимает Ethernet кадр, дополняет его заголовком 802.11 и передаёт в wmasterX,
которй передаёт его аппаратному драйверу.
Для настройки и управления необходимо использовать интерфейс wlanX.
Для успешной работы Wi-Fi карты требуется наличие драйвера, соответствующего
встроенной в ядро реализации стека беспроводной сети, или очумелые ручки изготовителя дистрибутива,
сумевшего приспособить его под этот стек (или сделать несколько переключаемых стеков).
Проверить на чём построена купленная PCI/mini-PCI или CardBus карта можно с помощью lspci,
карта PCMCIA - [pc]cardctl ident, карта USB - lsusb или /proc/bus/usb/devices.
ndiswrapper
плюс средства "выдирания" прошивки и заливки её в устройство ("ndiswrapper -i имя-файла.inf")
иногда позволяют использовать драйвера от MS Windows.
Если драйвер ieee80211/mac80211 заработал,
то в системе появится новый сетевой интерфейс (обычно wlan0),
с которым можно работать как с обычным ethernet интерфейсом (ifconfig, ip).
Вместо wlan0 в других реализациях стека интерфейс может называться wifi0,
ath0 (для драйвера madwifi) или просто ethN,
radiotap - стандарт
захвата и вставки фреймов протокола 802.11.
Поддерживается в Linux 802.11 стеках ieee80211 и mac80211, FreeBSD, OpenBSD и NetBSD.
wireshark умеет декодировать заголовки radiotap.
При захвате драйвер вкладывает фрейм 802.11 как PDU в кадр raditap и передаёт libpcap.
В заголовках кадра radiotap записывается дополнительная информация о физическом
уровне: номер антенны, частота сигнала, способ кодирования (CCK, OFDM, CCK-OFDM, GFSK) и параметры,
есть ли фрагментация, использовался ли WEP, короткая преамбула, ошибки FCS,
уровень сигнала (dB от некторого фиксированного значения),
уровень шума (dB от некторого фиксированного значения),
качество сигнала, скорость передачи, мощность передатчика, FCS.
Формат заголовка является расширяемым.
Приложение использует radiotap для передачи драйверу стека 802.11 аналогичной информации при передаче.
Внешние утилиты, требуемые для реализации 802.1x, 802.11i, WPA/WPA2:
- xsupplicant (802.1X), сейчас функциональность встроена в wpa_supplicant
- wpa_supplicant (WPA, WPA2, IEEE 802.1X)
Графические утилиты, упрощающие управление:
- NetworkManager (усиленно проталкивается в Fedora)
- kwifimanager (входит в KDE)
- Wireless Assistant
- WiFi Radar, wifi-radar.noarch
Программное обеспечение, необходимое для работы в режиме точки доступа:
- hostapd - аутентификатор IEEE 802.11 AP,
IEEE 802.1X, WPA, WPA2, EAP, RADIUS для создания точки доступа; для стека mac80211 - Karma
Чипсет Prism (Harris Semiconductor AKA Intersil).
LG LW2100P представляет собой PCI адаптер беспроводной сети IEEE 802.11b,
основанный на наборе микросхем Harris Semiconductor (Intersil) Prism 2.5 Wavelan, rev 01 (1260:3873).
Поддерживает только модуляцию DSSS (?), WEP 40 и 104 бит, протокол доступа к среде - CSMA/CA
(DCF и PCF) c ACK (RTS/CTS не поддерживается?). Короткая преамбула не поддерживается.
CCAMode: csonly (?). Модуляция PBCC не поддерживается. Присоединение антенны - обратный SMA разъем.
Прилагаемая антенна - штырь с неизвестными характеристиками (2 dB?).
Мощность передатчика - 15 dBm (31 mW), изменять нельзя. Чувствительность приемника: -80 dBm.
Никаких PCMCIA переходников.
prism2.5/3 chipsets do not support PCI power management
ident: nic h/w: id=0x8013 1.0.0 # Prism2.5 PCI rev. 1.0.0
ident: pri f/w: id=0x15 1.0.5 # primary firmware 1.0.5, WEP исправлен в 1.4.0
ident: sta f/w: id=0x1f 1.3.4 # secondary firmware 1.3.4
Драйыер для карт на чипсетах prism2.5/3 для стека wlan-ng (kernel-wlan-ng,
kernel-wlan-ng-modules, kernel-wlan-ng-pci).
Модули ядра: prism2_pci, p80211.
Модуль нельзя выгружать (второй раз он инициализируется с ошибкой), обещают что в 0.2.1 исправили (pre15).
Загрузка модуля:
ifconfig: wlan0 Link encap:Ethernet HWaddr 00:40:5A:04:23:6E
init_module: prism2_pci.o: 0.2.0 Loaded
init_module: dev_info is: prism2_pci
PCI: Found IRQ 10 for device 02:04.0
A Prism2.5 PCI device found, phymem:0xdc002000, irq:10, mem:0xe0948000
ident: nic h/w: id=0x8013 1.0.0 # Prism2.5 PCI rev. 1.0.0
ident: pri f/w: id=0x15 1.0.5 # primary firmware 1.0.5, WEP исправлен в 1.4.0
ident: sta f/w: id=0x1f 1.3.4 # secondary firmware 1.3.4
MFI:SUP:role=0x00:id=0x01:var=0x01:b/t=1/1
CFI:SUP:role=0x00:id=0x02:var=0x02:b/t=1/1
PRI:SUP:role=0x00:id=0x03:var=0x01:b/t=1/3
STA:SUP:role=0x00:id=0x04:var=0x01:b/t=1/9
PRI-CFI:ACT:role=0x01:id=0x02:var=0x02:b/t=1/1
STA-CFI:ACT:role=0x01:id=0x02:var=0x02:b/t=1/1
STA-MFI:ACT:role=0x01:id=0x01:var=0x01:b/t=1/1
Prism2 card SN: 99SA01000000
Рукоятка управления: /proc/net/p80211/wlan0/wlandev.
prism2dl - загрузка прошивки, где? и где сама прошивка?
Для карт на чипсете Orinoco/Hermes (Lucent AKA Agere),
хотя карты под именем Orinoco выпускали десятки фирм и не все они использую
"правильный" (Hermes) чипсет (читайте сагу Jean Tourrilhes).
В состав дистрибутива RH 8.0 входит драйвер для беспроводных карт на чипсетах
Orinoco и Prism (модули hermes, orinoco 0.11b (есть 0.13e: смена MAC адреса),
orinoco_pci, orinoco_cs для PCMCIA, orinoco_plx для PCMCIA через PLX9052/WL11000).
Конфигурация и сбор статистики через Wireless Extensions API. Сканирование через Wireless Extensions API
(нужны заплатки). Мониторинг - нужны заплатки.
В дополнение к драйверу bcm43xx необходимо иметь прошивку в /lib/firmware.
Делал из BCLWL5.SYS с помощью bcm43xx-fwcutter (одноименный пакет в репозитарии extra).
В состав материнской платы ASUS P5K Deluxe входит намертво припаянная (!)
USB станция на чипе Realtek RTL8187
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0bda ProdID=8187 Rev= 1.00
S: Manufacturer=Manufacturer_Realtek_RTL8187_
S: Product=RTL8187_Wireless
S: SerialNumber=MAC-адрес
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
Модуль ядра rtl8187
для стека mac80211 поддерживает карты на чипах Realtek RTL8180 (?), RTL8185, RTL8187 (не RTL8187B!).
Несовместим с модулем ieee80211/без-mac80211 (необходимо выгрузить его перед загрузкой rtl8187).
kernel: usbcore: registered new interface driver rtl8187
Кроме модуля ядра, отвечающего за аппаратный интерфейс с оборудованием, необходимы:
eeprom_93cx6 (http://rt2x00.serialmonkey.com).
Изготовитель чипсетов предлагает свою версию.
madwifi - "внесистемный"
(тянет с собой стек net80211 из NetBSD) Linux драйвер для карт на чипах Atheros (ar5210, ar5211, ar5212).
Поддерживает почти все устройства (PCI, MiniPCI и Cardbus) на чипсетах Atheros, кроме USB.
Состоит из открытой части и бинарного модуля HAL (hardware abstraction layer, аппаратно-зависимый уровень).
Поддерживает особенности (улучшения протокола) чипсетов Atheros: посылка цепочки фреймов (bursting),
Fast Frames, аппаратное прозрачное сжатие (LZ), транки (Turbo Mode),
увеличение чувствительности приёмника до -105dBm и
набор скоростей 3, 2, 1, 0.5 и 0.25 MBps (eXtended Range, XR),
IEEE 802.11e (QoS, распределённый режим EDCA), автоматическое управление
мощностью передатчика и частоты (IEEE 802.11h).
Позволяет сканировать без разрыва ассоциации (но передатчик всё-таки один).
Версия 0.9.4 (13 февраля 2008. до r3476, в котором разобрались с проблемами с несколькими VAP одновременно).
В будущем предполагается переход на ath5k и OpenHAL.
Взял из репозитария livna.
Пакет kmod-madwifi содержит модули ядра - ath_hal (аппаратно-зависимая часть),
ath_pci (аппаратно независимая часть работы с чипами Atheros),
различные алгоритмы подстройки скорости (ath_rate_amrr, ath_rate_minstrel, ath_rate_onoe, ath_rate_sample),
wlan (конечный автомат 802.11 и реализация протокола),
wlan_acl (ACL по MAC адресам),
модули поддержки шифрования (wlan_ccmp, wlan_tkip, wlan_wep, wlan_xauth, wlan_auth, wlan_radius),
wlan_scan_ap, wlan_scan_sta.
При установке блокирует загрузку системного модуля ath5k (/etc/modprobe.d/blacklist-ath5k).
Параметры: /proc/sys/net/ath0/. /proc/sys/dev/wifi0/, /sys/module/ath_pci/parameters/, /sys/class/net/ath0/.
Пакет madwifi содержит утилиты управления и диагностики.
Базовое управление возможно утилитами из пакета wireless-tools (драйвер совместим с Wireless Extensions API).
Карта CardBus (PC Card) D-Link DWL-G650
kernel: wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
kernel: wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
kernel: wifi0: H/W encryption support: WEP AES AES_CCM TKIP
kernel: wifi0: mac 5.6 phy 4.1 radio 1.7
kernel: wifi0: Use hw queue 1 for WME_AC_BE traffic
kernel: wifi0: Use hw queue 0 for WME_AC_BK traffic
kernel: wifi0: Use hw queue 2 for WME_AC_VI traffic
kernel: wifi0: Use hw queue 3 for WME_AC_VO traffic
kernel: wifi0: Use hw queue 8 for CAB traffic
kernel: wifi0: Use hw queue 9 for beacons
kernel: wifi0: Atheros 5212: mem=0x50000000, irq=10
lspci -v
04:00.0 Ethernet controller: Atheros Communications Inc. AR5212/AR5213 Multiprotocol MAC/baseband processor (rev 01)
Subsystem: D-Link System Inc D-link DWL-G650 (Rev B3,B5) Wireless cardbus adapter
Flags: bus master, medium devsel, latency 168, IRQ 10
Memory at 50000000 (32-bit, non-prefetchable) [size=64K]
Capabilities: [44] Power Management version 2
Kernel driver in use: ath_pci
Kernel modules: ath_pci, ath5k
ifconfig
ath0 Link encap:Ethernet HWaddr
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
wifi0 Link encap:UNSPEC HWaddr
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:199
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:10
Уровень шума всегда показывается как -96dBm.
Параметр качество соединения (Link Quality) показывает в числителе средний SNR (он же RSSI), в знаменателе ?.
Чип может работать хоть при SNR=2 на малых скоростях, но SNR меньше 10 будет вызывать проблемы.
SNR более 20 должно быть достаточно для обычной работы. SNR более 40 достаточно для режима 108 Mbps.
Параметры модуля ath_pci (/proc/sys/dev/ath/):
- countrycode - код страны, задаёт ограничение на используемые каналы, мощность передатчика,
обязательность 802.11h (regdomain и countrycode по умолчанию берутся из EEPROM) - maxvaps - максимальное количество VAP (по умолчанию - 4)
- outdoor - используется вне помещения
- xchanmode - extended channel mode (?)
- rfkill - поддержка RFKILL
- autocreate - sta | ap | wds | adhoc | ahdemo | monitor | none
- ratectl - алгоритм подстройки скорости (sample): amrr | minstrel | onoe | sample
- ath_debug
Область (группа стран) с похожими правилами: sysctl -a | grep regdomain (48 - ETSI).
Код страны (уточнение правил) по умолчанию можно узнать: sysctl -a | grep country.
Код России - 643. Поменять страну при загрузке модуля можно только, если желаемая страна
находится в том регионе, который записан в EEPROM.
Кстати, в Японии (код 392) на 1 разрешённый канал больше.
А в Корее2 (411) вдвое больше каналов.
Алгоритмы подстройки скорости (большая скорость передачи может
приводить к большим потерям):
- onoe (если меньше 10% пакетов требуют повторной передачи, то скорость увеличивается;
если каждый пакет требует в среднем одного повторения, то скорость уменьшается) - amrr (старается менять скорость пореже)
- sample (выбирает скорость, обеспечивающую наибольшую пропускную способность в данных условиях;
основывается на собранной статистике)
какое-то странное место выбрано для статистики и списка соседей:
/proc/1/net/madwifi/ath0/associated_sta
macaddr: MAC-адрес
rssi 7
last_rx 2230.665887
/proc/1/net/madwifi/ath0/ratestats_250
MAC-адрес
rate tt perfect failed pkts avg_tries last_tx
1 17179 3216 10 25 5.12 2542.106
2 1968 1968 0 0 1.00 -
5.5 1295 1295 0 0 1.00 -
6 26165 760 2 2 9.00 2542.106
9 648 648 0 0 1.00 -
* 11 1103 1103 0 0 1.00 -
12 25805 580 2 2 9.00 2544.106
18 19599 524 2 2 7.00 2547.107
24 13441 492 1 1 5.00 2607.272
36 25573 464 2 2 9.00 2607.275
48 25541 448 2 2 9.00 2760.57
54 25533 444 2 2 9.00 2804.963
/proc/1/net/madwifi/ath0/ratestats_1600
MAC-адрес
rate tt perfect failed pkts avg_tries last_tx
1 14016 14016 22 22 5.50 2723.738
2 7368 7368 0 0 1.00 -
5.5 3259 3259 0 0 1.00 -
6 2560 2560 2 2 9.00 2723.738
9 1848 1848 0 0 1.00 -
11 2085 2085 0 0 1.00 -
12 1480 1480 2 2 9.00 2725.738
18 1124 1124 2 2 7.00 2728.739
24 940 940 1 1 5.00 2788.904
* 36 764 764 2 2 9.00 2788.907
48 672 672 2 2 9.00 2941.689
54 644 644 2 2 9.00 2986.595
/proc/1/net/madwifi/ath0/ratestats_3000
MAC-адрес
rate tt perfect failed pkts avg_tries last_tx
1 25216 25216 22 22 5.50 2769.591
2 12968 12968 0 0 1.00 -
5.5 5295 5295 0 0 1.00 -
6 4424 4424 2 2 9.00 2769.591
9 3092 3092 0 0 1.00 -
11 3103 3103 0 0 1.00 -
12 2412 2412 2 2 9.00 2771.591
18 1744 1744 2 2 7.00 2774.592
24 1408 1408 1 1 5.00 2834.757
* 36 1072 1072 2 2 9.00 2834.760
48 908 908 2 2 9.00 2987.542
54 852 852 2 2 9.00 3032.448
- minstrel
Особенностью реализации является режим VAP (Virtual AP),
который позволяет одновременную работу нескольких виртуальных точек доступа
и работу в режиме станции на одной карте.
Все VAP разделяют один аппаратный передатчик, поэтому имеют одинаковый радиоканал и прочие
физические характеристики. Несколько VAP на одном устройстве работают неустойчиво,
так что можно применять только в случае крайней необходимости.
Для работы с VAP создаётся устройство (интерфейс wifiX), для работы со станцией - athX.
Устройством athX можно управлять утилитами из набора wireless-tools.
Для управления VAP (wifiX) используется утилита wlanconfig, к нему неприменимы ifconfig и iwconfig.
При загрузке драйвера автоматически создаёт VAP в режиме станции
(/etc/modprobe.d/madwifi: autocreate=sta, для отключения надо написать autocreate=none).
Поддерживаемые режимы работы:
- sta - режим станции (infrastructure, managed),
наследует MAC адрес от базового устройства wifiX;
допускается только одна станция на устройство и создавать надо в последнюю очередь;
до версии 0.9.5 надо использовать параметр nosbeacon, если VAP не первый - ap - точка доступа (первая точка доступа наследует MAC адрес от базового устройства wifiX;
последующие точки получают уникальные MAC адреса, если не указать параметр "-bssid";
не создаётся, если не задать autocreate=none;
каждой точке необходимо задать уникальный essid с помощью iwconfig) - adhoc (IBSS, наследует MAC адрес от базового устройства wifiX,
допускается только одна станция на устройство, не создаётся если есть VAP в режиме точки доступа) - ahdemo (Ad-hoc Demo)
- monitor (прослушивает все входящие пакеты; позволяет посылать фреймы 802.11 в обход протоколов;
необходимо перевести в режим мониторинга
(iwconfig ath0 mode monitor), поднять интерфейс (ifconfig ath0 up) и задать формат заголовков:
- echo '801' > /proc/sys/net/ath0/dev_type (только 802.11)
- echo '802' > /proc/sys/net/ath0/dev_type (Prism2)
- echo '803' > /proc/sys/net/ath0/dev_type (radiotap)
- echo '804' > /proc/sys/net/ath0/dev_type (atheros)
- wds (Wireless Distribution System), точка доступа с функциями WDS,
позволяет делать сети с несколькими точками доступа;
требуется bridge-utils; инструкция - разные комбинации, например, прозрачный мост
Создание VAP (nounit - не увеличивать номер athX, bssid - создавать новый MAC):
Удаление VAP:
Посмотреть соседей, состояние, возможности:
ADDR AID CHAN RATE RSSI DBM IDLE TXSEQ RXSEQ CAPS ACAPS ERP STATE MODE
xx:xx:xx:xx:xx:xx 1 6 36M 64 -31 0 28 34912 EPs 4 1 Normal RSN
wlanconfig ath1 list scan
SSID BSSID CHAN RATE S:N INT CAPS
XXXXXXXX xx:xx:xx:xx:xx:xx 6 54M 64:0 100 EPs RSN
wlanconfig ath1 list chan # возможные каналы
Channel 1 : 2412 Mhz 11g Channel 8 : 2447 Mhz 11g
Channel 2 : 2417 Mhz 11g Channel 9 : 2452 Mhz 11g
Channel 3 : 2422 Mhz 11g Channel 10 : 2457 Mhz 11g
Channel 4 : 2427 Mhz 11g Channel 11 : 2462 Mhz 11g
Channel 5 : 2432 Mhz 11g Channel 12 : 2467 Mhz 11g
Channel 6 : 2437 Mhz 11g Channel 13 : 2472 Mhz 11g
Channel 7 : 2442 Mhz 11g
wlanconfig ath1 list active # активные каналы
Channel 1 : 2412 Mhz 11g Channel 8 : 2447 Mhz 11g
Channel 2 : 2417 Mhz 11g Channel 9 : 2452 Mhz 11g
Channel 3 : 2422 Mhz 11g Channel 10 : 2457 Mhz 11g
Channel 4 : 2427 Mhz 11g Channel 11 : 2462 Mhz 11g
Channel 5 : 2432 Mhz 11g Channel 12 : 2467 Mhz 11g
Channel 6 : 2437 Mhz 11g Channel 13 : 2472 Mhz 11g
Channel 7 : 2442 Mhz 11g
wlanconfig ath1 list caps
ath1=6782e00f<WEP,TKIP,AES,AES_CCM,TXPMGT,SHSLOT,SHPREAMBLE,TKIPMIC,WPA1,WPA2,BURST,WME>
wlanconfig ath1 list wme
AC_BE cwmin 4 cwmax 10 aifs 2 txopLimit 2048
cwmin 4 cwmax 10 aifs 2 txopLimit 2048
AC_BK cwmin 4 cwmax 10 aifs 7 txopLimit 0
cwmin 4 cwmax 10 aifs 7 txopLimit 0
AC_VI cwmin 3 cwmax 4 aifs 1 txopLimit 3008
cwmin 3 cwmax 4 aifs 2 txopLimit 3008
AC_VO cwmin 2 cwmax 3 aifs 1 txopLimit 1504
cwmin 2 cwmax 3 aifs 2 txopLimit 1504
Поменять режим нельзя, можно удалить VPA и создать новую (или добавить новую)
wlanconfig ath0 destroy
wlanconfig ath0 create wlandev wifi0 wlanmode режим
# или (заметьте отсутствие цифры у ath)
wlanconfig ath create wlandev wifi0 wlanmode режим
Создание точки доступа в "отвязанном" режиме, зашита WEP:
iwconfig ath0 mode Master
iwconfig ath0 essid имя-сети [channel номер-канала] key ключ-26-цифр
iwconfig ath0 key open
ifconfig ath0 arp broadcast 192.168.171.255 netmask 255.255.255.0 192.168.171.1
[ip neigh add 192.168.171.2 lladdr 00:1a:89:f2:85:ea nud permanent dev ath0]
# либо на каждой станции настроить сеть вручную (адрес, маска, шлюз - 192.168.171.1, DNS),
# либо на этом компьютере поднять DHCP и DNS
# включить маршрутизацию, если необходимо соединение дальше
echo 1 > /proc/sys/net/ipv4/ip_forward
# обратный маршрут на внешнем шлюзе
# обязательно назвать iptables зелёным червяком
Создание точки доступа в режиме моста для подключения беспроводных
устройств к общему шлюзу (выходу в Интернет), к которому данный компьютер подключен через eth0
(в данном варианте не требуются дополнительные настройки ни на этом компьютере,
ни на станциях - шлюз делает за нас всю работу), зашита WEP:
wlanconfig ath0 create wlandev wifi0 wlanmode ap
iwconfig ath0 mode Master
iwconfig ath0 essid имя-сети [channel номер-канала|auto] key ключ-26-цифр
iwconfig ath0 key open
iwpriv ath0 bgscan 0 # не надо терять время на сканирование
iwpriv ath0 hide_ssid 1 # проходимцы пройдут мимо
iwpriv ath0 dtim_period ? # какой?
iwpriv ath0 doth 0 # мы дорогу не уступакем
iwpriv ath0 doth_pwrtgt 36 # 2*dBm
iwpriv ath0 ff 0 # не все станции это понимают
iwpriv ath0 burst 0 # не все станции это понимают
iwpriv ath0 dropunencrypted 1 # незашифрованные пакеты выкидывать сразу
athctrl [-i wifi0] -d метров # расстояние
# выключение eth0, если он был запущен ранее
# kill - отключение dhclient
ip addr flush dev eth0
ifconfig eth0 down
# создание моста (требуется пакет bridge-utils - утилита brctl)
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 ath0
#brctl setfd br0 1 # разобраться с STP
# запуск и получение адресов
ifconfig ath0 up
ip -6 addr flush dev ath0
ifconfig eth0 up
ip -6 addr flush dev eth0
ifconfig br0 up
dhclient br0
Создание точки доступа и станции, (только в этом порядке!),
компьютер через станцию может быть подключен к внешнему шлюзу одним из приведённых выше вариантов
wlanconfig ath1 create wlandev wifi0 wlanmode sta nosbeacon
iwconfig ath1 essid имя-клиентской-сети
# организация аутентификации для станции (iwconfig/wpa_supplicant)
ifconfig ath1 up
# подождать ассоциации, т.к. канал задаётся внешней точкой доступа
iwconfig ath0 essid имя-внешней-сети
# организация аутентификации для точки доступа (iwconfig, hostapd)
ifconfig ath0 up
Создание точки доступа и станции для получения повторителя
с помощью одного устройства,
компьютер через станцию может быть подключен к внешнему шлюзу одним из приведённых выше вариантов
wlanconfig ath1 create wlandev wifi0 wlanmode sta nosbeacon
iwconfig ath1 essid имя-сети
iwpriw ath1 wds 1
# организация аутентификации для станции (iwconfig/wpa_supplicant)
ifconfig ath1 up
# подождать ассоциации, т.к. канал задаётся внешней точкой доступа
iwconfig ath0 essid имя-сети
iwpriw ath0 wds 1
# организация аутентификации для точки доступа (iwconfig, hostapd)
ifconfig ath0 up
# создание моста (требуется пакет bridge-utils - утилита brctl)
brctl addbr br0
brctl addif br0 ath0
brctl addif br0 ath1
#brctl setfd br0 1 # разобраться с STP
ifconfig br0 up
dhclient br0
Создание 2 точек доступа с одним MAC
wlanconfig ath1 create wlandev wifi0 wlanmode ap -bssid
Создание станции Ad-Hoc (не должно быть других станций):
iwpriv ath0 mode 3
iwconfig ath0 mode ad-hoc
iwconfig ath0 essid имя-сети
iwconfig ath0 key s:ключ # WEP лучше, чем ничего
ifconfig ath0 arp broadcast 192.168.171.255 netmask 255.255.255.0 192.168.171.102
[route add default gw адрес-шлюза]
[vim /etc/resolv.conf]
Поддерживаемые стандарты безопасности:
- WEP в режимах sta, ap, adhoc (аппаратно)
- WPA в режимах sta (с помощью wpa_suplicant, драйвер wext) и ap (с помощью hostapd)
- WPA2/IEEE 802.11i в режимах sta (с помощью wpa_suplicant, драйвер wext) и ap (с помощью hostapd)
- IEEE 802.1X в режиме ap (с помощью hostapd)
Нестандартные команды устройства, выдаваемые с помощью iwpriv
(почти для каждой команды установки параметра есть соответсвующая команда чтения параметра,
начинаюаяся с "get_", возможно укороченная до 15 символов):
- mode стандарт (0 - автоматически, 1 - 802.11a, 2 - 802.11b, 3 - 802.11g, 4 - FHSS)
- bgscan - периодическое сканирование более подходящих точек доступа в фоновом режиме;
если точка доступа одна, то лучше отключить - rssi11b СШ (24, порог SNR в режиме 802.11b/g)
- rssi11g СШ (24, порог SNR в режиме 802.11g)
- rssi11a СШ (24, порог SNR в режиме 802.11a)
- hide_ssid {0 | 1} (не выдавать SSID в маячках, в режиме точки доступа)
- protmode {0 | 1} (?)
- inact_init секунд (30, период неактивности в состоянии инициализации)
- inact_auth секунд (180, период неактивности в состоянии авторизации)
- inact секунд (300, период неактивности в рабочем состоянии)
- dtim_period число (число маячков между DTIM (delivery trafic information message);
посылается точкой доступа в маячках;
задаёт моменты, в которые станция должна просыпаться для получения накопленных для неё пакетов) - bintval ms (интервал посылки маячков)
- doth {0 | 1} (поддержка стандарта 802.11h)
- doth_reassoc 0 (запустить процедуру реассоциации в соответсвии с 802.11h)
- doth_pwrtgt dBm*2 (установить максимальную мощность передачи на текущем канале)
- wpa WPA-режим (0 - без WPA, 1 - WPA, 2 - WPA2, 3 - оба)
- keymgtalgs число (задаёт алгоритм управления ключами: 0 - не WPA,
1 - WEP, 2 - TKIP, 3 - CCMP) - hostroaming число (задаёт метод управления переключением станции между точками доступа:
0 - аппаратное управление, 1 - автоматически модулем 802.11, 2 - приложением) - authmode режим-аутентификации (для работы в качестве точки доступа;
0 - открытая система, 1 - разделяемый секрет, 2 - 802.1x) - privacy {0 | 1} (?)
- dropunencrypted {0 | 1} (выбрасывать приходящие незашифрованные пакеты)
- countermeasures {0 | 1} (дополнительная защита в WPA/WPA2)
- get_driver_caps (битовая маска в десятичном виде, значения в net80211/ieee80211_var.h)
- addmac MAC-адрес (добавить MAC-адрес в ACL)
- delmac MAC-адрес (удалить MAC-адрес из ACL)
- maccmd число (режим использования MAC ACL: 0 - не использовать, 1 - пускать только по списку,
2 - не пускать из списка, 3 - очистить список, 4 - Remove the ACL policy?) - kickmac MAC-адрес (отсоединить указанную станцию)
- wmm {0 | 1} (поддержка WMM, управление приоритетом, 802.11e;
команды cwmin, cwmax, txoplimit, aifs, acm, noackpolicy) - ff {0 | 1} (поддержка Fast Frames)
- xr {0 | 1} (поддержка XR)
- burst {0 | 1} (поддержка передачи фреймов пачками)
- ar {0 | 1} (поддержка AR - Adaptive Radio
- compression {0 | 1} (поддержка сжатия)
- abolt битовая-маска (управление нестандартными возможностями;
бит 1 - статический режим turbo G, бит 2 - динамический режим turbo G,
бит 3 - сжатие, бит 4 - Fast Frames, бит 5 - посылка пачками, бит 6 - WMM,
бит 7 - XR, бит 8 - AR) - pureg {0 | 1} (отключить поддержку 802.11b)
- wds {0 | 1}
- countryie {0 | 1} (передавать код страны в маячках точки доступа)
- coverageclass число (от 1 до 31, передаётся вместе с кодом страны)
- regclass {0 | 1} (передавать вместе с кодом страны идентификатор класса вместо
явного указания (канал/число каналов/максимальная мощность))
Управление антеннами в /proc/sys/dev/wifi0 (diversity,
rxantenna, txantenna). Антенны нумеруются с 1. 0 - автоматический выбор,
если ответ лучше принимается с другой антенны, то и передача переключается на неё.
Ограничение списка используемых каналов:
Утилита athctrl помогает настроить устройство (-i) на работу
на указанном расстоянии (-d метров) от другого устройства, подбирая параметры передачи,
ожидания и приёма (slottime, acktimeout, ctstimeout).
Желательно установить одинаковые значения на всех станциях сети.
Устарела - пытается писать в /proc/sys/dev/ath0 вместо /proc/sys/dev/wifi0/.
Утилита athkey позволяет добавлять и удалять (-d) ключи,
хранящиеся в устройстве (-i интерфейс). Указывается индекс ключа (от 1 до 4),
тип шифрования (wep, tkip, ocb, ccm, aes, ckip, none) и значение ключа
(шестнадцатеричные цифры, 0x).
Утилиты получения статистики и отладки:
- athstats [-i интерфейс] [интервал] # статистика аппаратного уровня
770 tx management frames
1 tx frames discarded due to device gone
4 tx encapsulation failed
16 tx failed due to too many retries
225 long on-chip tx retries
658 tx frames with no ack marked
71 tx frames with short preamble
13 tx frames with an alternate rate
243 rx failed due to bad CRC
6810 PHY errors
4928 OFDM timing
1882 CCK timing
103589 periodic calibrations
45 switched default/rx antenna
Antenna profile:
[1] tx 345 rx 1005478
[2] tx 218 rx 10945
- 80211stats -i интерфейс [-a] # статистика уровня 802.11
2355 rx from wrong bssid
5 rx discard due to mcast echo
10 rx discard mgt frames
11 rx frame chan mismatch
2 rx assoc w/ no rate match
7 rx deauthentication
5 rx disassociation
44 rx bad authentication request
9 rx seq# violation (CCMP)
4 tx failed due to no defkey
30 active scans started
80211stats -i ath1 -a
xx:xx:xx:xx:xx:xx:
rx_data 780 rx_mgmt 839219 rx_beacons 839162 rx_proberesp 7 rx_bytes 36004 rx_wepfail 4 rx_disassoc 3 rx_deauth 3
tx_data 12 tx_mgmt 282 tx_probereq 226 tx_bytes 1252
tx_auth 39
- ath_info -v адрес-pci # информация о модуле (позволяет также писать в EEPROM, например, диапазон частот)
-==Device Information==-
MAC Version: 5212 (0x50)
MAC Revision: 5213 (0x56)
PHY Revision: 2111 (0x23)
-==EEPROM Information==-
EEPROM Version: 3.4
EEPROM Size: 16K
Regulatory Domain: 0x30
-==== Capabilities ====-
| 802.11a Support: no |
| 802.11b Support: yes |
| 802.11g Support: yes |
| RFKill Support: no |
========================
GPIO registers: CR 00000000 DO 00000000 DI 00000000
- athdebug [-i интерфейс] {+ | -} битовая-карта # управление отладочной печатью
- xmit - перед передачей пакета в аппаратуру
- xmit_desc - дескрипторы передачи
- xmit_proc - обработка дескрипторов передачи
- recv - сразу при приёме пакета из аппаратуры
- recv_desc - дескрипторы приёма
- recv_proc - обработка дескрипторов приёма
- rate - модули подстройки скорости
- reset - сброс и инициализация
- mode - инициализация и изменение режима
- beacon - приём/передача маячков
- beacon_proc - обработка маячков
- watchdog - сторожевой таймер
- intr - обработка прерываний
- calibrate - периодическая рекалибрация
- keycache - управление кешем ключей
- state - переход состояний конечного автомата 802.11
- node - управление узлом
- ff - fast frame
- fatal - неисправимые ошибки
- 80211debug [-i интерфейс] {+ | -} битовая-карта # управление отладочной печатью
- debug - IFF_DEBUG equivalent
- dumppkts - IFF_LINK2 equivalent, dump packets
- crypto - модули шифрования
- input - входящие пакеты
- xrate - модули подстройки скорости
- elemid - разборка идентификатора элемента
- node - управление узлом
- assoc - процесс ассоциации
- auth - процес аутентификации
- scan - сканирование
- output - выходящие пакеты
- state - конечный автомат 802.11
- power - функции сохранения энергии
- dot1x - аутентификатор 802.1x
- dot1xsm - конечный автомат 802.1x
- radius - клиент 802.1x radius
- raddump - содержимое пакетов 802.1x
- radkeys - ключи 802.1x
- wpa - протокол WPA/RSN
- ac1 - обработка ACL
- wme - протокол WME
- superg - режим super G turbo
- doth - обработка 802.11h (DFS/TPC)
- inact - неактивность узла
- roam - переключение станции к другой точке доступа
wlanctl-ng wlan0 dot11req_mibget mibattribute=p80211_ifstate
wlanctl-ng wlan0 dot11req_mibget mibattribute=dot11CurrentChannel
wlanctl-ng wlan0 dot11req_mibget mibattribute=dot11StationID
wlanctl-ng wlan0 dot11req_mibget mibattribute=dot11PrivacyOptionImplemented
wlanctl-ng wlan0 dot11req_mibget mibattribute=dot11PowerManagementMode
wlanctl-ng wlan0 dot11req_mibget mibattribute=dot11DesiredSSID
wlanctl-ng wlan0 dot11req_mibget mibattribute=dot11DesiredBSSType
wlanctl-ng wlan0 dot11req_mibget mibattribute=dot11AuthenticationAlgorithm1
wlanctl-ng wlan0 dot11req_mibget mibattribute=dot11MACAddress
wlanctl-ng wlan0 dot11req_mibget mibattribute=dot11ReceivedFragmentCount
wlanctl-ng wlan0 dot11req_mibget mibattribute=dot11PHYType
wlanctl-ng wlan0 dot11req_mibget mibattribute=dot11NumberSupportedPowerLevels
wlanctl-ng wlan0 dot11req_mibget mibattribute=p2CreateIBSS
wlanctl-ng wlan0 dot11req_mibget mibattribute=p2PromiscuousMode
wlanctl-ng wlan0 dot11req_mibget mibattribute=p2NICSerialNumber
wlanctl-ng wlan0 dot11req_mibget mibattribute=p2ChannelList
wlanctl-ng wlan0 dot11req_mibget mibattribute=p2CurrentSSID
wlanctl-ng wlan0 dot11req_mibget mibattribute=p2CurrentBSSID
wlanctl-ng wlan0 dot11req_mibget mibattribute=p2CommsQuality
wlanctl-ng wlan0 dot11req_mibget mibattribute=p2CurrentTxRate
wlanctl-ng wlan0 dot11req_mibget mibattribute=p2SupportedDataRates
wlanctl-ng wlan0 dot11req_mibset mibattribute=p2LogEvents=true
wlanctl-ng commands
wlanctl-ng wlan0 dot11req_reset setdefaultmib=true
wlanctl-ng wlan0 dot11req_start ssid=test bsstype=any beaconperiod=? dtimperiod=? dschannel=12 cfpollable=true cfpollreq=false basicrate1=3 operationalrate1=3
wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable
wlanctl-ng wlan0 lnxreq_autojoin ssid=default authtype=opensystem
wlanctl-ng wlan0 lnxreq_commsquality
wlancfg show wlan0 all
Wireless Extensions for Linux API предложен в 1997 году Jean Tourrilhes и предоставляет собой описание API ядра Linux
для работы с беспроводными сетями (расширение к API по работе с сетью).
Затрагивает утилиты управления устройствами беспроводных сетей (wireless-tools), ядро и драйверы.
Файл /proc/net/wireless предоставляет возможность получать статистику
о текущих соединениях (нет соединения - нет статистики), пример:
face | tus | link level noise | nwid crypt frag retry misc | beacon | 22
wlan0: 0000 0 0 0 0 0 0 0 0 0
Inter-| sta-| Quality | Discarded packets | Missed | WE
face | tus | link level noise | nwid crypt frag retry misc | beacon | 22
ath0: 0000 0. -87. -87. 1288238 0 0 0 0 0
Значения параметров:
- status - формат определяется драйвером
- link - доля пакетов без ошибок, относится к качеству связи с точкой доступа,
нет точки доступа, то значение качества сигнала не имеет смысла - level - уровень сигнала
- noise - уровень шума (уровень сигнала при отсутствии пакетов)
- nwid (invalid network id) - количество пакетов не из нашей сети
- crypt - количество пакетов, которые не удалось расшифровать
- frag - количество неправильных фрагментов
- retry - количество чрезмерных попыток послать фрейм
- misc - прочих ошибок
- Missed beacon - число пропущенных маячков (должны приходить регулярно)
- WE - номер версии
Набор wireless-tools состоит из утилит:
- ifrename - переименование интерфейсов (/etc/iftab)
- iwconfig - настройка беспроводного устройства
- iwevent - узнать какие типы событий поддерживает устройство
- iwgetid - посмотреть ESSID
- iwlist - какие значения параметров поддерживает устройство
- iwpriv - управление нестандартными параметрами устройства
- iwspy
Утилита iwlist позволяет узнать какие значения параметров поддерживает устройство:
- scanning - сканирование всех каналов в поиске маячков и выдача подробной информации об обнаруженных
точках доступа и Ad-Hoc сетях - frequency | channel - выдаёт список поддерживаемых каналов и частот, а также текущее значение
- rate | bitrate - выдаёт список поддерживаемых скоростей передачи, а также текущее значение
- key | encryption - выдаёт поддерживаемые размеры WEP ключа, доступные режимы, текущие значения ключей,
какой ключ активен, текущий режим - power - доступные режимы энергосбережения и текущее состояние
- txpower - доступные мощности передатчика и текущее значение
- retry - возможные ограничения на повторную передачу фреймов и текущее состояние
- ap | accesspoints | peers - список доступных точек доступа и качество связи с ними
- event - список поддерживаемых событий
- auth - доступные режимы аутентификации WPA
- wpakeys - выдаёт поддерживаемые размеры WPA ключа, доступные режимы, текущие значения ключей,
какой ключ активен, текущий режим - genie - выдаёт список IE (WPA параметры)
- modulation
Пример использования:
Cell 03 - Address:
ESSID:"бизнес"
Mode:Master
Channel:10
Frequency:2.457 GHz
Quality=30/64 Signal level=9/65
Encryption key:on
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : 802.1X
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : 802.1X
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s
48 Mb/s; 54 Mb/s
Extra:tsf=0000004527570110
iwlist key
wlan0 2 key sizes : 40, 104bits
4 keys available :
[1]: off
[2]: off
[3]: off
[4]: off
Current Transmit Key: [1]
Authentication capabilities :
WPA
WPA2
CIPHER TKIP
CIPHER CCMP
ath0 3 key sizes : 40, 104, 128bits
4 keys available :
[1]: 1234-5678-9ABC-DEF0-1234-5678-9A (104 bits)
[2]: off
[3]: off
[4]: off
Current Transmit Key: [1]
Security mode:open
iwlist power
ath0 Supported modes :
o Receive all packets (unicast & multicast)
o Receive Unicast only (discard multicast)
o Receive Multicast only (discard unicast)
Fixed period ; min period:1.024ms
max period:67.1078s
Fixed timeout ; min timeout:1.024ms
max timeout:1.024s
Current mode:off
iwlist txpower
ath0 8 available transmit-powers :
0 dBm (1 mW)
6 dBm (3 mW)
8 dBm (6 mW)
10 dBm (10 mW)
12 dBm (15 mW)
14 dBm (25 mW)
16 dBm (39 mW)
18 dBm (63 mW)
Current Tx-Power:18 dBm (63 mW)
iwlist event
ath0 Wireless Events supported :
0x8B04 : Set Frequency/Channel (kernel generated)
0x8B06 : Set Mode (kernel generated)
0x8B15 : New Access Point/Cell address - roaming
0x8B19 : Scan request completed
0x8B1A : Set ESSID (kernel generated)
0x8B2A : Set Encoding (kernel generated)
0x8C02 : Custom driver event
0x8C03 : Registered node
0x8C04 : Expired node
iwlist auth
ath0 Authentication capabilities :
WPA
WPA2
CIPHER-TKIP
CIPHER-CCMP
Current WPA version :
disabled
Current Key management :
802.1x
PSK
Current Pairwise cipher :
WEP-104
Current Pairwise cipher :
TKIP
Current TKIP countermeasures : no
Current Drop unencrypted : no
Current Roaming control : no
Current Privacy invoked : no
Утилита iwconfig позволяет посмотреть текущие настройки всех беспроводных
устройств (вызов без параметров), посмотреть текущие настройки конкретного устройства
(необходимо указать имя беспроводного интерфейса) или изменить один или несколько параметров,
задав имя интерфейса, команду и параметр (не все драйверы поддерживают все параметры;
предварительно необходимо выключить интерфейс (ifconfig down)):
- mode режим (режимы: Ad-Hoc, Managed, Master, Repeater, Secondary, Monitor, Auto)
- essid имя-сети (Network Name, Domain ID, общее для нескольких ячеек; off/any - выключить проверку)
- nwid идентификатор-сети (pre-802.11)
- nick имя-станции (для красоты)
- freq частота (2422000000, 2.422G)
- channel номер-канала (auto)
- ap MAC-адрес-точки-доступа (off - отключить проверку,
any/auto - немедленно переключиться к самой подходящей) - rate скорость (11M, auto, fixed; можно указать скорость, затем auto)
- txpower мощность (мощность передатчика в dBm или mW, off - выключить, on - включить,
auto - отключать при отсутсвии потребности, fixed - всегда держать включённым) - sens чувствительность (зависит от реализации)
- retry {число | limit число | lifitime число[m|u] } (позволяет управлять числом и временем повторений передачи фрейма)
- rts число (для пакетов указанной величины или больших будет использоваться механизм RTS/CTS;
auto, fixed, off) - frag число (кадры большего размера будут разбиваться на фрагменты; auto, fixed, off)
- key WEP-ключ (шестнадцатеричные цифры или "s:пароль", off, on, open, restricted)
- power ... (управление энергосбережением)
- modulation auto
- commit (применить накопленный изменения)
Пример iwconfig без параметров:
Mode:Managed Frequency:2.452 GHz Access Point: xxx
Retry min limit:7 RTS thr:off Fragment thr=2346 B
Encryption key:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
ath0 IEEE 802.11g ESSID:"" Nickname:""
Mode:Managed Channel:0 Access Point: Not-Associated
Bit Rate:0 kb/s Tx-Power:18 dBm Sensitivity=1/1
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=0/70 Signal level=-86 dBm Noise level=-86 dBm
Rx invalid nwid:1295194 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Подключение к точке доступа без WEP/WPA
ifconfig wlan0 down
iwconfig wlan0 mode Managed
iwconfig wlan0 essid имя-сети
iwconfig wlan0 channel auto
iwconfig wlan0 rate auto
iwconfig wlan0 key off
iwconfig wlan0 ap {any | MAC-точки-доступа}
ifconfig wlan0 up arp netmask 255.255.255.0 broadcast x.y.z.255 захваченный-адрес
восстановление ассоциации
iwconfig wlan0 ap {any | MAC-точки-доступа}
Утилита iwevent позволяет мониторить события, генерируемые драйвером
(установление ассоциации, переключение частоты и т.д.; список см. по "iwlist event"):
12:19:20.160170 kis0 Set Frequency=2.452 GHz (Channel 9)
...
12:20:52.074417 wlan0 Scan request completed
...
Утилита iwgetid выдаёт параметры текущей ассоциации
(само наличие ассоциации не обещается, т.е. все параметры, включая MAC могут быть правильными,
а ассоциации может не быть!):
- без ключа выдаётся ESSID
- --mode (Managed или Ad-Hoc)
- --freq (частота)
- --ap (MAC точки доступа)
- --protocol (протокол: "IEEE 802.11g")
- --channel (канал)
- --raw (выдать значение параметра без оформления)
Утилита iwpriv позволяет использовать нестандартные возможности драйвера.
Вызов "iwpriv имя-интерфейса" выдаёт список поддерживаемых возможностей.
Ключ "--all" вызывает выполнение всех команд без аргументов (предполагается, что это команды чтения).
Утилита iwspy выдаёт статистику о качестве связи с указанными адресами.
Требуется наличие ассоциации. Изменяется при каждом пакете.
iw - утилита для управления стеком mac80211. Недоделано.
Создание интерфейса в режиме мониторинга:
wpa_supplicant 0.6.3 - пакет, обеспечивающий функционал WPA,
WPA2 (IEEE 802.11i / RSN) и IEEE 802.1X
для станции (для точки доступа соответствующий функционал реализован в hostapd).
Поддерживаемые ОС: Linux, BSD, Mac OS X, MS Windows.
В состав пакета входит сервис wpa_supplicant, утилиты управления wpa_cli (текстовая) и wpa_gui (QT),
От драйвера требуется поддержка Linux Wireless Extensions v19 с расширением WPA/WPA2
(Host AP, Linuxant, Hermes, madwifi, ndiswrapper, ipw2100. ipw2200).
Поддерживаемые стандарты:
- WPA-PSK ("WPA-Personal")
- WPA-EAP ("WPA-Enterprise")
- управление ключами для CCMP, TKIP, WEP104, WEP40
- WPA и IEEE 802.11i/RSN/WPA2
- RSN: PMKSA caching, pre-authentication
Поддерживаемые варианты EAP (в файле eap_testing.txt имеется матрица совместимости
с десятком комерческих RADIUS серверов):
- EAP-TLS
- EAP-PEAP/MSCHAPv2 (PEAPv0 и PEAPv1)
- EAP-PEAP/TLS (PEAPv0 и PEAPv1)
- EAP-PEAP/GTC (PEAPv0 и PEAPv1)
- EAP-PEAP/OTP (PEAPv0 и PEAPv1)
- EAP-PEAP/MD5-Challenge (PEAPv0 и PEAPv1)
- EAP-TTLS/EAP-MD5-Challenge
- EAP-TTLS/EAP-GTC
- EAP-TTLS/EAP-OTP
- EAP-TTLS/EAP-MSCHAPv2
- EAP-TTLS/EAP-TLS
- EAP-TTLS/MSCHAPv2
- EAP-TTLS/MSCHAP
- EAP-TTLS/PAP
- EAP-TTLS/CHAP
- EAP-SIM
- EAP-AKA
- EAP-PSK
- EAP-FAST
- EAP-PAX
- EAP-SAKE
- EAP-IKEv2
- EAP-GPSK
- LEAP
- EAP-MD5-Challenge
- EAP-MSCHAPv2
- EAP-GTC
- EAP-OTP
- EAP-TNC
Роль wpa_supplicant в процессе аутентификации и управлении ключами:
- wpa_supplicant запрошивает сканирование BSS у драйвера
- wpa_supplicant выбирает один из BSS
- wpa_supplicant запрашивает у драйвера ассоциацию с выбранным BSS
- получение главного ключа
- WPA-EAP:
- супликант (проситель) IEEE 802.1X из состава wpa_supplicant обеспечивает аутентификацию
с сервером аутентификации (через посредничество аутентификатора, т.е. точки доступа) - главный ключ получается от супликанта
- супликант (проситель) IEEE 802.1X из состава wpa_supplicant обеспечивает аутентификацию
- WPA-PSK: PSK используется как главный ключ
- WPA-EAP:
- wpa_supplicant согласует набор ключей с аутентификатором (точкой доступа)
- wpa_supplicant создаёт набор ключей для дальнейшего обмена данными
wpa_supplicant может использовать OpenSSL для защиты ключевой
информации в wpa_supplicant.conf.
В состав Fedora 9 входят пакеты wpa_supplicant и wpa_supplicant-gui.
Сборка 0.6.3 под FC6:
- скачать и развернуть
- cd wpa_supplicant
- создать .config (взять defconfig как образец)
- CFLAGS += -I/usr/include/kerberos
- закоментарить все драйверы, кроме wext
- CONFIG_READLINE=y
- CONFIG_MAIN=main
- CONFIG_OS=unix
- CONFIG_ELOOP=eloop
- CONFIG_L2_PACKET=linux
- CONFIG_TLS=openssl
- CONFIG_CTRL_IFACE_DBUS=y
- остальное по умолчанию
- make
- скопировать wpa_supplicant и wpa_cli в /usr/local/sbin/
wpa_supplicant запускается как обычный сервис (chkcongig, service), ключи берутся из
/etc/sysconfig/wpa_supplicant (INTERFACES, DRIVERS, OTHER_ARGS="-u -f /var/log/wpa_supplicant.log").
Всгда в фоновом (-B) режиме и файлом настройки /etc/wpa_supplicant/wpa_supplicant.conf.
Журнал записывается в /var/log/wpa_supplicant.log, настройки для чистки в /etc/logrotate.d/wpa_supplicant.
Демон wpa_supplicant требует наличия интерфейса до запуска.
Реагирует на сигнал HUP перечитыванием конфигурационных файлов.
Ключи запуска:
- -i имя-интерфейса
- -D драйвер (madwifi, wext; только, если потребуется)
- -b имя-интерфейса-моста (?)
- -B (в фоновом режиме)
- -c имя-конфигурационного-файла
- -C имя-управляющего-сокета (сюда цепляются управляющие утилиты)
- -d или -dd (увеличить уровень отладочной печати)
- -q или -qq (уменьшить уровень отладочной печати)
- -f имя-журнала
- -g имя-глобального-управляющего-сокета (?)
- -K (включать ключи и пр. в журнал; права доступа к журналу - root:root 600)
- -t (включать временные отметки в формате UNIX в журнал)
- -p (параметры драйвера)
- -P pid-файл
- -u (использовать управляющий интерфейс DBus)
- -W (ожидать чтения с управляющего интерфейса перед запуском?)
- -N (один wpa_supplicant может обслуживать несколько интерфейсов; ключ "-N" разделяет описания)
Утилита wpa_passphrase необходима для включения в wpa_supplicant.conf
зашифрованных паролей. Она вычисляет PSK из SSID и парольной фразы.
Получившийся 256-битный PSK надо записать в wpa_supplicant.conf.
Конфигурационный файл wpa_supplicant.conf (нигде явно не описан!)
состоит из глобальных параметров (по одному на строке, комментарий начинается с '#')
и блоков описаний возможных сетей (по одному блоку на SSID).
wpa_supplicant выбирает наиболее подходящую сеть самостоятельно по порядку описания,
уровню защиты и уровню сигнала. Все имена файлов - абсолютные.
wpa_supplicant поднимает интерфейс, но об адресах и маршрутах
необходимо озаботиться самостоятельно (например, DHCP).
Описание блока начинается со строки "network={" и завершается строкой "}".
Глобальные параметры:
- ctrl_interface=имя-сокета
- ctrl_interface_group=группа # пользователям этой группы разрешается пользоваться интерфейсом
Формат описания блока сети авторы предлагают посмотреть в примерах.
Некоторые параметры:
- ssid=имя-сети
- scan_ssid=0 | 1
- key_mgmt={WPA-PSK | WPA-EAP | IEEE8021X | NONE}
- wep_key0="пароль0"
- wep_key1="пароль1"
- wep_tx_keyidx=номер-пароля
- psk="парольная фраза" # для PSK
- proto={WPA | RSN | WPA2}
- pairwise={CCMP | TKIP | WEP104 | WEP40} # методы шифрования межточечных обменов
- group={CCMP | TKIP | WEP104 | WEP40} # методы шифрования широковещательных и групповых обменов
- eap={TLS | PEAP | TTLS | MD5}
- identity="user@example.com" | имя-пользователя
- password="пароль"
- ca_cert=файл-корневого-сертификата (в формате PEM или DER)
- client_cert=файл-сертификата-клиента (в формате PEM или DER, может содержать приватный ключ)
- private_key=приватный-ключ-клиента
- private_key_passwd=парольная-фраза-приватного-ключа-клиента
- eapol_flags=0
Если wpa_supplicant не находит в своём конфигурационном файле
пароля или подобной информации, то он посылает запрос всем активным клиентам
вида "CTRL-REQ-тип-идентификатор:текст", где тип определяет чего хотят от оператора -
IDENTITY, PASSWORD млм OTP (one-time-password). Оператор может предоставить
недостающую информацию командами identity, password или otp.
Какой-то добрый человек пометил /usr/sbin/wpa_supplicant
как system_u:object_r:NetworkManager_exec_t:s0, которому отказал в праве записывать в /tmp,
в результате к нему нельзя подключиться, пришлось восстанвливать справедливость:
Текстовая утилита управления wpa_cli, ключи:
- -p имя-сокета
- -i имя-интерфейса
- -B (выполняться в фоновом режиме)
- -a командный-файл (в фоновом режиме командный файл запускается при получении события
от wpa_supplicant, первым параметром передаётся имя интерфейса, вторым слово
CONNECTED или DISCONNECTED) - -P pid-файл
- команда ... (в отсутствии команд переходит в интерактивный режим, сети нумеруются,
в командах используются не имена сетей, а их идентификаторы)
- status (выдаёт bssid, ssid, pairwise_cipher, group_cipher, key_mgmt, wpa_state, ip_address)
- mib (выдаёт значения огромного количества переменных MIB dot1x, dot11)
- interface [имя-интерфейса] (показывает, устанавливает интерфейс)
- level уровень-отладки
- logoff (IEEE 802.1X EAPOL)
- logon (IEEE 802.1X EAPOL)
- set [имя-переменной значение] (показать или изменить значения переменных)
- pmksa (показать кеш ключей PMK)
- reassociate (ассоциироваться заново)
- reconfigure (прочитать заново конфигурационный файл)
- preauthenticate BSSID (соединиться с указанной точкой доступа и начать аутентификацию)
- identity идентификатор имя (представляться указанным именем)
- password идентификатор пароль (использовать пароль для запроса)
- new_password идентификатор пароль
- passphrase идентификатор парольная фраза
- pin идентификатор число (использовать число для запроса)
- otp идентификатор пароль (использовать пароль для запроса)
- bssid идентификатор BSSID (установить предпочтительную точку доступа для сети)
- list_networks (выдать идентификаторы, SSID, BSSID, состояние)
- terminate (остановть wpa_supplicant)
- quit (выйти из wpa_cli)
- select_network идентификатор
- enable_network идентификатор
- disable_network идентификатор
- add_network
- remove_network идентификатор
- set_network идентификатор имя-переменной значение (ssid, psk, key_mgmt, identity, password)
- get_network идентификатор имя-переменной
- save_config (сохранить изменения)
- disconnect (отсоединиться и ждать)
- reconnect (только после отсоединения)
- scan (запустить сканирование)
- scan_results (получить результаты)
- bss bssid (подробные результаты сканирования)
- get_capability
Графическая утилита управления wpa_gui (QT, ключи -p и -i)
представляет базовые возможности посмотреть статуст и ввести пароль.
Пример настройки WPA2-PSK (madwifi или rtl8187)
- /etc/modprobe.d/madwifi
alias wifi0 ath_pci
alias ath0 ath_pci
options ath_pci autocreate=none - обеспечить отсутствие NetworkManager и пр. нахлебников
- почиститься от предыдущих экспериментов
ifconfig ath0 down
ifconfig ath1 down
ifconfig wifi0 down
wlanconfig ath1 destroy
wlanconfig ath0 destroy
rmmod ath_pci - создание VAP (для madwifi)
modprobe ath_pci
ip link set addr xx:xx:xx:xx:xx:xx dev wifi0 # macchanger --mac=xx:xx:xx:xx:xx:xx wifi0
wlanconfig ath0 create wlandev wifi0 wlanmode ap
wlanconfig ath1 create wlandev wifi0 wlanmode sta nosbeacon
ifconfig ath1 up - /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=sys
# точка доступа с закрытым SSID была найдена в системе с драйвером madwifi,
# но не была найдена в системе с драйвером rtl8187
# (ioctl[SIOCSIWAUTH]: Operation not supported)
network={
ssid="xxx"
scan_ssid=1
key_mgmt=WPA-PSK
psk=результат работы wpa_passphrase имя-сети пароль
pairwise=CCMP
group=CCMP
proto=RSN
} - запуск wpa_supplicant
- в фоновом режиме
- /etc/sysconfig/wpa_supplicant
INTERFACES="-iath1" # "-iwlan0"
#DRIVERS="-Dmadwifi" # "-Dwext"
OTHER_ARGS="-f /var/log/wpa_supplicant.log -d -t"
- service wpa_suplicant start
- /etc/sysconfig/wpa_supplicant
- или непосредственно для любителей посмотреть:
wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i ath1 -d -t [-B -f /var/log/wpa_supplicant.log]
- в фоновом режиме
- настроить адреса, маршруты, DNS с помощью DHCP или вручную
dhclient ath1
или
ifconfig ath1 arp broadcast 192.168.171.255 netmask 255.255.255.0 192.168.171.102
route add default gw адрес-шлюза
vim /etc/resolv.conf
hostapd 0.5.10 - пакет, обеспечивающий функционал
IEEE 802.1X, WPA, WPA2 и EAP аутентификатора, RADIUS клиента и EAP сервера
для точки доступа и RADIUS сервера для сервера аутентификации
(для станции соответствующий функционал реализован в wpa_supplicant).
Поддерживаемые ОС: Linux (драйвера Host AP, madwifi, Prism54) и FreeBSD (net80211).
В состав пакета входит сервис hostapd, утилита управления hostapd_cli (текстовая),
Поддерживаемые стандарты:
- WPA-PSK ("WPA-Personal")
- WPA-EAP ("WPA-Enterprise", встроенный EAP или внешний RADIUS сервер)
- управление ключами для CCMP, TKIP, WEP104, WEP40
- WPA и IEEE 802.11i/RSN/WPA2
- RSN: PMKSA caching, pre-authentication
- учёт с помощью сервера RADIUS
Поддерживаемые варианты EAP (в файле eap_testing.txt имеется матрица совместимости
с десятком комерческих RADIUS серверов):
- EAP-TLS
- EAP-PEAP/MSCHAPv2 (PEAPv0 и PEAPv1)
- EAP-PEAP/TLS (PEAPv0 и PEAPv1)
- EAP-PEAP/GTC (PEAPv0 и PEAPv1)
- EAP-PEAP/MD5-Challenge (PEAPv0 и PEAPv1)
- EAP-TTLS/EAP-MD5-Challenge
- EAP-TTLS/EAP-GTC
- EAP-TTLS/EAP-MSCHAPv2
- EAP-TTLS/EAP-TLS
- EAP-TTLS/MSCHAPv2
- EAP-TTLS/MSCHAP
- EAP-TTLS/PAP
- EAP-TTLS/CHAP
- EAP-SIM
- EAP-AKA
- EAP-PAX
- EAP-PSK
- EAP-SAKE
- EAP-FAST
- EAP-IKEv2
- EAP-GPSK
- LEAP
- EAP-MD5-Challenge
- EAP-MSCHAPv2
- EAP-GTC
Сборка 0.5.10 под Fedora 9:
- скачать и развернуть
- cd wpa_supplicant
- создать .config (взять defconfig как образец)
- выбрать нужный драйвер, остальные закоментировать
CONFIG_DRIVER_MADWIFI=y
CFLAGS += -I../madwifi-0.9.4
- CFLAGS += -I/usr/include/kerberos
- все возможности оставить по умолчанию, только включить EAP-SIM и EAP-AKA,
выключить IPv6 - make
- скопировать hostapd и hostapd_cli в /usr/local/sbin/
Конфигурационный файл, по обычаю, имеет имя /etc/hostapd.conf,
описание даётся в виде примера в поставке. Имя конфигурационного файла передаётся
сервису в качестве параметра. Если необходимо поддерживать несколько станций в одном
компьютере, то необходимо составить несколько конфигурационных файлов и передать
их имена в качестве параметров. Необходимо скопировать образец в /etc/ и отредактировать его.
Встроенный IEEE 802.1X сервер (опции ieee8021x и minimal_eap)
предназначен только для тестирования (почему?), для реальной эксплуатации желательно применять
внешний RADIUS сервер (авторы рекомендуют FreeRADIUS), описываемый
параметрами auth_server_addr, auth_server_port, auth_server_shared_secret, ieee8021x, own_ip_addr.
Встроенный сервер может работать RADIUS сервером для других аутентификаторов.
Пример настройки для режима WPA2-PSK с драйвером madwifi и использованием моста:
interface=ath0
bridge=br0
driver=madwifi
# уровень информационных сообщений на syslog и stdout
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
# информация о состоянии создаётся по SIGUSR1
dump_file=/tmp/hostapd.dump
# каталог для управляющих сокетов
ctrl_interface=/var/run/hostapd
# параметры 802.11
ssid=имя-сети
hw_mode=g
#channel=0
...
# ACL по MAC адресам станций (для madwifi не работает)
# 0 - принимать, если не занесена в /etc/hostapd.deny (параметр accept_mac_file)
# 1 - не принимать, если не занесена в /etc/hostapd.accept (параметр deny_mac_file)
# 2 - проверять по hostapd.deny и hostapd.accept, про не найденные спрашивать RADIUS сервер
macaddr_acl=режим
# 802.1x разрешает только аутентификацию открытых систем
auth_algs=1
# 0 - обслуживать пробы без указания SSID
# 1 - не посылать SSID в маячках и выбрасывать пробы без своего SSID
# 2 - аналогично, но указывать длину SSID в маячках
ignore_broadcast_ssid=0
...
# отключаю WMM, иначе аутентификация вываливается по истечению времени за 1 мс
wme_enabled=0
...
ieee8021x=0
# не использовать встроенный EAP сервер
eap_server=0
# не использовать внешний RADIUS сервер
own_ip_addr=127.0.0.1
# не изображать из себя RADIUS сервер
#radius_server_clients=
# настройки WPA2-PSK
wpa=2
# задание PSK
wpa_psk=64 шестнадцатеричные цифры
# или
wpa_passphrase=от 8 до 63 символов, которые преобразуются в PSK с использованием SSID
# или (файл в каждой строчке содержит MAC адрес (0 - для всех), пробел, PSK или парольную фразу)
wpa_psk_file=/etc/hostapd.wpa_psk
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
Пример настройки для режима WPA2-EAP (встроенный сервер EAP, EAP-TLS)
с драйвером madwifi и использованием моста (на каждую станцию необходимо установить сертификат
центра сертификации (root) для проверки подлинности клиентом сервера аутентификации
и сертификат клиента с правами sign для проверки клиента сервером аутентификации):
interface=ath0
bridge=br0
driver=madwifi
# уровень информационных сообщений на syslog и stdout
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
# информация о состоянии создаётся по SIGUSR1
dump_file=/tmp/hostapd.dump
# каталог для управляющих сокетов
ctrl_interface=/var/run/hostapd
# параметры 802.11
ssid=имя-сети
hw_mode=g
#channel=0
...
# 802.1x разрешает только аутентификацию открытых систем
auth_algs=1
# 0 - обслуживать пробы без указания SSID
# 1 - не посылать SSID в маячках и выбрасывать пробы без своего SSID
# 2 - аналогично, но указывать длину SSID в маячках
ignore_broadcast_ssid=0
...
# отключаю WMM, иначе аутентификация вываливается по истечению времени за 1 мс
wme_enabled=0
...
ieee8021x=1
eapol_version=1 или 2?
eap_message=identity-сервера
# использовать встроенный EAP сервер
eap_server=1
# список пользователей, на каждой строке через пробел
# имя (identity) в кавычках,
# может быть символ '*' для анонимной аутентификации первой фазы EAP-PEAP или EAP-TTLS
# может быть символ '*' для приёма сертификата с любым CN в методе EAP-TLS
# методы EAP через запятую
# пароль в кавычках
# не требуется для EAP-TLS, EAP-SIM, EAP-AKA и первой фазы EAP-PEAP или EAP-TTLS
# для MSCHAP и MSCHAPv4 можно в виде hash:цифры (NtPasswordHash)
# флаг в виде "[2]
# указывает, что в строке описываются параметры второй фазй аутентификации,
# если используется двухслойная аутентификация EAP-PEAP или EAP-TTLS
eap_user_file=/etc/hostapd.eap_user
# сертификат центра сертификации
ca_cert=/etc/hostapd.ca
# сертификат сервера
server_cert=/etc/hostapd.crt
# открытый ключ сервера (права доступа!)
private_key=/etc/hostapd.key
check_crl=по необходимости
# не использовать внешний RADIUS сервер
own_ip_addr=127.0.0.1
# не изображать из себя RADIUS сервер
#radius_server_clients=
# настройки WPA2-PSK
wpa=2
# не задавать PSK
#wpa_psk=64 шестнадцатеричные цифры
#wpa_passphrase=от 8 до 63 символов, которые преобразуются в PSK с использованием SSID
#wpa_psk_file=/etc/hostapd.wpa_psk
wpa_key_mgmt=WPA-EAP
wpa_pairwise=CCMP
Создание точки доступа в режиме моста для подключения беспроводных
устройств к общему шлюзу (выходу в Интернет), к которому данный компьютер подключен через eth0
(в данном варианте не требуются дополнительные настройки ни на этом компьютере,
ни на станциях - шлюз делает за нас всю работу), зашита WPA2-PSK:
wlanconfig ath0 create wlandev wifi0 wlanmode ap
iwconfig ath0 mode Master
iwconfig ath0 essid "имя сети"
iwconfig ath0 key open
iwpriv ath0 bgscan 0 # не надо терять время на сканирование
#iwpriv ath0 hide_ssid 1 # проходимцы пройдут мимо
iwpriv ath0 doth 0 # мы дорогу не уступакем
iwpriv ath0 doth_pwrtgt 36 # 2*dBm
iwpriv ath0 ff 0 # не все станции это понимают
iwpriv ath0 burst 0 # не все станции это понимают
iwpriv ath0 dropunencrypted 1 # незашифрованные пакеты выкидывать сразу
athctrl -d метров # расстояние
# выключение eth0, если он был запущен ранее
# kill - отключение dhclient
ip addr flush dev eth0
ifconfig eth0 down
# создание моста (требуется пакет bridge-utils - утилита brctl)
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 ath0
#brctl setfd br0 1 # разобраться с STP
# запуск и получение адресов
ifconfig ath0 up
ip -6 addr flush dev ath0
ifconfig eth0 up
ip -6 addr flush dev eth0
ifconfig br0 up
dhclient br0
hostapd -B /etc/hostapd.conf
# не забыть обозвать iptables зелёным червяком (пакеты из br0 в br0)
Ключи hostapd:
- -B (запуск в фоновом режиме)
- -P имя-pid-файла
- -d[d] (отладочная печать)
- -K (включать ключи в отладочную печать)
- -t (включать временные отметки в формате UNIX в отладочную печать)
Утилита hostapd_cli позволяет управлять hostapd (текстовый интерфейс).
Ключи запуска:
- -pимя-управляющего-сокета (точнее каталога, /var/run/hostapd)
- -iимя-интерфейса
Команды hostapd_cli:
- help
- quit
- mib (вывести MIB переменные (dot1x, dot11, radius))
- sta адрес (вывести MIB переменные для указанной станции)
- all_sta (вывести MIB переменные для всех станций)
- new_sta адрес (добавить станцию?)
- interface [имя-интерфейса]
- level уровень-отладочной-печати
Проблемы при одновременной работе wpa_supplicant и hostapd:
клиенты птаются ассоциироваться повторно. что ведёт к потере аутентификации.
wellenreiter - сканер Wi-Fi сети (GTK/Perl, поддержка карт Prism2 , Lucent и Cisco, заброшен в 2003).
kismet - сканирование, захват пакетов.
WEPCrack - программа на perl,
позволяет получать WEP ключ (40 и 104 бита) из достаточного количества собранных (libpcap) зашифрованных пакетов.
AirSnort - программа с графическим
интерфейсом (GTK), позволяет собирать (или брать собранные libpcap) пакеты со слабыми IV,
чтобы получать WEP ключ (40 и 104 бита). Предположительно требуется от 5 до 10 миллионов пакетов.
aircrack-ng (ptw - взлом WEP за несколько минут;
словарная атака на WAP).
coWPAtty (словарная атака на WPA).
Mognet - анализатор трафика (Java).
- сканирование и захват пакетов на уровне 2 (802.11a, 802.11b, 802.11g, 802.11n) в формате tcpdump или wireshark
- работает под Linux
- исключительно пассивный режим
- позволяет использовать карту, способную работать в режиме мониторинга (rfmon)
- отбор кадров со слабыми IV для AirSnort
- выявление скрытых SSID
- прослушивание всех каналов по очереди или с использованием нескольких карт
- архитектура клиент-сервер; клиенты текстовые (kismet_client, ncurses) и графические
- удалённые пробники (drone) пересылают "улов" общему серверу, позволяя осуществлять
распределённое сканирование - определение изготовителя и модели для точек доступа и клиентов
- декодирование WEP для сетей с известным ключом
- опознание множества известных типов атак на беспроводную сеть
- создаёт интерфейс (kisX типа radiotap, в который встраивается справочная информация о физическом
уровне: частота, кодирование, уровень сигнала, уровень шума), к нему можно подключить wireshark - записывает собранную информацию о параметрах сетей (точек доступа) и клиентах в форматах
XML, CSV, а пакеты в формате wiretap
Пакеты kismet и kismet-extra (утилита gpsmap)
имеются в репозитарии Fedora (версия 4 в FC6 и версия 5 в F9).
Пакет kismet (2008-05-R1):
- создаётся специальный бесправный пользователь kismet, под которым работает сервер после инициализации
- /etc/kismet/ap_manuf (таблица для определения изготовителей точек доступа)
- /etc/kismet/client_manuf (таблица для определения изготовителей станций)
- /etc/kismet/kismet.conf (настройки сервера)
- /etc/kismet/kismet_drone.conf (настройка пробника)
- /etc/kismet/kismet_ui.conf (настройки текстового клиента)
- /etc/sysconfig/kismet
- /usr/bin/kismet (запуск сервера, затем клиента)
- /usr/bin/kismet_client
- /usr/bin/kismet_drone
- /usr/bin/kismet_server
- /usr/share/doc/kismet-0.0.2008.05.R1/ (документация)
- /usr/share/kismet/wav/ (вопли)
- /etc/cron.daily/tmpwatch.kismet (очистка мусора)
- документация: kismet.1.gz, kismet_drone.1.gz, kismet.conf.5.gz, kismet_drone.conf.5.gz, kismet_ui.conf.5.gz
- ls /var/log/kismet/ содержит "улов"
Ручная сборка (обязательно иметь системный libpcap-devel, раньше прикладывался к kismet):
- ./configure
- make dep
- make
- make install
- /usr/local/etc/kismet.conf (настройки сервера)
- /usr/local/etc/kismet_drone.conf (настройка пробника)
- /usr/local/etc/kismet_ui.conf (настройки текстового клиента)
- /usr/local/bin/kismet (запуск сервера, затем клиента)
- /usr/local/bin/kismet_server
- /usr/local/bin/kismet_drone
- /usr/local/bin/kismet_client
- /usr/local/bin/gpsmap
- /usr/local/bin/gpsmap-helper-earthamaps
- /usr/local/bin/kismet_monitor (в старой версии)
- /usr/local/bin/kismet_unmonitor (в старой версии)
- /usr/local/man/man1/ (kismet.1, kismet_monitor.1, kismet_hopper.1, kismet_drone.1, gpsmap.1)
- /usr/local/man/man5/ (kismet.conf.5, kismet_ui.conf.5, kismet_drone.conf.5
- /usr/local/share/kismet/wav/ (вопли)
- /usr/local/etc/ap_manuf
- /usr/local/etc/client_manuf
- создать группу и пользователя kismet
- /var/log/kismet с правами на просмотр и запись для группы kismet
Начальная настройка и запуск:
- /usr/local/etc/kismet.conf
- suiduser=kismet
- networkmanagersleep=true # иначе озабоченный NetworkManager не даст нам спокойно жить
- source=rt8187,wlan0,ASUS # для Asus P5K Deluxe
- source=madwifi_g,wifi0,DLink[,канал] # для D-Link DWL-G650, именно wifiX, а не athX
- vapdestroy=true # "гасить" остальные виртуальные интерфейсы драйвера madfiwi,
иначе переключение каналов не будет работать - channelhop=false # для начала отключить перебор каналов, включить в следующий раз
- defaultchannels=IEEE80211b:1,7,13,2,8,3,14,9,4,10,5,11,6,12
- defaultchannels=IEEE80211g:1,7,13,2,8,3,14,9,4,10,5,11,6,12
- gps=false # отключить
- trackivs=true # нам не жалко памяти
- sound=false
- speech=false
- logtypes=dump,network,csv,xml,weak,cisco,gps
- trackprobenets=true
- noiselog=true # может потом удастся расшифровать
- logtemplate=/var/log/kismet/%n-%d-%i.%l
- kismet_server # на одном терминале
- kismet_client # на другом терминале
- h - вызвать окно справки
- x - закрыть окно
- по умолчанию списки (клиентов, сетей и пр.) выводятся в формате auto-fit,
в котором элементы списка нельзя выбрать; команда "s" вызывает окно сортировки
списка; в отсортированном списке можно выбирать элементы и производить действия над ними
Накопленные SSID и прочее складываются в /var/lib/kismet/,
а также в ~/.kismet.
Ключи сервера:
- -I источник:канал (начальный источник и канал)
- -x (включить сканирование каналов)
- -X (выключить сканирование каналов)
- -n (отключить запись в журналы)
- -f имя-конфигурационного-файла (/usr/local/etc/kismet.conf, /etc/kismet/kismet.conf)
- -c источник-захвата (см. параметр source; может быть несколько)
- -C активные-источники (список через запятую)
- -l типы-журналов (список через запятую: dump, cisco, weak, csv, xml, gps)
- -m число (максимальное число пакетов в журнале)
- -p порт (2501, номер порта для соединения клиентов)
Ключи клиента:
- -f имя-конфигурационного-файла (/usr/local/etc/kismet_ui.conf, /etc/kismet/kismet_ui.conf;
обязательно "showintro=false") - -s сервер:порт (localhost:2501)
- -r (автоматически восстанавливать связь с сервером; ручное восстановление: "e", затем "r")
- -g {curses | panel} (тип интерфейса)
aircrack-ng 0.9.1 - набор программ для захвата
трафика (airodump-ng), вставки своих пакетов (aireplay-ng, airtun-ng, packetforge-ng), взлома
WEP ключа и подбора WPA-PSK ключа (aircrack-ng), дешифровки захваченного потока (airdecap-ng).
Утилита aircrack-ng пытается подобрать ключ для захваченного
ранее трафика (имя файла передаётся как параметр, формат pcap).
Чем больше IV в захваченном трафике, тем быстрее и вероятнее будет взломан ключ.
Для полной уверенности рекомендуется 250 тысяч IV для WEP40 и 800 тысяч для WEP104.
aircrack-ng 1.0-rc1 потребовалось 15 тысяч IV для WEP40 и 50 тысяч для WEP104,
но в этой версии не работают ручки управления, распараллеливание (по крайней мере,
при работе со словарём) и зависает в конце работы.
В 1.0-rc1 также появилась поддержка "cowpatty rainbow"
для ускорения подбора пароля WPA-PSK по словарю. Для подбора ключевой фразы WPA-PSK
требуется, чтобы захваченные данные содержали пакеты фазы аутентификации (можно спровоцировать
с помощью aireplay-ng).
Ключи запуска:
- -a режим (1 - WEP, 2 - WPA-PSK)
- -e имя-сети (фильтр по ESSID)
- -b MAC-адрес-точки-доступа (фильтр по BSSID)
- -p число-CPU (по умолчанию - все; не работает)
- -c (ограничиться подбором цифр и букв)
- -n длина-ключа (64 или 128; по умолчанию - 128; извлечь длину ключа WEP из данных невозможно)
- -M число-IV (считывать из файла не более указанного числа IV)
- -f число (по умолчанию - 2; увеличение приводит к большей вероятности успеха за счёт времени)
- -y (при наличии 800 тысяч IV очень быстро - 7 секунд - подбирает ключ WEP 104;
для WEP 40 необходимо 300 тысяч IV; в версии 1.0 числа изрядно уменьшились)
- -z (атака PTW)
- -k число-от1-до17 (отключить одно из ускорений, которое по ошибке отсекает правильный ключ;
мне прихоится указывать "-k 3"; можно указывать несколько раз) - -K (в версии 1.0 по умолчанию используется PTW атака, этот ключ возвращает нас к атаке KoreK)
- -x2 (полный перебор последних 2 байт)
- -d маска (позволяет задать известную часть ключа)
- -w имя-файла-со-словарём (единственный способ для WPA,
можно указать "-" для стандартного ввода и сгенерировать словарь с помощью JtR;
300 парольных фраз в секунду)
Утилита airdecap-ng позволяет дешифровать захваченный трафик
(имя файла передаётся как параметр, формат pcap) с известным паролем. Ключи:
- -l (не удалять заголовки 802.11)
- -e имя-сети (фильтр по ESSID)
- -b MAC-адрес-точки-доступа (фильтр по BSSID)
- -w ключ (ключ WEP в шестнадцатеричном виде)
- -k PMK (WPA PMK в шестнадцатеричном виде)
- -p парольная-фраза (WPA)
aireplay-ng вставляет в поток для передачи фальшивые ARP запросы,
на которые настоящие станции отвечают зашифрованными пакетами, поставляя таким образом
новые IV для работы aircrack-ng. Полезен в случае "молчаливой" сети.
Маршрутизатор Zyxel P-330W EE
имеет 1 порт 100baseTx-FD (автоопределение скорости и типа кабеля) для выхода в Интернет через
провайдера (протоколы: DHCP (до 70 Мбит/с), PPPoE (до 30 Мбит/с), PPTP (одно подключение, до 25 Мбит/с), L2TP (до 50 Мбит/с);
авторизация: PAP, CHAP, MS CHAP, MS CHAPv2; шифрование:MPPE 40/56/128),
коммутатор на 4 порта 100baseTx-FD (автоопределение скорости и типа кабеля)
для организации локальной сети и точку доступа Wi-Fi 802.11b/g.
Коммутатор может быть переведён в пятипортовый режим.
Внешний блок питания (12V, 0.8A) со встроенной вилкой.
Управление по HTTP (только один сеанс; LAN: порт 80; WAN: порт 8080, выключен по умолчанию;
глюк с незапоминанием пароля на устройствах фирмы ZyXEL уже достал)
и telnet (документации нет, справки нет, понятна лишь команды "reload", "ip status",
"wlan active [on|off]". "wlan association" (кто подключён к нам), "wlan survey" (к кому можно подключиться),
"wlan band [b|g|bg]", "sys reset", "sys atsh" (изготовитель, модель, прошивка),
"sys password пароль", "".
"sys server | passthruvpn | upnp | atsh | hostname | password | operation").
Перезагрузка занимает около минуты.
Внутри обнаружился Linux 2.4.18-MIPS-01.00, 16MB ОП, процессор 180MIPS, 2MB флеш,
rtl8186 Ethernet (2 порта: LAN - br0 (т.е. это хаб, а не коммутатор?), WAN - eth1).
Прошивка V3.60(AMJ.1)D0, уже есть V3.60(AMJ.2)D0 - множество улучшений и ускорение,
но изменился формат файла конфигурации.
Маршрутизация.
Режим Duo Link для развода маршрутов доступа к ресурсам локальной сети и ресурсам Интернет.
Статические маршруты.
Встроенный DHCP сервер (udhcpd).
DNS прокси (?).
Регистрация доменного имени на динамический IP-адрес (Dynamic DNS).
UPnP
Точка доступа Wi-Fi 802.11b/g.
Аутентификация: WEP64/128, IEEE 802.1x, WPA, WPA-PSK, WPA2, WPA2-PSK и с помощью внешнего Radius-сервера.
Контроль доступа по MAC адресам.
Комплектуется антенной 5dBi (RP-SMA).
Сетевой экран с SPI. Защита от DoS и DDoS. Фильтр по MAC, IP.
Трансляция IP адресов - Cone (?) NAT. Проброс портов локальной сети (DNAT).
Транзит VPN-соединений (IPSec, PPTP, L2TP.
Настройки по умолчанию (кнопка сброса рядом с антенной;
5 секунд - перезапуск, 10 секунд - сброс настроек):
- IP адрес: 192.168.1.1
- имя пользователя: admin (поменять нельзя)
- пароль: 1234
- раздача DHCP: от 192.168.1.33 по 192.168.1.65
Установка в режиме интернет-центра: доступ в Интернет и к домовой сети через
Ethernet порт WAN, подключение управляющего компьютера к Ethernet порту LAN1, подключение до 3 сетевых
устройств к портам LAN2-LAN4, подключение до 10 беспроводных устройств 802.11b/g к встроенной точке доступа.
- немедленно поменять пароль
- настройка беспроводной сети до выхода в свет
- режим точки доступа
- 2.4GHz (B+G)
- скорость определяется автоматически
- SSID позаковыристей
- канал определяется автоматически
- здесь же можно посмотреть список клиентов)
- метод аутентификации: Shared Key (по умолчанию Open)
- Long Preamble (медленнее, но надёжнее)
- без широковещания SSID (скрытая сеть, по умолчанию открытая сеть)
- IAPP: Disabled (Inter Access Point Protocol; для 802.1x в сети с несколькими точками доступа)
- WMM (подмножество 802.11e, управление приоритетом)
- здесь можно посмотреть список доступных точек доступа и присоединиться к ним в режиме клиента
- шифрование можно выбрать из списка: отсутствует, WEP, WPA, WPA2(AES),
WPA2 Mixed (клиенты могут быть WPA или WPA2) - WPA2 (AES) - тип аутентификации: RADIUS или Pre-Shared Key - Pre-Shared Key
- задать парольную фразу (до 63 символов)
- можно задать список MAC адресов клиентов, которых точка доступа будет обслуживать
- Operation mode: Gateway (для подключения к провайдеру через WAN порт по протоколам DHCP/PPTP/PPPoE/L2TP,
с обслуживанием до 4 локальных Ethernet портов и до 10 клиентов беспроводной сети; NAT),
Wireless ISP (для подключения к точке доступа провайдера через WLAN;
все 5 Ethernet портов обслуживают локальную сеть (bridge?); NAT),
Access Point (единая локальная сеть (bridge) из 5 Ethernet портов и WLAN; без NAT и сетевого экрана),
Wireless Bridge (то же самое, но беспроводной клиент) - настройка LAN:
- IP адрес и маска интернет-центра на LAN интерфейсе
- включить DHCP сервер
- интервал адресов, выдаваемых DHCP сервером (здесь же можно посмотреть список клиентов)
- сохранение при смене IP адреса приводит к разрыву связи
- меняем настройки ethernet управляющего компьютера и соединяемся снова
- облом: предыдущий сеанс настройки не завершён, а во второй сеанс не пускает
- захожу telnet-ом и перезагружаю устройство (reload)
- добавить статические адреса (адреса без знаков препинания, нельзя указать два MAC адреса для одного IP адреса,
редактирования нет, при добавлении каждого адреса перезапускатся WLAN - очень долго)
- настройка WAN:
- тип доступа к WAN: PPTP
- получить IP адрес PPTP автоматически
- получить IP адрес WAN порта автоматически
- доменное имя VPN провайдера (vpn.corbina.net) - пропало при обновлении прошивки вместе имя/парольCHAP
- имя, пароль, CHAP
- без шифрования (невозможно указать)
- в новой прошивке появилосся выбор: в ручную, по запросу, непрерывно (и тут же пропал)
- MTU: 1450 (?)
- получить DNS автоматически
- Clone MAC address - если провайдер привязывает услугу к MAC адресу
- Clone PC Addresss - ?
- отвечать на WAN Ping
- убрать UPnP и проброс IPSec, PPTP, L2TP
- дополнительные настройки:
- контроль доступа позволяет ограничить исходящий из локальной сети поток
по номерам (интервалам) TCP или UDP портов приёмника - настройки предотвращения DoS: 50 UDP пакетов секунду - это не атака, а работа Freenet;
лучше всего совсем выключить, а то я не могу зайти снаружи по ssh (первый же большой вывод
и сеанс SSH блокируется) - настройка поддержки dyndns.org или tzo.com, если используется
- DMZ - можно задать один IP адрес хоста, который будет доступен из Интернета
(не понял, а где список портов?) - специальные приложения: вспомогательные модули для SNAT для "борьбы" с приложениями, не рассчитанными
на работу в режиме SNAT - виртуальные серверы (DNAT), поменять номер порта нельзя!
- в новой прошивке заработали средства диагности: ping, nslookup
- статические маршруты (здесь же можно посмотреть таблицу маршрутов)
- контроль доступа позволяет ограничить исходящий из локальной сети поток
- функции администратора:
- включение возможности управления снаружи (порт 8080) и telnet (включён по умолчанию со стороны WAN
с паролем "1234"! попытка отключения приводит к отключению сервиса HTTP, а не telnet
и другим непонятным проблемам, но снаружи telnet становится недоступен - просмотр журнала (локальный syslog)
- установка времени, зоны, NTP, границ перехода на летнее время (на журнал летнее время не действует,
поправили в новой прошивке) - ограничение доступа из локальной сети в Интернет по локальному IP, MAC, URL назначения (?)
- статистика: общее число пакетов (ни скорость, ни число байт узнать нельзя)
- включение возможности управления снаружи (порт 8080) и telnet (включён по умолчанию со стороны WAN
- Вильямс Столлингс. Беспроводные линии связи и сети. 2003.
- John Ross. The book of wireless, 2nd edition. 2008. No Starch Press (для среднего школьного возраста)
- Aaron E. Earle. Wireless Security Handbook. 2006. Auerbach (для старшего школьного возраста)
- official Linux Wireless wiki
- поиск Linux драйвера
- поиск используемого чипсета по коду FCC
- ndiswrapper (обёртка вокруг Windows-драйвера, превращающая его в Linux-драйвер)
- Wireless LAN resources for Linux (Jean Tourrilhes: от обзора технологии до установки драйверов и утилит)
- Wireless Tools for Linux
- Wireless LAN Sniffer Applications and Scanners for Linux
- official Linux Wireless wiki (?)
- Realtek Linux wireless driver
- драйвер для карт на базе чипсета Prism (2, 2.5, 3) Harris/Intersil (linux-wlan)
- FAQ для этого драйвера
- RPMS для этого драйвера
- драйвер для карт на базе orinoco/prism/symbol
- описание и ссылки на дополнительные утилиты для этого драйвера
- Wireless LAN Association
- IEEE 802.11 Wireless LAN Working Group
- Wireless Ethernet Compatibility Alliance
- Wireless Security Blackpaper
- Wireless on Linux (поверхностный обзор)
- Wireless on Linux, Part 2 (поверхностный обзор)
- Положение о порядке использования на территории РФ внутриофисных
систем передачи данных в полосе частот 2400-2484.5 МГц (протокол 18/3
от 29 апреля 2002 Государственной комиссии по радиочастотам) - Об использовании полосы радиочастот 2400-2483,5 МГц для внутриофисных систем передачи данных (решение ГКРЧ N 04-03-04-003
определяет перечень устройств, для эксплуатации которых не требутся получать разрешения
при условии использовании внутри офиса - только регистрация) - Kismet is an 802.11 wireless network sniffer
- Security of the WEP algorithm
- An initial security analysis of the IEEE 802.1x standard (pdf)
- Wi-Fi. Linux. Краткий курс (2005.12.27)
- atmelwlandriver
- linux-wireless
- wireless
- IPW2200/2915 AP for Linux
- FreeRADIUS EAP/MD5: Windows XP as supplicant
- HOWTO on EAP/TLS use with WinXP Supplicant (PDF!)
- Chris Hurley, Russ Rogers. WarDriving and Wireless Penetration Testing. 2007. Syngress Publishing
- Praphul Chandra. Bulletproof Wireless Security: GSM, UMTS, 802.11 and Ad Hoc Security. 2005. Elsevier
- Matthew Gast. 802.11 Wireless Networks: The Definitive Guide. April 2005. O'Reilly
- Cache, Liu. Hacking Exposed Wireless: Wireless Security Secrets and Solutions. 2007. McGraw