Jakub LAMPERSKI - Poznańskie Warsztaty Telekomunikacyjne

Transkrypt

Jakub LAMPERSKI - Poznańskie Warsztaty Telekomunikacyjne
2007
Poznańskie Warsztaty Telekomunikacyjne
Poznań 6 - 7 grudnia 2007
POZNAN UNIVERSITY OF TECHNOLOGY ACADEMIC JOURNALS
Jakub LAMPERSKI*
Piotr ZWIERZYKOWSKI*
LINUKSOWY FILTR PAKIETÓW ,,NETFILTER”
W LABORATORIUM SIECI KOMPUTEROWYCH
W artykule przedstawiono propozycję zapory ogniowej stosującej mechanizm
„NETFILTER”. Prezentowana zapora została przystosowana do ćwiczeń laboratoryjnych
z zakresu bezpieczeństwa sieci komputerowych. Artykuł omawia również możliwości
mechanizmu filtrowania pakietów „netfilter” oraz niektóre szczegóły implementacji zapory
ogniowej.
1. WPROWADZENIE
Wraz z postępem cywilizacji rosną możliwości, ale w tym samym czasie
pojawiają się zupełnie nowe, nieznane wcześniej niebezpieczeństwa, a definicja
bezpieczeństwa nieustannie ulega zmianie. Również informatyzacja, która
w zawrotnym tempie zdobywa każdy niemal aspekt codziennego życia niesie ze
sobą niewątpliwe nowe zagrożenia.
Jednym z takich zagrożeń jest atak na stacje robocze sieci komputerowych.
Najczęstszy schemat ataku można przedstawić następująco:
skanowanie sieci w celu wyznaczenia celu ataku,
zdobycie dostępu do komputera ,
przejecie kontroli nad atakowanym systemem operacyjnym (uzyskanie
praw administratora),
ukrycie śladów włamań,
instalacja tylnych drzwi (ang. back door), umożliwiających w przyszłości
dostęp do maszyny bez potrzeby ponawiania ataku.
Ataki na urządzenia działające w sieciach komputerowych można podzielić na:
ataki odmowy usługi (ang. DoS - Denial of Service) powodujące
uniemożliwienie dostępu do zasobów lub usług urządzenia,
man in the middle (popularnie MiM) mające miejsce wtedy, gdy haker
staje na drodze pomiędzy ofiara, a maszynami z którymi ona się łączy,
umożliwią one podsłuchiwanie ważnych, nieszyfrowanych informacji,
nieautoryzowany dostęp do sieci,
*
Politechnika Poznańska, Wydział Elektroniki i Telekomunikacji
PWT 2007 - POZNAŃ 6-7 GRUDNIA 2007
1/8
JAKUB LAMPERSKI, PIOTR ZWIERZYKOWSKI
ataki socjotechniczne, np. podstępne nakłonienie użytkownika sieci do
zdradzenia jego danych uwierzytelniających.
Istnieje wiele skutecznych sposobów, mających na celu uniemożliwienie ataku
lub zniechęcenie potencjalnych hakerów do ataku na naszą sieć. Urządzenia
dbające o bezpieczeństwo w sieciach noszą nazwę zapór ogniowych
(ang. Firewall). Zapory ogniowe można podzielić następująco:
filtry pakietów, czyli mechanizmy, które podejmują decyzje dotyczące
kwalifikacji pakietów na podstawie zdefiniowanych reguł polityki
bezpieczeństwa,
filtry poziomu aplikacji, które zapewniają możliwość analizowania ruchu
pod kątem usług, które go generują,
bramy na poziomie łącza, które analizują protokoły warstwy transportu,
stanowiąc swojego rodzaju pośrednictwo pomiędzy chronionym klientem,
a serwerami,
dynamiczne filtry pakietów, czyli filtry pakietów stanowe (z pamięcią),
w przypadku których tożsamość pakietów wychodzących jest uprzednio
zapamiętywana, dzięki czemu możliwe jest skojarzenie z nimi kolejnych
połączeń,
rozwiązania hybrydowe, to firewalle, w których w celu zwiększenia
wydajności zapory część ruchu kierowana jest na bramy aplikacji,
a pozostała przechodzi (bądź nie przechodzi) przez dynamiczny filtr
pakietów; regułami tego filtra zarządza brama aplikacji,
zapory sieciowe rozproszone, w przypadku których każde urządzenie
sieciowe posiada swój zdalnie i centralnie zarządzany moduł zapory
ogniowej. Urządzeniem odpowiedzialnym za politykę bezpieczeństwa jest
centralny węzeł zarządzania.
Celem artykułu jest omówienie zastosowania mechanizmu „Netfilter”, który jest
przykładem stanowego filtra pakietów, do konstrukcji zapory ogniowej. Artykuł
podzielono na 4 rozdziały. W rozdziale 2. przedstawiono zasady działania
mechanizmu Netfilter. Rozdział 3. prezentuje propozycję wykorzystania zapory
w laboratorium sieci komputerowych, natomiast rozdział 4. zawiera
podsumowanie.
2. FILTR PAKIETÓW
„Netfilter” jest stanowym filtrem pakietów działającym w systemie Linux. Jest
on zazwyczaj używany na komputerach pełniących funkcje routerów. Zapora
opiera się on na trzech podstawowych łańcuchach, dla których zdefiniowane reguły
określają działania, które zostaną podjęte w określonych sytuacjach. Iptables jest
interfejsem programu „Netfilter“. W praktyce administrator korzysta tylko z
iptables.
PWT 2007 - POZNAŃ 6-7 GRUDNIA 2007
2/8
LINUKSOWY FILTR PAKIETÓW ,,NETFILTER” W LABORATORIUM SIECI KOMPUTEROWYCH
Rys.1 Przykładowe zastosowanie filtra pakietów ,,Netfilter”
Aplikacja uruchamia się w wierszu poleceń i przyjmuje parametry. Ogólna postać
jej wywołania może wyglądać następująco:
iptables -t tablica -A łancuch kryteria -j cel
Iptables obsługuje tzw. moduły. Są to sposoby klasyfikowania pakietów, czyli
typy kryteriów, według których pakiety maja być rozpoznawane. Np. rozpoznanie
ruchu ze względu na cechy protokołu TCP możliwe jest dzięki modułowi TCP.
Mnogość dostępnych (standardowych oraz dodatkowych) modułów sprawia, że
możliwości zapory opartej na mechanizmie ,,Netfilter” są ogromne, zazwyczaj
ogranicza je wiedza kreatywność administratora.
W większości typowych sieci komputerowych stworzonych dla zastosowań
segmentu SOHO (ang. Small Office Home Office), ważne jest, aby urządzenia
z wewnątrz tej sieci mogły łączyć się z siecią zewnętrzną, zazwyczaj nie jest
potrzebne nawiązywanie nowych połączeń w drugą stronę. w takiej sytuacji warto
zabronić inicjowania tego typu połączeń na poziomie firewalla. Należy jednak
pamiętać, że nie wolno zakazać wszystkich połączeń z sieci zewnętrznej do sieci
chronionej, gdyż w ten sposób użytkownicy nie otrzymaliby żądanej odpowiedzi
na wysłane zadania, przez co np. korzystanie z zasobów sieci Internet byłoby
niemożliwe. Dzięki możliwościom stanowego filtra pakietów, jakim jest
„Netfilter”, rozróżnienie połączeń nadchodzących na nowe (NEW) i związane
(RELATED), bądź juz nawiązane (ESTABLISHED) jest możliwe:
iptables -A FORWARD -i ath2 -d 192.168.1.0 -m state \
--state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ath2 -d 192.168.1.0 -j DROP
PWT 2007 - POZNAŃ 6-7 GRUDNIA 2007
3/8
JAKUB LAMPERSKI, PIOTR ZWIERZYKOWSKI
gdzie: ath2 jest nazwą interfejsu firewalla od strony sieci zewnętrznej,
a 192.168.1.0 jest adresem chronionej sieci.
W celu zapobieżenia próbie uzyskania nieautoryzowanego dostępu poprzez
podszycie się maszyny hakera pod adres należący do naszej sieci wewnętrznej,
wystarczy wywołać iptables z następującymi parametrami:
iptables -A FORWARD -i ath2 -s 192.168.1.0 -j DROP
Pakiety spełniające kryteria polecenia, to takie, które pochodzą z interfejsu sieci
zewnętrznej, a maja adres pochodzenia sieci wewnętrznej. Próby nawiązania takich
połączeń są odrzucane.
Optymalnym rozwiązaniem mającym na celu odparcie ataków DoS z użyciem
pakietów protokołu ICMP okazuje się ograniczenie ilości dopuszczanych żądań
typu echo request, czyli popularnych „pingów”, np. do wartości 10 pakietów na
sekundę. Można dokonać tego za pomocą iptables w następujący sposób:
iptables -A FORWARD -p icmp --icmp-type echo-request \
-m limit --limit 10/s -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request \
-j DROP
iptables -A INPUT -i ath2 -p icmp --icmp-type \
echo-request -m limit --limit 10/s -j ACCEPT
iptables -A INPUT -i ath2 -p icmp --icmp-type \
echo-request -j DROP
Bardzo przydatną funkcja jest filtrowanie pakietów ze względu na adresy
fizyczne. Umożliwia to wprowadzenie kontroli nad urządzeniami, które mogą
używać połączenia z siecią zewnętrzną (np. Internetem). Interfejs każdego
urządzenia sieci Ethernet posiada swój unikatowy adres MAC. Polecenie
powodujące blokowanie połączeń z urządzenia o określonym adresie MAC
wygląda następująco:
iptables -A FORWARD -m mac --mac-source ADR_MAC -j RETURN
Ciekawym zastosowaniem filtra pakietów jest analiza ruchu wychodzącego
z sieci chronionej. W celu rozróżnienia ruchu generowanego przez użytkowników
sieci pod katem protokołów warstwy aplikacji, posłużymy się modułem programu
netfilter - l7-filter.
Połączenia rozpoznane, jako wygenerowane przez dana aplikacje, możemy
tradycyjnie: dopuścić, zablokować, zliczyć lub zalogować.
Chcąc uniemożliwić np. hostowi 192.168.1.13 korzystanie z protokołu http,
wykonujemy następujące polecenie:
PWT 2007 - POZNAŃ 6-7 GRUDNIA 2007
4/8
LINUKSOWY FILTR PAKIETÓW ,,NETFILTER” W LABORATORIUM SIECI KOMPUTEROWYCH
iptables -t mangle -A FORWARD -m layer7 --l7proto http \
-s 192.168.1.13 -j DROP
Możliwe jest oczywiście również ograniczenie dostępu do usługi WWW dla całej
sieci wewnętrznej:
iptables -A FORWARD -m layer7 --l7proto http -j DROP
3. ZASTOSOWANIE ZAPORY W LABORATORIUM
Przedstawiony stanowy filtr pakietów będzie wykorzystywany w laboratorium
sieci komputerowych do ilustracji zagadnień bezpieczeństwa sieci. Istnieje wiele
potencjalnych scenariuszy wykorzystywania zapory podczas ćwiczeń
laboratoryjnych.
W dalszej części rozdziału skupimy się na przykładowym ćwiczeniu
laboratoryjnym. Załóżmy, że do przeprowadzenia ćwiczenia wystarczy pojedynczy
komputer pełniący rolę użytkownika końcowego oraz komputer na którym został
uruchomiony router linuksowy z zaporą.
Przykładowy przebieg ćwiczenia mógłby wyglądać następująco:
1. Zapoznaj się z następującymi narzędziami: iptables, nmap, ping.
2. Skonfiguruj kartę sieciowa tak, by należała do sieci o adresie 192.168.1.0
o masce podsieci 255.255.255.0 i domyślna brama był należący do tej samej
sieci adres IP firewalla.
3. Odnajdź adres MAC swojej karty sieciowej i skonfiguruj firewall tak, by
dopuszczał Twoje połączenia. Sprawdź, czy połączenia zostają poprawnie
wykonane.
4. Zablokuj usługę http dla adresu IP swojego komputera. Czy możliwe jest
otwieranie stron WWW? Czy możliwe jest „pingowanie” serwerów WWW?
5. Znajdź (lub stwórz wspólnie z innymi studentami) serwer WWW nasłuchujący
na porcie innym od 80 TCP. Czy otwieranie strony z tego serwera powiodło
się? Odpowiedz uzasadnij.
6. Skonfiguruj kartę sieciowa tak, by należała do sieci o adresie 192.168.1.0
o masce podsieci 255.255.255.0 i domyślna bramą był należący do tej samej
sieci adres IP firewalla.
7. Użyj narzędzia nmap. Stosując różne ustawienia bezpieczeństwa sieci
chronionej sprawdź możliwość przeskanowania portów na interfejsie firewalla
o adresie z sieci 192.168.0.0/24. Sprawdź również, czy wracają do Twojego
PWT 2007 - POZNAŃ 6-7 GRUDNIA 2007
5/8
JAKUB LAMPERSKI, PIOTR ZWIERZYKOWSKI
komputera odpowiedzi na zapytania ICMP echo-request z interfejsu firewalla
oraz z dowolnego komputera należącego do sieci 192.168.1.0/24
8. Wyjaśnij istotę i zaproponuj sposób przeprowadzenia ataku z wykorzystaniem
sfałszowanego adresu IP pochodzenia pakietu. Przejdź do zakładki „SHOW
CONFIG” firewalla i wskaz regułę lub reguły odpowiedzialne za odpieranie
takich ataków. Czy zabezpieczenie zauważy każdą próbę sfałszowania adresu
IP pochodzenia pakietu?
9. Zaproponuj wiarygodna metodę sprawdzenia, czy blokada usługi XYZ działa
poprawnie.
Więcej informacji o zaporze i możliwościach jej wykorzystania można znaleźć
w pracy [1].
4. PODSUMOWANIE
Mechanizm ,,netfilter” daje olbrzymie możliwości tworzenia filtrów pakietów.
Nadaje się on znakomicie do implementacji zapory ogniowej chroniącej małe
i średnie sieci domowe lub biurowe. Powszechna dostępność dokumentacji
i rozszerzeń oraz darmowość tak tworzonego firewalla czynią z niego narzędzie
bardzo często stosowane przez administratorów sieci komputerowych.
Celem artykułu było przedstawienie propozycji zapory powstałej w ramach
pracy dyplomowej. Proponowany filtr pakietów będzie wykorzystywany
w laboratorium sieci komputerowych Katedry Sieci Telekomunikacyjnych
i Komputerowych Wydziału Elektroniki i Telekomunikacji Politechniki
Poznańskiej. Filtr wraz z przygotowanym zestawem ćwiczeń laboratoryjnych
umożliwi studentom zapoznanie się z wybranymi zagadnieniami bezpieczeństwa
sieci komputerowych.
Porównanie podstawowych możliwości filtracji uzyskanej zapory ogniowej
z możliwościami innych rozwiązań przedstawia tabela 1. Analizując tabelę można
zauważyć, że proponowany firewall implementuje tylko wybrane możliwości
rozróżniania ruchu sieci IP. Warto zwrócić uwagę na specyficzną cechę filtru jaką
jest funkcja inspekcji protokołów warstw wyższych, dzięki której zrezygnowano
z filtracji ze względu na port docelowy protokołów TCP lub UDP. Wybranie tylko
niektórych możliwości rozróżniania ruchu podyktowane było zamiarem
wykorzystania filtru wraz z ćwiczeniami w laboratorium przeznaczonych dla
wszystkich studentów, a więc w laboratorium nie mającym charakteru
specjalnościowego.
Firewall, którego elementy zaprezentowano, można wzbogacić o szereg
dodatkowych funkcji, jak np.: funkcje QoS, klasyfikując ruch ze względu na
wymagania jakościowe i dzieląc go odpowiednio pomiędzy wieloma łączami
dostępu do Internetu. Inną ciekawą opcją jest możliwość tzw. kształtowania ruchu.
PWT 2007 - POZNAŃ 6-7 GRUDNIA 2007
6/8
LINUKSOWY FILTR PAKIETÓW ,,NETFILTER” W LABORATORIUM SIECI KOMPUTEROWYCH
Umożliwia ona ograniczanie dostępnego pasma dla wybranych komputerów bądź
usług. Możliwe jest również dynamiczne jego przydzielanie np. ze względu na
porę dnia. W wielu przypadkach przydatne okazać się może wyznaczenie strefy
zdemilitaryzowanej, która zapewni ograniczenie, dostępu serwerom publicznym
istniejące w chronionej sieci, do chronionych danych i usług użytku wewnętrznego.
Tabela 1 Porównanie możliwości filtracji różnych firewalli
zapora
Cisco
Trend Micro
zapora oparta Checkpoint
Windows XP Access List
VPN-1
Internet Security
na iptables
źródłowy IP
nie
tak
tak
tak
tak
docelowy IP
tak
tak
nie
tak
tak
źródłowy port
TCP/UDP
częściowo
tak
nie
tak
tak
docelowy port
TCP/UDP
nie
tak
nie
tak
tak
inspekcja protokołów
warstw wyższych
nie
nie
tak
tak
B/d
źródłowy adres MAC
nie
tak
tak
tak
nie
docelowy adres MAC
nie
tak
nie
tak
nie
ruch wychodzący
tak
tak
tak
tak
tak
ruch przychodzący
nie
tak
tak
tak
tak
PWT 2007 - POZNAŃ 6-7 GRUDNIA 2007
7/8
JAKUB LAMPERSKI, PIOTR ZWIERZYKOWSKI
LITERATURA
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
J. Lamperski. Funkcje, możliwości i implementacja linuxowej zapory ogniowej
bazującej na mechanizmie filtracji pakietów „netfilter”, Master’s of Science Thesis,
Poznan University of Technology, 2007.
D.R. Mirza Ahmad, I. Dubrawsky, H. Flynn, J. Grand, R. Graham, N.L. Johnson Jr.,
K2, D. Kaminsky, F.W. Lynch, S.W. Manzuik, R. Permeh, K. Pfeil, R.F. Puppy, R.
Russel. Hack Proofing Your Network Edycja Polska. Wydawnictwo Helion, 2002
W.R. Chestwick, S.M. Bellovin, A.D. Rubin. Firewalle i bezpieczeństwo w sieci.
Vademecum profesjonalisty. Wydawnictwo Helion, 2003.
Jon Erickson. Hacking - sztuka penetracji : poznaj metody działania elity hakerów.
Wydawnictwo Helion, 2004.
Fyodor. Insecure.org - nmap free security scanner, tools & hacking resources.
Website, 1997. http://insecure.org/.
L. Gheorghe. Designing and Implementing Linux Firewalls and QoS using netfilter,
iproute2, NAT, and L7-filter. Packt Publishing, 2006.
IDG. Bezpieczeństwo idg.pl. Website, 2003. http://bezpieczenstwo.idg.pl/.
Ph.D. J. Stanger, P.T. Lane, E. Danielyan. Hack Proofing Your Linux Edycja Polska.
Wydawnictwo Helion, 2003.
Justin Levandoski, Ethan Sommer, Matthew Strait. Application layer packet
classifier for linux. Website, 2007. http://l7-filter.sourceforge.net.
Harald Welte. netfilter/iptables project homepage. Website, 1999. http://netfilter.org.
PWT 2007 - POZNAŃ 6-7 GRUDNIA 2007
8/8

Podobne dokumenty