ďťż

Historia wymaga pasterzy, nie rzeĹşnikĂłw.

Obie reguły będą pasowały do datagramów, których nie chcemy przepuścić, a więc musimy być pewni, że reguła deny jest przed regułą accept.
Listowanie naszych reguł
Po wprowadzeniu naszych reguł możemy je wylistować, wywołując ipfwadm w następujący sposób:
# ipfwadm -F -l
To polecenie da w wyniku wszystkie skonfigurowane reguły przekazywania. Rezultat powinien być podobny do tego:
# ipfwadm -F -l
IP firewall forward rules, default policy: accept
type prot source       destination       ports
deny   tcp   anywhere        172.16.10.0/24      www -> any
acc    tcp   172.16.1.0/24   anywhere          any -> www
Polecenie ipfwadm będzie próbowało tłumaczyć numer portu na nazwę usługi za pomocą pliku /etc/services, o ile istnieje w nim wpis.
W domyślnie pokazywanym wyniku brakuje kilku ważnych dla nas szczegółów. Nie widać tam mianowicie działania argumentu -y. Polecenie ipfwadm potrafi pokazać dokładniejszy wynik, jeżeli podamy także opcję -e (wynik rozszerzony). Nie pokażemy całego wyniku, ponieważ jest zbyt szeroki i nie mieści się na stronie, ale zawiera kolumnę opt (opcje), która pokazuje opcję -y kontrolującą pakiety SYN:
# ipfwadm -F -l -e
IP firewall forward rules, default policy: accept
pkts bytes type prot opt  tosa tosx ifname ifaddress  source ...
  0     0 deny tcp  --y- 0xFF 0x00 any    any        anywhere ...
  0     0 acc  tcp  b--- 0xFF 0x00 any    any        172.16.1.0/24 ...
Bardziej skomplikowany przykład
Poprzedni przykład był prosty. Nie wszystkie usługi sieciowe są tak łatwe do skonfigurowania jak WWW. W rzeczywistości typowa konfiguracja firewalla będzie dużo bardziej złożona. Przyjrzyjmy się innemu powszechnie spotykanemu przykładowi, tym razem FTP. Chcemy, aby użytkownicy naszej wewnętrznej sieci mogli logować się do serwerów FTP w Internecie po to, by odczytywać i zapisywać pliki. Nie chcemy jednak, aby ludzie z Internetu logowali się do naszych serwerów FTP.
Wiemy, że FTP używa dwóch portów TCP: portu 20 (ftp-data) i portu 21 (ftp), a więc:
# ipfwadm -a deny -P tcp -S 0/0 20 -D 172.16.1.0/24 -y
# ipfwadm -a accept -P tcp -S 172.16.1.0/24 -D 0/0 20 -b
#
# ipfwadm -a deny -P tcp -S 0/0 21 -D 172.16.1.0/24 -y
# ipfwadm -a accept -P tcp -S 172.16.1.0/24 -D 0/0 21 -b
Dobrze? Nie całkiem. Serwery FTP mogą działać w dwóch różnych trybach: w trybie biernym (ang. passive mode) i czynnym (ang. active mode)*. W trybie biernym serwer FTP oczekuje na połączenie od klienta. W trybie czynnym serwer realizuje połączenie do klienta. Tryb czynny jest zwykle domyślny. Różnice ilustruje rysunek 9-3.
Wiele serwerów FTP działających w trybie czynnym tworzy połączenie z portu 20, co nieco upraszcza sprawę, ale niestety nie wszystkie tak robią**.
Jakie to ma jednak dla nas znaczenie? Przyjrzyjmy się naszej regule dla portu 20, czyli - portu FTP-data. Obecna reguła zakłada, że połączenie będzie inicjowane przez naszego klienta do serwera. Będzie to działało, jeżeli użyjemy trybu biernego. Ale bardzo trudno jest nam skonfigurować poprawną regułę pozwalającą na użycie trybu czynnego, ponieważ nie jesteśmy w stanie z góry przewidzieć, jakie porty będą używane. Jeżeli otworzymy firewall, pozwalając na połączenia przychodzące na dowolny port, narazimy naszą sieć na atak poprzez wszystkie usługi przyjmujące połączenia.
W tej sytuacji najlepiej jest wymusić na naszych użytkownikach pracę w trybie biernym. Większość serwerów FTP i wiele klientów FTP działa w ten sposób. Popularny klient ncftp także obsługuje tryb bierny, ale może wymagać niewielkiej zmiany w konfiguracji, by był to jego tryb domyślny. Wiele przeglądarek WWW, takich jak Netsccape, także obsługuje bierny tryb FTP, a więc znalezienie odpowiedniego oprogramowania nie powinno być zbyt trudne. Można też postąpić zupełnie inaczej: użyć serwera proxy FTP, który będzie przyjmował połączenia z sieci wewnętrznej i realizował połączenia z siecią zewnętrzną.
Rysunek 9-3. Tryby serwera FTP
http://www.rm.com.pl/upgr/lpas/09-03.tif
Przy projektowaniu firewalla prawdopodobnie napotkasz niejeden taki problem. Powinieneś zawsze dokładnie przeanalizować, jak naprawdę działa dana usługa, by być pewnym, że umieściłeś odpowiedni zestaw reguł w odpowiednim miejscu. Konfiguracja prawdziwego firewalla może być dość skomplikowana.
Podsumowanie argumentów ipfwadm
Polecenie ipfwadm ma wiele różnych argumentów odnoszących się do konfiguracji firewalla IP. Ogólna składnia jest następująca:
ipfwadm kategoria polecenie parametry [opcje]
Przyjrzyjmy się kolejno każdemu z członów.
Kategorie
Musi być podana jedna i tylko jedna z poniższych kategorii. Kategoria mówi firewallowi, jakiego typu regułę konfigurujesz:
-I
Reguła wejściowa.
-O
Reguła wyjściowa.
-F
Reguła przekazywania.
Polecenia
Przynajmniej jedno z poniższych poleceń musi być podane i musi się ono odnosić do określonej wcześniej kategorii. Polecenia mówią firewallowi, co ma robić.
-a [polityka]
Dodanie nowej reguły.
-i [polityka]
Wstawienie nowej reguły.
-d [polityka]
Usunięcie istniejącej reguły.
-p polityka
Ustawienie polityki domyślnej.
-l
Wylistowanie wszystkich istniejących reguł.
-f
Usunięcie wszystkich istniejących reguł.
Polityki istotne dla firewalla IP i ich znaczenie jest następujące:
accept
Pozwala na odbiór, przekazywanie lub wysyłanie pasujących datagramów.
deny
Nie pozwala na odbiór, przekazywanie lub wysyłanie pasujących datagramów.
reject
Nie pozwala na odbiór, przekazywanie lub wysyłanie pasujących datagramów i wysyła komunikat błędu ICMP do hosta, który przesłał datagram.
Parametry
Musi być podany przynajmniej jeden z poniższych parametrów. Używaj parametrów do określania datagramów, których dotyczą reguły:
-P protokół
Może mieć wartość TCP, UDP, ICMP lub all. Przykład:
-P tcp
-S adres/maska/[port]

Podstrony