С переходом на новый стэк mac80211 в свежих ядрах, функцию точки доступа перенесли в userspace. Теперь за master mode отвечает програ hostapd (дрова nl80211). Поэтому старый дедовский метод sudo iwconfig wlan0 mode master неработает – ругается:
Error for wireless request Set Mode (8B06) : SET failed on device wlan0 ; Invalid argument.
Переключается в master mode командой sudo iw phy phy0 interface add wlan0 type ap
Но всё-равно нужен hostapd!
Итак, танцуем …1. Установите hostapd:
sudo aptitude install hostapd
2. Создайте тестовый конфиг hostapd.conf со следующим содержанием:
#wlan0 поменять на имя вашего интерфейса
interface=wlan0
driver=nl80211
ssid=test
channel=1
3. Проведите тестовый запуск вашей софтовой точки доступа:
sudo hostapd ./hostapd.conf
-Вам повезло если появится следующее:
Configuration file: ./hostapd.conf
Using interface wlan0 with hwaddr [мак вашей карты] and ssid ‘test’
Вашу точку доступа видно с других устройств – осталось создать сетевой мост и рабочий конфиг.
-Если появилось что-то вроде:
Configuration file: ./hostapd.conf
Line 2: invalid/unknown driver ‘nl80211′
1 errors found in configuration file ‘./hostapd.conf’
То придеться пересобирать hostapd c поддержкой nl80211, танцы с бубном
Пример моего конфига hostapd.conf:
interface=wlan0
bridge=br0
driver=nl80211
ssid=bastille
channel=11
hw_mode=g
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=PasSwoRdhfkhgd
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
Сетевой мост br0 соединяет eth0 и wlan0
В моём случае клиенты wlan получают айпи у 192.168.220.1
Мой /etc/network/interfaces:
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.220.100
netmask 255.255.255.0
network 192.168.220.0
gateway 192.168.220.1
broadcast 192.168.220.255
dns-nameservers 192.168.11.1 8.8.8.8 208.67.220.220
auto br0
iface br0 inet static
address 192.168.220.101
netmask 255.255.255.0
gateway 192.168.220.1
broadcast 192.168.220.255
bridge_ports eth0 wlan0
В инете встречаются ругательства на неработоспособность моста с беспроводными картами – у меня работает!
Чтобы запускать hostapd через /etc/init.d/hostapd start|stop, надо прописать путь к конфигу (у меня /etc/hostapd/hostapd.conf) в переменную IF_HOSTAPD и/или лучше подправить файл /etc/hostapd/ifupdown.sh:
Я заменил
if [ -n "$IF_HOSTAPD" ]; then
HOSTAPD_CONF=»$IF_HOSTAPD»
else
exit 0
fi
на
if [ -n "$IF_HOSTAPD" ]; then
HOSTAPD_CONF=»$IF_HOSTAPD»
else
HOSTAPD_CONF=»/etc/hostapd/hostapd.conf»
fi
Повышаем конфиденциальность:
sudo chown root:root /etc/hostapd/hostapd.conf
sudo chmod 0600 /etc/hostapd/hostapd.conf
Для автостарта меняем RUN_DAEMON=»no» в /etc/default/hostapd на yes.
Источник:
http://otvety.google.ru/otvety/fhistory?fid=0d00ccbb18a8d24e00048517a2761ba4