154 Slackware Linux
♦ Blokowanie komunikacji z wybranymi adresami IP. Dzięki filtrowi pakietów możesz całkowicie zablokować ruch sieciowy z wybranymi komputerami lub dopuścić możliwość korzystania z wybranych usług tylko komputerom o konkretnych adresach IP. Pierwsza opcja umożliwia zlikwidowanie możliwości komunikacji z komputerami, które Twoim zdaniem mogłyby być użyte do przeprowadzenia ataku. Druga pozwala prawie całkowicie odciąć dostęp do usług sieciowych dających duże możliwości (na przykład usługa zdalnego dostępu SSH), dopuszczając transmisję tylko z kilkoma zaufanymi komputerami o znanych adresach.
♦ Filtrowanie treści. Chociaż do tego celu zdecydowanie bardziej nadają się serwery pośredniczące, które mogą w znacznie szerszym zakresie reagować na dane przesyłane w ramach połączenia, zapora iptables, rozbudowana
0 odpowiedni moduł dodatkowy, może odrzucać połączenia zawierające dane pasujące do zadeklarowanego wzorca. Tego typu funkcjonalność wykorzystują często administratorzy sieci lokalnych w celu uniemożliwienia korzystania z sieci wymiany plików peer-to-peer.
♦ Przekierowywanie połączeń. Techniki tej można użyć w celu narzucenia przezroczystego pośredniczenia w transmisji sieciowej (ang. transparent proxy), niezależnego od ustawień poczynionych przez użytkownika sieci lub przekierowania nadchodzących połączeń do serwera znajdującego się w sieci lokalnej i posiadającego prywatny adres IP (w tak zwanej strefie zdemilitaryzowanej — ang. De-Militarised Zonę, DMZ).
♦ Monitorowanie połączeń i prowadzenie dzienników zdarzeń. Zapora sieciowa może tworzyć dzienniki przechowujące informacje o wszystkich nawiązywanych połączeniach oraz wszelkich próbach złamania zabezpieczeń. Dzięki temu w razie potrzeby wszystkie niezbędne informacje będą proste do odszukania, a przygotowanie odpowiednich skryptów pozwoli uprościć analizę dzienników
1 szybko wykrywać wszelkie naruszenia zasad określonych przez administratora sieci.
Ograniczając ruch sieciowy generowany przez komputery pracujące w sieci lokalnej, pamiętaj, że o wiele lepiej jest limitować przepustowość dostępną dla użytkowników, niż całkowicie odcinać ich od możliwości korzystania z odpowiadających im usług sieciowych.
Funkcjonowanie zapory iptables oparte jest o tablice reguł filtrowania pakietów, podzielone na łańcuchy. Standardowo pakiet i ptabl es w wersjach 2.4 oraz 2.6 jądra systemu Linux zawiera trzy tablice reguł:
♦ Tablica fi 1 ter jest tablicą domyślną i służy do definiowania reguł filtrowania wszystkich pakietów danych otrzymywanych przez komputer z zewnątrz oraz generowanych przez procesy działające na komputerze-bramce sieciowej. Zawiera trzy predefiniowane łańcuchy przetwarzania pakietów:
♦ INPUT, realizujący filtrowanie pakietów danych przeznaczonych dla serwera (ruch lokalny);
♦ FORWARD, realizujący filtrowanie pakietów przekazywanych (routowanych) do innej podsieci, do której serwer ma dostęp fizyczny (za pomocą drugiego interfejsu sieciowego lub drugiego adresu IP);
♦ OUTPUT, realizujący filtrowanie pakietów danych wygenerowanych przez aplikacje działające na serwerze i przeznaczonych do wysłania za pomocą jednego z interfejsów sieciowych.
♦ Tablica nat obsługuje tylko pakiety danych nawiązujące nowe połączenia TCP
i umożliwia między innymi realizację translacji adresów i numerów portów.
W ramach tablicy nat istniejątrzy standardowe łańcuchy przetwarzania pakietów:
♦ PREROUTING, realizujący przetwarzanie pakietów otrzymanych przez serwer i kierowanych dopiero do modułu przekazywania (routowania) pakietów między interfejsami sieciowymi;
♦ OUTPUT, realizujący przetwarzanie pakietów wygenerowanych przez procesy działające na serwerze, zanim zostaną one jeszcze poddane procesowi przekazywania (routowania);
♦ POSTROUTING, realizujący przetwarzanie pakietów przekazanych już
do właściwego interfejsu sieciowego, na chwilę przed tym, jak zostaną przekazane do wysłania wybranym interfejsem.
♦ Tablica mangle umożliwia dodatkowe przekształcanie wszystkich pakietów
danych. Składa się ona z pięciu łańcuchów:
♦ PREROUTING, realizujący przetwarzanie pakietów otrzymanych przez serwer i kierowanych dopiero do modułu przekazywania (routowania) pakietów między interfejsami sieciowymi;
♦ INPUT, realizujący przetwarzanie pakietów danych przeznaczonych dla serwera (ruch lokalny);
♦ FORWARD, realizujący przetwarzanie pakietów przekazywanych (routowanych) do innej podsieci, do której serwer ma dostęp fizyczny;
♦ OUTPUT, realizujący przetwarzanie pakietów wygenerowanych przez procesy działające na serwerze, zanim zostaną one jeszcze poddane procesowi przekazywania (routowania);
♦ POSTROUTI NG, realizujący przetwarzanie pakietów przekazanych już
do właściwego interfejsu sieciowego, na chwilę przed tym, jak zostaną przekazane do wysłania wybranym interfejsem.
Przetwarzanie pakietów z wykorzystaniem opisanych wyżej tablic i łańcuchów przetwarzania można opisać za pomocą schematu przedstawionego na rysunku 5.11.