Делаем точку доступа wi-fi в Linux (hostapd)

Полноценная wi-fi точка c защитой, используем hostapd

Настройка точки доступа
В этой статье я описывал создание сети ad-hoc, теперь же пойдем дальше и сделаем полноценную wi-fi точку доступа с защитой

Итак, побудило меня это делать то, что приобретенный андроидфон не видит ad-hoc сети, конечно можно "допилить" андроид, но не до этого...

Все также имеется Wi-fi адаптер D-Link DWA-510.

Ставим dhcp сервер, ибо он будет раздавать ip
# apt-get install dhcp3-server // это для Убунты
# yum install dhcp // это для кросношляпоосей :)

Ставим hostapd - демон, позволяющий сделать точку доступа
# apt-get install hostapd
# yum install hostapd

если у вас к примеру дебиан, то лучше соберите hostapd из исходников, т.к. в репозиториях старая версия.
посмотрим на каком интерфейсе висит вайфай сеть
# iwconfig
у меня это wlan0…
настраиваем:
# ifconfig wlan0 down
# iwconfig wlan0 Bit 54Mb/s
# ifconfig wlan0 192.168.0.1 netmask 255.255.255.0 up
# ifconfig wlan0 up


Дальше настроим dhcp
# nano /etc/dhcp3/dhcpd.conf //для убунту
# nano /etc/dhcp/dhcpd.conf // это в fedora ну и в других кросношляпоосях полагаю также
вводим туда следующее:

default-lease-time 3600;
max-lease-time 9000;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
interface wlan0;
range 192.168.0.2 192.168.0.255;
option domain-name-servers 91.144.186.3, 91.144.184.3; // dns сервера (в данном примере написаны сервера дом.ru нн)
option routers 192.168.0.1;
option broadcast-address 192.168.0.0;
}

теперь надо указать с какого интерфейса будем раздавать тырнет:
для Ubuntu:
# nano /etc/default/dhcp3-server

INTERFACES="ppp0"

для fedora:
# nano /etc/sysconfig/dhcpd

DHCPDARGS=ppp0


настраиваем hostapd
# nano /etc/hostapd/hostapd.conf
редактируем:

wpa=2
rsn_pairwise=CCMP
wpa_passphrase=ваш пароль
driver=nl80211
interface=wlan0
hw_mode=g
channel=1
ssid=название вашей точки

добавляем правила в iptables
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

ну собственно все
стартуем:
# /etc/init.d/dhcp3-server start - убунту
# service dhcpd start
# /etc/init.d/hostapd start - убунту
# service hostapd start

 

Вы можете оставить отзыв или трекбек со своего сайта.

Отзывов (34) на «Делаем точку доступа wi-fi в Linux (hostapd)»

  1. avatar Константин:

    Все сделал по инструкции…все равно ноут под windows не находит…как проверить, что настройки правильные?

  2. avatar Константин:

    Starting advanced IEEE 802.11 management: disabled via /etc/default/hostapd

    что может это означать??disabled via /etc/default/hostapd ??

  3. avatar Jeka:

    Константин похоже в убунте немного по-другому…
    откройте этот файл(/etc/default/hostapd)
    # nano /etc/default/hostapd
    и раскомментируйте (убрать символ ‘#’) в строчках:

    RUN_DEMON="yes"
    DEMON_CONF="/etc/hostapd/hostapd.conf
    

    и перезапустите демон:
    # /etc/init.d/hostapd restart

  4. avatar Andrei:

    извиняюсь, что комент не по теме, ну или почти.. но читая ваши толковые статьи, решил обратится, в надежде что вы сможете помочь с моей проблмой. у меня Ubuntu 10.04 (я совсем новичек в Linux´e ) с двумя картами. eth1 c DHCP смотрит в интернет, на eth0 висит Linksys WRT54G , на нем ноутбуки c XP ! интернет есть только на ubuntu, при подключении на eth0 напрямую ноутбука с windows xp на винде всплывает что кабель не подключен. мне очень бы хотелось чтоб при подключении нота или рутера он на автомате получал DHCP настройки и выходил в нет.
    копал в сторону моста между картами но тоже безрезультатно ! а мне всего лишь нужен нет нa ubunte и рабочий рутер c DHCP без сети и натов т.к от сам автоматом это умеет. вот такая у меня головная боль. я очень расчитываю на ваш опыт и надеюсь на участие , т.к многое уже перепробовал и пришлось удалив все сидеть за рутером с преброшенными портами , а беспомощность очень удручает +(

  5. avatar serega386:

    # /etc/init.d/hostapd start
    * Starting advanced IEEE 802.11 management [fail]
    # iwconfig
    wlan0 IEEE 802.11bgn ESSID:»innanet»
    Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
    Tx-Power=16 dBm
    Retry long limit:7 RTS thr:off Fragment thr:off
    Power Management:on

    # lsmod | grep rt
    rt2800usb 33496 0
    rt2x00usb 11260 1 rt2800usb
    rt2x00lib 32133 2 rt2800usb,rt2x00usb
    led_class 3764 1 rt2x00lib
    mac80211 238448 2 rt2x00usb,rt2x00lib
    cfg80211 148546 2 rt2x00lib,mac80211
    parport_pc 29958 1
    crc_ccitt 1675 1 rt2800usb
    # dmesg | tail
    [ 2587.739128] ADDRCONF(NETDEV_UP): wlan0: link is not ready

    USB-брелок d-Link DWA-125
    светодиод мигает
    wifi analizer на андроиде не видит сети

    не пойму чего я недокрутил?

  6. avatar Jeka:

    Andrei вам лучше обратится на форум — forum.ubuntu.ru, ибо я не совсем понял.

    serega386 поиграйтесь с конфигом hostapd’а

  7. avatar Serge:

    /etc/init.d/hostapd restart
    Останавливается hostapd: [СБОЙ ]
    Запускается hostapd: /etc/hostapd/hostapd.confFailed to set interface wlan0 to master mode.
    nl80211 driver initialization failed.
    ELOOP: remaining socket: sock=5 eloop_data=0x920c860 user_data=(nil) handler=0x807dfd0
    [СБОЙ ]

  8. avatar Serge:

    Russian Fedora 13.1

  9. avatar Neolo:

    neolo@neolo-laptop:~$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
    bash: /proc/sys/net/ipv4/ip_forward: Permission denied

    Что за **?? Через SUDO не пускает даже!

  10. avatar Neolo:

    Исправляемся так (Ubuntu 10):
    sudo -i
    echo 1 > /proc/sys/net/ipv4/ip_forward

  11. avatar Neolo:

    Прикол в том что эту точку ни одно устройство не видет!

  12. avatar Neolo:

    А если у меня Wi-Fi карта Atheros встроенная в ноуте, что вводить в driver= ?
    Я ввел PCI перезапустил — глухо, точка не видна.

  13. avatar Jeka:

    Neolo
    lspci -v смотрим вывод, надеюсь карточка определяется;
    если к примеру
    Kernel driver in use: ath5k , то идем сюда http://linuxwireless.org/en/users/Drivers и устанавливаем нужный драйвер.
    в конфиге hostapd пишем driver=nl80211

  14. avatar Neolo:

    02:00.0 Ethernet controller: Atheros Communications Inc. AR5001 Wireless Network Adapter (rev 01)
    Subsystem: Askey Computer Corp. Device 7131
    Flags: bus master, fast devsel, latency 0, IRQ 17
    Memory at e0100000 (64-bit, non-prefetchable) [size=64K]
    Capabilities:
    Kernel driver in use: ath5k
    Kernel modules: ath5k

    Чет не понимаю зачем устанавливать драйвер если драйвер стоит и карта в системе нормально работает и сама видет другие точки. Да и вообще где по той ссылке драйвера я так и не въехал. Вижу ath5k yes yes yes и что дальше?

  15. avatar Jeka:

    я наверно не так выразился, просто ath5k драйвер не поддерживает работу в режиме AP, исправляется накладыванием патча
    там скачаете исходники, поправите и соберете…
    подробнее:
    http://madwifi-project.org/wiki/UserDocs/ath5kAccessPoint
    http://linuxwireless.org/en/users/Download/stable/
    http://www.orbit-lab.org/kernel/compat-wireless-2.6-stable/

  16. avatar jam:

    а можно ли статику подключений к точке посмотреть кроме как
    arp -iwlan0

  17. avatar PaxaN666:

    Сделал все от и до. НЕ РАБОТАЕТ… :( точку вообще не видно. Может что не так сделал???

  18. avatar PaxaN666:

    у меня d-link dsl-2500u

  19. avatar Jeka:

    jam можно посмотреть какие ip и кому были выданы через dhcp
    PaxaN666 если у Вас d-link dsl-2500u то он не умеет wi-fi (судя по офф сайту), можете купить роутер например d-link dir-300 и настроить раздачу интернета по wi-fi именно там, или можно купить D-Link DWA-510 и пользоваться этой статьей

  20. avatar rus:

    После перезагрузки wifi точка доступа перестала шарить инет. Как это можно исправить?

  21. avatar rus:

    Никто не знает, как изменения сохранять, чтобы после перезагрузки всё не слетало? Иначе приходится каждый раз делать так:
    # ifconfig wlan0 down
    # iwconfig wlan0 Bit 54Mb/s
    # ifconfig wlan0 192.168.0.1 netmask 255.255.255.0 up
    # ifconfig wlan0 up
    # echo 1 > /proc/sys/net/ipv4/ip_forward
    # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    /etc/init.d/dhcp3-server restart
    /etc/init.d/hostapd restart

  22. avatar tridy:

    to rus:
    Добавь все набранные тобой команды в /etc/rc.local до строчки exit 0;

  23. Жека, а по Центосу можете подобный мануал сделать? Или Вы только по убунте специализируетесь?
    Я недавно переехал на центос и в общемто разобрался, но некоторые места- в том числе и вайфай- это просто чума какаято- руки опускаются, блин. Помогите, если есть возможность.

  24. avatar rus:

    tridy, спасибо)

  25. avatar Ололо:

    А файл размером 535 байт обязательно нужно было заливать на депозит ?
    на этом сайте места не хватило ?

  26. avatar Serge:

    херня какая-то, а не хинт.
    блин. И таких хинтов по инету море. Как спама.
    У меня может быть два сетевых интерфейса + wlan (третий)
    А это уже совсем иной подход. bridge.
    Так и нефиг спамить своими квик-блогами.
    ходишь по гуглу и натыкаешься на тысячи страниц вот таких вот.. .. мастеров, блин.

  27. avatar Николай:

    ifconfig wlan1 down
    ifconfig wlan1 192.168.0.1 netmask 255.255.255.0 up
    ok
    ifconfig wlan1 down

    /etc/hostapd/hostapd.conf
    #
    wpa=0
    #rsn_pairwise=CCMP
    #wpa_passphrase=12345678
    driver=nl80211
    interface=wlan1
    hw_mode=g
    channel=6
    ssid=srv001

    /etc/named.conf
    #
    acl «corpnet» { localhost; 127.0.0.1/8; 192.168.1.0/24; 192.168.2.0/24; };
    ..
    /etc/dhcp/dhcpd.conf
    #
    subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.2 192.168.1.100;
    default-lease-time 86400;
    max-lease-time 86400;
    option routers 192.168.1.1;
    option ip-forwarding off;
    option broadcast-address 192.168.1.255;
    option subnet-mask 255.255.255.0;
    option domain-name-servers 192.168.1.1;
    option netbios-name-servers 192.168.1.1;
    }

    subnet 192.168.2.0 netmask 255.255.255.0 {
    range 192.168.2.2 192.168.2.100;
    default-lease-time 86400;
    max-lease-time 86400;
    option routers 192.168.2.1;
    option ip-forwarding off;
    option broadcast-address 192.168.2.255;
    option subnet-mask 255.255.255.0;
    option domain-name-servers 192.168.2.1;
    option netbios-name-servers 192.168.2.1;
    }

    и маскарадинг средствами графической утилиты в gnome. Руками не против, но как это сохранится под fedora — hz. Поэтому через gui.

    service dhcpcd restart
    service named restart
    service hostapd restart

    клиенты видят карточку, получают ip типа 192.168.1.2 итд. могут заходить на хост 192.168.1.1, пинговать ip внешние (правда, спустя секунд 5), но с именами трабла. что-то с dns не так.
    При чем не ясно, как wlan1 получает адрес 192.168.1.1. Я ему его лишь временно забивал. потом делал ifconfig wlan1 down. В hostapd же никаких упоминаний про то, как ему ловить адрес, нет.

  28. avatar rus:

    В новой убунте 11.04 dhcp3-server заменен на isc-dhcp-server. Куда прописывать строку INTERFACES=»ppp0″??? Ещё Hostapd не запускается

  29. avatar Юрий:

    вывод команды iwconfig после запуска dhcp и hostapd(запустились без каких либо ошибок )
    root@Aspire:~# iwconfig

    eth1 IEEE 802.11bgn ESSID:»"
    Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
    Bit Rate:16 Mb/s Tx-Power:24 dBm
    Retry min limit:7 RTS thr:off Fragment thr:off
    Encryption key:off
    Power Management:off
    Link Quality=5/5 Signal level=0 dBm Noise level=-97 dBm
    Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
    Tx excessive retries:0 Invalid misc:0 Missed beacon:0

    почему поле ESSID пустое. Вот содержимое файла /etc/hostapd/hostapd.conf :

    wpa=2
    rsn_pairwise=CCMP
    wpa_passphrase=12131415
    driver=wl
    interface=eth1
    hw_mode=g
    channel=1
    ssid=abcd

    Команда lspci -v выдала драйвер wl, прорбовал писать драйвер nl80211, то же самое.

  30. avatar Alex:

    Все сделал, андроид сеть видит, подключается, тока на нам инета нету.
    вместо ppp0 я пишу eth0 (вроде у меня так), в чем беда?

  31. avatar rus:

    Alex, эта же проблема у меня появилась после обновления ядра. похоже iptables не пускает. не знаю что делать. Может кто-то подскажет куда копать?

  32. avatar AndrewD:

    теперь надо указать с какого интерфейса будем раздавать тырнет:
    для Ubuntu:
    # nano /etc/default/dhcp3-server

    INTERFACES=»ppp0″

    а разве на каком интерфейсе слушать?

  33. avatar Леонид:

    У меня настройки dhcp другие и называется он isc-dhcp-server, а hostapd не запускается как демон и ему нужно указать при запуске файл конфигурации… и виндовые клиенты не получают dns… а клиенты ubuntu нормально работают. И пришлось канал поменять с 1 на 10 потому что на 1 канале соединение всего первые несколько секунд было а потом пропадало, хотя сигнал отличный.

  34. avatar Unknown:

    А что представляет из себя ваш указанный интерфейс ppp0?
    точка доступа появляется, к ней можно подключаться,но инета не дает. при выключенном фаерволе тоже самое

Ваш отзыв

Spam Protection by WP-SpamFree