Punkt dostępowy WLAN na OpenBSD

2006-12-05 00:00:00 +0000


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



<h2>D-Link DI-624</h2> <p>Mały, zgrabny i tani (ok. 200 zł brutto) routerek D-Link DI-624 posiada: </p> <ul><li> Ethernet WAN (PPPoE, PPP, static IP) </li><li> cztery porty Ethernetowe LAN </li><li> access-point do 54mbit (Dynamic Turbo) </li></ul> <p>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: </p> <ul><li> 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 </li><li> regularne rwanie połaczeń WiFi oraz problemy z asocjowaniem się do sieci </li></ul> <p>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> <div class="editsection" style="float: right; margin-left: 5px">
</div><h2>OpenBSD</h2> <p>Na sprzęt wygrzebałem stare AMD-K6. Ma dwa interfejsy ethernetowe: </p> <ul><li> Realtek 8139 (rl0) </li><li> Intel 8255x (fxp0) </li></ul> <p>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: </p> <pre>inet 172.xx.yy.1 255.255.255.192 172.xx.yy.63 <br /> description "HostAP" <br /> mode 11g mediaopt hostap <br /> nwid ESSID nwkey xxxxyyyyzzzzz
</pre> <p>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> <div class="editsection" style="float: right; margin-left: 5px">
</div><h2>Po stronie klienta</h2> <p>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> <div class="editsection" style="float: right; margin-left: 5px">
</div><h2>WEP</h2> <p>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> <div class="editsection" style="float: right; margin-left: 5px">
</div><h2>Bezpieczeństwo LAN</h2> <p>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> <ul><li> IPSec między Windows XP i OpenBSD - ale windowsowa implementacja IPSec jest tak lamerska, że nie nadaje się do niczego </li><li> OpenVPN między Windows XP i OpenBSD - w trakcie rozpracowywania </li></ul> <div class="editsection" style="float: right; margin-left: 5px">
</div><h2>Zobacz także</h2> <ul><li> Opis instalacji IPSec po WLAN na Linuksie </li></ul>