Wifi точка доступа из нетбука
В последние два дня проходил интересный квест. Задача: установить новую (2.1) прошивку на гуглофон (старая не поддерживает API для bluetooth, а в моей программе он необходим). Для этого, кроме всего прочего, нужно высокоскоростное подключение к Инету, чтобы, например, синхронизировать почту, контакты, календарь и т.п. с аккаунтом Google (GPRS/EDGE и денег сожрет немеряно, и отвалиться может на полпути). Подключить гуглофон к всемирной Сети можно через Wifi, который у меня присутствует только на нетбуке. Беспроводное устройство на нем простенькое (из серии Atheros AR500), режим Master, с помошью которого можно организовать точку доступа, не поддерживает. Гугление показало, что в таких случаях люди используют hostapd. При его установке и настройке встретились подводные камни, о которых стоит рассказать.
Скажу сразу, что есть альтернативный вариант организации точки доступа — с использованием пакета madwifi. Но он что-то не зафурычил и углубляться в эту тему я не стал. А с hostapd вот как обстоит дело.
1) Пройдя по указанной выше ссылке, скачайте исходники, распакуйте, как всегда, в /usr/src.
2) Заходим в каталог и с ужасом обнаруживаем, что там нет до боли родного ./configure. Там вообще какая-то странная структура каталогов. Оказывается, войти нужно в hostapd/, не обращая внимание на всё остальное.
3) О, здесь хотя бы Makefile есть. Но при запуске make вылезает какой-то странный месседж, в переводе с английского означающий, что конфигурационный файл нужно создать вручную из шаблона:
4) А вот теперь внимание! В получившемся шаблоне нужно раскомментировать строку
и больше ничего не трогать! И вот почему. Этот демон работает с библиотекой libnl. Узнав об этом, многие горячие головы кидаются скачивать ее, причем, берут, естественно, самую свежую версию. Интернет завален мольбами о помощи: «У меня не собирается hostapd с libnl». И бедолагам никто не отвечает. А почему? Да потому что читать нужно внимательнее, что в комментариях конфига написано:
Ну, это я сейчас такой «умный», а сам, конечно же, угодил в эту западню и потратил много времени на борьбу с заботливо созданной самому себе проблемой. Так что не повторяйте чужих ошибок, качайте и собирайте устаревшую(1.1) версию libnl и тогда всё встанет на свои места.
4) Установив программное обеспечение, нужно его настроить. Это можно сделать и без моих подсказок, Гугль в помощь, материалов навалом. Настроечный файл /etc/hostapd/hostapd.conf достаточно велик, благодаря обширным комментариям, но и в Сети можно найти его версии, состоящие буквально из 10 строк.
5) Естественно, всё это хозяйство должно запускаться на компьютере, на котором настроен доступ в Интернет. Чтобы пробрасывать проводной Инет в беспроводной, нужно соорудить мост «анженерной работы»:
В конфиге hostapd строчку, где упоминается мост (br0), нужно раскомментировать. После этого можно запускать демон в тестовом режиме, т.е. с выводом всех сообщений на экран:
При этом гуглофон или другое оснащенное Wifi'ем устройство должно увидеть наконец-то самопальную wifi-сеть.
6) Клиент должен еще получить IP-адрес, сведения о маршрутизации и DNS. Поэтому запустить нужно еще и DHCP-демон с примерно таким конфигом:
Ну, а уж с защитой сети, фильтрацией mac-адресов и т.п. можно и попозже разобраться Я эту сеть включеной круглосуточно держать не собираюсь. Мне бы гуглофон, наконец-то прошить…
Скажу сразу, что есть альтернативный вариант организации точки доступа — с использованием пакета madwifi. Но он что-то не зафурычил и углубляться в эту тему я не стал. А с hostapd вот как обстоит дело.
1) Пройдя по указанной выше ссылке, скачайте исходники, распакуйте, как всегда, в /usr/src.
2) Заходим в каталог и с ужасом обнаруживаем, что там нет до боли родного ./configure. Там вообще какая-то странная структура каталогов. Оказывается, войти нужно в hostapd/, не обращая внимание на всё остальное.
3) О, здесь хотя бы Makefile есть. Но при запуске make вылезает какой-то странный месседж, в переводе с английского означающий, что конфигурационный файл нужно создать вручную из шаблона:
cp defconfig .config
4) А вот теперь внимание! В получившемся шаблоне нужно раскомментировать строку
CONFIG_DRIVER_NL80211=y
и больше ничего не трогать! И вот почему. Этот демон работает с библиотекой libnl. Узнав об этом, многие горячие головы кидаются скачивать ее, причем, берут, естественно, самую свежую версию. Интернет завален мольбами о помощи: «У меня не собирается hostapd с libnl». И бедолагам никто не отвечает. А почему? Да потому что читать нужно внимательнее, что в комментариях конфига написано:
# driver_nl80211.c requires a rather new libnl (version 1.1) which may not be
# shipped with your distribution yet. If that is the case, you need to build
# newer libnl version and point the hostapd build to use it.
Ну, это я сейчас такой «умный», а сам, конечно же, угодил в эту западню и потратил много времени на борьбу с заботливо созданной самому себе проблемой. Так что не повторяйте чужих ошибок, качайте и собирайте устаревшую(1.1) версию libnl и тогда всё встанет на свои места.
4) Установив программное обеспечение, нужно его настроить. Это можно сделать и без моих подсказок, Гугль в помощь, материалов навалом. Настроечный файл /etc/hostapd/hostapd.conf достаточно велик, благодаря обширным комментариям, но и в Сети можно найти его версии, состоящие буквально из 10 строк.
5) Естественно, всё это хозяйство должно запускаться на компьютере, на котором настроен доступ в Интернет. Чтобы пробрасывать проводной Инет в беспроводной, нужно соорудить мост «анженерной работы»:
ifconfig eth0 down
brctl addbr br0
brctl addif br0 eth0
brctl setfd br0 0
ifconfig br0 xxx.xxx.xxx.xxx
В конфиге hostapd строчку, где упоминается мост (br0), нужно раскомментировать. После этого можно запускать демон в тестовом режиме, т.е. с выводом всех сообщений на экран:
hostapd -d /etc/hostapd/hostapd.conf
При этом гуглофон или другое оснащенное Wifi'ем устройство должно увидеть наконец-то самопальную wifi-сеть.
6) Клиент должен еще получить IP-адрес, сведения о маршрутизации и DNS. Поэтому запустить нужно еще и DHCP-демон с примерно таким конфигом:
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.0.0 netmask 255.255.255.0 {
interface br0;
range 192.168.0.11 192.168.0.250;
option routers 192.168.0.1;
option domain-name-servers ip.of.dns.server1, ip.of.dns.server2;
}
Ну, а уж с защитой сети, фильтрацией mac-адресов и т.п. можно и попозже разобраться Я эту сеть включеной круглосуточно держать не собираюсь. Мне бы гуглофон, наконец-то прошить…
Комментарии (3)
RSS свернуть / развернутьмоя нормально не работала в master mode
авторизация и фильтрация по mac адресам делается с помощью hostapd
Sergei_T
Sergei_T
yababay
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.