Differences

This shows you the differences between two versions of the page.

Link to this comparison view

isrm:laboratoare:11 [2019/05/17 10:59]
mbarbulescu
isrm:laboratoare:11 [2019/05/17 16:25] (current)
mbarbulescu
Line 11: Line 11:
  
 <code bash> <code bash>
-nmcli radio wifi off +root@pr706-pc:​~# ​nmcli radio wifi off 
-rfkill unblock wifi +root@pr706-pc:​~# ​rfkill unblock wifi 
-rfkill unblock all +root@pr706-pc:​~# ​rfkill unblock all 
-killall wpa_supplicant+root@pr706-pc:​~# ​killall wpa_supplicant
 </​code>​ </​code>​
  
Line 20: Line 20:
  
 <code bash> <code bash>
-systemctl stop NetworkManager +root@pr706-pc:​~# ​systemctl stop NetworkManager 
-dhclient eno1+root@pr706-pc:​~# ​dhclient eno1    #doar daca nu mai avem conectivitate la Internet
 </​code>​ </​code>​
  
 Acum trebuie să pornim daemonul ''​hostapd''​ pentru a activa AP-ul nostru. E nevoie de doi pași simpli: Acum trebuie să pornim daemonul ''​hostapd''​ pentru a activa AP-ul nostru. E nevoie de doi pași simpli:
-  - Copiați fișierul hostapd.conf de aici, salvați-l în ''/​etc/​hostapd/​hostapd.conf''​+  - Copiați fișierul ​[[https://​github.com/​isrm-lab/​isrm-lab-sol/​blob/​master/​lab-11/​hostapd.conf|hostapd.conf de aici]], salvați-l în ''/​etc/​hostapd/​hostapd.conf''​
   - Rulați comanda de mai jos, output-ul trebuie să vă spună ''​AP-ENABLED'':​   - Rulați comanda de mai jos, output-ul trebuie să vă spună ''​AP-ENABLED'':​
  
Line 40: Line 40:
 </​note>​ </​note>​
  
-=== Pregătirea stației (STA) ===+== Modul monitor ​== 
  
 +<note warning>​Pe Intel AC7260 care sunt in laborator merge modul monitor doar pe AP. Recomandarea însă pentru a prinde toate pachetele din aer e să fie făcut pe un calculator separat</​note>​
  
 +<code bash> ​
 +root@pr706-pc:​~#​ iw phy phy0 interface add mon0 type monitor flags control otherbss
 +root@pr706-pc:​~#​ ifconfig mon0 up
 +root@pr706-pc:​~#​ tcpdump -s0 -ni mon0 
 +</​code>​
 +  - ''​-s0''​ capturează toată lungimea pachetelor ​
 +  - ''​-n''​ nu rezolvă DNS 
 +  - ''​-i''​ indică interfața ​
  
 +<code bash> ​
 +root@pr706-pc:​~#​ tcpdump -s0 -ni mon0 -w ./​m.pcap ​
 +root@pr706-pc:​~#​ wireshark ./​m.pcap ​
 +</​code>​
  
-Experimente:​+Examinați pachetele capturate și recunoașteți pachetele/​protocoalele/​câmpurile discutate la curs și în articole.
  
-Calculatoarele AP:+<note tip> 
 +Comenzile de Linux pentru modul monitor le aveți și la [[https://​sandilands.info/​sgordon/​capturing-wifi-in-monitor-mode-with-iw 
 +|acest link]] 
 +</​note>​
  
  
 +=== Pregătirea stației (STA) ===
 +
 +Și aici trebuie oprite ''​NetworkManager''​ și ''​wpa_supplicant''​. Vom folosi întâi utilitarul ''​iw''​ apoi ''​wpa_supplicant''​ cu propriul fișier de configurare pentru a ne conecta la AP:
  
 <code bash> <code bash>
-nmcli radio wifi off +root@pr706-pc:​~#​ systemctl stop NetworkManager 
-rfkill unblock wifi; rfkill unblock all +root@pr706-pc:​~# ​killall wpa_supplicant 
-killall wpa_supplicant+</​code>​
  
-root@pr706-pc:/​home/​student#​ hostapd /​etc/​hostapd/​hostapd.conf +Pentru a face o scanare activă (asigurați-vă că folosiți modul monitor și capturați pachetul ​- ce tip de pachet va trimite stația?) rulați comanda:
-Configuration file: /​etc/​hostapd/​hostapd.conf +
-Using interface wlp2s0 with hwaddr ac:fd:ce:22:77:9d and ssid "​ISRMLABORATOR"​ +
-wlp2s0: interface state UNINITIALIZED->​ENABLED +
-wlp2s0: AP-ENABLED ​+
  
 +<code bash>
 +root@pr706-pc:​~#​ iw dev wlp2s0 scan | grep -i <​yourSSID>​ -A 50 -B 20
 </​code>​ </​code>​
  
-Calculatoarele STA:+Pentru a vă asocia la AP-ul pornit anterior folosiți:
  
 <code bash> <code bash>
-killall wpa_supplicant+root@pr706-pc:​~#​ iw dev wlp2s0 connect <​yourSSID>​  
 +root@pr706-pc:​~#​ iwconfig ​        #to check/​validate association 
 +</​code>​
  
-iw dev wlp2s0 scan | grep -i <​yourSSID> ​-A 50 -B 20 +=== Exerciții extra === 
- +  ​Rulațo sesiune ''​iperf''​ TCP între cele două stații pentru a determina bandwidth-ul maxim la care TCP se simte bine. Serverul este receptor de date, Clientul e transmițător. Rulați server pe AP și client pe STA. Ce valoare are aceasta? Suntem în ''​802.11b'',​ care e throughput maxim la acesta și la ce MCS (data rate)? 
-iw dev wlp2s0 connect ​<yourSSID>  +<code bash
- +root@pr706-pc:​~#​ iperf -s -i1 
-iwconfig ​#to check association+root@pr706-pc:​~iperf -c <​ip_AP>​
 </​code>​ </​code>​
 +  - Rulați o sesiune ''​iperf''​ UDP între cele două stații cu cel mai mare packet length (1472 Bytes). Serverul este receptor de date, Clientul e transmițător. Rulați server pe AP și client pe STA. e valoare are aceasta? Suntem în ''​802.11b'',​ care e throughput maxim la acesta și la ce MCS (data rate)?
 +<code bash>
 +root@pr706-pc:​~#​ iperf -s -i1 -u
 +root@pr706-pc:​~#​ iperf -c <​ip_AP>​ -b54M -u -i1 -l1472
 +</​code>​
 +  - Pentru exercițiile anterioare urmăriți în PCAP câmpul ''​Data rate''​ din 802.11 radio tap header. Ce observați? Ce se întâmplă cu acesta dacă vom mișca antena?
 +<note tip>
 +Dacă nu mișcăm antenele observăm creșterea monotonă data rate (a MCS-ului) grație algoritmului de rate adaption. Intel folosește [[https://​github.com/​torvalds/​linux/​blob/​master/​drivers/​net/​wireless/​intel/​iwlwifi/​dvm/​rs.c|iwl-agn-rs]]. În Linux upstream se folosește algoritmul [[https://​wireless.wiki.kernel.org/​en/​developers/​documentation/​mac80211/​ratecontrol/​minstrel|Minstrel]] pentru vendorii care nu au dezvoltat propriul algoritm în driver/​firmware.
  
-Daca nu se da aia de mai sus apare deauthentication aiurea +Dacă mișcăm antenele pe lângă evoluție ne-monotonă a data rate throughputul iperf e afectat. ​ 
- +</note> 
-Primul exemplu de hostapd conf file: https://​gist.github.com/​b12mihai/​c61374219ffc2b2647c6afd7a99f21f1 +  - Pe AP configurați ''​802.11n''​ (ca extra feature). Re-rulați iperf și urmăriți PCAP-urile. Ce apare în plus la MCS? Dar la frame format: apare formatul HT. Mai jos aveți ce trebuie pus în ''​hostapd.conf''​:
- +
-Apoi hai sa punem in modul 802.11n ​in hostapd: +
 <code bash> <code bash>
 # 802.11n # 802.11n
Line 89: Line 113:
 </​code>​ </​code>​
  
-Apoi hai sa punem autentificare cu wpa2 
- 
-<code bash> 
-# WPA 
-auth_algs=1 
-wpa=2 
-wpa_passphrase=XXXXXXXXXXXXXXX 
-wpa_key_mgmt=WPA-PSK 
-wpa_pairwise=TKIP 
-rsn_pairwise=CCMP 
-</​code>​ 
- 
-== Modul monitor ==  
- 
-<note warning>​Pe Intel AC7260 care sunt in laborator merge modul monitor doar pe AP</​note>​ 
- 
-<code shell> # iw phy phy0 interface add mon0 type monitor flags control otherbss </​code> ​ 
-<code shell> # ifconfig mon0 up </​code>​ 
-<code shell> # tcpdump -s0 -ni mon0 </​code>​ 
-  - -s0 capturează toată lungimea pachetelor ​ 
-  - -n nu rezolvă DNS  
-  - -i indică interfața ​ 
- 
-<code shell> # tcpdump -s0 -ni mon0 -w ./m.pcap </​code>​ 
-<code shell> # wireshark ./m.pcap </​code>​ 
- 
-examinați pachetele capturate și recunoașteți pachetele/​protocoalele/​câmpurile discutate la curs și în articole.  ​ 
- 
- 
-Linkuri: 
- 
-https://​vincent.bernat.ch/​en/​blog/​2014-intel-7260-access-point 
-https://​sandilands.info/​sgordon/​capturing-wifi-in-monitor-mode-with-iw 
-https://​wireless.wiki.kernel.org/​en/​users/​documentation/​hostapd 
  
 <​hidden>​ <​hidden>​
isrm/laboratoare/11.1558079960.txt.gz · Last modified: 2019/05/17 10:59 by mbarbulescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0