OpenWrt - Obsługa WPS (Wi-Fi Protected Setup)
łatwa i szybka autoryzacja klientów Wi-FiOstatnia zmiana: 2012-11-10 09:15
1. Instalacja
2. Konfiguracja
3. Uwagi
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 słabościach i atakach tego mechanizmu, który został niedawno wykryty.
O ile wprowadzanie kodu pin technicznie niczym nie różni się od po prostu 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 oznacza to, że 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 hostpad-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
# opkg install hostapd-utils
Konfiguracja
Najważniejsza sprawa to włączenie tej metody konfiguracji w pliku /etc/config/wireless. Wykonuje się to ustawiając odpowiednią opcję
# uci set wireless.@wifi-iface[0].wps_pushbutton=1
# uci commit wireless
# wifi
# sed -i -e 's/wps/BTN_1/' /etc/hotplug.d/button/50-wps
Uwagi
- moje obrazy zawierają kod obsługujący przycisk WPS (włączenie/wyłączenie wifi). Przed wykorzystaniem go należy więc usunąć lub odpowiednio zmodyfikować jego obsługę (w pliku /etc/config/system)- pakiet hostapd-utils (a właściwie zawarty w nim program hostpad_cli) musi zawierać obsługę metody wps_pbc. Jest ona dodawana tylko jeżeli kompilujemy wersję wpad-full; jeżeli jednocześnie zostanie skompilowany pakiet wpad-mini, w/w metoda nie zostanie dodana. Aby się upewnić czy używamy właściwej wersji pakietu można wydać polecenie:
# hostapd_cli -h
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_ap_pin <cmd> [params..] enable/disable AP PIN