Praktické zkušenosti s provozem WiFi Acess Pointu pod OS GNU/Linux
David Seidl katedra informatiky VŠB-TU Ostrava
[email protected] [email protected]
Co se dozvíte ●
Proč pro Acess Point použít Linux
●
Antény a jejich vlastnosti, kebely, vedení, vyzařovací výkon
●
Linux jako WiFi Access Point i jako klient, hostap
●
Zabezpečení bezdrátové sítě, kryptování, filtrace MAC adres
●
Služby sítě, DHCP server, sledování množství přenesených dat
●
Nástroje pro sledování aktuálního stavu sítě
ale jako první jedna historická souvislost .......
Víte že ..... Za prvopočátkem rozvoje bezdrátových sítí je čech.
Víte že ..... Za prvopočátkem rozvoje bezdrátových sítí je čech.
Jára Cimrman
Proč pro AP použít Linux Bývalo to levnější
●
Plná kontrola nad systémem
●
Možnost vzdáleného přístupu přes SSH
●
Rozšiřitelnost systému o téměř libovolnou síťovou službu
●
Na jakých frekvencích pracuje WiFi Pásmo 2.4GHz rozděleno na 14 frekvencí (kanálů) 1 2 3 4 5 6 7 8 9 10 11 12 13 14
2,412 GHz 2,417 GHz 2,422 GHz 2,427 GHz 2,432 GHz 2,437 GHz 2,442 GHz 2,447 GHz 2,452 GHz 2,457 GHz 2,462 GHz 2,467 GHz 2,472 GHz 2,484 GHz
USA a Kanada Evropa Francie Španělsko Japonsko
Co je rozprostřené spektrum Odstup jednotlivých kanálů je 5 MHz Vysílání na jednom kanálu zabere ve spektru 22MHz
11MHz
5MHz
2,422 3
2,427 4
2,432 5
5MHz
2,437 6
2,442 7
GHz kanál
Antény Isotropní anténa
vysílá do všech směrů stejně a to jak ve vertikálním tak v horizontálním směru
vyzařovací diagram v horizontálním směru
vyzařovací diagram ve vertikálním směru
Antény všesměrová anténa v horizontálmím směru je podobná isotropní anténě vyzařovací diagram v horizontálním směru
vyzařovací diagram ve vertikálním směru
Antény všesměrová anténa v horizontálmím směru je podobná isotropní anténě Zisk – 2 až 11dBi polarizace vertikální
Antény panelová anténa
oproti všesměrové anténě vykrývá v horizontálním směru jen určitý úhel
vyzařovací diagram v horizontálním směru
vyzařovací diagram ve vertikálním směru
Antény panelová anténa
oproti všesměrové anténě vykrývá v horizontálním směru jen určitý úhel Zisk – 8 až 15dBi polarizace – dle uložení
Antény směrová anténa
vyzařovací úhel je v horizontálním i vertikálním směru velmi malý
vyzařovací diagram v horizontálním směru
vyzařovací diagram ve vertikálním směru
Antény směrová anténa
vyzařovací úhel je v horizontálním i vertikálním směru velmi malý Zisk – 15 až 30dBi polarizace – dle uložení
Kabely Označení H155 H1000 RLA10 RG58 LMR400 LMR195
útlum(dB/m) 0,5 0,22 0,22 0,79 0,21 0,62
průměr(mm) 5,4 10,3 11,5 4,4 10,3 5
Konektory Nkonektor (samec)
Nkonektor (samice)
Reverzní SMA
Pigtail (prasečí ocásek)
Hustota vyzářeného výkonu Dle zákona je maximální hustota vyzářeného výkonu stanovena na 100mW tedy 20dB Jak spočítat hustotu vyzářeného výkonu? X[dBi]=A – B + C X[dBi] – celková hustota vyzářeného výkonu v dBi X[mW] – celková hustota vyzářeného výkonu v mW A – vyzařovaný výkon zařízení na konektoru v dBm B – útlum použitého koaxiálního kabelu dané délky, bleskojistky a konektorů v dB C – zisk vysílací antény v dBi
Převod hodnoty v dBi na mW X[mW]=10X[dBi]/10
První Fresnelova zóna – co to je a k čemu je to dobré D L2
L1
1km
D=(lambda*L1*L2/(L1+L2))0,5 D=(0,1248*500*500/(500+500))0,5 = 5,6m
CSMA/CD a CSMA/CA CSMA/CD (Carrier Sense Multiple Access / Collision Detection)
PC1
PC2
PC3
PC4
CSMA/CD a CSMA/CA CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance)
AP
PC3 PC1 PC2
CSMA/CD a CSMA/CA CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance)
AP
PC3 PC1 PC2
CSMA/CD a CSMA/CA CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance)
AP
PC3 PC1 PC2
CSMA/CD a CSMA/CA CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance)
AP S T R
PC3 PC1 PC2
CSMA/CD a CSMA/CA CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance)
AP CT S
CTS
S T C
PC3 PC1 PC2
CSMA/CD a CSMA/CA CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance)
AP ta a D
PC3 PC1 PC2
CSMA/CD a CSMA/CA CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance)
AP K C A
PC3 PC1 PC2
WiFi karty v Linuxu ZCOM XI 626 PCI card
Ovladač hostap a wireless tools HostAP Domovská stránka projektu: http://hostap.epitest.fi/ Obsahuje tři balíky: hostapdriver samotný ovladač hostaputils utility pro kryptování apod. hostapd daemon pro komunikaci s RADIUS serverem apod. Wireless Tools Domovská stránka projektu: http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html inplementuje do systému nástroje iwconfig, iwpriv atd.
Ovladač hostap a wireless tools HostAP Stal se součástí 2.6 kernelu
Ovladač hostap a wireless tools Wireless Tools Ve většině distribucí Linuxu je možno stáhnout jako balíček
iwconfig (interface wireless config) # iwconfig help Usage: iwconfig interface [essid {NN|on|off}] [nwid {NN|on|off}] [mode {managed|adhoc|...} [freq N.NNNN[k|M|G]] [channel N] [ap {N|off|auto}] [sens N] [nick N] [rate {N|auto|fixed}] [rts {N|auto|fixed|off}] [frag {N|auto|fixed|off}] [enc {NNNNNNNN|off}] [power {period N|timeout N}] [retry {limit N|lifetime N}] [txpower N {mW|dBm}] [commit] Check man pages for more details.
iwconfig příklad konfigurace klienta # iwconfig wlan0 mode managed # iwconfig wlan0 essid Tata.Net # iwconfig wlan0 key b15c48d63f18c698a6325c968b # ifconfig wlan0 10.0.0.100 netmask 255.0.0.0 # route add default gw 10.0.0.1
iwconfig příklad konfigurace AP # ifconfig wlan0 10.0.0.1 netmask 255.0.0.0 # route add default gw 192.168.55.10 # iwconfig wlan0 essid Tata.Net # iwconfig wlan0 mode master # iwconfig wlan0 key b15c48d63f18c698a6325c968b # iwconfig wlan0 channel 9 # iwconfig wlan0 sens 3 # iwconfig wlan0 txpower 18 auto # iwconfig wlan0 rate auto # iwconfig wlan0 retry 20
iwconfig příklad konfigurace AP v Debianu
# cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.30.25 netmask 255.255.255.0 network 192.168.30.0 broadcast 192.168.30.255 gateway 192.168.55.10
auto wlan0 iface wlan0 inet static address 10.0.0.1 netmask 255.0.0.0 network 10.0.0.0 broadcast 10.255.255.255 gateway 192.168.55.10 wirelessessid Tata.Net wirelessmode master wirelesskey b15c48d63f18c698a6325c968b wirelesschannel 9 wirelesssens 3 wirelesstxpower 18 auto wirelessrate auto wirelessretry 20
iwpriv # iwpriv wlan0 reset 1
// resetuje kartu
# iwpriv wlan0 maccmd 3
// vymaže access list
# iwpriv wlan0 addmac 00:90:27:A2:65:9D // pridá MAC adresu do access listu # iwpriv wlan0 maccmd 1
// povolí jen MAC z access listu
iwpriv regulace výkonu karty #Znemozni automaticky prepis registru 62 iwpriv wlan0 prism2_param 5 0 #Nastavi pozadovany vykon iwpriv wlan0 writemif 62, 160
[registr] [dB] 120 -22.5 110 -20.5 100 -18.0 90 -17.0 80 -15.0 70 -13.5 60 -11.5 50 -10.5 40 -8.5 30 -6.5
[registr] 20 10 0 250 240 230 220 210 200 190
[dB] -5.0 -3.5 -2.0 -1.5 -0.5 1.0 2.5 3.5 5.0 6.0
[registr] [dB] 180 7.0 170 8.0 160 9.0 150 9.5 140 9.5 130 9.5
Informace o stavu hostap # ls /proc/net/hostap/wlan0 ap aux_dump debug stats 00:4f:62:00:52:72 00:4f:62:01:e0:5b 00:60:b3:6e:20:0c 00:e0:98:d0:11:65 00:4f:62:00:84:cf 00:60:b3:6e:1b:b8 00:80:c8:2d:c9:2d 00:4f:62:00:7c:1f ap_control bss_list pda wds ap_debug crypt scan_results
# cat /proc/net/hostap/wlan0/ap_control MAC policy: allow MAC entries: 20 MAC list: 00:6c:b3:fe:c4:d6 00:f0:4b:d1:55:49 00:0d:88:ea:47:5a 00:0a:00:d0:00:02 00:60:b3:ce:20:0c 00:a0:bd:8c:d9:b3 00:1a:a5:8c:09:3a 00:8a:c8:5d:c9:2d 00:ed:98:20:11:65 00:dd:61:19:87:cb 00:d1:95:4a:f0:34 00:de:35:99:14:d2 00:60:b3:3e:1b:b8 00:6f:b3:4b:f1:7a 00:4f:62:40:52:72 00:ff:4e:13:94:40 00:ef:98:25:c2:46
DHCP server na AP Proč použít DHCP server na AP? klienti jsou hloupí
●
získáme databázi MAC a IP adres
●
je jednoduché provádění změn v adresaci sítě
●
DHCP server na AP Architektura sítě:
Internet
eth0 192.168.0.30/24
AP + DHCP wlan0 10.0.0.1/8
wlan 10.0.0.102/255.0.0.0
wlan 10.0.0.100/255.0.0.0
PC1
PC3 wlan 10.0.0.101/255.0.0.0
PC2
DHCP server na AP # cat /etc/dhcpd.conf option domainname "tata.hlucin.net"; option domainnameservers 192.168.50.1, 192.168.1.1, 82.209.19.226; defaultleasetime 600; maxleasetime 7200; #wlan0 Tata.Net subnet 10.0.0.0 netmask 255.0.0.0 { range 10.0.0.20 10.0.0.30; option routers 10.0.0.1; option subnetmask 255.0.0.0; option broadcastaddress 10.255.255.255; } host tata { hardware ethernet 00:4F:49:02:B1:56; fixedaddress 10.0.0.100; } host jirka { hardware ethernet 00:E0:7D:D4:93:0C; fixedaddress 10.0.0.101; } host noteb { hardware ethernet 00:0A:E4:28:A6:EA; fixedaddress 10.0.0.102; }
DHCP server na AP svázání s access listem hostap iwpriv wlan0 maccmd 3 iwpriv wlan0 maccmd 2 iwpriv wlan0 maccmd 1 iwpriv wlan0 addmac $MAC
#vymaze tabulku MAC adress #vpusti vse krom MAC v tabulce #vpusti jen povolene MAC
DHCP server na AP svázání s access listem hostap Jak na BASH skripty: http://www.root.cz/clanky/programovani-v-bash-shellu/ Příklad cyklu for #!/bin/bash SLOVA=“ahoj ja jsem cyklus for“ for SLOVO in $SLOVA do echo $SLOVO done
nba1011c:~/OLS# ./bash.exempl ahoj ja jsem cyklus for nba1011c:~/OLS#
DHCP server na AP svázání s access listem hostap # cat /etc/network/ifpreup.d/DHCP_wireless_access #!/bin/sh e # neníli DEBIAN #IFACE=“wlan0“ #IF_ADDRESS=“192.168.32.1“ DHCP="/etc/dhcpd.conf" # je interface wifi karta? IW=`echo $IFACE | grep wlan` if [ n "$IW" ]; then #resetne kartu a vymaze povolene MAC iwpriv $IFACE reset 1 iwpriv $IFACE maccmd 3 # funguje jen pro masku 255.255.255.0 IP_SEG=`echo $IF_ADDRESS | tr t '.' ' ' | awk {'printf $1"."$2"."$3"."'}` MAC_DHCP=`cat $DHCP | grep $IP_SEG | grep : | awk {'printf $6'} | tr t ';' ' '` for MAC in $MAC_DHCP do iwpriv $IFACE addmac $MAC done #vpusti jen povolene MAC iwpriv $IFACE maccmd 1 fi exit 1
Množství přenesených dat od jednotlivých IP adres # iptables A FORWARD i eth0 d 10.0.0.100 # iptables A FORWARD o eth0 s 10.0.0.100
Množství přenesených dat na jednotlivých IP # cat /etc/init.d/accounting #!/bin/sh IPTABLES="/sbin/iptables" wlan_dhcp="/etc/dhcpd.conf" wlan_ip_tab=`cat $wlan_dhcp | grep w hardware | awk '{print $8}' | tr d ';'` case "$1" in start) for wlan_IP in $wlan_ip_tab do wlan_Name=`cat $wlan_dhcp | grep w $wlan_IP | awk '{print $2}' ` echo ' IP úctování pro: '$wlan_IP' :'$wlan_Name iptables A FORWARD i eth0 d $wlan_IP iptables A FORWARD o eth0 s $wlan_IP done ;; stop) echo "Firewall is stoping!" echo " * Mazu stare tabulky v IPTABLE" #vymaze vsechny tabulky $IPTABLES F ;; *) echo "Usage: /etc/init.d/$NAME {start|stop}" exit 1 ;; esac exit 0
Množství přenesených dat na jednotlivých IP adresách #iptables L xvn Chain FORWARD (policy ACCEPT 3310835 packets, 2087869510 bytes) pkts bytes target prot opt in out source destination 0 0 all eth0 * 0.0.0.0/0 10.0.0.100 0 0 all * eth0 10.0.0.100 0.0.0.0/0 27 2892 all eth0 * 0.0.0.0/0 10.0.0.101 27 1327 all * eth0 10.0.0.101 0.0.0.0/0 0 0 all eth0 * 0.0.0.0/0 10.0.0.102 0 0 all * eth0 10.0.0.102 0.0.0.0/0 0 0 all eth0 * 0.0.0.0/0 10.0.0.103 0 0 all * eth0 10.0.0.103 0.0.0.0/0
Nástroje pro sledování provozu na AP wifimon http://www.simandl.cz/stranky/linux/wifimon/wifimon.htm wlan0 802.11b ESSID:"Tata.Net" Mode:Master Frequency:2.452 Point: Bit Pocet asociovanych klientu : 6 ales_ap 192.168.50.56 00:e0:98:d0:11:65 Signal 30 rx=61730449 tx=61730449 =============================== martin_ap 00:4f:62:00:52:72 Signal 31 rx=60388782 tx=61591782 ================================ miroslav_ap 00:4f:62:00:7c:1f Signal 40 rx=57885399 tx=61797399 ========================================= petr_ap 192.168.50.63 00:4f:62:00:84:cf Signal 47 rx=61766666 tx=61766666 ================================================ klient_AP 192.168.50.203 00:4f:62:01:e0:5b Signal 31 rx=61804019 tx=61803867 ================================ breta 192.168.50.22 00:60:b3:6b:f1:7a Signal 30 rx=61790120 tx=61782191 =============================== tomas 00:6d:b3:6e:1b:b8 Signal 15 rx=61775365 tx=61616905 ================
Nástroje pro sledování provozu na AP wifimon2 http://artax.karlin.mff.cuni.cz/~zajio1am/software/wifimon2/ wlan0 Mode: Master ESSID: "Tata.Net" Channel: 9 TX Rate: Mb/s Connected clients: 192.168.50.105 00:80:C8:2D:C9:2D SNR: 10 dB TX Rate: 0 Mb/s ========== 192.168.50.109 00:60:B3:6E:1B:B8 SNR: 13 dB TX Rate: 0 Mb/s ============= 192.168.50.103 00:60:B3:6E:20:0C SNR: 7 dB TX Rate: 0 Mb/s ======= 192.168.50.22 00:60:B3:6B:F1:7A SNR: 22 dB TX Rate: 0 Mb/s ====================== 192.168.50.56 00:E0:98:D0:11:65 SNR: 24 dB TX Rate: 0 Mb/s ======================== 192.168.50.203 00:4F:62:01:E0:5B SNR: 31 dB TX Rate: 0 Mb/s =============================== Active / Total clients: 5 / 6
Nástroje pro sledování provozu na AP wewimo http://www.mobilnews.cz/honza/en_prog_linux_wewimo.php # wewimo > /var/www/wewimo.html
Nástroje pro sledování provozu na AP iftop http://www.ex-parrot.com/~pdw/iftop/ # iftop i eth0
Nástroje pro sledování okolních AP http://www.simandl.cz/stranky/linux/xi626/xi626.htm START #!/bin/bash # Petr Simandl # stumbler s hostap iface="wlan0" iwconfig $iface mode master prism2_param $iface other_ap_policy 2 prism2_param $iface ap_scan 1 watch n 1 cat /proc/net/hostap/$iface/ap
STOP #!/bin/bash # Petr Simandl # vypnuti stumblingu iface="wlan0" prism2_param $iface other_ap_policy 0 prism2_param $iface ap_scan 0 iwconfig $iface mode managed iwpriv $iface reset 1
# BSSID CHAN SIGNAL NOISE RATE SSID FLAGS 00:90:d1:01:44:29 7 8 5 20 'NR1121' [ESS] 00:40:96:44:60:3d 12 8 6 10 'PVKMladbolHost' [ESS] 00:02:2d:20:92:a4 2 20 5 20 '<00>' [ESS] 00:60:b3:6a:5e:5f 5 20 5 10 'CZFree.Net.jablonecka.sv' [ESS] 00:60:b3:69:ea:59 1 13 4 110 'CZFree.Net.J2P' [ESS] 00:02:2d:0e:7f:e5 1 10 5 20 ' ' [ESS]
Resetátor AP http://www.simandl.cz/stranky/elektro/resetator/resetator.htm http://www.volny.cz/ladmanj/watchdog.htm nohup bash c "while true; do echo watchdog > /dev/ttyS0; sleep 60s; done" &
Děkuji za pozornost