Punkt dostępowy WLAN na OpenBSD

Pierwsze rozwiązanie domowej sieci WiFi oparłem o D-Linka DI-624. Nie sprawdził się, więc postawiłem sobie router i access-point na OpenBSD

<

p>

D-Link DI-624

Mały, zgrabny i tani (ok. 200 zł brutto) routerek D-Link DI-624 posiada:

  • Ethernet WAN (PPPoE, PPP, static IP)
  • cztery porty Ethernetowe LAN
  • access-point do 54mbit (Dynamic Turbo)

Używałem go przez pół roku, ale do decyzji o zmianie doprowadziły mnie dwa, ciągle pojawiające się zjawiska, które nie ustąpiły pomimo upgradu firmware z oryginalnego 2.42 do 2.53, potem 2.72, a następnie powrotu do 2.53. Było to:

  • regularne restartowanie się przy dużym obciążeniu ruchem sieciowym, w wersji 2.42 wymienione jako błąd inicjowany przez ruch eMule, ale obecne także w nowszym firmware
  • regularne rwanie połaczeń WiFi oraz problemy z asocjowaniem się do sieci

D-Link w nowszych wersjach softu ma zarówno WPA jak i WPA2 z TKIP i CCMP, ale co z tego jeśli parę razy dziennie, nawet na WPA/TKIP traciłem połączenie i nie mogłem się ponownie podłączyć do sieci z różnych laptopów, bez wyraźnej korelacji z czymkolwiek. Laptop zwykle szybko asocjował się do sieci, a potem w nieskończoność czekał na DHCP (przynajmniej wg Windowsa). Znalazłem jakiś problem z implementacją DHCP Microsoftu, który mógł być za to odpowiedzialny, ale chyba raczej nie był bo raz się łączyło a raz nie, no i na OpenBSD śmiga aż miło. Dlatego D-Link został zdegradowany do roli switcha, a potem pójdzie na Allegro.

<

p>

OpenBSD

Na sprzęt wygrzebałem stare AMD-K6. Ma dwa interfejsy ethernetowe:

  • Realtek 8139 (rl0)
  • Intel 8255x (fxp0)

Kartę WiFi wybrałem na Allegro sugerując się tym, co obsługuje OpenBSD - Ralink RT2560 - i nie pomyliłem się. Jest to karta PCI z krótką, samodzielną antenką stojącą, która obecnie spokojnie obsługuje całe mieszkanie.

Na tym jest postawione OpenBSD 3.9, pomimo - a może właśnie dlatego - że większa część mojego życia zawodowego była związana z Linuksem. W OpenBSD podoba mi się prostota, przewidywalność oraz kompletne i aktualne manuale (sic!). Oraz sterowniki sieciowe.

Cała konfiguracja access pointa pod OpenBSD to plik /etc/hostname.ral0:

inet 172.xx.yy.1 255.255.255.192 172.xx.yy.63 \
description "HostAP" \
mode 11g mediaopt hostap \
nwid ESSID nwkey xxxxyyyyzzzzz

I to po prostu bierze i działa. Pewne wątpliwości budzi fakt korzystania z gołego WEP, ale jakoś z tym żyję.

Do tego dochodzi konfiguracja pf (packet filter) opisana w notatce VoIP w domu. Znowu mój podziw wzbudził fakt, że całą konfigurację QoS (altq) napisałem w ciągu 15 minut na podstawie manuala. W przypadku linuksowego QoS (tc) najpierw spędziłem pół roku pisząc artykuł[1], po to by zrozumieć o co tam w ogóle chodzi. Z czysto pragmatycznego punktu widzenia przewaga implementacji i dokumentacji OpenBSD jest dla mnie widoczna jak na dłoni.

<

p>

Po stronie klienta

W domu mam zwykle działające trzy laptopy: dwa z kartami Intela - i te łączą się na 54mbit - i jeden z kartą SIS162, i ten łączy się na 11mbit. Komunikacja działa bez problemów, transfery między Intelami są bardzo dobre, systemy asocjują się błyskawicznie. Testowałem także Linuksa z kartą ELSA AirLancer (chipset Orinoco) i też działa.

Jedna Winda ma problemy z DHCP, co objawia się tym że serwer widzi ucięte pakiety (truncated), a Winda nie może dostać DHCP pomimo że na snifferze ewidentnie je widać. Wg informacji znalezionych w sieci jest to wina stosu TCP/IP w Windows, który wysyła pakiet o źle zdeklarowanej długości

Nie wiem dlaczego występuje to tylko na tej jednej Windzie, ale pomaga ipconfig /renew Wire* lub, jako user runas /user:administrator "ipconfig /renew Wire*".

<

p>

WEP

Sterownik ral w OpenBSD obsługuje WEP 40(64) lub 104(128) bit, co reguluje się długością podanego klucza - dla pierwszego 5 znaków, dla drugiego 13 znaków. Implementacja WEP jest programowa, ale działa i Windy normalnie się uwierzytelniają i asocjują.

To już nie wina OpenBSD, tylko WEP, ale wynik eksperymentu przeprowadzonego przy pomocy airodump i aircrack był porażający - klucz WEP 128-bit został znaleziony (aircrack) w ciągu kilkunastu sekund na podstawie zrzutu (airodump), który zawierał 130 tys. IV (jeden duży transfer pliku).

W OpenBSD nie ma jeszcze WPA ani klienckiego ani dla AP. Prace dopiero się rozpoczęły w 3.9-current[2].

<

p>

Bezpieczeństwo LAN

Z opisanych wyżej powodów nie uważam takiej instalacji WLAN za bezpieczeną. Bezpieczeństwo ruchu między stacjami jest dla mnie krytyczne, bo w sieci działają systemy zawierające wrażliwe z mojego punktu widzenia informacje, a transfer odbywa się głównie po SMB.

Podjąłem próbę całościowego zabezpieczenia tego ruchu przy pomocy dwóch metod:

<

p>

Zobacz także