Михаил Платов
Собираем беспроводной роутер 802.11g на базе ОС Linux
С помощью обычной беспроводной PCI-карты и не очень мощного компьютера с ОС Linux вы сможете сделать собственную точку доступа 802.11g, по функциональности ничем не уступающую, а кое-где даже и превосходящую оборудование известных производителей.
Беспроводные сети на просторах нашей Родины набирают все большую популярность. Число хотспотов стремительно растет [1], строятся корпоративные беспроводные сети, да и «домашние» точки доступа уже не являются чем-то запредельно дорогим. Однако в некоторых случаях отдельную точку доступа можно и не покупать! Сегодня мы остановимся именно на таком случае и рассмотрим, как с помощью подручных средств сделать собственную беспроводную точку доступа 802.11g, поддерживающую режимы аутентификации Open, WEP, WPA-PSK, WPA-EAP, со встроенными серверами DHCP, DNS и NAT. Итак, приступим!
Собственно, а зачем?
А действительно, зачем все это нужно, если в продаже уже есть достаточно дешевые точки доступа (ценой порядка 50$), с простой настройкой через веб-интерфейс, которые к тому же обладают меньшим энергопотреблением и не шумят? Однозначного ответа на этот вопрос нет. Во-первых, для некоторых задач, действительно, проще купить отдельное устройство. Так, например, если вам нужно развернуть большую беспроводную сеть из сотни точек доступа, разбросанных по зданию, то делать это на базе стандартных компьютеров будет по меньшей мере странным. С другой стороны, если у небольшой организации уже имеется роутер, прокси и почтовый сервер, работающий под управлением Linux, то почему бы практически бесплатно не добавить к нему функциональность беспроводной точки доступа?
Не все чипсеты одинаково полезны
Для работы в режиме точки доступа нам понадобится собственно сам беспроводной адаптер, а также драйвер, обеспечивающий его работу в режиме «master mode». В теории, почти все беспроводные адептеры способны выполнять функции точки доступа, однако далеко не для всех поддержка этого режима есть в драйверах и сопутствующем ПО. К слову говоря, для Windows-платформы такие драйверы сейчас и вовсе отсутствуют (и вряд ли появятся в будущем, ведь большинство производителей, помимо PCI-карт, также продает и точки доступа), а вот для Linux и BSD-платформ энтузиасты такие драйверы уже разработали. Итак, выбираем карту!
Для того чтобы из всего многообразия присутствующего на рынке выбрать «правильную» карту, достаточно следовать трем простым советам:
- Отбросьте USB-карты. На данный момент даже поддержка работы в режимах Ad-Hoc и Infrastructure в Linux оставляет желать лучшего.
- Не смотрите на производителя и модели адаптера, ориентируйтесь на марку конкретного чипсета. Показательной является история с моделями карт D-link. Несмотря на то, что названия DWL520, DWLG520 и DWL-520+ очень похожи, все эти карты сделаны на совершенно разных наборах микросхем, и если первые две (чипсеты Intersil Prism 2.5 и Atheros AR5002G) еще могут работать в качестве точек доступа, то для драйверов последней (чипсет TI ACX100) даже работа в режиме Infrastructure на данный момент еще не отлажена достаточно хорошо.
- Выбирайте ту карту, для чипсета которой имеются драйверы, поддерживающие работу в режиме точки доступа.
Подробную информацию о степени поддержки того илииного типа микросхем в Linux можно найти на странице Яна Туррили [2]. Мы же подведем краткое резюме – на данный момент работа в режиме точки доступа возможна лишь для карт с чипсетами Intersil Prism (Prism2, 2.5, 3, 54 FullMAC, но не Prism54 SoftMAC) и практически для всех PCI-плат с чипсетами Atheros. Учитывая, что первые уже достаточно устарели (в большинстве своем это были карты 802.11b, 11Mbit) и практически не встречаются в продаже, выбор карты сводится к любой карте с чипсетом Atheros.
Итак, вопрос с выбором чипсета можно считать решенным, но как же узнать, что именно стоит в карте, лежащей на витрине в магазине, чипсет-то в прайс-листах никто не указывает? Есть, как минимум, три способа:
- Способ самый простой и очевидный – посмотреть, что написано на микросхеме. К сожалению, зачастую это не всегда возможно на практике, к тому же на многих картах чипсет закрыт металлическим экраном, снять который обычно не представляется возможным.
- Более доступный способ – запрос к поисковой системе совместно с ключевыми словами «linux», «chipset» и моделью проверяемого адептера. Возможно, вы не первый, кто хочет сделать точку доступа на этой карте, так почему бы не посмотреть, что на этот счет думали другие?
- Кроме того, к этому вопросу можно подойти и с другой стороны – изначально искать карту на «правильном» чипсете, благо соответствующие интернет-ресурсы есть – [3, 4]. В некоторых случаях нужную информацию можно почерпнуть из руководства пользователя.
В процессе изучения прайс-листов были замечены некие закономерности между стоимостью карты и установленном на ней чипсете. Так, родословная 20-долларовых карт, как правило, уходила в сторону тайваньской компании Ralink. Далее (2030$) шла плеяда карт с сердцем от Texas Instruments, Broadcom, Marwell и других менее известных компаний. Примерно начиная от 30$ и выше в прайс-листах появляются искомые карты на чипсетах Atheros. Одна из них – LevelOne WNC-0300 802.11 b/g стоимостью 30$ – и была успешно приобретена для выполнения поставленной задачи(см. рис. 1).
Рисунок 1. Беспроводной адептер LevelOne WNC-0300
Как и предполагалось, внутри нее оказался чипсет Atheros:
# lspci
01:00.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01) |
Подготовка ОС
Как уже было сказано выше, для создания точки доступа нам понадобится ОС Linux. В качестве дистрибутива будем использовать Gentoo Linux. Впрочем, большинство приводимых настроек с некоторыми изменений будут работать и в других дистрибутивах.
Первым делом убедимся, что в нашем ядре (ветка 2.6) присутствует поддержка беспроводных устройств:
Networking --->
* Generic IEEE 802.11 Networking Stack
IEEE 802.11 WEP encryption (802.1x)
IEEE 802.11i CCMP support
IEEE 802.11i TKIP encryption
Device Drivers --->
Networking support --->
Wireless LAN (non-hamradio) --->
* Wireless LAN drivers (non-hamradio) & wireless extension
|
Присутствуют поддержка iptables, а также поддержка 802.1d Ethernet Bridging:
Networking -->
* Networking Options
<*> Network Packet Filtering
IP: Netfilter Configuration
|
Отметьте модули поддержки NAT, а также всех необходимых протоколов:
<*> 802.1d Ethernet Bridging |
А также модуль алгоритма шифрования AES:
Cryptogaphic options -->
AES cipher algorithms (i586)
|
Затем установим следующие пакеты:
- sys-apps/baselayout (версии не ниже 1.11.10)
- dev-libs/openssl (версия 0.9.7i)
- net-dialup/freeradius (версия 1.1.0-r1)
- net-wireless/wirelss-tools (использовалась версия 28_pre14)
- net-wireless/madwifi-driver (версия 0.1473.20060312)
- net-wireless/hostapd (версия 0.4.8, с USE-флагами для madwifi и ssl)
- net-firewall/iptables
- net-misc/bridge-utils
- net-dns/dnsmasq
Для установки достаточно выполнить команду emerge, перечислив через пробел названия всех пакетов. Кроме того, перед установкой также будет полезно посмотреть зависимости пакетов (ключ -pv к команде emerge) и при необходимости подправить USE-флаги в файле /etc/portage/package.use для удаления ненужных зависимостей.
Структура сети
При настройке будем считать, что в нашем распоряжении имеется сеть со следующей структурой (см. рис. 2). Для клиентов беспроводной сети будем использовать подсеть 192.168.2.0/24. Для подключения к сети будем использовать беспроводной адаптер Intel PRO/Wireless 2200BG ноутбука Centrino, работающего под управлением Windows XP SP2 (версия драйвера беспроводной карты – 9.0.4.8 от 2.17.2006).
Рисунок 2. Структура рассматриваемой системы
Простейшая точка доступа, или Как не надо делать
Теперь, когда все необходимое у нас уже есть, можно переходить к настройке. В качестве разминки настроим работу в самом простом (и небезопасном) режиме – WEP.
Итак, начнем с сервера! Первым делом загрузим драйвер беспроводной карты и создадим виртуальное устройство wifi0, работающее в режиме точки доступа:
# modpobe ath_pci
# wlanconfig ath0 create wlandev wifi0 wlanmode ap
# iwconfig ath0 essid superspot
# iwconfig ath0 key 1111-1111-11
# iwconfig ath0 channel 13
Параметр essid определяет имя нашей сети, key – ключ шифрования WEP. Если в качестве последнего ввести либо 10 шестнадцатеричных цифр (40-битный ключ), либо 26 шестнадцатеричных цифр со знаком «-» после каждых четырех (104-битных ключ). При этом в любом случае необходимо помнить, что даже 104-битный ключ с точки зрения безопасности в настоящее время не считает безопасным, и в «рабочих» системах его использование крайне не рекомендуется.
Остановимся более подробно на параметре channel. Как известно, устройства стандарта 802.11b и 802.11g работают в диапазоне частот 2.4 ГГц. На самом деле это совсем не означает, что абсолютно все устройства (в том числе и точка доступа в квартире вашего соседа, которая для вашей точки уже является помехой) работают на одной частоте. Для Европы стандарт определяет 13 каналов (от 2.412 до 2.472 ГГц с шагом 5 МГц), в каждом из которых могут работать беспроводные устройства. В физике, правда, чудес не бывает, устройства, работающие в соседних каналах, все же являются друг для друга взаимной помехой (на самом деле беспроводные устройства 802.11, работающие в одном канале, не являются помехой в прямом смысле это слова, скорее, они «делят» общую на всех пропускную способность канала). Очевидно, что чем дальше устройства разнесены друг от друга в частотном спектре, тем меньше они будут друг другу мешать. Достаточно разумным в этом случае является такой компроммисс – использовать для беспроводных сетей только каналы 1, 7 и 13. Таким образом возможно относительно безмятежное существование в одном месте трех беспроводных сетей. Ввиду того, что некоторые точки доступа по умолчанию используют канал 1, мы слепо выберем наиболее отдаленный от него канал – 13, хотя, конечно, более правильно обосновывать выбор в зависимости от конкретной радиобстановки «на месте» (не нужно забывать, что в тот же частотный спектр также может использоваться микроволновками и радиотелефонами).
Назначим IP-адрес и активируем беспроводной интерфейс:
# ifconfig ath0 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255 up
Перейдем к настройке беспроводного клиента. В Windows XP SP2 для конфигурирования беспроводной сети используется служба Windows Zero Configuration и соответствующий мастер конфигурации «Wireless Network Configuration». Первым делом установим для беспроводного адептера статический IP-адрес 192.168.2.2/24 (см. рис. 3).
Рисунок 3. Статический IP-адрес беспроводного адаптера
Затем произведем поиск сетей и подключимся к сети superspot. В появившемся окне введем WEP-ключ, указанный при создании точки доступа (см. рис. 4).
Рисунок 4. Ввод WEP-ключа
Если ключ был введен верно, операционная система успешно обрадует нас подключением к беспроводной сети (см. рис. 5).
Рисунок 5. Успешное подключение к сети
Автоматизируем запуск
После того, как мы благополучно убедились, что все работает, можно настроить автоматическое применение настроек беспроводной карты.
Настроим автоматическую загрузку модуля карты при старте системы:
# echo "ath_pci" >>/etc/modules.autoload.d/kernel-2.6
Настроим автоматическое создание виртуального интерфейса при загрузке модуля:
# echo “options ath_pci autocreate=ap” >>/etc/modules.d/ath_pci
Параметры для утилиты iwconfig укажем в файле /etc/conf.d/wireless со следующим содержимым:
modules_ath0=( "iwconfig" )
ifconfig_ath0=( "192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255" ) essid_ath0="superspot"
channel_ath0="13"
key_super_spot="1111-1111-1111-11"
Создадим скрипт для запуска сетевого подключения:
# ln -s /etc/init.d/net.lo /etc/init.d/net.ath0
И добавим его в список скриптов, запускаемых при старте системы:
# rc-update add net.ath0 default
Теперь при перезагрузке системы наша точка доступа будет запускаться автоматически.
Настраиваем дополнительные программы
На данный момент клиенты нашего беспроводного сегмента могут работать друг с другом и с сервисами, имеющимися непосредственно на точке доступа. Данная схема обладает рядом недостатков, исправлением которых мы сейчас и займемся. Итак, первым делом предоставим беспроводным клиентам доступ в Интернет посредством NAT. В самом простом случае это можно сделать так:
# iptables -F
# iptables -t nat -F
# iptables -A FORWARD -i ath0 -s 192.168.2.0/255.255.255.0 -j ACCEPT
# iptables -A FORWARD -i eth1 -d 192.168.1.0/255.255.255.0 -j ACCEPT
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
С помощью скриптов Gentoo сохраним созданные правила и настроим автоматический запуск iptables:
# /etc/init.d/iptables save
# /etc/init.d/iptables start
# rc-update add iptables default
Для распределения IP-адресов в локальной сети, и разрешения DNS-имен интернет-узлов будем использовать пакет dnsmasq. Для его настройки в конфигурационном файле /etc/dnsmasq.conf напишем:
domain-needed
bigus-priv
Interface = eth0, ath0
Dhcp-range=192.168.2.0,192.168.2.255,1h
Dhcp-host= 11:22:33:44:55:66, 192.168.2.1
Запустим службу и настроим ее автоматический запуск:
# /etc/init.d/dnsmasq start
# rc-update add default dnsmasq
Мы указали, с каких сетевых интерфейсов служба должна принимать запросы, и разрешили dhcp-серверу выдавать IP-адреса клиентам беспроводной сети. При разрешении DNS-имен dnsmasq будет перенаправлять запросы DNS-серверам, перечисленным в файле /etc/resolv.conf.
Улучшаем безопасность
Ввиду использования WEP приведенный выше пример скорее относится к разряду «как не нужно делать» и имеет право на существование лишь с целью доказательства того, что плата работает. В реальных же системах настоятельно рекомендуется использование WPA в режиме WPAPSK или WPA-EAP. (В качестве альтернативного варианта можно использовать VPN-туннель для шифрации трафика между беспроводными клиентами и сервером.) За реализацию WPA в нашей системе будет отвечать hostapd. Указанный демон был разработан в рамках проекта HostAP, целью которого является создание беспроводных точек доступа на базе карт с чипсетами Intersil Prism. Позднее разработчиками была добавлена поддержка работы с платами на чипсетах Atheros посредством драйверов madwifi. Hostapd поддерживает работу в режимах WPA-PSK, WPA-EAP с возможностью аутентификации как с помощью встроенного сервера, так и с помощью внешнего сервера RADIUS. В нашем примере рассмотрим более сложный в настройке вариант WPA-EAP с аутентификацией по протоколу MSCHAPv2 на внешнем RADIUS-сервере. При реализации будем использовать инфраструктуру открытых ключей (PKI), развернутую согласно инструкциям в [5].
Предварительная подготовка
Особенностью работы hostapd с драйверами madwifi является то, что беспроводное устройство должно входить в состав «виртуального моста» (linux bridging). Учитывая конфигурацию нашего сервера, мы вполне можем сделать «полноценный мост», с помощью которого клиенты проводной и беспроводной сетей будут находиться в одной логической подсети. Однако с точки зрения безопасности такой подход является неправильным – беспроводные клиенты должны иметь минимально необходимый доступ к ресурсам корпоративной локальной сети. Поэтому в нашем примере ограничимся «виртуальным мостом», состоящим только из беспроводного адаптера. Определение правил для iptables, ограничивающих доступ к проводной сети правил, оставим в качестве самостоятельного задания. Итак, для создания моста добавим в файл /etc/conf.d/net следующие строки:
bridge_br0=( "ath0" )
config_ath0=( "null" )
config_br0=( "192.168.2.1 netmask 255.255.255.0 brd 192.168.2.255" )
А также настроим автоматическое создание интерфейса при старте системы:
# ln –s /etc/init.d/net.lo /etc/init.d/net.br0
# rc-update add net.br0 default
После старта системы в системе появится новый bridgeинтерфейс с именем br0:
# ifconfig br0
br0 Link encap:Ethernet HWaddr 00:11:6B:60:28:D6
inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:2290 Metric:1
RX packets:508204 errors:0 dropped:0 overruns:0 frame:0
TX packets:665093 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:96361488 (91.8 Mb) TX bytes:713154486 (680.1 Mb)
|
Как и мы хотели, в состав моста входит лишь устройство ath0:
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.00116b6028d6 no ath0
|
Перейдем к параметрам беспроводного адеаптера. Вместо старых настроек в /etc/conf.d/wireless определим следующее:
modules_ath0=( "iwconfig" )
essid_ath0="superspot"
channel_ath0="13"
Займемся настройками hostapd. Конфигурационный файл находится в /etc/hostapd/hostaspd.conf. Параметры демона сгруппированы в несколько секций:
- Параметры конфигурации беспроводной платы – в этой секции определяется тип используемого беспроводного адаптера, а также параметры беспроводного соединения (ESSID, MAC security).
- WPA1 (802.1X-2004) – здесь мы можем разрешить использование аутентификации 802.1Х, а также определить параметры EAP.
- Опции для встроенных серверов EAP и RADIUS – по словам разработчиков, эти серверы присутствуют исключительно для тестовых целей, и их использование в реальных системах не рекомендуется. Поэтому в нашем примере эти секции использоваться не будут.
- Параметры WPA2 (WAP/IEEE 802.11i) – здесь можно выбрать режим управления ключами шифрования (PSK или EAP), а также определить алгоритм шифрации трафика (TKIP-RC4, CCMP-AES).
Итак, определим следующие настройки:
interface=ath0 # интерфейс беспроводного адаптера
bridge=br0 # имя устройства-моста, содержащего беспроводной адаптер
driver=madwifi # тип используемого драйвера
ssid=superspot # идентификатор беспроводной сети
auth_algs=1 # используемый алгоритм аутентификации, 1- open
ieee8021x=1 # аутентификация согласно 802.1X
#RADIUS
own_ip_addr=127.0.0.1 # IP-адрес сервера RADIUS
nas_identifier=superspot
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=supersecretpassword
radius_retry_primary_interval=600
#WPA/IEEE 802.11i
wpa=3 # в двоичном представлении – 11, что означает использовать WPA и WPA2
wpa_key_mgmt=WPA-EAP # будем использовать EAP-вариант аутентификации
wpa_pairwise=CCMP # будем использовать AES для шифрования трафика
wpa_group_rekey=600
wpa_strict_rekey=1
wpa_gmk_rekey=86400
rsn_preauth=1
Теперь перейдем к параметрам конфигурации Freeradius.
Файл /etc/raddb/radius.conf. В секции modules{}, раздел mschap{} включим следующие параметры:
use_mppe = yes
require_encryption = yes
require_strong = yes
with_ntdomain_hack = yes
Убедимся, что ниже в этой же секции присутствует макрос для обработки имен в формате домен/логин:
realm ntdomain {
format = prefix
delimiter = "\\"
ignore_default = no
ignore_null = no
}
А также определен файл, в котором будут указываться пароли пользователей:
files {
usersfile = ${confdir}/users
acctusersfile = ${confdir}/acct_users
preproxy_usersfile = ${confdir}/preproxy_users
}
Секция authorize{} включает в себя следующие модули:
authorize {
preprocess
mschap
ntdomain
eap
files
}
files {
usersfile = ${confdir}/users
compat = no
}
Файл /etc/raddb/clients.conf:
client 127.0.0.1 {
secret = supersecretpassword
shortname = superspot
nastype = other
}
В файле /etc/raddb/proxy.conf допишем следующие строки:
realm DEFAULT {
type = radius
authhost = LOCAL
accthost = LOCAL
}
В параметрах конфигурации модуля EAP /etc/raddb/eap.conf определим следующее:
eap {
default_eap_type = peap
timer_expire = 60
ignore_unknown_eap_types = no
cisco_accounting_username_bug = no
tls {
private_key_password = пароль для доступа к секретному ключю сервера
private_key_file = ${raddbdir}/certs/cert-srv.pem
certificate_file = ${raddbdir}/certs/cert-srv.pem
CA_file = ${raddbdir}/certs/cacert.pem
dh_file = ${raddbdir}/certs/dh
random_file = ${raddbdir}/certs/random
}
peap {
default_eap_type = mschapv2
}
mschapv2 {
}
}
В файле /etc/raddb/users определим имена и пароли для доступа к беспроводной сети:
user1 User-Password == "password1"
user2 User-Password == "password2"
user3 User-Password == "password3"
Настроим автоматический запуск Freeradius при старте системы:
# rc-update add radiusd default
Если все было сделано правильно, то после перезагрузки компьютера (или просто запуска соответствующих служб) беспроводные клиенты увидят следующее (см. рис. 6). Беспроводная сеть с поддержкой WPA, при подключении к которой необходимо указать пароль.
Рисунок 6. WPA-сеть
Если же по каким-либо причинам увидеть сеть не удалось, можно воспользоваться режимами отладки:
# hostapd –Kdddd
# radiusd –X
Enterprise-режим
Немного изменив настройки модуля EAP Freeradius, можно настроить работу в режиме EAP-TLS. Так, чтобы настроить работу анологично описанному в [5], необходимо всего лишь поменять тип пакетов eap в файле eap.conf:
default_eap_type = tls
и скопировать клиентский сертификат на компьютер пользователя.
Обнаружение вторжений
С использованием программной точки доступа можно просто и быстро организовать простейшую систему обнаружения вторжений. В простейшем случае можно воспользоваться пакетом arpwatch. С его помощью точка доступа будет отслеживать arp-запросы в сети и при появлении новых MAC-адресов отсылать уведомления на e-mail администратора.
Для более «тонкой» защиты можно использовать связку Kismet+Snort. С помощью первого можно отслеживать атаки на уровне пакетов 802.11, а средствами второго организовать защиту на сетевом уровне и уровне приложений.
Заключение
На этом базовую настройку нашей точки доступа можно считать законченной, однако это совсем не значит, что ничего больше сделать нельзя.
Дальнейшая функциональность точки может быть расширена в 2 основных направлениях:
- Настройки беспроводной части – обслуживание нескольких беспроводных сетей с одним адаптером (VAP Virtual Access Point), использование WMM (QoS в WiFi), реализация быстрого роуминга с ипользованием IAPP.
- Установка дополнительных программ – ddnsclient, Squid, bind, samba, openVPN, Postfix, Apache, LVS – вот лишь короткий список программ, которые могли бы быть нам полезны.
Другими словами, список возможных улучшений ограничен лишь имеющимся в распоряжении временем, а также полетом вашей фантазии.
Приложение
WPA2, или Почему нужно делать именно так
На данный момент общепринятым является мнение, что WEP (даже совместно с фильтрацией MAC-адресов) не является надежной защитой для беспроводных сетей. Уже достаточно давно появились разнообразные инструменты (в том числе и для sctript-kiddies), позволяющие практически в автоматическом режиме «ломать» защиту WEP даже в Windows [6, 7].
Для решения проблем безопасности, присущих WEP IEEE, и разработан стандарт 802.11i. Согласно последнему, выделяются 3 основные категории защиты в беспроводных сетях:
- TKIP (Temporal Key Integrity Protocol) – основным назначением данной схемы было решение остро стоящих проблем WEP. Учитывая, что в основе лежал все тот же симметричный алгоритм шифрования RC4, было возможным смягчить проблемы WEP в новых прошивках для старого оборудования. Использование TKIP для шифрования трафика и 802.1X обычно называют WPA1.
- CCMP (Counter Mode with CBC-MAC Protocol) – новый протокол на основе алгоритма симметричного шифрования AES (Advanced Encryption Standard). Учитывая несколько большие требования к необходимой вычислительной мощности, предполагалось, что данный протокол будет использоваться в оборудовании, выпущенном после принятия стандарта 802.11i. Использование CCMP совместно с аутентификацией 802.1Х обычно называют WPA2.
- 802.1X – метод аутентификации для беспроводных сетей. Может использоваться как совместно с CCMP, так и TKIP.
В рамках 802.1Х выделяется громадное количество методов аутентификации (около 40). Наиболее часто используются следующие:
- EAP-MD5 – аутентификация по принципу «запрос-ответ» с помощью пары логин/пароль. Отметим, что даже несмотря на то, что последние не передаются по сети в открытом виде, метод обладает некоторыми недостатками – уязвим для атак по словарю, не производится аутентификация сервера. Преимущество также достаточно очевидно – простота внедрения (не требуются использование каких-либо сертификатов).
- LEAP (Lightweight EAP) – алгоритм, предложенный Cisco Sytems, аутентификация производится сервером RADIUS по паре логин/пароль. Метод также уязвим к атакам по словарю. В виду некоторой закрытости данных стандарт не получил широкого распространения.
- EAP-TLS (RFC2716) – аутентификация участников (взаимная) производится с помощью цифровых сертификатов. Способ требует наличия инфраструктуры открытых ключей (PKI Public Key Infrastructure). Метод удобен к использованию в гетерогенных сетях, в которых отсутствует центральный узел аутентификации (такой как сервер RADIUS, Active Directory, и др), но присутствует PKI.
- EAP-TTLS – метод аутентификации, при котором с помощью цифровых сертификатов устанавливается TLS-сессия, в рамках передаются данные для аутентификации (в любой форме). Производится взаимная аутентификация клиента и сервера. Для использования также требуется PKI. Протокол часто используется совместно с другими методами аутентификации.
- PEAP (Protected EAP) – вариант аутентификации с использованием публичного сертификата сервера для создания защищенного SSL-канала. Использование сертификатов со стороны клиентов не требуется. Данный метод в некотором смысле можно считать аналогом SSL для http (https://) применительно к беспроводным сетям.
- EAP-MSHAPv2 – метод аутентификации согласно алгоритму MSCHAPv2, по паре логин/пароль внутри защищенного канала, созданного с использованием PEAP. Данный метод удобно использовать в Windows-сетях, в которых для аутентификации беспроводных клиентов используются учетные записи пользователей в Active Directory.
Таким образом, для малых организаций можно рекомендовать использование EAP-MD5. EAP-TLS удобно использовать в сетях беспроводных провайдеров, а EAP-MSCHAPv2 – в крупных корпоративных сетях.
Рисунок 7. Категории защиты в 802.11i
Возможные проблемы и методы их решения
Не запускается hostapd (или не загружаются модули ядра madwifi).
Компоненты, входящие в состав системы, сильно связаны друг с другом. Так, драйверы madwifi являются модулями ядра и при обновлении последнего, возможно, их придется пересобрать. Точно так же после обновления madwifi необходимо пересобрать hostapd
Не работает аутентификация клиентов с помощью radius-сервера. В режиме отладки hostapd выдается следующее сообщение: «No WPA/RSN information element for station!?»
Убедитесь, что точка доступа работает в режиме WPA c поддержкой WPA2: «wpa=3».
Ссылки, литература:
- http://wifi.yandex.ru/where.xml?city=213&dcity=1.
- http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux.
- http://linux-wless.passys.nl/query_chipset.php?chipset=Atheros&zoek=chipset.
- http://customerproducts.atheros.com/customerproducts.
- Платов А. Строим защищённую беспроводную сеть: WPAEnterprise, 802.1x EAP-TLS – Журнал «Системный администратор», №5, май 2005 г. – 64-71 с. (http://www.samag.ru/cgi-bin/go.pl?q=articles;n=05.2005;a=03).
- http://airsnort.shmoo.com.
- http://freshmeat.net/projects/aircrack.