Łatwa i szybka autoryzacja klientów Wi-Fi
Ostatnia zmiana: 2018-02-10 13:20
WPS jest standardem umożliwiającym łatwe i szybkie połączenie do sieci bezprzewodowej. Wyróżnia się cztery metody (z czego dwie są wymagane do implementacji) uzyskania połączenia:
- wprowadzenie kodu PIN
- PBC, poprzez naciskanie przycisków na routerze i karcie sieciowej
oraz opcjonalnie
- NFC, wykorzystując specjalnie układy do komunikacji bezprzewodowej lub tagi RFID
- USB, przenosząc odpowiednie kody na pendrive.
Więcej informacji można znaleźć w
Wikipedii. Należy też pamiętać o możliwych atakach i słabościach tego mechanizmu.
O ile wprowadzanie kodu pin technicznie niczym nie różni się od podania hasła do sieci Wi-Fi, o tyle metoda z przyciskami, PBC (Push-button Configuration) jest już ciekawa bo nie trzeba tych haseł pamiętać. W praktyce jeżeli chcemy uzyskać połączenie należy nacisnąć przycisk oznaczony WPS na karcie WiFi, odpowiedni przycisk na routerze i po chwili połączenie zostanie automatycznie zestawione. Bardzo proste, chociaż wymaga fizycznego dostępu do routera.
Większość routerów ma taki przycisk dostępny - nazwany WPS, QSS czy w inny sposób zależny od producenta sprzętu. W OpenWrt można uruchomić bezproblemowo tą metodę autoryzacji.
Instalacja
Wymagana jest pełna wersja programu
wpad oraz dodatkowy pakiet
hostapd-utils. W systemie może być już zainstalowana uproszczona wersja
wpad-mini, która nie wspiera tej metody konfiguracji, należy więc ją odinstalować i zainstalować w/w pakiet (o ile jeszcze nie ma go systemie)
# opkg remove wpad-mini
# opkg update
# opkg install wpad hostapd-utils
Konfiguracja
Najważniejsza sprawa to włączenie tej metody konfiguracji w pliku
/etc/config/wireless. Wykonuje się to ustawiając odpowiednią opcję
wps_pushbutton
# uci set wireless.@wifi-iface[0].wps_pushbutton=1
# uci commit wireless
# wifi
Jeżeli router posiada przycisk rozpoznawany przez OpenWrt jako WPS, to jest to cała konfiguracja. Teraz wystarczy nacisnąć przycisk
wps na karcie sieciowej, przycisk
wps czy
qss na routerze i połączenie powinno zostać automatycznie zestawione. Router domyślnie nie sygnalizuje aktywności WPS żadną diodą.
Jeżeli nie mamy przycisku WPS lub chcemy uzyskać to pod innym przyciskiem, np. "reset", należy:
- usunąć - jeżeli istnieje - skrypt
/etc/rc.button/reset- zmienić nazwę
wps wewnątrz tego skryptu
/etc/rc.button/wps na "reset"
- zmienić nazwę skryptu
/etc/rc.button/wps na
/etc/rc.button/resetJeżeli chcemy użyć innego przcisku to należy jego nazwę podstawić zamiast "reset". Nazwy przycisków można odszukać korzystając z
tego poradnika.
WPS ma także swoje wymagania które należy spełnić:
- sieć nie może być ukryta (
hidden 0)
- sieć musi mieć szyfrowanie
psk2 (WPA2 CCMP)
- najlepiej ustawić opcje
wps_pushbutton na wszystkich interfejsach radiowych
- przed instalacją należy upewnić się, że nie ma innego skryptu podpiętego pod przycisk WPS - w katalogu
/etc/rc.button lub
/etc/hotplug.d/buttonUwagi
Pakiet
hostapd-utils (a właściwie zawarty w nim program
hostapd_cli) musi zawierać obsługę metody
wps_pbc. Aby się upewnić czy używamy właściwej wersji pakietu można wydać polecenie:
powinny znaleźć się tam linie, m.in:
wps_pin <uuid> <pin> [timeout] [addr] add WPS Enrollee PIN
wps_check_pin <PIN> verify PIN checksum
wps_pbc indicate button pushed to initiate PBC
wps_cancel cancel the pending WPS operation
wps_ap_pin <cmd> [params..] enable/disable AP PIN
wps_config <SSID> <auth> <encr> <key> configure AP
wps_get_status show current WPS status
Stan WPS można sprawdzić poleceniem
wps_get_status:
# hostapd_cli -i wlan0 wps_get_status
PBC Status: Disabled
Last WPS result: None
# hostapd_cli -i wlan0 wps_get_status
PBC Status: Active
Last WPS result: None
# hostapd_cli -i wlan0 wps_get_status
PBC Status: Timed-out
Last WPS result: None
# hostapd_cli -i wlan0 wps_get_status
PBC Status: Disabled
Last WPS result: Success
Peer Address: 80:96:ca:xx:xx:xx