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