Firewall do komputerów biurkowych z systemem Linux

Linux, system operacyjny w najlepszym stylu uniksowym, od początku budowany jako system sieciowy dla wielu użytkowników, imponuje wieloma wbudowanymi mechanizmami bezpieczeństwa.

Linux, system operacyjny w najlepszym stylu uniksowym, od początku budowany jako system sieciowy dla wielu użytkowników, imponuje wieloma wbudowanymi mechanizmami bezpieczeństwa.

Jednak nawet w najlepiej administrowanym systemie pozostają luki, które może wykorzystać potencjalny napastnik. Chodzi o porty tych usług, które komputer ma oferować na zewnątrz, zgodnie z wolą jego użytkownika. Również i w tym zakresie Linux oferuje od jądra 1.1 środki zaradcze w postaci firewalla.

W dalszej części tekstu zajmiemy się konfiguracją firewalla opartego na iptables, wprowadzonego w wersji jądra 2.3

Iptables

Architektura iptables została znacznie uproszczona w stosunku do swojej poprzedniczki, architektury ipchains. Jądro prowadzi trzy listy reguł filtrowania, o nazwach INPUT, OUTPUT i FORWARD. Nazywane są również łańcuchami (chains), ponieważ każda z nich składa się z kolejnej listy sekwencyjnie przetwarzanych reguł.

Liniowa architektura. Iptables zadowala się jedynie trzema listami reguł filtrowania.

Liniowa architektura. Iptables zadowala się jedynie trzema listami reguł filtrowania.

Każda z reguł określa na podstawie nagłówka pakietu, co ma się stać z samym pakietem. Jeżeli nagłówek nie spełnia kryteriów reguły, pakiet jest przesyłany do następnej reguły w łańcuchu. Jeśli pakiet przejdzie przez cały łańcuch, nie spełniając kryteriów żadnej reguły, a więc jest niemożliwy do zidentyfikowania, zostaje z reguły porzucony (DROP lub REJECT).

Gdy na karcie sieciowej pojawia się pakiet danych, jądro najpierw odczytuje jego adres docelowy, podejmując tym samym decyzję o jego dalszej drodze (routingu). Jeżeli pakiet jest przeznaczony do lokalnego komputera, jądro kieruje go do łańcucha INPUT. Jeżeli jest inaczej, o dalszych losach pakietu decyduje konfiguracja członu FORWARD. Gdy forwarding jest aktywny, dalsze przetwarzanie pakietu przejmuje człon FORWARD. W przeciwnym razie pakiet jest porzucany.

Również pakiety wysyłane przez procesy działające na komputerze lokalnym muszą przejść przez listę OUTPUT. Jeżeli pakiet nie zostanie odfiltrowany przez tę listę, może opuścić komputer przez odpowiedni interfejs.

Wdrożenie

Banalne. Podstawowe opcje programu Firewall Builder.

Banalne. Podstawowe opcje programu Firewall Builder.

Każda reguła w łańcuchu filtrów składa się z dwóch komponentów. Pierwszy sprawdza, czy reguła w ogóle ma zastosowanie do danego pakietu (match). Jeżeli wynik jest pozytywny, drugi komponent decyduje, co ma się stać z pakietem. Możliwa jest elastyczna konfiguracja obu komponentów za pomocą modułów jądra - to jedna z najważniejszych nowości iptables.

W przypadku Red Hat odpowiednie Shared Libraries znajdują się w katalogu /lib/iptables; jest ich ogółem 30. Niektóre z nich zawierają przydatne algorytmy decyzyjne dotyczące stosowania reguł do pakietów, inne podejmują specjalne działania w stosunku do pakietów objętych regułą.

Każdy moduł trzeba najpierw załadować, a następnie dostosować za pomocą opcji wiersza poleceń do każdorazowego zastosowania. Skrypty tworzące typową konfigurację firewalla mają zatem całkiem pokaźną objętość.

Z ręczną edycją wielostronicowych plików tekstowych z pewnością nie każdy sobie poradzi. Poza bardzo prawdopodobne jest popełnienie błędu. Szczególnie łatwo mogą się zniechęcić początkujący użytkownicy Linuksa i użytkownicy komputerów biurkowych, rezygnując tym samym ze stosowania firewalla.

Firewall Builder

Przelotowa. Wewnętrzna pętla zwrotna (internal loopback) musiakceptować wszystkie pakiety.

Przelotowa. Wewnętrzna pętla zwrotna (internal loopback) musiakceptować wszystkie pakiety.

W rzeczywistości nawet początkujący i zwolennicy myszy, a nie wiersza poleceń nie muszą rezygnować z bezpieczeństwa, jakie zapewnia firewall. W obszernych zasobach Sourceforge.net ( http://sourceforge.net/ ) można znaleźć narzędzie, za pomocą którego prawie każdy bez trudu skonfiguruje iptables - modularny Firewall Builder ( http://sourceforge. net/projects/fwbuilder/ ) składa się z wygodnego interfejsu graficznego i kompilatora reguł do firewalli iptables i ipchains.

Mimo stosunkowo niskiego numeru wersji (1.0.10) Firewall Builder nie wykazał w naszych testach redakcyjnych żadnych poważniejszych słabości. Autorzy oferują narzędzie w wersji binarnej do Mandrake, Red Hat i SuSE, a także jako kod źródłowy.

W dalszym ciągu będziemy się posługiwać wariantem Red Hat programu konfiguracyjnego oraz filtru pakietów iptables. Oba elementy zainstalujemy na komputerze z Red Hat Linux. Wszystkie porady i wnioski można jednak przez analogię zastosować do innych dystrybucji Linuksa.

Założenia wyjściowe

Decydujący element. Tu należy podać ścieżkę dostępu do właściwego kompilatora reguł.

Decydujący element. Tu należy podać ścieżkę dostępu do właściwego kompilatora reguł.

Naszym zadaniem jest zabezpieczenie firewallem typowego klienta sieciowego. Komputer powinien zarówno udostępniać zasoby Windows, jak i korzystać z nich. Ponadto nie zamierzamy ograniczać dostępu do Internetu - użytkownik ma przeglądać strony internetowe, korzystać z poczty internetowej i zasobów FTP, a także przeglądać wiadomości z Usenetu.

Obowiązkowe są też proste zadania z zakresu zarządzania. Chroniony komputer musi być dostępny dla komputerów nadrzędnych przez ICMP oraz SNMP; także użytkownik powinien móc korzystać z podstawowych narzędzi diagnostycznych, jak ping i traceroute.

Złota reguła bezpieczeństwa komputerowego to They can't crack what they can't find. Chcemy trzymać się tej zasady i sprawić, żeby komputer był niewidoczny dla wszystkich poza z góry określonymi partnerami komunikacji.

Konfiguracja podstawowa

Kto jest kim. Hosty, z którymi ma być prowadzona komunikacja,należy pogrupować według ich funkcji.

Kto jest kim. Hosty, z którymi ma być prowadzona komunikacja,należy pogrupować według ich funkcji.

Zanim po raz pierwszy uruchomisz narzędzie Firewall Builder, załóż w katalogu /etc przyszły katalog roboczy aplikacji - /etc/fwbuilder. Znajdą się tam pliki konfiguracyjne i utworzone reguły firewalla.

Teraz uruchom Firewall Builder. Przede wszystkim należy ustalić niektóre podstawowe parametry pracy samej aplikacji. W tym celu przejdź do menu Edit | Options. W oknie, które się pojawi, wpisz na pierwszej karcie ścieżkę dostępu do katalogu roboczego - /etc/fwbuilder. Ustawienia na karcie parametrów sieci możesz pozostawić bez zmian - timeout co dziesięć sekund i kolejna próba ponowienia.

Na trzeciej karcie powinieneś aktywować w polu Behavior automatyczne zapisywanie wszystkich ustawień w przypadku zmiany obiektów. Opcje wyświetlania ikon i obiektów możesz zmieniać stosownie do swoich upodobań, jednak ustawienia domyślne całkiem dobrze sprawdzają się w dalszej pracy.

Firewall - obiekty

Na własną rękę. Definicja własnych usług nie przedstawia problemu.

Na własną rękę. Definicja własnych usług nie przedstawia problemu.

Przed chwilą padło już jedno z kluczowych dla Firewall Buildera słów - obiekty. Dalsza konfiguracja programu polega na definiowaniu różnych obiektów.

Zaliczają się do nich, obok sieci i hostów (objects), również protokoły (protocols) i porty (services), a także okresy (time). Najważniejszym z obiektów biorących udział w grze jest sam obiekt firewall, czyli lokalny komputer, który ma być chroniony za pomocą zestawu reguł. Dlatego w pierwszej kolejności należy utworzyć odpowiedni obiekt za pomocą polecenia menu Insert | Firewall.

Utworzenie obiektu firewall wymaga określenia parametrów na pięciu kartach. Na karcie General należy podać unikatową nazwę obiektu oraz jego adres sieciowy. Obsługiwane oprogramowanie firewalla to iptables, pozostałe ustawienia zostawiamy z ich wartościami domyślnymi.


Zobacz również