Konfiguracja Wifi z zabezpieczeniem WPA+PSK na FreeBSD wygląda następująco: do połączenia i uzyskania ustawień sieci używam czterech plików – /etc/rc.conf, /etc/start_if.ath0, /etc/wpa-supplicant-dom.conf oraz /etc/dhclient.conf.
W pliku /etc/rc.conf mam następujący wpis:
ifconfig_ath0=”DHCP”
czyli tylko i wyłącznie informacja o tym, że adres sieciowy i cała reszta jest pobierana za pomocą klienta DHCP.
Większość pracy z konfiguracją sieci „odwala” plik /etc/start_if.ath0, jego zawartość wygląda tak:
/usr/sbin/wpa_supplicant -B -iath0 -c/etc/wpa_supplicant-dom.conf
i polega na wywołaniu programu wpa_supplicant w backgroundzie (-B) dla interfejsu ath0 (-iath0) z plikiem konfiguracyjnym /etc/wpa-supplicant-dom.conf (parametr -c).
Mógłbym zrezygnować z używania pliku /etc/start_if.ath0 i zmienić linijkę w /etc/rc.conf na taką: ifconfig_ath0=”DHCP WPA” ale wtedy wpa_supplicant używałby domyślnego pliku /etc/wpa_supplicant.conf. Ponieważ noszę laptopa tu i tam, wolę mieć oddzielny plik. Właściwie powinienem po prostu używać symlinków ale na razie tak wolę.
Zawartość pliku /etc/wpa_supplicant-dom.conf:
ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 eapol_version=2 ap_scan=1 fast_reauth=1 network={ ssid="######" proto=WPA auth_alg=OPEN key_mgmt=WPA-PSK group=TKIP psk="*****" priority=5 }
Oczywiście w miejsce haszów należy wpisać nazwę sieci (ssid) do której chcemy się podłączyć, a w miejsce gwiazdek – hasło. W moim przypadku kluczowym ustawieniem, przez które mało nie osiwiałem bardziej, była linia auth_alg=OPEN, która jest wymagana w przypadku szyfrowania WPA.
Na koniec fragment pliku /etc/dhclient.conf:
interface "ath0" { supersede domain-name "xxxxx"; supersede domain-name-servers 192.168.0.1; request subnet-mask, broadcast-address, time-offset, routers, host-name; }
Używam go tylko dlatego, że chcę narzucić klientowi DHCP by używał lokalnego serwera DNS.