AP na ath9k

Dzisiaj zrobimy sobie Access Pointa na systemie Debian (lub dowolnym, jaki masz), przy pomocy karty sieciowej z chipsetem ath9k. Wiele osób rezygnuje z tworzenia swojego AP ze względu na głosy w Internecie, głoszące, że na ath9k albo nie da się tego zrobić, albo jest to problematyczne, gdyż narzędzie nie wspiera Master Mode, czyli trybu karty sieciowej, który ustawia ją jako AccessPoint. A jednak się da (o tym na koniec) :>

Access Point będzie bardzo prosty, z użyciem dnsmasq (opisanego tutaj) oraz hostapd. Oszczędzi to nam konfiguracji, jednak jakby ktoś chciał się pobawić, zapraszam do artykułu o dhcp-server.

Problem polega na tym, że jeśli ręcznie przestawimy kartę sieciową w tryb Master, otrzymamy błąd:

ifconfig wlan0 down
iwconfig wlan0 mode master
Error for wireless request "Set Mode" (8B06) :
SET failed on device wlan0 ; Invalid argument.

przez który stracimy godziny na szukaniu rozwiązania w Google czy czytaniu manuali, które i tak nie dadzą nam rozwiązania.

Zaczynamy od instalacji madwifi-ng:

svn checkout http://madwifi-project.org/svn/madwifi/trunk madwifi
cd madwifi
make
make install
apt-get update
apt-get install hostapd dnsmasq -y

Teraz system prosi o reboot (ok – nie prosi, ale go zrób).

Konfiguracja hostapd

Zaczyna się ją od utworzenia pliku hostapd.conf w katalogu /etc/hostapd/ .
Pożyczę Wam mój config i podam adres do pełnej dokumentacji.

#interface - wybierz swoj
interface=wlan0
#sterownik - zostaw
driver=nl80211
#ssid sieci, zmien jak chcesz
ssid=i_can_hear_youre_having_sex
#kanal nadawania
channel=6
# Operation mode (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g,
# Default: IEEE 802.11b hw_mode=g
hw_mode=g
# bit 0 = Open System Authentication
# bit 1 = Shared Key Authentication
auth_algs=1
#rodzaj WPA
wpa=3
#haslo
wpa_passphrase=without-security
#pre-shared key
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
#szyfrowanie oparte na AES
rsn_pairwise=CCMP
# Bezuzyteczne zabezpieczenie:
# 0 = accept unless in deny list
# 1 = deny unless in accept list
# 2 = use external RADIUS server (accept/deny lists are searched first)
macaddr_acl=0
# Accept/deny lists are read from separate files (containing list of
# MAC addresses, one per line). Use absolute path name to make sure that the
#adresy MAC kochane i niekochane
#te adresy kochamy
accept_mac_file=/etc/hostapd/hostapd.accept
#a tych nie kochamy
deny_mac_file=/etc/hostapd/hostapd.deny

Konfiguracja adresów:

Access Point miał być prosty, więc nie komplikujemy niczego. Plik konfiguracyjny /etc/dnsmasq.conf wygląda tak:

interface=wlan0 #interface
dhcp-range=192.168.1.2,192.168.1.11 #zasieg adresow przydzielanych przez od,do DHCP

Teraz brakuje nam tylko interface, który miałby adres podany w config dnsmaqs, czyli:

ifconfig wlan0 192.168.1.1 netmask 255.255.255.0

Następnie należy ustawić przekierowanie ruchu sieciowego z interface AP do Sieci:

iptables -t filter -P FORWARD DROP
iptables -t filter -A FORWARD -s 192.168.1.0/255.255.255.0 -d 0/0 -j ACCEPT
iptables -t filter -A FORWARD -s 0/0 -d 192.168.1.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 0/0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables-save

Później restartujemy dnsmasq:

/etc/init.d/dnsmasq restart

I uruchamiamy hostapd:

hostapd -d /etc/hostapd/hostapd.conf

Wynik uruchomienia:

root@Agilob-PC:~# hostapd -d /etc/hostapd/hostapd.conf
Configuration file: /etc/hostapd/hostapd.conf
Opening raw packet socket for ifindex 4199392
BSS count 1, BSSID mask ff:ff:ff:ff:ff:ff (0 bits)
SIOCGIWRANGE: WE(compiled)=22 WE(source)=21 enc_capa=0xf
nl80211: Added 802.11b mode based on 802.11g information
RATE[0] rate=10 flags=0x2
RATE[1] rate=20 flags=0x6
RATE[2] rate=55 flags=0x6
RATE[3] rate=110 flags=0x6
RATE[4] rate=60 flags=0x0
RATE[5] rate=90 flags=0x0
RATE[6] rate=120 flags=0x0
RATE[7] rate=180 flags=0x0
RATE[8] rate=240 flags=0x0
RATE[9] rate=360 flags=0x0
RATE[10] rate=480 flags=0x0
RATE[11] rate=540 flags=0x0
Passive scanning not supported
Mode: IEEE 802.11g Channel: 6 Frequency: 2437 MHz
Flushing old station entries
Deauthenticate all stations
Using interface wlan0 with hwaddr 48:5d:60:34:a8:59 and ssid 'i_can_hear_youre_having_sex'
SSID - hexdump_ascii(len=27):
69 5f 63 61 6e 5f 68 65 61 72 5f 79 6f 75 72 65 i_can_hear_youre
5f 68 61 76 69 6e 67 5f 73 65 78 _having_sex
PSK (ASCII passphrase) - hexdump_ascii(len=16):
77 69 74 68 6f 75 74 2d 73 65 63 75 72 69 74 79 without-security
PSK (from passphrase) - hexdump(len=32): 2b 23 3f b8 63 9d 85 33 f7 5c 45 8f 18 68 9f f8 92 79 95 8c 57 68 77 53 3f b2 55 eb c7 2a 84 8d
WPA: group state machine entering state GTK_INIT (VLAN-ID 0)
GMK - hexdump(len=32): [REMOVED]
GTK - hexdump(len=32): [REMOVED]
WPA: group state machine entering state SETKEYSDONE (VLAN-ID 0)
wlan0: Setup of interface done.
MGMT (TX callback) ACK

Jak widać poniżej, da się ustawić kartę sieciową w tryb Master, wymagany jest do tego jednak hostapd – ręcznie, nie wiedzieć czemu, nie idzie tego zrobić nawet po patchowaniu kernela oO (przynajmniej mnie się nie udało).

root@Agilob-PC:~# iwconfig wlan0
wlan0 IEEE 802.11bgn Mode:Master Frequency:2.437 GHz Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:on

Co dalej?

Nie wiem, to Ty jesteś tu adminem. Proponuję szpiegowanie swoich użytkowników przy użyciu Squida ;).

Komentarze (RSS)
Komentarze są prywatnymi opiniami dodających je osób. Prosimy o zachowanie kultury wypowiedzi. Komentarze obraźliwe oraz obniżające poziom serwisu będą usuwane. Więcej w regulaminie komentowania.

7 komentarzy

  1. Mateusz 1 grudnia 2011 o godz. 18:28 #

    a próbowałeś odpalić hostapd dla ipv6?

  2. Michał 2 grudnia 2011 o godz. 9:50 #

    Świetny artykuł. Prosty, zrozumiały i z odnośnikami do dokumentacji. Dowiedziałem się także o kilku ciekawych narzędziach ;). DZIĘKI!

  3. dzulius 2 grudnia 2011 o godz. 21:27 #

    A jak ktoś już korzyszta z wi-fi przez wlan i chciałby odpalić na laptopie punkt dostępowy. To musi mieć odpowiednią kartę sieciową czy przeważnie na każdej da radę?

    • agilobable 3 grudnia 2011 o godz. 15:28 #

      Z realtekami s problemy, poniewa| producent od kilku lat nie pisze ju| sterowników dla tych chipsetów, je[li chcesz na rtl odpali AP to musisz wróci do jdra 2.4, na jdrze 2.6 mczyBem si kilka dni i udaBo mi si ustawi master mode, ale niestety karta nie rozgBaszaBa nawet istnienia AP, a ifconfig wykazywaB, |e master mode jest wBczone…

  4. nobady 4 stycznia 2012 o godz. 22:06 #

    Kompilacja i instalacja madwifi była zupełnie niepotrzebna. Z tą konfiguracją którą użyłeś na ath9k też by zadziałało, a wtedy mógłbyś użyć trybu draft n.

  5. michał 8 stycznia 2012 o godz. 20:11 #

    ja dorzucę swoje 3 grosze dla zrozumienia wątku
    madwifi to nierozwijany już sterownik do kart a układami atherosa
    ath9k to wolny sterownik zaczęto go pisać jak ogłoszono nierozwijanie już madwifi

    skoro w konfiguracji hostapd zostawia się domyślny sterownik to i tak hostapd nie wykorzystuje madwifi

    to takie pytanie od autora po co instalował madwifi skoro nie wyłączył ath9k w blacklist
    po drugie jak system korzysta z sterownika madwifi to karta wifi w systenie nie na zywa się wlan0 tylko ath0

(wymagane)
URI
Uwaga! Niektóre komentarze, m.in. te dodane przez niezalogowanych i nowych użytkowników, są ręcznie moderowane. Jeśli Twój komentarz nie ukaże się od razu, nie dodawaj go ponownie, tylko cierpliwie poczekaj na akceptację.

Literówki najlepiej zgłaszać jabberem: michuk@jakilinux.org lub kocio@jabber.org!

W komentarzach możesz używać prostych znaczników HTML. Przykłady:
  • Link: <a href="jaklinux.org">Linux dla każdego</a>,
  • Wytłuszczenie: <strong>tekst pogrubiony</strong>,
  • Kursywa: <em>tekst pochylony</em>,
  • Przekreślenie: <del>tekst przekreślony</del>,
  • Kod: <code>printf("blok kodu");</code>,
  • Cytat: <blockquote>cytat</blockquote>
Uwaga: jeśli dodasz nieznany znacznik, będzie on niewidoczny, gdyż system filtruje takie znaczniki.