Stawianie szyfrowanego połączenia wlan w Linuxie

Miałem dzisiaj nieprzyjemność zrobienia dzisiaj tego (klikany sposób się zbuntował), dlatego zamierzam tą wiedzę zostawić dla potomnych.

Po pierwsze należy wybadać okolice, czy poszukiwaną przez nas sieć w ogóle łapiemy. Należy uruchomić polecenie:

iwlist scan

Program znajduje się w pakiecie wireless-tools (mowa o debianopodobnych dystrubucjach). Jeśli dostaniemy obok naszej sieci podpis "Network is down" to połączenie trzeba najpierw aktywować.

ifconfig wlan1 up

Oczywiście za wlan1 musicsz wstawić identyfikator swojego połączenia. W każdym razie już teraz pożądana sieć powinna być widoczna na wypisanej liście.

Następnie trzeba zapisać gdzieś szyfrowanie. Na początek upewnij się, że masz wpa_supplicant (jak sama nazwa mówi, zajmuje się szyfrowaniem WPA). Następnie wstukaj polecenie:

wpa_passphrase > /etc/wpa_supplicant.conf

Oczywiście wstaw swoją nazwę sieci i hasło do niej. W rezultacie w pliku /etc/wpa_supplicant.conf powinna wylądować mniej więcej taka zawartość:

network={
ssid="costam"
#psk="costammmm"
psk=fe762b507d9e1199445e3e20bd3dc274cc8e5125a06d85dc4d9b67ff3f6ef2a4
}

Tu muszę wspomnieć o dwóch ważnych rzeczach. Po pierwsze wygenerowany psk zależy od ssid, więc jeśli chcesz zmienić ssid to musisz wygenerować ten plik od nowa. Po drugie to jest konfiguracja minimum. wpa_supplicant sam ogarnia większość parametrów połączenia, ale jeśli czytasz ten wpis, bo jest Ci to potrzebne to na pewno nie zadziała, bo... prawa Murphy'ego. Pewnie do poprawnego działania musisz przeryć cały manual do wpa_supplicant i dopisać jakiś gówniany parametr. W każdym razie w większości przypadków to działa.

Kolejna rzecz do uruchomienia:

wpa_supplicant -Dwext -iwlan1 -c/etc/wpa_supplicant.conf -B

Za pierwszym razem uruchom to bez parametru -B na końcu, wtedy wpa_supplicant nie pójdzie w tło, tylko ładnie wypisze, co robi. W zdrowej sytuacji powinno to wyglądać mniej więcej tak:

Trying to associate with c8:64:c7:25:46:aa (SSID='costam' freq=2412 MHz) Associated with c8:64:c7:25:46:aa
WPA: Key negotiation completed with c8:64:c7:25:46:aa [PTK=CCMP GTK=TKIP]
CTRL-EVENT-CONNECTED - Connection to c8:64:c7:25:46:aa completed (auth) [id=0 id_str=]

Jeśli wszystko jest w porządku to ubij to i uruchom z parametrem -B. Do pełni szczęścia pozostało:

dhclient wlan1

I voila, masz internet!

Dzięki takiemu niskopoziomowemu konfigurowaniu połączenia namierzyłem, dlaczego internet mi nie działał. Z jakiegoś dziwnego powodu miałem w pliku konfiguracyjnym od dhclient linijkę reject 192.168.1.1, przez co odrzucał on połączenia z bramą 192.168.1.1, która akurat była bramą routera w moim domu. Komputery są głupie :/