Nastny Poprzedni Spis Trei

3. To co to jest Filtr Pakietów?

Filtr pakietów to takie oprogramowanie, które sprawdza nagłówki (ang. header) pakietów w trakcie jak przechodzą przez maszynê na której działa i decyduje o ich losie. Może zdecydowaæ, że pakiet zostanie odrzucony (ang. DROP, tzn. tak jakby pakiet nigdy nie dotarł), zaakceptowany (ang. ACCEPT, tzn. pozwoli mu przejśæ), lub coś bardziej skomplikowanego.

W Linuksie, filtrowanie pakietów jest wbudowane w kernel (jako moduł lub po prostu wbudowane) i jest parê jeszcze sprytniejszych rzeczy które możesz zrobiæ, ale generalnie idea polega na sprawdzaniu nagłówków i decydowaniu o losie pakietów.

3.1 Dlaczego mógłbym chcieæ filtrowaæ pakiety?

Kontrola. Bezpieczeñstwo. Czujnośæ.

Kontrola:

kiedy używasz Linuksa by połaczyæ twoją wewnêtrzną sieæ z inną siecią (powiedzmy z Internetem) masz okazjê wpuściæ trochê różnych typów ruchu i odrzuciæ inne. Na przykład, nagłówek pakietu posiada adres docelowy pakietu, wiêc możesz odrzucaæ pakiety które podróżują do określonych czêści sieci zewnêtrznej. Innym przykładem może byæ to: używam Netscape do oglądania archiwów Dilbert'a. Jest tam masa reklam pochodzących z adresu doubleclick.net, wiêc Netscape traci czas by je ładowaæ. Pouczenie filtra pakietów by nie wpuszczał pakietów podróżujących do i z tego adresu rozwiązuje ten problem (jednakże jest parê innych sposobów by zrobiæ to lepiej, sprawdź Junkbuster).

Bezpieczeñstwo:

kiedy Twój linuks jest jedynym komputerem pomiêdzy chaosem Internetu i twoją ładną, uporządkowaną siecią, miło jest wiedzieæ że możesz obłożyæ restrykcjami to co nadchodzi do twych drzwi. Na przykład, możesz pozwoliæ by wszystko wychodziło z twojej sieci, ale możesz byæ zaniepokojony znanym atakiem 'Ping of Death' nadchodzącym od różnych złośliwych użytkowników sieci. Innym przykładem może byæ twoje życzenie, by nie zezwalaæ na telnet'owanie siê na Twój komputer, mimo że wszystkie konta mają hasła; prawdopodobnie chcesz byæ (jak wiêkszośæ ludzi) raczej obserwatorem w Internecie a nie serwerem - po prostu nie dawaæ siê nikomu do Ciebie dołączaæ, poprzez filtrowanie nadchodzących pakietów służących do ustanawiania połączeñ.

Czujnośæ:

czasami źle skonfigurowana maszyna w sieci lokalnej zadecyduje o skierowaniu paru pakietów do sieci zewnêtrznej. Miło jest móc poinstruowaæ filtr pakietów by dał Ci znaæ o takich anormalnych zachowaniach; może bêdziesz chciał coś z tym zrobiæ, albo jesteś po prostu ciekawy z natury.

3.2 Jak filtrowaæ pakiety pod Linuksem?

Kernele Linuksa miały wbudowane filtrowanie pakietów od serii 1.1. Pierwsza generacja, bazująca na ipfw z BSD, została przeniesiona przez Alana Cox'a pod koniec 1994. Została ona rozbudowana przez Jos'a Vos'a i innych dla Linuksa wersji 2.0; narzêdzie działające w przestrzeni użytkownika 'ipfwadm' kontrolowało reguły filtrujące. W połowie 1998, dla Linuksa 2.2, zmieniłem dosyæ mocno kernel, z pomocą Michael'a Neuling'a, i wprowadziłem narzêdzie również działające w przestrzeni użytkownika nazwane 'ipchains'. Ostatecznie, w połowie 1999 dla Linuksa 2.4 stworzono kolejne narzêdzie 'iptables'. Jest to właśnie to iptables na którym skoncentrowane jest to HOWTO.

Potrzebujesz kernel z infrastrukturą netfilter: netfilter to ogólny szkielet w kernelu Linuksa do którego mogą dołączaæ siê inne moduły (takie jak moduł iptables). Oznacza to że potrzebujesz kernel w wersji 2.3.15 lub późniejszej, i w czasie konfiguracji kernela musisz zaznaczyæ 'Y' przy opcji 'CONFIG_NETFILTER'.

Narzêdzie iptables wstawia i kasuje reguły z tabeli filtrowania pakietów kernela. Oznacza to, że cokolwiek do niej wstawisz, zostanie stracone po restarcie; zajrzyj do sekcji w której opisujemy zapisywanie reguł po informacje jak upewniæ siê że po kolejnym starcie linuks odtworzy je.

iptables zastêpuje ipfwadm i ipchains: zajrzyj do sekcji opisującej używanie ipfwadm i ipchains po informacje jak bezboleśnie uniknąæ przesiadania siê na iptables jeśli używasz jednego z tych narzêdzi.

Zapisywanie reguł na stałe

Twoje aktualne ustawienia ściany ogniowej zapisane są w kernelu i w związku z tym znikną po restarcie. Możesz wypróbowaæ skrypty iptables-save i iptables-restore by odpowiednio zapisaæ je do i odtworzyæ z pliku.

Innym sposobem może byæ umieszczenie komend wymaganych by ustawiæ twoje reguły w skrypcie wykonywanym w czasie startu. Upewnij siê, że zrobi on coś inteligentnego w wypadku gdyby coś poszło nie tak (zwykle wywołanie 'exec /sbin/sulogin').


Nastny Poprzedni Spis Trei