Собираем беспроводной роутер 802.11g на базе ОС Linux

Обсуждение в разделе «Беспроводные технологии/Wi-Fi/Wardriving», начал(-а) ShadOS, 27.10.2007.

  1. ShadOS

    ShadOS ы

    Регистрация:
    11.02.2007
    Сообщения:
    667
    Одобрения:
    350
    Репутация:
    413
    Михаил Платов

    С помощью обычной беспроводной PCI-карты и не очень мощного компьютера с ОС Linux вы сможете сделать собственную точку доступа 802.11g, по функциональности ничем не уступающую, а кое-где даже и превосходящую оборудование известных производителей.

    Беспроводные сети на просторах нашей Родины набирают все большую популярность. Число хотспотов стремительно растет [1], строятся корпоративные беспроводные сети, да и «домашние» точки доступа уже не являются чем-то запредельно дорогим. Однако в некоторых случаях отдельную точку доступа можно и не покупать! Сегодня мы остановимся именно на таком случае и рассмотрим, как с помощью подручных средств сделать собственную беспроводную точку доступа 802.11g, поддерживающую режимы аутентификации Open, WEP, WPA-PSK, WPA-EAP, со встроенными серверами DHCP, DNS и NAT. Итак, приступим!

    Собственно, а зачем?

    А действительно, зачем все это нужно, если в продаже уже есть достаточно дешевые точки доступа (ценой порядка 50$), с простой настройкой через веб-интерфейс, которые к тому же обладают меньшим энергопотреблением и не шумят? Однозначного ответа на этот вопрос нет. Во-первых, для некоторых задач, действительно, проще купить отдельное устройство. Так, например, если вам нужно развернуть большую беспроводную сеть из сотни точек доступа, разбросанных по зданию, то делать это на базе стандартных компьютеров будет по меньшей мере странным. С другой стороны, если у небольшой организации уже имеется роутер, прокси и почтовый сервер, работающий под управлением Linux, то почему бы практически бесплатно не добавить к нему функциональность беспроводной точки доступа?

    Не все чипсеты одинаково полезны

    Для работы в режиме точки доступа нам понадобится собственно сам беспроводной адаптер, а также драйвер, обеспечивающий его работу в режиме «master mode». В теории, почти все беспроводные адептеры способны выполнять функции точки доступа, однако далеко не для всех поддержка этого режима есть в драйверах и сопутствующем ПО. К слову говоря, для Windows-платформы такие драйверы сейчас и вовсе отсутствуют (и вряд ли появятся в будущем, ведь большинство производителей, помимо PCI-карт, также продает и точки доступа), а вот для Linux и BSD-платформ энтузиасты такие драйверы уже разработали. Итак, выбираем карту!

    Для того чтобы из всего многообразия присутствующего на рынке выбрать «правильную» карту, достаточно следовать трем простым советам:

    n Отбросьте USB-карты. На данный момент даже поддержка работы в режимах Ad-Hoc и Infrastructure в Linux оставляет желать лучшего.

    n Не смотрите на производителя и модели адаптера, ориентируйтесь на марку конкретного чипсета. Показательной является история с моделями карт D-link. Несмотря на то, что названия DWL520, DWLG520 и DWL-520+ очень похожи, все эти карты сделаны на совершенно разных наборах микросхем, и если первые две (чипсеты Intersil Prism 2.5 и Atheros AR5002G) еще могут работать в качестве точек доступа, то для драйверов последней (чипсет TI ACX100) даже работа в режиме Infrastructure на данный момент еще не отлажена достаточно хорошо.

    n Выбирайте ту карту, для чипсета которой имеются драйверы, поддерживающие работу в режиме точки доступа.

    Подробную информацию о степени поддержки того илииного типа микросхем в Linux можно найти на странице Яна Туррили [2]. Мы же подведем краткое резюме – на данный момент работа в режиме точки доступа возможна лишь для карт с чипсетами Intersil Prism (Prism2, 2.5, 3, 54 FullMAC, но не Prism54 SoftMAC) и практически для всех PCI-плат с чипсетами Atheros. Учитывая, что первые уже достаточно устарели (в большинстве своем это были карты 802.11b, 11Mbit) и практически не встречаются в продаже, выбор карты сводится к любой карте с чипсетом Atheros.

    Итак, вопрос с выбором чипсета можно считать решенным, но как же узнать, что именно стоит в карте, лежащей на витрине в магазине, чипсет-то в прайс-листах никто не указывает? Есть, как минимум, три способа:

    n Способ самый простой и очевидный – посмотреть, что написано на микросхеме. К сожалению, зачастую это не всегда возможно на практике, к тому же на многих картах чипсет закрыт металлическим экраном, снять который обычно не представляется возможным.

    n Более доступный способ – запрос к поисковой системе совместно с ключевыми словами «linux», «chipset» и моделью проверяемого адептера. Возможно, вы не первый, кто хочет сделать точку доступа на этой карте, так почему бы не посмотреть, что на этот счет думали другие?

    n Кроме того, к этому вопросу можно подойти и с другой стороны – изначально искать карту на «правильном» чипсете, благо соответствующие интернет-ресурсы есть – [3, 4]. В некоторых случаях нужную информацию можно почерпнуть из руководства пользователя.

    В процессе изучения прайс-листов были замечены некие закономерности между стоимостью карты и установленном на ней чипсете. Так, родословная 20-долларовых карт, как правило, уходила в сторону тайваньской компании Ralink. Далее (2030$) шла плеяда карт с сердцем от Texas Instruments, Broadcom, Marwell и других менее известных компаний. Примерно начиная от 30$ и выше в прайс-листах появляются искомые карты на чипсетах Atheros. Одна из них – LevelOne WNC-0300 802.11 b/g стоимостью 30$ – и была успешно приобретена д
    ля выполнения поставленной задачи(см. рис. 1).
    [​IMG]
    Рисунок 1. Беспроводной адептер LevelOne WNC-0300

    Как и предполагалось, внутри нее оказался чипсет Atheros:

    Code:
    # lspci
    
    01:00.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)
     
    Это одобряет 1 пользователь.
  2. ShadOS

    ShadOS ы

    Регистрация:
    11.02.2007
    Сообщения:
    667
    Одобрения:
    350
    Репутация:
    413
    Подготовка ОС

    Как уже было сказано выше, для создания точки доступа нам понадобится ОС Linux. В качестве дистрибутива будем использовать Gentoo Linux. Впрочем, большинство приводимых настроек с некоторыми изменений будут работать и в других дистрибутивах.

    Первым делом убедимся, что в нашем ядре (ветка 2.6) присутствует поддержка беспроводных устройств:

    Code:
    Networking --->
    
      * Generic IEEE 802.11 Networking Stack
    
        <M>  IEEE 802.11 WEP encryption (802.1x)
    
        <M>  IEEE 802.11i CCMP support
    
        <M>  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:

    Code:
    Networking -->
    
      *  Networking Options
    
        <*>   Network Packet Filtering
    
           IP: Netfilter Configuration
    Отметьте модули поддержки NAT, а также всех необходимых протоколов:

    Code:
     <*>   802.1d Ethernet Bridging
    А также модуль алгоритма шифрования AES:

    Code:
    Cryptogaphic options -->
    
        <M> AES cipher algorithms (i586)

    Затем установим следующие пакеты:

    n sys-apps/baselayout (версии не ниже 1.11.10)

    n dev-libs/openssl (версия 0.9.7i)

    n net-dialup/freeradius (версия 1.1.0-r1)

    n net-wireless/wirelss-tools (использовалась версия 28_pre14)

    n net-wireless/madwifi-driver (версия 0.1473.20060312)

    n net-wireless/hostapd (версия 0.4.8, с USE-флагами для madwifi и ssl)

    n net-firewall/iptables

    n net-misc/bridge-utils

    n 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).
    [​IMG]
    Рисунок 2. Структура рассматриваемой системы

    Простейшая точка доступа, или Как не надо делать

    Теперь, когда все необходимое у нас уже есть, можно переходить к настройке. В качестве разминки настроим работу в самом простом (и небезопасном) режиме – WEP.

    Итак, начнем с сервера! Первым делом загрузим драйвер беспроводной карты и создадим виртуальное устройство wifi0, работающее в режиме точки доступа:

    Code:
    # 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-адрес и активируем беспроводной интерфейс:

    Code:
    # 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).
    [​IMG]
    Рисунок 3. Статический IP-адрес беспроводного адаптера

    Затем произведем поиск сетей и подключимся к сети superspot. В появившемся окне введем WEP-ключ, указанный при создании точки доступа (см. рис. 4).
    [​IMG]
    Рисунок 4. Ввод WEP-ключа

    Если ключ был введен верно, операционная система успешно обрадует нас подключением к беспроводной сети (см. рис. 5).
    [​IMG]
    Рисунок 5. Успешное подключение к сети
     
  3. ShadOS

    ShadOS ы

    Регистрация:
    11.02.2007
    Сообщения:
    667
    Одобрения:
    350
    Репутация:
    413
    Автоматизируем запуск

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

    Настроим автоматическую загрузку модуля карты при старте системы:

    Code:
    # echo "ath_pci" >>/etc/modules.autoload.d/kernel-2.6
    Настроим автоматическое создание виртуального интерфейса при загрузке модуля:

    Code:
    # echo “options ath_pci autocreate=ap” >>/etc/modules.d/ath_pci
    Параметры для утилиты iwconfig укажем в файле /etc/conf.d/wireless со следующим содержимым:

    Code:
    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"
    Создадим скрипт для запуска сетевого подключения:

    Code:
    # ln -s /etc/init.d/net.lo /etc/init.d/net.ath0
    И добавим его в список скриптов, запускаемых при старте системы:

    Code:
    # rc-update add net.ath0 default
    Теперь при перезагрузке системы наша точка доступа будет запускаться автоматически.

    Настраиваем дополнительные программы

    На данный момент клиенты нашего беспроводного сегмента могут работать друг с другом и с сервисами, имеющимися непосредственно на точке доступа. Данная схема обладает рядом недостатков, исправлением которых мы сейчас и займемся. Итак, первым делом предоставим беспроводным клиентам доступ в Интернет посредством NAT. В самом простом случае это можно сделать так:

    Code:
    # 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:

    Code:
    # /etc/init.d/iptables save
    
    # /etc/init.d/iptables start
    
    # rc-update add iptables default
    
    Для распределения IP-адресов в локальной сети, и разрешения DNS-имен интернет-узлов будем использовать пакет dnsmasq. Для его настройки в конфигурационном файле /etc/dnsmasq.conf напишем:

    Code:
    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
    Запустим службу и настроим ее автоматический запуск:

    Code:
    # /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 следующие строки:

    Code:
    bridge_br0=( "ath0" )
    
    config_ath0=( "null" )
    
    config_br0=( "192.168.2.1 netmask 255.255.255.0 brd 192.168.2.255" )
    
    А также настроим автоматическое создание интерфейса при старте системы:

    Code:
    # ln –s /etc/init.d/net.lo /etc/init.d/net.br0
    
    # rc-update add net.br0 default
    
    После старта системы в системе появится новый bridgeинтерфейс с именем br0:

    Code:
    # 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:

    Code:
    # brctl show
    
    bridge name    bridge id               STP enabled     interfaces
    
    br0            8000.00116b6028d6       no              ath0
    Перейдем к параметрам беспроводного адеаптера. Вместо старых настроек в /etc/conf.d/wireless определим следующее:

    Code:
    modules_ath0=( "iwconfig" )
    
    essid_ath0="superspot"
    
    channel_ath0="13"
    
     
    Займемся настройками hostapd. Конфигурационный файл находится в /etc/hostapd/hostaspd.conf. Параметры демона сгруппированы в несколько секций:

    n Параметры конфигурации беспроводной платы – в этой секции определяется тип используемого беспроводного адаптера, а также параметры беспроводного соединения (ESSID, MAC security).

    n WPA1 (802.1X-2004) – здесь мы можем разрешить использование аутентификации 802.1Х, а также определить параметры EAP.

    n Опции для встроенных серверов EAP и RADIUS – по словам разработчиков, эти серверы присутствуют исключительно для тестовых целей, и их использование в реальных системах не рекомендуется. Поэтому в нашем примере эти секции использоваться не будут.

    n Параметры WPA2 (WAP/IEEE 802.11i) – здесь можно выбрать режим управления ключами шифрования (PSK или EAP), а также определить алгоритм шифрации трафика (TKIP-RC4, CCMP-AES).

    Итак, определим следующие настройки:

    Code:
    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
    
    }
    
    А также определен файл, в котором будут указываться пароли пользователей:

    Code:
        files {
    
              usersfile = ${confdir}/users
    
              acctusersfile = ${confdir}/acct_users
    
              preproxy_usersfile = ${confdir}/preproxy_users
    
              }
    
    Секция authorize{} включает в себя следующие модули:

    Code:
    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 допишем следующие строки:

    Code:
    realm DEFAULT {
    
            type            = radius
    
            authhost        = LOCAL
    
            accthost        = LOCAL
    
    }
    
    В параметрах конфигурации модуля EAP /etc/raddb/eap.conf определим следующее:

    Code:
        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 определим имена и пароли для доступа к беспроводной сети:

    Code:
    user1 User-Password == "password1"
    
    user2 User-Password == "password2"
    
    user3 User-Password == "password3"
    Настроим автоматический запуск Freeradius при старте системы:

    Code:
    # rc-update add radiusd default
    Если все было сделано правильно, то после перезагрузки компьютера (или просто запуска соответствующих служб) беспроводные клиенты увидят следующее (см. рис. 6). Беспроводная сеть с поддержкой WPA, при подключении к которой необходимо указать пароль.
    [​IMG]
    Рисунок 6. WPA-сеть

    Если же по каким-либо причинам увидеть сеть не удалось, можно воспользоваться режимами отладки:

    Code:
    # hostapd –Kdddd
    
    # radiusd –X
    
    Enterprise-режим

    Немного изменив настройки модуля EAP Freeradius, можно настроить работу в режиме EAP-TLS. Так, чтобы настроить работу анологично описанному в [5], необходимо всего лишь поменять тип пакетов eap в файле eap.conf:

    Code:
    default_eap_type = tls
    и скопировать клиентский сертификат на компьютер пользователя.
     
  4. ShadOS

    ShadOS ы

    Регистрация:
    11.02.2007
    Сообщения:
    667
    Одобрения:
    350
    Репутация:
    413
    Обнаружение вторжений

    С использованием программной точки доступа можно просто и быстро организовать простейшую систему обнаружения вторжений. В простейшем случае можно воспользоваться пакетом arpwatch. С его помощью точка доступа будет отслеживать arp-запросы в сети и при появлении новых MAC-адресов отсылать уведомления на e-mail администратора.

    Для более «тонкой» защиты можно использовать связку Kismet+Snort. С помощью первого можно отслеживать атаки на уровне пакетов 802.11, а средствами второго организовать защиту на сетевом уровне и уровне приложений.

    Заключение

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

    Дальнейшая функциональность точки может быть расширена в 2 основных направлениях:

    n Настройки беспроводной части – обслуживание нескольких беспроводных сетей с одним адаптером (VAP Virtual Access Point), использование WMM (QoS в WiFi), реализация быстрого роуминга с ипользованием IAPP.

    n Установка дополнительных программ – ddnsclient, Squid, bind, samba, openVPN, Postfix, Apache, LVS – вот лишь короткий список программ, которые могли бы быть нам полезны.

    Другими словами, список возможных улучшений ограничен лишь имеющимся в распоряжении временем, а также полетом вашей фантазии.

    Приложение

    WPA2, или Почему нужно делать именно так

    На данный момент общепринятым является мнение, что WEP (даже совместно с фильтрацией MAC-адресов) не является надежной защитой для беспроводных сетей. Уже достаточно давно появились разнообразные инструменты (в том числе и для sctript-kiddies), позволяющие практически в автоматическом режиме «ломать» защиту WEP даже в Windows [6, 7].

    Для решения проблем безопасности, присущих WEP IEEE, и разработан стандарт 802.11i. Согласно последнему, выделяются 3 основные категории защиты в беспроводных сетях:

    n TKIP (Temporal Key Integrity Protocol) – основным назначением данной схемы было решение остро стоящих проблем WEP. Учитывая, что в основе лежал все тот же симметричный алгоритм шифрования RC4, было возможным смягчить проблемы WEP в новых прошивках для старого оборудования. Использование TKIP для шифрования трафика и 802.1X обычно называют WPA1.

    n CCMP (Counter Mode with CBC-MAC Protocol) – новый протокол на основе алгоритма симметричного шифрования AES (Advanced Encryption Standard). Учитывая несколько большие требования к необходимой вычислительной мощности, предполагалось, что данный протокол будет использоваться в оборудовании, выпущенном после принятия стандарта 802.11i. Использование CCMP совместно с аутентификацией 802.1Х обычно называют WPA2.

    n 802.1X – метод аутентификации для беспроводных сетей. Может использоваться как совместно с CCMP, так и TKIP.



    В рамках 802.1Х выделяется громадное количество методов аутентификации (около 40). Наиболее часто используются следующие:

    n EAP-MD5 – аутентификация по принципу «запрос-ответ» с помощью пары логин/пароль. Отметим, что даже несмотря на то, что последние не передаются по сети в открытом виде, метод обладает некоторыми недостатками – уязвим для атак по словарю, не производится аутентификация сервера. Преимущество также достаточно очевидно – простота внедрения (не требуются использование каких-либо сертификатов).

    n LEAP (Lightweight EAP) – алгоритм, предложенный Cisco Sytems, аутентификация производится сервером RADIUS по паре логин/пароль. Метод также уязвим к атакам по словарю. В виду некоторой закрытости данных стандарт не получил широкого распространения.

    n EAP-TLS (RFC2716) – аутентификация участников (взаимная) производится с помощью цифровых сертификатов. Способ требует наличия инфраструктуры открытых ключей (PKI Public Key Infrastructure). Метод удобен к использованию в гетерогенных сетях, в которых отсутствует центральный узел аутентификации (такой как сервер RADIUS, Active Directory, и др), но присутствует PKI.

    n EAP-TTLS – метод аутентификации, при котором с помощью цифровых сертификатов устанавливается TLS-сессия, в рамках передаются данные для аутентификации (в любой форме). Производится взаимная аутентификация клиента и сервера. Для использования также требуется PKI. Протокол часто используется совместно с другими методами аутентификации.

    n PEAP (Protected EAP) – вариант аутентификации с использованием публичного сертификата сервера для создания защищенного SSL-канала. Использование сертификатов со стороны клиентов не требуется. Данный метод в некотором смысле можно считать аналогом SSL для http (https://) применительно к беспроводным сетям.

    n EAP-MSHAPv2 – метод аутентификации согласно алгоритму MSCHAPv2, по паре логин/пароль внутри защищенного канала, созданного с использованием PEAP. Данный метод удобно использовать в Windows-сетях, в которых для аутентификации беспроводных клиентов используются учетные записи пользователей в Active Directory.

    Таким образом, для малых организаций можно рекомендовать использование EAP-MD5. EAP-TLS удобно использовать в сетях беспроводных провайдеров, а EAP-MSCHAPv2 – в крупных корпоративных сетях.
    [​IMG]
    Рисунок 7. Категории защиты в 802.11i

    Возможные проблемы и методы их решения

    Не запускается hostapd (или не загружаются модули ядра madwifi).

    Компоненты, входящие в состав системы, сильно связаны друг с другом. Так, драйверы madwifi являются модулями ядра и при обновлении последнего, возможно, их придется пересобрать. Точно так же после обновления madwifi необходимо пересобрать hostapd

    Не работает аутентификация клиентов с помощью radius-сервера. В режиме отладки hostapd выдается следующее сообщение: «No WPA/RSN information element for station!?»

    Убедитесь, что точка доступа работает в режиме WPA c поддержкой WPA2: «wpa=3».

    Ссылки, литература:

    1. http://wifi.yandex.ru/where.xml?city=213&dcity=1.

    2. http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux.

    3. http://linux-wless.passys.nl/query_chipset.php?chipset=Atheros&zoek=chipset.

    4. http://customerproducts.atheros.com/customerproducts.

    5. Платов А. Строим защищённую беспроводную сеть: WPAEnterprise, 802.1x EAP-TLS – Журнал «Системный администратор», №5, май 2005 г. – 64-71 с.

    6. http://airsnort.shmoo.com.

    7. http://freshmeat.net/projects/aircrack.

    Журнал "Системный Администратор".
     
  5. Digimortal

    Digimortal Banned

    Регистрация:
    22.08.2006
    Сообщения:
    474
    Одобрения:
    248
    Репутация:
    189
    вот недавно в ][ была статья про то, как сделать из аппаратной точки доступа сервер на базе линуха - достаточно интересная тема.. )
     
  6. drive_pan

    drive_pan Elder - Старейшина

    Регистрация:
    18.10.2007
    Сообщения:
    207
    Одобрения:
    78
    Репутация:
    5
    Ну так выложи здесь эту статью, или давай ссылку, думаю многим будет интересно почитать !!!
     
  7. Digimortal

    Digimortal Banned

    Регистрация:
    22.08.2006
    Сообщения:
    474
    Одобрения:
    248
    Репутация:
    189
    >> Ну так выложи здесь эту статью, или давай ссылку, думаю многим будет интересно почитать !!!

    Ссылка: журнал ][, номер 106, стр.26, "Level-up для точки доступа"
    когда появится электронная версия статьи, ее можно будет найти здесь: хттп://www.xakep.ru/magazine/xa/106/default.asp
     
  8. drive_pan

    drive_pan Elder - Старейшина

    Регистрация:
    18.10.2007
    Сообщения:
    207
    Одобрения:
    78
    Репутация:
    5
    Есть поинтересней ссылки, вот пожалуйста:
    Rapidshare
    EasyShare
    Uploading.com
    Все читаем !!! ;)
     
Загрузка...
Similar Threads - Собираем беспроводной роутер
  1. MrScrudg
    Ответы:
    1
    Просмотры:
    775
  2. ayanapa
    Ответы:
    3
    Просмотры:
    1 295
  3. nik9959
    Ответы:
    42
    Просмотры:
    5 382
  4. Империал
    Ответы:
    4
    Просмотры:
    2 298
  5. Mirror_M
    Ответы:
    3
    Просмотры:
    1 205
  6. [V]iRUS
    Ответы:
    0
    Просмотры:
    1 478
  7. GAiN
    Ответы:
    16
    Просмотры:
    2 667