==== Rozgrzewka - sprzęt od firmy MikroTik ==== Zadania należy wykonywać w parach. ~~Zadanie.#~~ - Weźcie jeden router Mikrotik i podłączcie port 1 tego routera do wybranego komputera - Ustawcie na właściwym interfejsie tego komputera adres IP 192.168.88.2/24 - Wejdźcie w przeglądarce pod adres [[http://192.168.88.1/|http://192.168.88.1/]] i sprawdźcie czy macie dostęp do konfiguracji routera ~~Zadanie.#~~ - Połączcie dwa komputery ze sobą kablem, ustawcie na nich różne IP z tej samej sieci i sprawdźcie czy jest łączność - Wstaw między te komputery router (na ja rysunku poniżej), używając portów 4 i 5
                         .                .--.  
    .------.          ___|\          .---( R1 )---.    
   /        \        |     \        /     `--'     \   
.---.      .---.     |___  /     .---.            .---.
|PC1|      |PC2|         |/      |PC1|            |PC2|
'---'      '---'         '       '---'            '---'
- Czy łączność między komputerami funkcjonuje? Dlaczego? - W konfiguracji routera dodaj mostek (bridge, wybierając właśnie tą nazwę z menu po lewej), a następnie dodaj porty //ether4// i //ether5// do tego mostku (po wybraniu //Bridge// zmień kartę na //Ports//) - Czy łączność między komputerami funkcjonuje? Dlaczego? - Dodaj adres IP (z sieci którą używają komputery) do interfejsu mostka na routerze (w //IP// / //Addresses//) - Do czego możesz użyć ten adres IP? ~~Zadanie.#~~ Usuń adresy IP dodane w poprzednim zadaniu i odłącz kable od portu 4 i 5 na routerze. ==== Podstawowe informacje o sieciach bezprzewodowych ==== **WLAN** (Wireless LAN) to nazwa na lokalne sieci bezprzewodowe. Rodzina standardów **IEEE 802.11** definiuje jak je budować. \\ Wi-Fi® to znak towarowy (trademark) organizacji Wi-Fi Alliance "naklejany" na urządzenia zgodne z określonymi standardami (głównie z rodziny IEEE 802.11). Wspominane standardy określają pracę sieci WLAN m. inn. na pasmach 2.4GHz, 5GHz i 6GHz. Pasmo to zakres częstotliwości (np. pasmo 5GHz obejmuje częstotliwości w zakresie od 5150MHz do 5895MHz), podzielony na numerowane kanały (np. kanał 100, o szerokości 20MHz, używa fal radiowych o częstotliwości od 5490MHz do 5510MHz). Kolejne, ciągle powstające, standardy z rodziny 802.11 wprowadzają ulepszenia w działaniu sieci. Prędkość sieci bezprzewodowej zależy między innymi od tego: * jakie są fizyczne uwarunkowania((sieci na bieżąco dostosowują to jak przesyłają dane tak by, pomimo zakłóceń i tłumienia, docierały do odbiorcy możliwie szybko)), w tym: * odległości między urządzeniami (tłumienie sygnału) * zakłócenia (od innych urządzeń, odbicia własnego sygnału) * jak szerokie pasmo zajmują (20/40/80/160/320MHz) * ile anten uczestniczy w nadawaniu i odbieraniu (np. 1x1, 2x2, 4x4) * który standard jest używany (802.11 a/b/g/n/ac/ax/be vel Wi-Fi 4/5/6/7)
Prędkość nie zależy od użytego pasma((przy czym na paśmie 2.4GHz największa dopuszczalna szerokość kanału to 40MHz)) i dzieli się na wszystkie urządzenia podłączone do sieci. Do (bardzo) powoli wchodzącego standardu 802.11be / Wi-Fi 7 sieci potrafiły korzystać tylko z jednego pasma naraz. Mimo tego producenci reklamują swoje urządzenia podając jako prędkość sumę maksymalnych teoretycznych prędkości możliwych do osiągnięcia na wszystkich pasmach. \\ Rzeczywiste prędkości (dla przeciętnego sprzętu i warunków) to wartości rzędu 100Mbps dla 802.11n, 400Mbps dla 802.11ac, i 1Gbps dla 802.11ax (na paśmie 5GHz). Karty sieci bezprzewodowych potrafią działać w różnych trybach, między innymi: * monitora - tylko słuchać co inni nadają * bycia punktem dostępowym (//access point//, AP), \\ lub urządzeniem łączącym się z punktem dostępowym \\ (sieć tego rodzaju to BSS, składająca się na sieć ESS) * bycia częścią sieci bez AP \\ (sieci tego rodzaju to IBSS/ad-hoc i mesh) Każda sieć bezprzewodowa musi posiadać dwa identyfikatory: * **BSSID** * 48-bitowy numer, z założenia unikalny * zapisywany identycznie jak adresy MAC * zwykle automatycznie generowany przez urządzenie które tworzy sieć (wiele AP generuje ten identyfikator na podstawie swojego MAC), * **ESSID** (SSID) * słowna nazwa sieci, może być nieunikalna * wybierany ręcznie przez administratora, * używany tylko w momencie łączenia się do sieci ==== Wyświetlanie informacji o interfejsach WLAN na Linuksie ==== |lista i stan wszystkich interfejsów | ''iw dev'' | |stan wybranego interfejsu | ''iw [dev] info'' \\ np. ''iw //wlan0// info'' | |stan połączenia na podanym interfejsie | ''iw [dev] link'' \\ np. ''iw //wlan0// link'' | |informacje o możliwościach karty | ''iw phy'' | |skanowanie (szukanie dostępnych sieci) | ''iw [dev] scan [-u]'' \\ np. ''iw //wlan0// scan -u'' \\ (flaga ''-u'' pokazuje też opcje nieznane przez iw) | ~~Zadanie.#~~ Wyświetl listę interfejsów bezprzewodowych na twoim systemie. ~~Zadanie.#~~ Włącz interfejs sieci bezprzewodowej. Co pokazuje dla takiego urządzenia ''ip link'' / ''ifconfig'', a co ''iw dev''? ~~Zadanie.#~~ Wyświetl listę dostępnych sieci bezprzewodowych. ==== IBSS (ad-hoc) ==== IBSS (ad-hoc) to tryb pracy sieci bezprzewodowej który pozwala komunikować się bezprzewodowo dowolnym urządzeniom, które: * są wzajemnie w zasięgu * mają ustawioną tą samą słowną nazwę sieci (SSID) * pracują na tych samych częstotliwościach * mają te same ustawienia zabezpieczeń. ++++ Konfiguracja wykorzystująca wpa_supplicant (nie działa przez sterowniki kart od Intela, a takie karty są w salach lab.) | ~~Zadanie.#~~ Używając poniższego pliku konfiguracyjnego dołącz do sieci IBSS:
network={ ssid="SiecAdHoc" # słowna nazwa sieci mode=1 # oznacza IBSS (ad-hoc, peer-to-peer) frequency=2462 # częstotliwość 2462MHz to kanał 11 na paśmie 2.4GHz key_mgmt=NONE # określa że sieć nie używa zabezpieczeń } ++++ ~~Zadanie.#~~ - Wykonaj poniższe komendy, które zmienią tryb pracy karty na ad-hoc/IBSS ip link set wlan0 down iw wlan0 set type ibss ip link set wlan0 up - Używając komendy: \\ ''iw //wlan0// ibss join //nazwa_sieci// //2432//'' \\ dołącz do sieci ad-hoc o podanej nazwie pracującej na częstotliwości 2432MHz (kanał 5) ~~Zadanie.#~~ Sprawdź czy zmienił się stan interfejsu prezentowany przez komendę ''ip link''. Wyświetl informacje o stanie karty bezprzewodowej komendą ''iw dev //wlan0// info'' oraz o stanie połączenia komendą ''iw dev //wlan0// link''. ~~Zadanie.#~~ Dodaj adres IP do swojej karty z identycznej sieci jak pozostałe osoby w sali. Przetestuj czy jest łączność do innych osób. ~~Zadanie.#~~ Wykonaj poniższe komendy, które przywrócą domyślny tryb pracy karty:
ip link set wlan0 down iw wlan0 set type managed ip link set wlan0 up
==== wpa_supplicant ==== O ile w Linuksie do łączenia do sieci bez zabezpieczeń można użyć komendy ''iw'', o tyle do łączenia się z sieciami z zabezpieczeniami potrzebny jest dodatkowy program. W tej chwili większość dystrybucji Linuksa korzysta z programu ''[[https://w1.fi/wpa_supplicant/|wpa_supplicant]]'' (niektóre pozwalają też użyć ''[[https://iwd.wiki.kernel.org|iwd]]''). \\ Dla uproszczenia na tych laboratoriach łączenie się do wszystkich sieci będzie odbywać się z użyciem programu ''wpa_supplicant''. Do działania ''wpa_supplicant'' potrzebuje pliku konfiguracyjnego, po przygotowaniu którego należy uruchomić polecenie wskazujące na to której karty i którego pliku program ma użyć: \\ ''**wpa_supplicant -i** //wlan0// **-c** //sciezka/do/pliku/konfiguracyjnego//'' ==== Tryb infrastruktury ==== Tryb infrastruktury to najpowszechniejsza konfiguracja sieci bezprzewodowych, w której urządzenia łączą się za pośrednictwem punktu dostępowego (AP) który zarządza siecią i pośredniczy w każdej wymianie danych. \\ Zwykle zadaniem AP jest też umożliwienie urządzeniom z sieci bezprzewodowej na dostęp do do urządzeń w sieci przewodowej (w tym typowo na dostęp do internetu). ~~Zadanie.#~~ - Na interfejsie //wifi2// routera Mikrotik ustaw wybrany przez siebie SSID (nazwę sieci bezprzewodowej) i włącz ten interfejs \\ w tym celu musisz z menu po lewej wybrać //Wireless// i kliknąć na odpowiednim interfejsie z tabeli - Na komputerach wykonaj skanowanie dostępnych sieci bezprzewodowych i znajdź stworzoną przez siebie sieć ~~Zadanie.#~~ - Przygotuj na komputerach konfigurację programu ''wpa_supplicant'' na podstawie poniższego pliku: network={ ssid="SiecBezZabezpieczen" key_mgmt=NONE } - Uruchom program ''wpa_supplicant'' na karcie ''wlan0'' z wcześniej przygotowanym plikiem konfiguracyjnym - Czy łączność między komputerami (używając adresów IP które wciąż są ustawione na kartach sieci bezprzewodowej) funkcjonuje? Dlaczego? ==== Tryb monitora ==== Karty sieciowe mogą po prostu słuchać na falach radiowych i przekazywać do systemu każdą usłyszaną ramkę. ~~Zadanie.#~~ - Podłącz dodatkową kartę bezprzewodową na USB i sprawdź jaką dostała nazwę - Dodaj interfejs działający w trybie monitora do tej karty komendą: \\ ''iw //wlan2// interface add //mon0// type monitor'' - Włącz ten interfejs komendą ''ip link set dev mon0 up'' - Poproś jedną osobę z sali (z innej grupy) o podanie tobie na jakiej częstotliwości (kanale), z jaką szerokością kanału i z jaką częstotliwością środka kanału działa jej sieć - można to odczytać poleceniem ''iw //wlan0// info'' \\ Np. channel 13 (2472 MHz), width: 40 MHz, center1: 2462 MHz - Ustaw nasłuchiwanie na tych samych falach radiowych komendą: \\ ''iw mon0 set freq //2472// //40// //2462//'' - Uruchom program wireshark i rozpocznij nasłuchiwanie na interfejsie ''mon0'' - Poproś tę samą osobę żeby wykonała polecenie ''telnet -l root //adres_docelowy//'', podając jako adres docelowy adres IP drugiego komputera z jej sieci bezprzewodowej, a następnie poproś o wykonanie komendy ''cat /etc/passwd'' - Znajdź w wiresharku pakiety odpowiedzialne za tą komunikację ==== Zabezpieczenia sieci bezprzewodowych ==== Historycznie do zabezpieczania sieci używano szyfrowania stałym, słabym kluczem (WEP). Do zabezpieczenia sieci (uwierzytelniania i szyfrowania) najczęściej używa się WPA (Wi-Fi Protected Access) w wersji 2 lub 3. Standard 802.11i wprowadzający te zabezpieczenia zamiast nazwy WPA używa nazwę RSN (Robust Security Network) i ta pojawia się w niektórych narzędziach Linuksowych. === WPA/WPA2/WPA3 === WPA i WPA2 nie różnią się od siebie istotnie. Po kilkunastu latach, głównie na skutek odkrycia [[https://en.wikipedia.org/wiki/Wi-Fi_Protected_Access#Security_issues|podatności]] mechanizmów WPA/WPA2, opracowano i ogłoszono przyjęcie w 2018 roku kolejnej wersji – WPA3. \\ Standardy WPA określają jak przebiega uwierzytelnianie i szyfrowanie. Uwierzytelnianie (//authentication//) to proces w którym sprawdza się czy osoba podająca się za uprawnioną do łączenia się z siecią jest osobą za którą się podaje. WPA/2/3 określa dwa profile uwierzytelniania: **WPA-Personal** i **WPA-Enterprise**. \\ WPA3 dodatkowo pozwala tworzyć sieci otwarte (bez uwierzytelniania). \\ Mechanizmy uwierzytelniania w WPA/2/3 nazywają się:
| ^ //brak uwierzytelniania// ^ WPA-Personal ^ WPA-Enterprise ^ ^ WPA |
|
PSK
|
EAP
| ^ WPA2 | ::: | ::: | ::: | ^ WPA3 | [[https://en.wikipedia.org/wiki/Opportunistic_Wireless_Encryption|OWE]] | SAE | ::: | **PSK** ([[https://en.wikipedia.org/wiki/Pre-shared_key|Pre-shared Key]]), używane przez WPA i WPA2, wymaga znajomości przez klienta i AP **wspólnego sekretu** – ciągu 256 bitów. Zwykle taki ciąg jest skrótem kryptograficznym z **"hasła"** o długości od 8 do 63 znaków. \\ Wady uwierzytelniania WPA-PSK/WPA2-PSK: * podatność na słownikowe ataki offline (mając podsłuchane ramki uwierzytelniające można dopasować do nich hasło), * siła zabezpieczenia zależy od siły hasła, * znane (i częściowo niezałatane) podatności, np. [[https://en.wikipedia.org/wiki/KRACK|KRACK]], **SAE** ([[https://en.wikipedia.org/wiki/Simultaneous_Authentication_of_Equals|Simultaneous Authentication of Equals]]), używane w WPA3, jest rozwinięciem [[https://pl.wikipedia.org/wiki/Protok%C3%B3%C5%82_Diffiego-Hellmana|protokołu do ustalania tajnego klucza po jawnym kanale komunikacyjnym]] w którym strony muszą dodatkowo znać wspólny sekret (tworzony z **hasła**). W SAE podsłuchanie komunikacji nie pozwala poznać tego sekretu, nie pozwala na ataki słownikowe na przechwyconej komunikacji i nie pozwala znając sekret na wygenerowanie klucza z podsłuchanej komunikacji. \\ Przez brak możliwości dopasowania hasła do przechwyconej komunikacji SAE uznaje się za odporne na ataki słownikowe, stąd nie wprowadzono dolnych ograniczeń na długość hasła. W profilu **WPA-Enterprise** w uwierzytelnianiu biorą udział trzy urządzenia: stacja (klient sieci bezprzewodowej), AP i **serwer uwierzytelniający**. Pozwala to scentralizować uwierzytelnianie. \\ Stacja i serwer uwierzytelniający, za pośrednictwem AP, wymieniają się wiadomościami protokołu EAP (stąd nazwa **WPA-EAP**), który pozwala uzgodnić sposób uwierzytelniania i przekazać potrzebne w nim dane uwierzytelniające (np. nazwę użytkownika i hasło bądź certyfikat klienta). Wszystkie sieci zabezpieczone z użyciem WPA szyfrują dane, przy czym między AP a każdym urządzeniem używany jest inny, okresowo zmieniany klucz do szyfrowania. Działanie szyfrowania w WPA/2/3 nie zależy od zastosowanego w sieci uwierzytelniania. === WPS === **[[https://en.wikipedia.org/wiki/Wi-Fi_Protected_Setup|WPS]]** to zbiór rozwiązań mających ułatwiać osobom nietechnicznym korzystanie z zabezpieczeń WPA2-PSK / WPA3-SAE przez uproszczenie konfiguracji uwierzytelniania. Przykładowo, jedna z metod pozwala na automatyczne i bezpieczne przesłanie hasła do urządzenia które jako pierwsze spróbuje podłączyć się do AP po tym jak na AP zostanie naciśnięty odpowiedni przycisku. ==== Konfiguracja i łączenie do sieci zabezpieczonej ==== ~~Zadanie.#~~ - Na interfejsie //wifi2// routera Mikrotik zmień ustawienia zabezpieczeń: * jako //Authentication Types// wybierz //WPA2-PSK// lub //WPA3-PSK// (ta druga opcja określa, wbrew nazwie, WPA3-SAE) * wpisz "hasło" do sieci w pole //Passphrase// - Wykonaj skanowanie dostępnych sieci z komputera i zobacz jak teraz jest opisana ta sieć ~~Zadanie.#~~ - Przygotuj na komputerach nową konfigurację na podstawie jednego z poniższych plików: network={ ssid="SiecWPA2-PSK" psk="haslodosieci" } network={ ssid="SiecWPA3-SAE" key_mgmt=SAE sae_password="haslo" ieee80211w=2 } - Ponownie uruchom program ''wpa_supplicant'' - Sprawdź łączność między komputerami ==== System dystrybucji i pomiary prędkości ==== W standardzie 802.11 określenie system dystrybucji (//Distribution System//, DS) nazywa sieć kablową do której AP daje dostęp podłączonym do sieci bezprzewodowej stacjom ~~Zadanie.#~~ - Do interfejsu mostka (który był konfigurowany w zadaniu 2 i zawiera już //ether4// i //ether5//) dodaj interfejs //wifi2// - Połącz kablem interfejs //ether4// lub //ether5// swojego routera do routera innej pary - Sprawdź łączność między komputerami podłączonymi do różnych routerów (powinniście wciąż mieć adresy z tej samej sieci) ~~Zadanie.#~~ Zbadaj prędkość między dwoma komputerami podłączonymi do tego samego AP oraz prędkość między komputerami podłączonymi do różnych AP (oczywiście tych połączonych kablem). Jeżeli te AP pracują na identycznym kanale, zmień w ustawieniach kanał na którym pracują przed wykonaniem pomiarów prędkości. Wyjaśnij wyniki. \\ Aby zmierzyć prędkość, na jednym komputerze wykonaj ''iperf3 -s'', a na drugim ''iperf -c //adres_ip//'' ==== Dodatkowe materiały ==== Dużo obszerniejsze materiały o sieciach bezprzewodowych znajdziesz [[sk2:wlan|tutaj]].