AP mode, AdHoc Wifi - atheros madwifi

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

3 Responses to “AP mode, AdHoc Wifi - atheros madwifi”


  1. Gravatar Icon 1 draco

    Dziękuję za wpis ;) - ostatecznie właśnie on pomógł mi przy drobnych problemach podczas tworzenia ap.

  2. Gravatar Icon 2 T4ndeta

    Dzięki za opis pomógł mi :)

  3. Gravatar Icon 3 Spirulina

    Ciekawa strona, tak trzymac , pozdrawiam

Leave a Reply






O mnie

  • Programista PHP
  • Zwolennik Open Source
  • Użytkownik Linuksa (Debian)
  • Capoerista
  • Miłośnik Anime
  • Maniak optymalizacji i wydajności

Kategorie