Router na miękko

Zestaw funkcji: router/firewall/bramka VPN na platformie Linux, OpenBSD lub FreeBSD to - moim zdaniem - bardzo dobry wybór dla większości firm. Z punktu widzenia bezpieczeństwa warto rozważyć dystrybucję Adamantix. Nie jest ona może najłatwiejsza w instalacji, ale w rękach doświadczonego administratora zapewnia wysoki poziom bezpieczeństwa. Podobnie można by sklasyfikować jeszcze dwie inne dystrybucje: Devil Linux i RedWall.

Wykorzystanie darmowego oprogramowania open source ma jeszcze jedną zaletę - można mieć drugi, gotowy do użycia system, nie płacąc za oprogramowanie. Polecam sporządzenie zarówno łatwego do odtworzenia backupu (np. na dyskietkę lub płytę CD-R), jak i dysku twardego zawierającego skonfigurowany system. Linux nie jest bardzo wrażliwy na zmianę płyty głównej, być może będzie wymagał drobnych korekt po starcie, ale uruchomi się praktycznie na dowolnym innym sprzęcie PC.

Należy jedynie pamiętać o tym, by backup był aktualny w sensie konfiguracji i łat.

Wydajność z odzysku

Najczęściej stosowanym dodatkowym oprogramowaniem realizującym zaawansowany routing w systemach open source jest Zebra. Oprogramowanie to obsługuje całą paletę protokołów routingu, zarówno statycznych (RIPv1, RIPv2, RIPng, OSPFv2), jak i dynamicznych (BGP4, BGP4+). Obsługuje także routing IPv6. Dedykowane oprogramowanie to jednak domena większych instalacji. W prostych zastosowaniach, ponieważ adres domyślnej bramy zdalnej jest niezmienny, routing z powodzeniem może obsługiwać jądro systemu operacyjnego. Zwykle razem z funkcjami routingu dostępna jest zapora IP - w formie kompilowanego wraz z jądrem oprogramowania iptables lub ipchains.

W takim przypadku, jeśli tylko zewnętrzny adres IP linuxowego routera jest stały, a połączenie odbywa się poprzez interfejs Ethernet bez wykorzystania PPPoE (a więc z wyłączeniem np. łączy xDSL), można zastosować bardzo użyteczną sztuczkę. Po uruchomieniu przekazywania pakietów i ustawieniu parametrów zapory IP, można zatrzymać system operacyjny, nie wyłączając jednak interfejsów sieciowych ani zasilania systemu (dysk twardy można "uśpić").

Mamy tu następującą sytuację: system bramki jest nominalnie unieruchomiony, tj. nie działają w nim żadne procesy (komunikat: system halted), jednocześnie jednak jądro systemu zawierające funkcje przekazywania pakietów pozostaje w pamięci. Włamanie do takiego komputera jest niemożliwe, co zapewnia bezpieczeństwo z zewnątrz, sieci wewnętrznej "pilnują" zaś dobrze zaprojektowane reguły filtrujące. Pewną niedogodnością jest to, że wszelkie zmiany na bramce do Internetu wymagają dostępu z konsoli i przeładowania systemu, ale wysoki poziom bezpieczeństwa sieci powinien to wynagrodzić.

Godnym polecenia rozwiązaniem jest też PicoBSD - "dyskietkowa" wersja systemu FreeBSD (http://www.freebsd.org/~picobsd ). Wymagania dla małych przepustowości są wprost śmieszne - 386 DX oraz 8 MB RAM. Mając do dyspozycji komputer 486DX2 i 16 MB RAM, PicoBSD pracuje bardzo sprawnie.

Przykładowe realizacje prostego routera przy użyciu dyskietkowych dystrybucji Linuxa można znaleźć w Internecie pod adresami:http://www.zelow.no/floppyfw/ lub teżhttp://lrp.steinkuehler.net/ . Bardziej zaawansowany routing można wykonać za pomocą uruchamianej z płyty CD-R dystrybucji RedWall (http://redwall.sourceforge.net ). Zawiera ona m.in. klon programu Zebra (Quagga) i obsługę klastrowania zgodną z VRRP.

Oprócz routingu, RedWall obsługuje kształtowanie ruchu za pomocą CBQ i HTB. Firewall jest w nich realizowany za pomocą oprogramowania iptables, bramka VPN - OpenS/WAN, VTUN, IPsec, L2TP lub PPTP. Są też detekcja włamań (snort), analiza logów, oprogramowanie typu heartbeat do zapewnienia przełączenia na drugi węzeł klastra w razie awarii, pakiety oprogramowania buforującego treść WWW wraz z filtrowaniem treści, serwer poczty Postfix z filtrami antyspamowymi.

Nie do pogardzenia jest Devil Linux (http://www.devil-linux.org/ ) - dystrybucja uruchamiana z płyty CD-R albo z "breloczka" USB, o ile płyta główna na to pozwala. Nie wypada też zapomnieć o bliższym przyjrzeniu się Coyote Linux (http://www.coyotelinux.com ) - oprócz standardowej dystrybucji dyskietkowej systemu istnieje jeszcze komercyjna aplikacja Wolverine, obejmująca skonfigurowany firewall, serwer VPN oraz inne usługi. RedWall zapewnia lepszą funkcjonalność - Wolverine jest jednak od niego minimalnie wydajniejsza. Powstało wiele podobnych projektów, warto poszukać na stronachhttp://www.sourceforge.net .

Router z lamusa

Usługa routingu to dla większości firm przysłowiowe "być albo nie być", router musi więc być niezawodny. Posiadanie tzw. zimnej rezerwy jest bardzo dobrą praktyką, ponieważ w przypadku poważnej awarii routera czas niedostępności może być bardzo krótki - wystarczy przełączyć wtyczki i uruchomić komputer. Jednak nawet najbardziej stabilne oprogramowanie nie zapewnia spokojnego snu, bowiem działanie oprogramowania zależy w dużej mierze od właściwego doboru sprzętu.

Na potrzeby routera warto wykorzystać komputer starszej generacji, najlepiej taki, który może działać bez wentylatora na procesorze. Chodzi zarówno o eliminację problemów wynikłych na skutek awarii mechanicznej, jak i o wydzielanie ciepła, zwiększające ryzyko niestabilności. Można też pokusić się o wymianę zasilacza na taki, który może pracować bez wentylatorów. Choć zastosowanie w tym celu laptopa jest możliwe, raczej tego nie polecam - komputery przenośne nie są projektowane do pracy ciągłej i są bardziej zawodne niż zwykłe stacje robocze.

Przetestowane przeze mnie rozwiązanie wykorzystuje okrojoną dystrybucję Slackware z nieznacznie zmodyfikowanymi skryptami uruchamiania i zatrzymywania systemu oraz filtrowanie pakietów za pomocą ipchains. Oprogramowanie zostało uruchomione na komputerze klasy Pentium (Compaq Deskpro 2000, 64 MB RAM, 200 MB HDD). Urządzenie nie ma wentylatora na procesorze, a dzięki małemu poborowi prądu również zasilacz można było zastąpić modelem bez "wiatraka".

Aby uzyskać jeszcze wyższą niezawodność, zamiast twardego dysku komputer można wyposażyć w kartę pamięci Flash (by uniknąć wszelkich zmian konfiguracyjnych, można zastosować kartę z przejściówką do złącza IDE) i na niej umieścić mikrodystrybucję Linuxa. W takim przypadku wypadałoby jednak zrezygnować z partycji wymiany (swap), gdyż wielokrotny zapis szybko zużyłby kartę pamięci. Konfiguracja firewalla pozostaje bez zmian.

To wybitnie niskobudżetowe rozwiązanie dowiodło swojej skuteczności w praktyce - zostało przetestowane na łączu 2,5 Mb/s i widać wyraźnie, że zapas wydajności jest wystarczający nawet do kilku megabitów na sekundę. Podobne efekty można uzyskać za pomocą minidystrybucji Linuxa, takich jak LRP, Coyote Linux albo polopyrine bądź PicoBSD. Podczas startu komputera system jest ładowany z dyskietki, potem rezyduje w pamięci komputera. Bardziej rozbudowane zestawy oprogramowania przewidują start z płyty CD i przechowywanie konfiguracji na zabezpieczonej przed zapisem dyskietce (tak działa np. RedWall, Devil Linux oraz Gibraltar Linux/Firewall). W takim przypadku warto mieć pod ręką drugą kopię i zapasowy napęd.

Świadomość potrzeb

Linux lub system z serii Unix zainstalowany na szybkim komputerze z powodzeniem obsłuży routing przy pełnej prędkości 100 Mb/s interfejsów sieciowych (np. między segmentami sieci lokalnej), a nawet karty gigabitowe. Nie może jednak łatwo zapewnić skalowalności klasy operatorskiej ani też gorącej rezerwy łącza. W odróżnieniu od operatorów większość użytkowników łączy nie musi stosować takich rozwiązań. Tam, gdzie kosztowne produkty komercyjne nie znajdują uzasadnienia ekonomicznego, programy open source instalowane na PC są idealnym wyborem.

Do prostego udostępniania połączenia internetowego przy interfejsie Ethernet, a nawet routingu między segmentami sieci LAN wystarczy stara stacja robocza. Przy łączu 256 Kb/s i typowej konfiguracji firewalla OpenBSD (wraz z ALTQ) rolę tę z powodzeniem może pełnić komputer z procesorem Pentium 60 MHz, wyposażony w 32 MB pamięci. Jeśli reguły prostego firewalla są napisane zgodnie ze sztuką, 486/40 MHz z powodzeniem obsługuje łącze 512 Kb/s.

Marcin Marciniak jest administratorem sieci w firmie Cemet SA.


TOP 200