zapiski z podróży po świecie informatyki (ps. lisp jest lepszy)
Blog | Archiwum || StackOverflow | GitHub

"wifi":

2019-06-15

WiFi ad-hoc z WPA.

WiFi ad-hoc?

W odróżnieniu od najczęściej stosowanej architektury WiFi master-slave (model klient-serwer), gdzie do pojedynczej maszyny zarządzającej ruchem (routera) łączy się wielu klientów, architektura ad-hoc to model klient-klient (ang. peer-to-peer). Nie ma więc pojedynczej maszyny, od której wszystko zależy, i przez która cały ruch przechodzi. W ad-hoc każdy klient łączy się z każdym bezpośrednio, więc sieć działa szybciej. Dodatkowo każdy punkt w sieci potrafi działać jako pośrednik w ruchu dla maszyn, które są poza zasięgiem! Więc sieć jest bardziej elastyczna, ma większy zasięg.

Same zalety więc w stosunku do klasycznego master-slave, ja czuję się przekonany!

Konfiguracja jest dość prosta. Dodatkowo każda maszyna jest klientem, więc każda konfigurowana jest tak samo.

1 Połączenie podstawowe.

Na początek w celach testowych, tymczasowo, zestawienie podstawowego połączenia bez kodowania. Sprawdzamy czy w najprostszy sposób, w trybie ad-hoc karty się połączą.

Uwaga! Jako że chwilowo będziemy udostępniać obie łączone maszyny w sieci ogólnodostępnej, warto wpierw wyłączyć wszystkie zewnętrzne usługi.

Założenia:

  • wszystkie komendy wykonujemy jako root
  • nasza karta WiFi to wlan0

1.1 Wpierw wyłączamy kartę WiFi żeby ją spokojnie przekonfigurować:

Jeżeli mamy jakiegoś szykownego network-manager'a, wyłączamy go żeby nam nie przeszkadzał, poleceniem typu (to bardzo zależy od dystrybucji):

service network-manager stop

Jeżeli karta była zablokowana, używamy rfkill do odblokowania:

rfkill unblock wifi

Wyłączamy (kładziemy) kartę:

ifconfig wlan0 down

1.2 Następnie konfigurujemy kartę:

Ustawiamy kartę WiFi w trybie ad-hoc:

iwconfig wlan0 mode ad-hoc

Ustawiamy jakieś ID sieci, np loza-0A0E1:

iwconfig wlan0 essid loza-0A0E1

Ustawiamy jakiś względnie wolny kanał, w przykładzie to kanał 6:

iwconfig wlan0 channel 6

1.3 Na koniec włączamy (podnosimy) kartę

…nadając jej przy okazji jakiś adres, np 192.168.0.1 z maską 24 bit (więc 255.255.255.0):

ifconfig wlan0 192.168.0.1/24 up

Teraz możemy sprawdzić, po wykonaniu powyższego na 2 maszynach, czy się połączyły. Dodatkowo (jeśli iptable nam nie blokuje) możemy jakieś ping'i czy co tam tylko pomiędzy nimi przesłać.

2 Bezpieczne połączenie z WPA.

Założenia:

  • wszystkie komendy wykonujemy jako root
  • nasza karta WiFi to wlan0
  • nasze ID sieci to loza-0A0E1

2.1 Konfiguracja

Cała konfiguracja połączenia zapisywana jest w jednym pliku. W dla przykładu będzie to /etc/wpa_supplicant/loza-0A0E1.conf.

echo "
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root

network={
  mode=1
  ssid="loza-0A0E1"
  frequency=2412
  proto=RSN
  key_mgmt=WPA-PSK
  psk="super tajne haslo do lozy"
  pairwise=CCMP
  group=CCMP
}" > /etc/wpa_supplicant/loza-0A0E1.conf

2.2 Uruchomienie testowe, ręczne.

wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/loza-0A0E1.conf

2.3 Uruchomienie właściwe.

Od testowego różni się tylko tym, że komunikaty zapisuje do log'u (-f) i po uruchomieniu przechodzi do tła (-B).

wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/loza-0A0E1.conf -f /var/log/wifi-loza -B

3 Linki

Tagi: wifi wpa linux ifconfig iwconfig wpa_supplicant
Pozostałe wpisy