Narzędzia użytkownika

Narzędzia witryny


Pasek boczny

sk2:wlan

WLAN

Materiały

Laboratoria 1

Ćwiczenia / treści z pierwszych laboratoriów:

Podstawowe pojęcia

  • WLAN (Wireless LAN) = idea, pomysł, nazwa rozwiązania technicznego
    https://pl.wikipedia.org/wiki/Bezprzewodowa_sie%C4%87_lokalna
  • IEEE 802.11 = rodzina standardów opisujących konkretne rozwiązania techniczne dla sieci bezprzewodowych
  • Wi-Fi® = znak towarowy (trademark) organizacji Wi-Fi Alliance, wystawiającej certyfikaty zgodności urządzeń ze swoją wizją sieci bezprzewodowej, która z kolei sprowadza się do standardów z rodziny 802.11

Urządzenia w sieci:

  • STA - station, stacja, adresowalne urządzenie sieci bezprzewodowej.
  • AP - access point, punkt dostępowy. AP umożliwia stacjom na dostęp do urządzeń w sieci przewodowej (i na odwrót)1). Działa na warstwie 2 (łącza danych).

Pasmo

Dostępne pasmo https://en.wikipedia.org/wiki/List_of_WLAN_channels

  • 2.4GHz
    • 802.11b [szerokość pasma: 20MHz (czyli 1 kanał)]
    • 802.11g [20MHz]
    • 802.11n [20MHz / 40MHz (czyli dwa kanały)] (HT20, HT40)
  • 5GHz [1] [2]
    • 802.11a [20MHz]
    • 802.11n [20MHz / 40MHz] (HT20, HT40)
    • 802.11ac [20MHz / 40MHz / 80MHz (czyli 4 kanały)] (VHT20, VHT40, VHT80) [1] [2]
  • Zajęcie pasma przez 1 sieć, ile się zmieści niezakłócających się wzajemnie sieci w standardach g, n, ac
  • Na nadawanie fal radiowych trzeba mieć zgodę państwa, stąd ograniczenia pasma transmisji danych [1] [2] [3]

Anteny

Rodzaje anten: [1]

  • dookolne
  • kierunkowe

Jednoczesne użycie wielu anten:

  • MIMO (od 802.11n) [2]
  • MU-MIMO (od 802.11ac) [3] [4]

Typy sieci i ich identyfikatory

Typy sieci bezprzewodowych i identyfikatory sieci bezprzewodowych

  • IBSS – independent BSS, sieć bez AP, ad-hoc
    • BSSID sieci IBSS (w Linuksie też Cell ID) – identyfikator sieci ad-hoc, tworzony dynamicznie, typowo losowy lub tożsamy z adresem MAC jednego z pierwszych uczestników sieci
  • infrastructure BSS (Basic Service Set) – tryb infrastruktury czyli AP i stacje z nim połączone2)
    • BSSID – identyfikator takiej sieci; typowo adres MAC AP
  • ESS – Extended Service Set – zbiór BSSów z tym samym SSID połączonych siecią dystrybucji (DS, distribution system)
  • ESSID (lub SSID)– nazwa (słowna) sieci, występuje w IBSS, MBSS, BSS, ESS

Ilustracja BSS/ESS

802.11…

Paczki narzędzi do WLAN pod Linuksem

Network Manager i rfkill

W wielu dystrybucjach Linuksa domyślnie karty sieciowe obsługuje NetworkManager (NM).
Komenda nmcli radio all off nakaże NM wyłączenie kart i nie konfigurowanie ich.
W OpenSUSE nmcli nie przerywa działania wpa_supplicanta uruchomionego przez NM; dlatego należy wykonać pkill wpa_supplicant

NM poza wyłączeniem interfejsu, próbuje wyłączyć kartę (dla lepszego zarządzania energią możliwe jest często odłączenie karty).
Do włączenia tak wyłączonej karty służy program rfkill [1]), dokładniej komenda rfkill unblock wifi

Podstawowe komendy

Wyświetlanie informacji i skanowanie

  • iwconfig – główna komenda (z wireless-tools) do zarządzania WLAN
    iw
  • iwconfig --help – pomoc
    iw help
  • iwconfig – lista i stan interfejsów
    iw phy – fizyczne urządzenia;
    iw dev – interfejsy sieciowe,
    iw [dev] <if> link – informacje o połączeniu
  • iwconfig <if> – stan wybranego interfejsu
    iw [dev] <if> link
  • iwlist – komenda uzupełniająca brakujące funkcje iwconfig
  • iwlist <if> scan – wykonanie skanowania dostępnych sieci
    iw [dev] <if> scan

Zmiana pasma / kanału

  • iwlist channel – lista dostępnych kanałów (i częstotliwości)
    iw phy
  • iw reg get – informacje o ograniczeniach dostępu do kanałów dostępnych w bieżącym regulatory domain (obszar jurysdykcyjny?)
  • iw reg set <kod kraju> – zmienia bieżącą regulatory domain
  • iwconfig <if> channel <nr> – zmiana kanału
    iw [dev/phy] <if/phy> set channel <nr> [width]
  • iwconfig <if> freq <freq> – zmiana częstotliwości, np. iwconfig wlan0 freq 2412M
    iw [dev/phy] <if/phy> set freq <freq> [width], np: iw wlan0 freq 2412

Zmiana trybu pracy:

  • iwconfig <if> mode <mode> – ustawienie trybu pracy na:
    iw [dev] <if> set type <mode>
    • managed – "zwykły" tryb gdzie karta łączy się do AP
    • ad-hoc (ibss dla iw)
    • monitor – tryb nasłuchu
    • master (ap dla iw) w nowszych jądrach Linuksa dla AP (na wspieranych kartach) wystarczy tryb managed [1]
  • Do zmiany trybu pracy potrzeba wyłączyć urządzenie (iwconfig).
  • iw pozwala (jeśli sterowniki to udostępniają; zwykle nie) tworzyć i używać naraz wiele wirtualnych interfejsów, również rożnych typów [2]

Zmiana SSID / BSSID

  • iwconfig <if> essid <essid/off> – ustawienie nazwy sieci / odłączenie się od sieci
  • iwconfig <if> ap <bssid/auto> – wybór AP (BSSID) do którego ma się łączyć

Komenda iw ma odrębne polecenia do tworzenia sieci ad-hoc, mesh i dołączania do sieci w trybie infrastruktury:

  • iw [dev] <if> ibss join <ESSID> <freq> – dołączanie do sieci IBSS
  • iw [dev] <if> ibss leave – opuszczenie do sieci IBSS
  • iw [dev] <if> mesh join <ESSID> <freq> – dołączanie do sieci mesh
  • iw [dev] <if> connect <ESSID> [BSSID] – dołączanie do sieci BSS

Tworzenie / dołączanie się do sieci ad-hoc

  • wyłączyć interface (ip l set dev <if> down / ifconfig <if> down)
  • ustawić pracę karty sieciowej jako ad-hoc / ibss:
    iwconfig <if> mode ad-hoc
    lub
    iw <if> set type ibss
  • wybrać nazwę sieci i kanał:
    iwconfig <if> essid <essid> + iwconfig <if> freq <freq>
    lub
    iw <if> ibss join <essid> <freq>

Monitorowanie sieci

W salach laboratoryjnych zalecaną metodą jest stworzenie nowego interfejsu pracującego w trybie monitor komendą:
iw wlan0 interface add mon0 type monitor

Sposoby na otrzymanie urządzenia pracującego prawidłowo w trybie monitor:

  • korzystając z aircracka:
    • airmon-ng start <if> [channel]
  • korzystając z iw:
    • dodać nowy interfejs w trybie monitor:
      iw [dev/phy] <if> interface add <newif> type monitor, np:
      iw wlan0 interface add mon0 type monitor
    • można ustawić flagi konfigurujące jakich ramek ma nie ignorować monitor (uwaga, wsparcie zależy od sterowników), np:
      iw dev mon0 set monitor fcsfail control otherbss
  • korzystając z wireless-tools (uwaga: wireless-tools nie mają niezależnej od sterowników metody na dodanie drugiego interfejsu sieciowego):
    • wyłączyć interface, np:
      ifconfig <if> down
    • ustawić pracę karty sieciowej jako monitor:
      iwconfig <if> mode monitor
    • włączyć interface, np:
      ifconfig <if> up
  • przy niektórych sterownikach działa tryb promiscuous – tryb w którym przekazywane są do systemu operacyjnego wszystkich ramek (domyślnie karta sieciowa przekazuje tylko ramki kierowane do siebie, nie wszystkie które otrzyma):
    ip l set dev <if> promisc on lub ifconfig <if> promisc
    wyłączenie powyższego – ifconfig <if> -promisc lub ip l set dev <if> promisc off

Laboratoria 2

Ćwiczenia / treści z drugich laboratoriów:

Sieci bezprzewodowe w CISCO

Link do materiałów o poruszaniu się w konsoli CISCO z poprzedniego semestru: cisco_wstep
Przypomnienie: komenda do obsługi portu szeregowego: picocom /dev/ttyS0 (wyjście: ctrl+a ctrl+q)

Uwaga: domyślne hasło do trybu uprzywilejowanego (enable) na AP używanych na zajęciach to Cisco

Na początku sprawdź komendą show startup-config wykonaną w trybie uprzywilejowanym czy na urządzeniu nie ma starej konfiguracji. Jeśli jest - wykonaj erase startup-config, a następnie reload.

Komendy CISCO przydatne do obsługi sieci bezprzewodowych, część 1:

  • tryb użytkownika (>):
    • enable - przechodzi do trybu uprzywilejowanego
  • tryb uprzywilejowany (#):
    • show interfaces description - wyświetla stan interfejsów 3)
    • show dot11 bssid - wyświetla listę aktywnych BSSID i ESSID, oraz informację czy sieci są ogłaszane
    • show dot11 associations [all] - wyświetla listę podłączonych stacji
    • show running-config - pokazuje bieżącą konfigurację
    • configure terminal - wchodzi w tryb konfiguracji
  • tryb konfiguracji ((config) #):
    • dot11 ssid nazwa_sieci - wchodzi w konfigurację sieci.
      W CISCO osobno konfiguruje się ustawienia sieci, osobno przypisuje się sieć do karty sieciowej.
      Ustawienia sieci ((config-ssid) #):
      • guest-mode - ustawienie rozgłaszania sieci; bez tego sieć nie pojawia się w wynikach skanowania
      • authentication open - ustawia otwarte uwierzytelnianie
      • authentication key-management wpa [version 2] - ustawia używanie WPA
      • wpa-psk ascii haslo_wpa - ustawienie klucza (hasła) do sieci
        jeśli wprowadzono dwie powyższe komendy (i nie skonfigurowano EAP), to sieć będzie używać zabezpieczeń WPA-PSK
    • interface Dot11Radio numer_karty - wchodzi w konfigurację interfejsu bezprzewodowego.
      Ustawienia interfejsu ((config-if) #):
      • encryption mode ciphers aes-ccm - ustawia jak ma być szyfrowana transmisja
        aes-ccm lub starsze tkip wymusza użycie WPA
      • ssid nazwa_sieci - wskazuje którą sieć ma obsługiwać karta
      • no shutdown - włącza interfejs
      • channel kanał/częstotliwość_w_mhz - ustawia kanał / częstotliwość

Przykładowa konfiguracja sieci o nazwie ''jakasNazwaSieci'' bez zabezpieczeń:

Przykładowa konfiguracja sieci o nazwie ''innaNazwaSieci'' z zabezpieczeniami WPA-PSK z hasłem (kluczem) ''somePreSharedKey'':

Komendy CISCO przydatne do obsługi sieci bezprzewodowych, część 2 - wiele sieci z jednego interfejsu:

  • tryb konfiguracji ((config) #):
    • dot11 ssid nazwa_sieci ((config-ssid) #):
      • mbssid guest-mode - ustawienie rozgłaszania sieci; bez tego sieć nie pojawia się w wynikach skanowania 4)
      • vlan numer_vlanu - ustawia numer vlanu z którego będą przychodzić dane na interfejsie bezprzewodowym; pozwala to rozróżnić dane z różnych sieci na tym samym interfejsie; (pomysł cisco - częstszy pomysł to osobne wirtualne interfejsy na każdą rozgłaszaną sieć)
    • interface Dot11Radio numer_karty ((config-if) #):
      • mbssid - zmienia działanie interfejsu tak, by akceptował wiele komend ssid naraz
      • encryption vlan numer_vlanu mode ciphers metodySzyfrowania - ustawia jak dane której sieci (identyfikowana przez vlan!) mją być szyfrowane, np:
        encryption vlan 50 mode ciphers aes-ccm - nakazuje sieci skonfigurowanej jako vlan 50 użycie WPA
      • ssid nazwa_sieci - dodaje kolejną sieć do interfejsu; musi być wpisane po mbssid
    • interface Dot11Radio numer_karty.numer_vlanu - konfiguruje subintefejs odpowiedzialny za vlan numer_vlanu, np:
      interface Dot11Radio0.60 - vlan 60 na interfejsie Dot11Radio0
      Prompt ((config-subif) #):
      • encapsulation dot1Q numer_vlanu [native] - wymagane, by dało się używać ssidu skonfigurowanego jako vlan numer_vlanu, np.
        encapsulation dot1Q 60 - pozwala włączyć na interfejsie ssid używający vlan 60, a pakiety z pasujących sieci będą pojawiać się na tym subinterfejsie
        encapsulation dot1Q 1 native - jak wyżej, plus vlan 1 jest traktowany specjalnie: dokumentacja cisco
      • bridge-group numer_mostka - dodaje subinterfejs do mostka; patrz niżej
    • interface FastEthernetnumer_karty.numer_vlanu - konfiguruje vlan na połączeniu ethernetowym, np:
      interface FastEthernet0.60 - vlan 60 na interfejsie FastEthernet0
      Prompt ((config-subif) #):
      • encapsulation dot1Q numer_vlan - pakuje / rozpakowuje dane do podanego vlanu
      • bridge-group numer_mostka - dodaje subinterfejs do mostka
        połączenie mostkiem np. Dot11Radio0.60 i FastEthernet0.60 przekaże pakiety z sieci bezprzewodowej dla której ustawiono vlan 60 jako vlan 60 po kablu ethernetowym

Przykładowa konfiguracja kilku sieci:

Zabezpieczenia sieci bezprzewodowych

https://www.cyberbajt.pl/raport/377/0/378/

  • WEP – nie zapewnia bezpieczeństwa
  • WPA (Wi-Fi Protected Access) – implementacja 802.11i zanim powstało 802.11i, w tym szyfrowanie używając:
    • opcjonalnie CCMP AES
  • 802.11i – standard opisujący skuteczne zabezpieczanie sieci bezprzewodowych
  • WPA2 – "handlowa" nazwa implementacji 802.11i, w tym szyfrowanie używając:
  • Uwierzytelnianie:
  • WPS – rozwiązanie mające ułatwić osobom nietechnicznym korzystanie z zabezpieczeń WPA-PSK
    część implementacji WPS (np. pin) nie zapewnia bezpieczeństwa sieci
  • WPA3 - ogłoszony w czerwcu 2018 standard, który uniemożliwia znane ataki na WPA2, umożliwia użycie silniejszej kryptografii i naprawia niektóre wady WPA2

Łączenie do AP w Linuksie

Sieci niezabezpieczone

Do sieci niezabezpieczonych, lub zabezpieczonych słabo (z WEP), wystarczy komena iwconfig / iw:

  • iwconfig
    • iwconfig wlan0 essid nazwa_sieci - ustawia nazwę sieci (ESSID), np:
      iwconfig wlan0 essid NiezabezpieczonaSiec
    • iwconfig wlan0 ap {auto|bssid} - ustawia identyfikator sieci (BSSID), np:
      iwconfig wlan0 ap auto - dowolna sieć
      iwconfig wlan0 ap 00:60:1D:01:23:45 - wybiera konkretny AP o podanym bssid
    • iwconfig wlan0 key klucz_wep - ustawia klucz WEP
  • iw
    • iw [dev] wlan0 connect nazwa_sieci [bssid] [key klucz_wep] - łączy się do sieci nazwa_sieci, opcjonalnie wbierając podany AP, opcjonalnie używając klucza WEP, np.:
      iw wlan0 connect NiezabezpieczonaSiec - łączy się do sieci o nazwie NiezabezpieczonaSiec

Sieci zabezpieczone - wpa_supplicant

Do sieci zabezpieczonych z użyciem WPA potrzeba użyć właściwego programu – wpa_supplicant.

Suplikant [sjp] (klient) w uwierzytelnianiu EAPOL (IEEE_802.1X) to strona która prosi o dostęp.
Stąd nazwa programu wpa_supplicant.

wpa_supplicant jest wykorzystywany w Linuksie przez praktycznie wszystkie programy zarządzające siecią (NetworkManager, wicd). Poza głównym programem (wpa_supplicant), dostarczane jest CLI oraz GUI do zarządzania.

Typowe użycie samego wpa_supplicanta (foreground):
wpa_supplicant -c config_file -i iface [-d]
Przykladowe użycie:
wpa_supplicant -i wlan0 -c wpa_supplicant.conf

Najprostszy plik konfiguracyjny dla WPA-PSK / WPA2-PSK ma postać:

  network={
    ssid="ssid"
    psk="pass"
  }

Plik pozwalający na użycie wpa_cli i przykład dla sieci bez zabezpieczeń:

Użycie wpa_cli:

Więcej w man wpa_supplicant i man wpa_supplicant.conf

Labolatoria 3

Zadania, ramki, działanie

Zadania w WLAN, poza tymi które znacie z LAN, to:

  • skanowanie (beacon, probe) – pasywne zbieranie informacji o dostępnych sieciach, pytanie o listę dostępnych sieci
  • uwierzytelnianie (authentication) – w standardzie przewidziano tylko WEP, stąd zwykle używane otwarte; możliwa (choć w praktyce nie zapewniająca bezpieczeństwa) kontrola MAC
  • przyłączenie (association)
  • mechanizm wielodostępu – CSMA/CA
  • szyfrowanie
  • Poza tym: adresacja, fragmentacja, wykrywanie błędów transmisji, retransmisje

Ramka 802.11 [1] [2]:

  • frame control – określa typ ramki
  • duration – pole na czas, używane w niektórych typach ramek
  • 3 adresy (!) – flagi form DS i to DS wskazują jak interpretować te adresy
  • numer sekwencyjny
  • dane
  • FCS – suma kontrolna

Typy ramek:

  • Type 1 – control – CSMA/CA [1] [2]:
    • RTS, CTS, ACK
    • 802.11e - usprawnia CSMA/CA, wprowadza Block Acks (i Qos Data)
  • Type 0 – management
    • Beacon – periodyczne ogłaszanie sieci
    • Probe {request, response} – pytanie o dostępne sieci (i odpowiedź)
    • Authentication + Deauthentication
      • open – otwarte
      • restricted – WEP – przestarzałe
    • Association {request, response} + Disassociate
  • Type 2 – data

Przykładowe ramki (zarejestrowane z AP): sample_wlan_frames.pcap

Mikrotik

Podłączenie do Mikrotika: urządzenia w domyślnej konfiguracji mają adres 192.168.88.1/24 na interfejsie eth0. Do zarządzania na zajęciach proponuję wykorzystać interfejs webowy (http://192.168.88.1/).

Dokumentacja: https://wiki.mikrotik.com/wiki/Manual:Interface/Wireless

Tworzenie AP

  • interfaces / wireless / nazwa / mode: "ap-bridge"
  • interfaces / wireless / nazwa / enable

Mostkowanie interfejsów

  • bridge / add
  • bridge / ports / add

Ustawianie profilu bezpieczeństwa:

  • interfaces / wireless / security profiles / add
  • interfaces / wireless / nazwa / security profile

Wiele sieci naraz

Most bezprzewodowy

  • Jeden koniec: interfaces / wireless / nazwa / mode: "bridge"
  • Drugi koniec: interfaces / wireless / nazwa / mode: "station-bridge"

WDS

Ekstra

  • Padło pytanie: jak dwie sieci ad-hoc różniące się tylko BSSID (cell id) łączą się?
    W skrócie: urządzenia należące do sieci ad-hoc pamiętają od jak dawna sieć istnieje i wysyłają to w ramkach beacon; jeśli stacja widzi drugą, starszą sieć ad-hoc (na tym samym kanale i z tym samym ESSID), to przepina się do niej. [1]
    Dlaczego w labach tak się nie dzieje? Też jestem ciekaw, podlinkowany artykuł sugeruje problemy karty / sterowników.
  • Modulacja wykorzystywana w sieciach bezprzewodowych: ODFM (łączona z MIMO, MIMO-OFDM), dawniej we wlanach: DSSS, w bluetooth: FHSS. Warto spojrzeć na widma różnych sygnałów w paśmie sieci bezprzewodowej; porównując moc bluetooth/wlan, proszę pamiętać o klasach bluetooth.

1) Formalnie AP to urządzenie które zapewnia dostęp stacjom z tego samego BSS do systemu dystrybucji (DS). Medium systemu dystrybucji nie jest określone w standardzie 802.11
2) Uwaga: formalnie BSS to każda grupa mogących się bezpośrednio komunikować stacji, ale zwykle to określenie stosuje się do infrastructure BSS
3) Komenda show ip interfaces brief też wyświetla stan interfejsów, ale tylko dla interfejsów na których może działać protokół IP; show interfaces description pokaże wszystkie interfejsy
4) ustawienie guest-mode jest ignorowane jeśli karta rozgłasza wiele sieci
5) domyślnie szuka gniazda do komunikacji z wpa_supplicant w katalogu /var/run/wpa_supplicant
sk2/wlan.txt · ostatnio zmienione: 2019/12/04 13:20 przez jkonczak