Интересное

Сообщение об ошибке

Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in drupal_environment_initialize() (line 684 of /home/www/nixtalk.com/includes/bootstrap.inc).

Hostapd настройка

Опубликовано сб, 12/24/2011 - 01:26 пользователем Demontager

Давно хотел попробовать в действии демон для создания точки доступа hostapd, но не получалось из-за того что, у меня не было в наличии подходящего WIFI модуля.
На этот раз он у меня появился, специально подбирал по совместимости, с которым hostapd работает замечаетельно:

  1. Bus 002 Device 002: ID 7392:7711 Edimax Technology Co., Ltd EW-7711UTn nLite Wireless Adapter [Ralink RT2870]

Как видно из вывода, этот адаптер основан на чипе Ralink2870. На Debian подобных системах этот адаптер заводится с полпинка, plug-and-play, провереноо на Debian 6 Squezze и Ubuntu 11.10. Но для Gentoo ещё нужно активировать модуль ядра:

  1. Device Drivers --->[*] Network device support --->[*] Wireless LAN --->
  2.  
  3.  
  4. <M> Ralink driver support --->
  5.  
  6. --- Ralink driver support
  7. < > Ralink rt2400 (PCI/PCMCIA) support
  8. < > Ralink rt2500 (PCI/PCMCIA) support
  9. < > Ralink rt2501/rt61 (PCI/PCMCIA) support
  10. < > Ralink rt27xx/rt28xx/rt30xx (PCI/PCIe/PCMCIA) support
  11. < > Ralink rt2500 (USB) support
  12. < > Ralink rt2501/rt73 (USB) support
  13. <M> Ralink rt27xx/rt28xx/rt30xx (USB) support
  14. [*] rt2800usb - Include support for rt33xx devices
  15. [*] rt2800usb - Include support for rt35xx devices (EXPERIMENTAL)
  16. [*] rt2800usb - Include support for rt53xx devices (EXPERIMENTAL)
  17. [*] rt2800usb - Include support for unknown (USB) devices
  18. [ ] Ralink debug output

Но это ещё не всё, нужно ещё установить последний firmware от ralink. Компилировать вручную ничего не нужно, в gentoo уже имеется готовая прошивка в пакете sys-kernel/linux-firmware. Тут очень важно заметить, что если у вас установлена прошивка с какого-то сторонего пакета, к примеру "net-wireless/iwl5000-ucode", "net-wireless/rt73-firmware", "net-wireless/b43-firmware" и тд., то sys-kernel/linux-firmware не сможет установится по причине блокировки, необходимо просто удалить сторонний пакет, так как в"linux-firmware" уже имеются эти прошивки, по крайней мере, те 3 что я привёл для примера, точно есть.
Теперь можно приступать к настройке hostapd. Если у вас используется один из менеджеров подключения к сети, такой как Network Manager или Wicd, и др., их придётся отключить, так как они будут только мешать конфигурации сети.

  1. killall NetworkManager && wicd

Далее мы настроим точку доступа для подключения клиентов и поднимем dhcp сервер.
Но сначала необходимо настроить сетевые интерфейсы, предполагается что wifi адаптер определятся как wlan0. IP адресс для него можно выбрать из диапазона зарезервированных для локальных сетей: "192.168.0.0" "172.16.0.0" "10.0.0.0". Скрипт запуска сети находится в Gentoo в /etc/init.d/net.lo, теперь нужно для каждого интерфейса создать отдельную копию скрипта, это осуществляется путём символической ссылки:

  1. ln -s /etc/init.d/net.lo /etc/init.d/net.wlan0

Если у вас несколько интерфейсов, создайте таким же образом соответсвующее количесво ссылок. Какие интерфейсы имеются в системе, можно узнать выполнив команду:

  1. ifconfig -a

опция -a заставляет вывести все интерфейсы, а не только активные.
После создания ссылок, необходимо прописать настройки сети в /etc/conf.d/net.

  1. # For static IP using netmask notation
  2.  
  3. #wlan0
  4. config_wlan0=( "192.168.1.1 netmask 255.255.255.0" )
  5. routes_wlan0=( "default via 192.168.1.1" )

Последнюю строчку можно не указывать, так как для удобства поднимем ещё dhcp сервер, там будет прописан основной маршрут.
Теперь можно проверить присваивание адресса интерфейсу, выполняем команду:

  1. /etc/init.d/net.wlan0 start

Если всё работает, можно приступить уже собственно к поднятию hostapd. Его конфиг файл находится в /etc/hostapd/hostapd.conf. Открываем его и редактируем, для наглядности я удалил все неиспользуемые строчки. Для Ralink RT2870 достаточно будет задать такие параметры:

  1. #сетевой интерфейс
  2. interface=wlan0
  3. #драйвер
  4. driver=nl80211
  5. #название точки доступа
  6. ssid=AP_test
  7. #режим работы, максимальная скорость достигается в g
  8. hw_mode=g
  9. #канал
  10. channel=11
  11. ieee80211n=1
  12. beacon_int=100
  13. macaddr_acl=0
  14. auth_algs=1
  15. ignore_broadcast_ssid=0
  16. #тип шифрования, наиболее защищён WPA
  17. wpa=1
  18. wpa_passphrase=parol_k_wifi
  19. wpa_key_mgmt=WPA-PSK
  20. wpa_pairwise=TKIP CCMP
  21. wpa_ptk_rekey=600

У hostapd также ещё есть дополнительный конфиг /etc/conf.d/hostapd, который задаёт интерфейс, после которого нужно запускать демон. Тоесть, сначала поднимается интерфейс, а потом на него "садится" hostapd. Поэтому, добавляем wlan0 как интерфейс на котором будет работать демон.

  1. # Space separated List of interfaces which needs to be started before
  2. # hostapd
  3. INTERFACES="wlan0"
  4.  
  5. # Список конфиг файлов, через пробел
  6. CONFIGS="/etc/hostapd/hostapd.conf"
  7.  
  8. # Экстра опции, передаваемые hostapd, детали - man hostapd(8)
  9. OPTIONS=""

На этом настройка закончена и можно запустить hostapd

  1. /etc/init.d/hostapd start

При подключении к вашей точке доступа, на клиентах нужно задать статические IP, так как в данном случае точка доступа работает без dhcp сервера. Это не совсем удобно, поэ тому лучше настроить ещё dhcp. Я использовал самый распространённый dhcpd. Перед запуском редактируем его конфиг /etc/dhcp/dhcpd.conf.

  1. #время на которое присваевается IP клиенту, по истечнии посылается запрос на обновление
  2. default-lease-time 600;
  3. max-lease-time 7200;
  4.  
  5. #этот dhcp сервер будет главным
  6. authoritative;
  7.  
  8. #самые важные настройки, прописываем IP, DNS, broadcast, шлюз
  9. subnet 192.168.1.0 netmask 255.255.255.0 {
  10. range 192.168.1.2 192.168.1.8;
  11. option domain-name-servers 192.168.1.1, 8.8.8.8;
  12. option routers 192.168.1.1;
  13. option broadcast-address 192.168.255.255;
  14. }
  15. #Эта строчка присваевает клиенту с определённым mac адрессом, требуемый IP
  16. host samsung-galaxy {
  17. hardware ethernet 04:46:65:78:08:fb;
  18. fixed-address 192.168.1.101;
  19. }

И ещё один конфиг /etc/conf.d/dhcpd, тут задаём интерфейс, на котором будет работать dhcp сервер:

  1. # На каких интерфейсах dhcp будет слушать входящие соединения.
  2. # Список интерфейсов вводится через пробел. Если ни один не задан, по умолчанию слушаются все интерфейсы
  3. DHCPD_IFACE="wlan0"

Можно запускать dhcpd

  1. /etc/init.d/dhcpd start

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

category_index: 
Поделится: 

1 комментарий

Аватар пользователя Гость

автор Гость вкл ср, 06/05/2013 - 10:10

Большое спасибо за статью. С поправкой на новые реалии завел быстро.

Добавить комментарий