Konfiguracja karty na chipsecie Atherosa aby pracowała w trybie AP nie jest specjalnie skomplikowana, lecz sprzężenie ze sobą udostępnienia sieci przez drugi interfejs, spięcie ich w mostek oraz ustawienia polityki bezpieczeństwa to złożone zadanie.
Wiele podręcznikowych przykładów, które znalazłem w sieci nie działało bądź działało nie tak jakbym sobie tego życzył.
Poniżej przedstawiam schemat sieci (made in Gimp), na której to bazie będziemy konfigurować bezprzewodowy punkt dostępu do Internetu.

Komputer, który zostanie podpięty do sieci Internet przez interfejs eth0 pełnił będzie rolę stacji udostępniającej połączenie na interfejsie ath0 a więc zarazem posłuży jako punkt dostępowy AP dla reszty maszyn w sieci.
Na komputerze udostępniającym połączenie niezbędne jest zainstalowanie pakietu madwifi oraz wpasupplicant. Pakiet z WPA jest nam potrzebny do zabezpieczenia AP przed niepożądanymi stacjami roboczymi, które ewentualnie będą chciały skorzystać z naszego dostępu do Internetu.
AP do szyfrowania transmisji wykorzystywać będzie WPA. Tak więc kolejnym krokiem będzie zainstalowanie oraz skonfigurowanie Hostapd, który będzie pełnił rolę daemona obsługującego autentykację oraz pracującego jako AP.
Konfiguracja dla Hostapd:
interface=ath0 bridge=br0 driver=madwifi # show verbose output logger_syslog=-1 logger_syslog_level=2 logger_stdout=-1 logger_stdout_level=2 debug=4 dump_file=/tmp/hostapd.dump ctrl_interface=/var/run/hostapd ctrl_interface_group=0 ssid=domowy_ap eapol_key_index_workaround=0 eap_server=0 wpa=1 #wpa_psk_file=/etc/hostapd/wpa_psk wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP wpa_passphrase=tajneHaslo
Z czego należy zauważyć, iż hasło podawane jest w formie jawnej. Jeżeli nam to nie odpowiada, możemy odkomentować linię wpa_psk_file i tym samym zdefiniować ścieżkę do pliku z kluczem wygenerowanym przez wpa_passphrase.
Rozpoczęcie udostępniania połączenia Internetowego sprowadza się do następujących czynności:
- Uruchomienia skryptu start_ap.sh (którego kod znajduje się niżej)
- Wystartowania Hostapd (hostapd /etc/hostapd/hostapd.conf)
Ze względu, iż w konfiguracji Hostapd ustawiliśmy tryb debug na 4 (verbose mode) na konsoli zostaną wyświetlone wszystkie informacje odnośnie błędów, inicjalizacji połączeń itd:
Configuration file: /etc/hostapd/hostapd.conf
Configure bridge br0 for EAPOL traffic.
madwifi_set_privacy: enabled=0
BSS count 1, BSSID mask ff:ff:ff:ff:ff:ff (0 bits)
madwifi_sta_deauth: addr=ff:ff:ff:ff:ff:ff reason_code=3
madwifi_set_privacy: enabled=0
madwifi_del_key: addr=00:00:00:00:00:00 key_idx=0
madwifi_del_key: addr=00:00:00:00:00:00 key_idx=1
madwifi_del_key: addr=00:00:00:00:00:00 key_idx=2
madwifi_del_key: addr=00:00:00:00:00:00 key_idx=3
Using interface ath0 with hwaddr 11:11:11:11:11:11 and ssid 'domowy_ap'
.........................................................
Wyłączenie Hostapd odbywa się poprzez standardowy hotkey CTRL+C natomiast interfejsy sieciowe przywracamy do pierwotnego stanu przez uruchomienie stop_ap.sh. Skrypty start_ap i stop_ap stworzyłem na własne potrzeby z tego względu, iż ciągłe uruchamiane tych samych poleceń było strasznie uciążliwe i spowalniało cały proces.
Opis interfejsów umieszczonych we wpisie:
ath0 - bezprzewodowa karta sieciowa pracująca w trybie AP
eth0 - karta Ethernet łączącą komputer z Internetem
br0 - mostek sieciowy między ath0 i eth0
192.168.0.111 - komputer z interfejsem bezprzewodowym, który udostępnia połączenie
192.168.0.1 - bramka sieciowa (gateway)
Systemem operacyjnym, na którym uruchamiałem Hostapd jest Debian. Bezprzewodowa karta sieciowa to Atheros AR5BMB5.
start_ap.sh - podnosi interfejs wifi, ładuje drivery, ustawia kartę w tryb Access Pointa, tworzy mostek oraz dodaje domyślną bramę.
#!/bin/sh # unload madwifi madwifi-unload # load madwifi modprobe ath_pci modprobe wlan_scan_sta modprobe ath_rate_sample modprobe wlan modprobe ath_hal # set up wifi interface ifconfig wifi0 up # set card into AP mode wlanconfig ath0 destroy wlanconfig ath0 create wlandev wifi0 wlanmode ap ifconfig ath0 0.0.0.0 ifconfig eth0 0.0.0.0 # create bridge brctl addbr br0 brctl addif br0 eth0 brctl addif br0 ath0 ifconfig br0 192.168.0.111 up # add default gateway route add default gw 192.168.0.1
stop_ap.sh - skrypt zatrzymujący AP. Usuwa drivery madwifi z pamięci, kładzie interfejsy oraz restartuje sieć.
#!/bin/sh # unload madwifi madwifi-unload # down interfaces ifconfig eth0 down ifconfig br0 down # delete bridge brctl delif ath0 brctl delif eth0 brctl delbr br0 /etc/init.d/networking stop /etc/init.d/networking start
karpowicz.net
gmail.com
Dziękuję za wpis
- ostatecznie właśnie on pomógł mi przy drobnych problemach podczas tworzenia ap.
Dzięki za opis pomógł mi
Ciekawa strona, tak trzymac , pozdrawiam
Witam,
a jak to zrobić gdy mam 3 interfejsy (eth0-Internet oraz podział na eth1 i ath0), korzystam z iptables i serwera dhcp do przydzielania IP po MACu klientom na eth1 i ath0?
Xaveri: musisz zdefiniować dodatkowy mostek między interfejsami, eth1 < -> ath0