Konfiguracja związana z obsługą sieci WiFi w systemie Linux sprowadza się do wykorzystania kilku poleceń konsoli. Polecenia te to:
-
-
- ifconfig – narzędzie służące do zmiany ustawień interfejsów sieciowych zainstalowanych w systemie,
- iwconfig – główne narzędzie służące do konfiguracji kart bezprzewodowych,
- iwlist – narzędzie informacyjne dostarcza nam dane na temat wykorzystywanego interfejsu,
- iwgetid – narzędzie informacyjne,
- iwevent – narzędzie, które dostarcza nam informacje generowane przez sterownik karty WiFi np. zmiana ustawień karty sieciowej.
-
Polecenie ifconfig wydane bez parametrów wyświetla listę wszystkich interfejsów.
Włączenie interfejsu następuje po wydaniu polecenia ifconfig <nazwa_interfejsu> up natomiast jego wyłączenie po wydaniu ifconfig <nazwa_interfejsu> down Jeśli podczas testowania poniższych komend, któreś z poleceń Ci nie zadziała spróbuj wyłączyć dany interfejs do, którego polecenie się odnosi. Również trzeba mieć na uwadze, że niektóre komendy będą działać tylko z określonymi urządzeniami. Więc bardzo często dojdzie do sytuacji w której otrzymasz informacje, że dane polecenie jest nieobsługiwane i nie może być wykonane.
Warto wiedzieć, że podczas wydawania poleceń nie musimy ich kończyć ponieważ gdy istnieje tylko jedyne dopasowanie do określonej komendy system uzna je jako napisane do końca. A dodatkowo komendy możemy dopełniać poprzez używanie klawisza TAB. Czyli np. polecenie iwlist wlan0 scannning (jako te poprawne) jest tożsame z poleceniem iwlist wlan0 scan ponieważ scan jest jedynym pasującym dopasowaniem do scannning. Powyższe zasady nie są jakąś ogólnie przyjętą wykładnią i mogą nie mieć zastosowania we wszystkich wersjach systemu Linux.
Pierwszą grupą poleceń są komendy iwlist. Polecenie iwlist używane jest do uzyskania informacji na temat podstawowych parametrów naszej karty bezprzewodowej wraz z niektórymi informacjami na temat dostępnych sieci bezprzewodowych. Polecenie iwlist dopełnia informacje uzyskane dzięki komendzie iwconfig.
Podstawowym poleceniem z którym będziemy mieli najczęściej do czynienia jest polecenie iwlist służące do wykrycia sieci bezprzewodowych. A więc by uzyskać listę wszystkich dostępnych sieci bezprzewodowych wydajemy polecenie iwlist <nazwa_interfejsu> scannning
Wydanie polecenia iwlist <nazwa_interfejsu> channel wyświetli nam listę dostępnych częstotliwości i kanałów obsługiwanych przez kartę WiFi.
Wydanie polecenia iwlist <nazwa_interfejsu> frequency będzie skutkowało wynikiem podobnym do poprzedniego.
Komenda iwlist <nazwa_interfejsu> rate podaje dostępne prędkości transmisji, razem z obecnie używaną prędkością. Taki sam efekt można uzyskać wpisując polecenie iwlist <nazwa_interfejsu> bitrate.
Polecenie iwlist <nazwa_interfejsu> encryption powoduje wyświetlenie informacji na temat obecnie używanego klucza, trybie bezpieczeństwa – czy sposobach weryfikacji użytkownika.
Informację na temat użytych kluczy (rodzaj, długość) uzyskasz po wydaniu komendy iwlist <nazwa_interfejsu> keys a także iwlist <nazwa_interfejsu> wpakeys
Podstawowym poleceniem służącym do konfiguracji bezprzewodowego interfejsu jest iwconfig.
Wydanie polecenia iwconfig <nazwa_interfejsu> mode master powoduje ustawienie karty w trybie master. Natomiast polecenie iwconfig <nazwa_interfejsu> mode monitor nakazuje karcie przejście w tryb nasłuch (tryb RFMON) umożliwiając tym samym sniffing (przechwytywanie) pakietów sieci 802.11. Jak widać na poniższym rysunku ustawienie karty w tryb master nie powiodło się natomiast włączenie trybu monitor przebiegło bez najmniejszych problemów.
Te dwa tryby działania kart WiFi są najbardziej problematyczne i niestety niewiele kart potrafi je obsłużyć. Listę kart obsługujących tryb RFMON znajdziesz tutaj: http://www.aircrack-ng.org/doku.php?id=compatibility_drivers natomiast listę kart wspierające tryb master tutaj: https://help.ubuntu.com/community/WifiDocs/MasterMode
Inne tryby w które możemy przestawić kartę to domyślny tryb managed (tryb klienta)ustawiany za pomocą polecenia iwconfig <nazwa_interfejsu> mode manager czy ustawienie wymuszający na karcie włączenie trybu adhoc - iwconfig <nazwa_interfejsu> mode ad-hoc
Przećwiczmy komendy iwconfig próbując uruchomić połączenie adhoc pomiędzy dwoma komputerami a także próbując zestawić połączenie z punktem dostępowym (AP).
Otwieramy terminal i uruchamiamy go w trybie root - sudo su. Przejście w ten tryb nastąpi po podaniu hasła.
Następnie wyłączamy interfejs bezprzewodowy - ifconfig <nazwa_interfejsu> down (nazwy interfejsów poznasz po wydaniu komendy ifconfig).
i przestawiamy naszą kartę do pracy w trybie adhoc - iwconfig <nazwa_interfejsu> mode ad-hoc
Wybieramy kanał pracy naszej sieci - iwconfig <nazwa_interfejsu> channel 1
Ustawiamy nazwę tworzonej sieci bezprzewodowej - iwconfig <nazwa_interfejsu> essid <"nazwa_sieci"> W naszym scenariuszu przyjęto nazwę sieci adhocTest.
By zabezpieczyć naszą sieć możemy ustawić hasło - iwconfig <nazwa_interfejsu> key s:<hasło> klucz jest ustawiany jako ciąg znaków ASCII. Możemy również zdecydować się na użycie 64-bitowego klucza WEP - iwconfig <nazwa_interfejsu> key 11111111 bądź wybrać klucz 128-bitowy iwconfig <nazwa_interfejsu> key 1111-1111-1111-1111 By nie komplikować sobie życia, ponieważ tryb adhoc ustawia się najczęściej by komuś na szybko udostępnić połączenie internetowe lub przesłać określone pliki najlepiej wybrać iwconfig <nazwa_interfejsu> key off by wyłączyć szyfrowanie WEP oraz iwconfig <nazwa_interfejsu> key open by włączyć tryb otwarty.
Aktywacja tak utworzonej sieci następuje po podniesieniu interfejsu WiFi - ifconfig <nazwa_interfejsu> up
Ostatnim krokiem jest przypisanie adresu IP komputerowi na którym jest tworzona sieć, następuje to po wydaniu polecenia - ifconfig <nazwa_interfejsu> <adres_IP> netmask <adres_maski> Komputerowi rozgłaszającemu sieć adhoc został przypisany adres IP 10.0.0.1
Od tego momentu sieć powinna być dostępna i rozgłaszana, sprawdźmy to. Jak widać poniżej sieć jest widoczna a więc spróbujmy podłączyć się do niej. Proces podłączenia przebiega prawidłowo, następuje uzyskanie dostępu do sieci. Żeby było ciekawiej sieć adhoc jest tworzona na systemie Linux Kali natomiast klientem jest Windows 7.
Sprawdzenie dostępnych sieci możemy również wykonać z poziomu command line wydając polecenie netsh wlan show networks mode=bssid jak widać uzyskane parametry są zgodne z tymi, które wybraliśmy podczas tworzenia sieci (nazwa sieci, uwierzytelnienie czy wybrany kanał).
Ostatnim krokiem jest przypisanie adresu IP zgodnego z adresacją sieci przyjętą podczas tworzenia sieci adhoc. W naszym scenariuszu adres IP może zostać wybrany z przedziału 10.0.0.2 do 10.0.0.254. Klientowi korzystającemu z Windows 7 zostaje przypisany adres IP 10.0.0.2
Po operacji przypisania adresu nie pozostaje nam nic innego jak tylko sprawdzenie poprawności komunikacji. Sprawdźmy czy uda nam się skomunikować z komputerem hosta sieci adhoc. Wysłanie pakietu ICMP (ping do 10.0.0.1) kończy się sukcesem.
Również możliwa jest komunikacja z komputerem klientem. W tym przypadku uzyskujemy dostęp do folderów udostępnionych na maszynie z zainstalowanym Windows 7.
Znacznie częściej będziemy jednak łączyli się z punktami dostępowymi niż tworzyli sieć typu adhoc. A więc po niżej przedstawiam trzy możliwe scenariusz z jakimi będziemy mogli się spotkać.
- połączenie z siecią WiFi bez zabezpieczeń – sieć otwarta,
- połączenie z siecią WiFi zabezpieczoną kluczem WEP,
- oraz połączenie z siecią zabezpieczoną kluczem WEP2
Pierwszym krokiem do ustanowienia połączenia z siecią bezprzewodową jest sprawdzenie nazwy szukanej sieci Wifi, czyli wykorzystujemy już znane nam polecanie iwlist <nazwa_interfejsu> scan.
Ustanowienia połączenia z AP następuje po wydaniu polecenia iwconfig <nazwa_interfejsu> essid <nazwa_sieci> W przedstawianym scenariuszu następuje połączenie z siecią bezprzewodową Temp za pomocą interfejsu wlan0. Jak widać sieć jest otwarta ponieważ nie podajemy żadnego klucza (uwidocznione jest to również na rysunku powyżej – sekcja: Encryption key: off).
Po połączeniu z siecią co obrazuje nam uruchomiona usługa zdarzeń – iwevent należy usyskać adres IP.
Adres ten możemy przypisać statycznie za pomocą polecenia ifconfig <nazwa_interfejsu> <adres_IP> netmask <adres_maski> bądź skorzystać z DHCP. My decydujemy się na to drugie rozwiązanie a więc by uzyskać adres IP wydajemy polecenie dhclient <nazwa_interfejsu>.
Po wydaniu polecenia nasz host uzyskał dostęp do Internetu.
Drugim omawianym przypadkiem jest podłączenie do sieci, która jest zabezpieczona kluczem WEP. W naszym scenariuszu również dokonujemy podłączenia do sieci Temp przy czym hasło tej sieci stanowi klucz: 9999999999.
Po wydaniu polecenia iwlist <nazwa_interfejsu> scan ukazuje się nam lista dostępnych sieci bezprzewodowych, jak widać sieć TEMP jest zabezpieczona – encryption key: on
Podłączenia do sieci dokonujemy bardzo podobnie jak to było w przypadku sieci otwartej lecz dodajemy dodatkowy parametr key. Czyli w naszym przypadku polecenie będzie miało postać iwconfig <nazwa_interfejsu> essid <nazwa_sieci> key <hasło_sieci>. W przypadku korzystania z klucza w formacie ASCI nasze polecenie przyjmie postać iwconfig <nazwa_interfejsu> essid <nazwa_sieci> key s:<hasło_sieci
I na koniec przypisanie adresu IP do interfejsu by po chwili móc się cieszyć połączeniem z Internetem.
Ostatnią sytuacją jest scenariusz z którym będziemy spotykać się najczęściej czyli łączność z tą siecią w której zastosowano mechanizm WPA2. Niestety połączenie z siecią bezprzewodową, która korzysta z zabezpieczeń w standardach IEEE 802.1X oraz IEEE 802.11i wiąże się z instalacją tzw. wpa_supplicant. Ale wszystko po kolei.
Zaczynamy od instalacji pakietu wpasupplicant. W oknie terminalu wydajemy komendę sudo aptitude install wpasupplicant (dla wiersza poleceń) dla GUI - sudo aptitude install wpasupplicant wpagui
Po poprawnej instalacji możemy przejść do zestawienia połączenia z siecią WiFi. Jak w poprzednich przypadkach wykrywamy dostępne na danym obszarze sieci bezprzewodowe. Siecią do której będziemy się podłączać jest tradycyjnie sieć Temp. Jak widać poniżej korzysta ona z zabezpieczenia opartego na WPA2.
Zaczynamy od utworzenia pliku konfiguracyjnego w którym to będą zapisane informacje niezbędne do uzyskania uwierzytelnienia. Plik ten tworzy się za pomocą komendy wpa_passphrase <nazwa_sieci> <hasło>. Dodatkowo został użyty symbol przekierowania >, który to spowoduje zapisanie wygenerowanych informacji do pliku wpa.conf (katalog użytkownika) Dozwolone jest również wydanie samego polecenia wpa_passphrase <nazwa_sieci> wtedy program czekana wprowadzenie hasła.
Nie pozostało nam nic innego jak użyć tak przygotowany plik do zestawienia połączenia z siecią bezprzewodową. Aplikacja wpa_supplicant korzysta z następujących przełączników:
By połączyć się z siecią WiFi musimy wydać polecenie: wpa_supplicant -D<wybrane_sterowniki> –i<interfejs> –c<ścieżka_do_pliku_conf> czyli w naszym przypadku polecenie przyjmie postać - wpa_supplicant -Dwext –iwlan0 –c/root/wpa.conf
Tradycyjnie już ostatnią czynnością jest uzyskanie adresu IP, by po jej wykonaniu
móc cieszyć się połączeniem z Internetem.
Gdyby z jakiś powodów połączenie nie doszło do skutku by zresetować ustawienia należy posłużyć się komendami: ifconfig <interfejs> down (wyłączenie interfejsu sieciowego) oraz killall wpa_supplicant dhclient (wyłączenie aplikacji wpa_supplicant wraz z klientem DHCP).
By adresy IP przypisać statycznie musimy wykonać następujące czynności:
1. Przypisać adres IP do interfejsu sieciowego za pomocą polecenia ifconfig <nazwa_interfejsu> <adres_IP> netmask <adres_maski> - oczywiście adres musi być zgodny z przyjętą adresacją sieci
2. Ustalić adres bramy domyślnej za pomocą komendy:
route add default gw <adres_IP_bramy> <nazwa_interfejsu>
Poprawność dodania trasy do tablicy routingu możemy sprawdzić wykorzystując do tego polecenie: route i jak widać została dodana trasa 0.0.0.0, która cały ruch (bo wszystkie pakiety pasują do tego wpisu), kieruje poprzez interfejs wlan0 na adres 192.168.0.1
3. Adresy DNS dodajemy/zmieniamy poprzez edycję pliku /etc/resolf.conf, serwer DNS dodajemy za pomocą wpisu nameserver <adres_serwera_DNS>
Po wykonaniu tych wszystkich czynności uzyskamy dostęp do Internetu.
Bibliografia:
- http://www.wirelessdefence.org/Contents/LinuxWirelessCommands.htm
- http://hxr99.blogspot.com/2011/10/how-to-set-wireless-ad-hoc-in-linux.html
- http://www.linuxcommand.org/man_pages/iwconfig8.html
- http://linux.die.net/man/5/wpa_supplicant.conf
- http://linux.icydog.net/wpa.php
- http://www.pantz.org/software/wpa_supplicant/wirelesswpa2andlinux.html
- http://www.nibyblog.pl/wszystkie-przydatne-komendy-wifi-w-linuksie-66.html
- http://www.cyberciti.biz/faq/howto-debian-ubutnu-set-default-gateway-ipaddress/
Komentarze