[ Pobierz całość w formacie PDF ]
miałem okazji używać i nie wydawały mi się wyjątkowo interesujące. Dobre
opisy funkcjonalności filtra można znalezć w dokumentacji, opisanej poniżej.
5.11 Dokumentacja
" http://netfilter.samba.org/
Główna strona projektu netfilter/iptables, wraz z kodem zródłowym
oraz podręcznikami.
" http://www.boingworld.com/workshops/linux/iptables-tutorial/ Linux
IPtables tutorial
" iptables(8)
Strona manuala systemowego poświęcona programowi iptables.
6 BSD
Omawiany tutaj filtr ipfilter (ipf) jest obecny we wszystkich systemach z
rodziny BSD (FreeBSD, NetBSD i OpenBSD. W dwóch ostatnich stanowi
jedyny systemowy filtr pakietów, instalowany domyślnie. Ipf jest także do-
stępny dla innych systemów, np. dla Solarisa. Moim zdaniem jest to jeden z
najlepszych i najelastyczniejszych filtrów pakietowych.
Niestety w maju 2001 pomiędzy autorem, którym jest Darren Reed z Austra-
lii, a twórcami OpenBSD doszło do konfliktu na tle licencji filtra i od kolejnych
wersji tego systemu nie będzie on dostępny natywnie. W przypadku FreeBSD
i NetBSD nic się jednak nie zmieniło, a w dwa miesiące pózniej po tym jak
OpenBSD usunęło filtr ze swojego systemu Darren ponownie zmienił licencję,
tym razem na liberalną i usuwającą wszystkie wcześniejsze ograniczenia.
Zasadniczą cechą, która wyróżnia ipf od innych filtrów pakietowych jest ko-
lejność przetwarzania reguł. W większości filtrów są one przeglądane kolejno,
od góry do dołu listy i pierwsza, która pasuje jest wykonywana, kończąc tym
7 OD AUTORA 20
samym przetwarzanie listy. W przypadku ipf wygląda to nieco inaczej za-
wsze przeglądana jest cała lista reguł i ostatnia z nich, która pasowała do
aktualnego pakietu jest wykonywana.
Poniżej opisany przykład ma za zadanie uwypuklenie różnic pomiędzy ipf, a
wcześniej opisywanym iptables. Podstawy teoretyczne działania obu filtrów są
jednak zbliżone, dlatego zwolenników ipf również namawiam do przeczytania
teoretycznych fragmentów rozdziałów poświęconych Linuksowi.
6.1 Najprostszy przykład
Interfejsy sieciowe w BSD biorą nazwy od konkretnych modeli kart poniż-
sze przykłady wykorzystują interfejs fxp0, czyli w rzeczywistości kartę Intel
EtherExpress/100.
### FXP0 Internet
block in log on fxp0 from any to any
# Zwracamy RST w odpowiedzi na zadania IDENT
block return-rst in quick on fxp0 proto tcp from any \
to any port = 113 flags S/S
# Wypuszcamy wszystkie polaczenia wychodzace z "keep state"
pass out quick on fxp0 proto tcp from any to any keep state
pass out quick on fxp0 proto udp from any to any keep state
pass out quick on fxp0 proto icmp from any to any keep state
Widać tutaj zasadniczą różnicę w działaniu filtra ipf, jaką jest brak wyraz-
nego rozróżnienia pomiędzy poszczególnymi kierunkami ruchu, tak jak to
było w przypadku iptables. W powyższym przykładzie blokujemy cały ruch
przychodzący, poza pakietami należącymi do połączeń zainicjowanych z
tego hosta. Są one wpuszczane przez filtr stateful inspection, włączony flagą
keep state.
Przykłady dla ipf będą rozbudowywane w miarę uzupełniania tego artykułu.
7 Od autora
7.1 Uwagi końcowe
Konfiguracje przedstawione w przykładach nie są kompletne. Mam nadzieję,
że pomogły Ci one zrozumieć działanie filtrów stateful inspection i będą
punktem wyjścia do tworzenia skutecznych zapór. Najskuteczniejszą w tym
wypadku strategią jest tworzenie konfiguracji maksymalnie restrykcyjnej i
uważne obserwowanie logów systemowych. Każdy zablokowany pakiet należy
7 OD AUTORA 21
przeanalizować i jeśli okaże się że był on wysyłany legalnie rozszerzyć
filter o regułę przepuszającą ten rodzaj ruchu.
Zdaję sobie sprawę, że mogłem popełnić w tym artykule błędy, rzeczowe i
inne, w takim wypadku będę wdzięczny za ich wskazanie. Komentarze oraz
uzupełnienia są również mile widziane, znajdą się one w kolejnych wersjach
tego dokumentu.
7.2 Zmiany
" Wersja 0.6 poprawione wiele literówek, informacje o nowym FOR-
WARD (podziękowania dla Wesa Bawora)
" Wersja 0.5 poprawki odnośnie ipf, przykładowy skrypt shivling , in-
formacje o unclean, sysctl
" Wersja 0.4 poprawki (podziękowania dla Cezarego Jackiewicza) oraz
inne ciekawe
" Wersja 0.3 rozdział o RELATED i FTP, zmiana adresu strony netfilter
i nowe adresy, opis konfiguracji oprogramowania
" Wersja 0.2 opis modułu unclean
" Wersja 0.1 pierwsza wersja tego artykułu
Nowe wersje tego dokumentu dostępne są pod adresem
http://ipsec.pl/
Paweł Krawczyk ABA sp. z o.o.
kravietz@aba.krakow.pl ul. Bociana 6
31-231 Kraków [ Pobierz całość w formacie PDF ]
zanotowane.pl doc.pisz.pl pdf.pisz.pl karpacz24.htw.pl
miałem okazji używać i nie wydawały mi się wyjątkowo interesujące. Dobre
opisy funkcjonalności filtra można znalezć w dokumentacji, opisanej poniżej.
5.11 Dokumentacja
" http://netfilter.samba.org/
Główna strona projektu netfilter/iptables, wraz z kodem zródłowym
oraz podręcznikami.
" http://www.boingworld.com/workshops/linux/iptables-tutorial/ Linux
IPtables tutorial
" iptables(8)
Strona manuala systemowego poświęcona programowi iptables.
6 BSD
Omawiany tutaj filtr ipfilter (ipf) jest obecny we wszystkich systemach z
rodziny BSD (FreeBSD, NetBSD i OpenBSD. W dwóch ostatnich stanowi
jedyny systemowy filtr pakietów, instalowany domyślnie. Ipf jest także do-
stępny dla innych systemów, np. dla Solarisa. Moim zdaniem jest to jeden z
najlepszych i najelastyczniejszych filtrów pakietowych.
Niestety w maju 2001 pomiędzy autorem, którym jest Darren Reed z Austra-
lii, a twórcami OpenBSD doszło do konfliktu na tle licencji filtra i od kolejnych
wersji tego systemu nie będzie on dostępny natywnie. W przypadku FreeBSD
i NetBSD nic się jednak nie zmieniło, a w dwa miesiące pózniej po tym jak
OpenBSD usunęło filtr ze swojego systemu Darren ponownie zmienił licencję,
tym razem na liberalną i usuwającą wszystkie wcześniejsze ograniczenia.
Zasadniczą cechą, która wyróżnia ipf od innych filtrów pakietowych jest ko-
lejność przetwarzania reguł. W większości filtrów są one przeglądane kolejno,
od góry do dołu listy i pierwsza, która pasuje jest wykonywana, kończąc tym
7 OD AUTORA 20
samym przetwarzanie listy. W przypadku ipf wygląda to nieco inaczej za-
wsze przeglądana jest cała lista reguł i ostatnia z nich, która pasowała do
aktualnego pakietu jest wykonywana.
Poniżej opisany przykład ma za zadanie uwypuklenie różnic pomiędzy ipf, a
wcześniej opisywanym iptables. Podstawy teoretyczne działania obu filtrów są
jednak zbliżone, dlatego zwolenników ipf również namawiam do przeczytania
teoretycznych fragmentów rozdziałów poświęconych Linuksowi.
6.1 Najprostszy przykład
Interfejsy sieciowe w BSD biorą nazwy od konkretnych modeli kart poniż-
sze przykłady wykorzystują interfejs fxp0, czyli w rzeczywistości kartę Intel
EtherExpress/100.
### FXP0 Internet
block in log on fxp0 from any to any
# Zwracamy RST w odpowiedzi na zadania IDENT
block return-rst in quick on fxp0 proto tcp from any \
to any port = 113 flags S/S
# Wypuszcamy wszystkie polaczenia wychodzace z "keep state"
pass out quick on fxp0 proto tcp from any to any keep state
pass out quick on fxp0 proto udp from any to any keep state
pass out quick on fxp0 proto icmp from any to any keep state
Widać tutaj zasadniczą różnicę w działaniu filtra ipf, jaką jest brak wyraz-
nego rozróżnienia pomiędzy poszczególnymi kierunkami ruchu, tak jak to
było w przypadku iptables. W powyższym przykładzie blokujemy cały ruch
przychodzący, poza pakietami należącymi do połączeń zainicjowanych z
tego hosta. Są one wpuszczane przez filtr stateful inspection, włączony flagą
keep state.
Przykłady dla ipf będą rozbudowywane w miarę uzupełniania tego artykułu.
7 Od autora
7.1 Uwagi końcowe
Konfiguracje przedstawione w przykładach nie są kompletne. Mam nadzieję,
że pomogły Ci one zrozumieć działanie filtrów stateful inspection i będą
punktem wyjścia do tworzenia skutecznych zapór. Najskuteczniejszą w tym
wypadku strategią jest tworzenie konfiguracji maksymalnie restrykcyjnej i
uważne obserwowanie logów systemowych. Każdy zablokowany pakiet należy
7 OD AUTORA 21
przeanalizować i jeśli okaże się że był on wysyłany legalnie rozszerzyć
filter o regułę przepuszającą ten rodzaj ruchu.
Zdaję sobie sprawę, że mogłem popełnić w tym artykule błędy, rzeczowe i
inne, w takim wypadku będę wdzięczny za ich wskazanie. Komentarze oraz
uzupełnienia są również mile widziane, znajdą się one w kolejnych wersjach
tego dokumentu.
7.2 Zmiany
" Wersja 0.6 poprawione wiele literówek, informacje o nowym FOR-
WARD (podziękowania dla Wesa Bawora)
" Wersja 0.5 poprawki odnośnie ipf, przykładowy skrypt shivling , in-
formacje o unclean, sysctl
" Wersja 0.4 poprawki (podziękowania dla Cezarego Jackiewicza) oraz
inne ciekawe
" Wersja 0.3 rozdział o RELATED i FTP, zmiana adresu strony netfilter
i nowe adresy, opis konfiguracji oprogramowania
" Wersja 0.2 opis modułu unclean
" Wersja 0.1 pierwsza wersja tego artykułu
Nowe wersje tego dokumentu dostępne są pod adresem
http://ipsec.pl/
Paweł Krawczyk ABA sp. z o.o.
kravietz@aba.krakow.pl ul. Bociana 6
31-231 Kraków [ Pobierz całość w formacie PDF ]