Laboratorium sieci komputerowych Firewall Wprowadzenie Firewall jest w dzisiejszej dobie jednym z bardziej popularnych terminów w bran y sieci komputerowych. Popularno t mo na łatwo wytłumaczy. Bierze si ona z rozbie no ci mi dzy dzisiejszymi potrzebami rynku, a przewidywaniami które przy wiecały projektantom Internetu. W zało eniach Internet miał by sieci ukierunkowan na bezpiecze stwo w skali makroskopowej: odporno na uszkodzenie znacznej liczby w złów przy zachowaniu jak najbardziej rozległej komunikacji. Odporno na uszkodzenia w skali mikroskopowej, czyli pojedynczego w zła była kwesti drugorz dn. Przemawiała za tym tak e sama funkcjonalno sieci miała ona przesyła informacje, a nie przechowywa je. W miar s wzrostu popularno ci elektronicznych form obróbki, przesyłania i gromadzenia informacji na znaczeniu zyskały pojedyncze w zły lub niewielkie podsieci. Za ich ochron odpowiedzialne firewalle, inaczej mówi c ciany ogniowe. Cz sto funkcj firewalla pełni dedykowane urz dzenia. Czasami, z ró nych wzgl dów, po dane jest zastosowanie w roli firewalla komputera oferuj cego całkiem spore mo liwo ci zabezpieczania podsieci. Konstruowanie firewalla Na konstrukcj firewalla składaj si trzy nast puj ce kolejno procesy: a) projekt funkcjonalny b) implementacja c) testowanie Bez w tpienia ka dy z tych procesów ma krytyczne znaczenie, dlatego dbało o szczegóły po dana jest w ka dym z tych etapów. Projekt funkcjonalny opiera si b d o wyró nienie funkcji, jakie pełniły poszczególne chronione w zły sieci, jaka topologia b dzie je ł czyła i jaki poziom bezpiecze stwa b dzie wymagany dla poszczególnych obszarów. Na poziomie projektowania mo na te wzi pod uwag mo liwo ci, jakimi dysponuj firewalle, które zostan u yte. Implementacja w przypadku firewalli programowych sprowadza si zwykle do edycji plików konfiguracyjnych. Składnia tych plików zale y od rodzaju filtra pakietów. Inaczej wygl da skrypt konfiguracyjny firewalla opartego o dost pne w systemie Linux iptables realizowane na NetFilter, inaczej o ipchains, a jeszcze inaczej o ipfilter w systemach BSD. Warto nadmieni, e narz dzi do konfiguracji tego samego filtra pakietów mo e by wiele. Przykładem mog by graficzne nakładki na NetFilter dostarczane z wieloma aktualnymi dystrybucjami Linuxa. Testowanie firewalla jest procesem stosunkowo zło onym. Celem jest sprawdzenie reakcji filtra pakietów na specjalnie wygenerowany ruch. Problemem jest przewidzenie maksymalnie wielu mo liwych scenariuszy ruchu, jakie mog spowodowa ewentualne nadu ycia. Technicznie testowanie firewalla tak e nie jest łatwe, poniewa cz sto nale y wygenerowa szereg pakietów o odpowiednich cechach np. dotycz cych flag nagłówka IP, czy pofragmentowanych datagramów IP.
Konstruowanie firewalla iptables Polecenie iptables stanowi interfejs, za pomoc którego bezpo rednio konfiguruje si NetFilter w systemie Linux. Nazwa została zaczerpni ta cz ciowo z poprzednika (ipchains), a cz ciowo z jako ciowej zmiany, jak było umieszczenie wszystkich funkcjonalno ci operacji na pakietach w jednym narz dziu zorganizowanym w tablice (ang. tables) zawieraj ce ła cuchy reguł. Ka da reguła składa si z dwóch elementów: a) klasyfikatora pakietów (jakiego ruchu dotyczy) b) celu (co stanie si z pakietami pasuj cymi do klasyfikatora) Dla przykładu mo na wyobrazi sobie reguł, która wszystkie pakiety wygl daj ce na ruch www (port 80 TCP) b dzie akceptowała. Podstawow reguł filtrowania jest prawo pierwszej pasuj cej reguły je eli zawarto pakietu odpowiada klasyfikatorowi, do pakietu aplikowany jest cel (np. odrzu ) i przetwarzanie pakietu przez NetFilter ko czy si. Je eli pakiet nie pasuje do adnej z reguł, stosowana jest tzw. domy lna polityka ła cucha (typowo akceptuj). Najbardziej popularne cele pakietów, realizuj ce zarazem najprostsze funkcje to: a) akceptuj (ACCEPT) b) odrzu (DROP) c) odrzu i ode lij informacj o bł dzie do nadawcy (REJECT) Równie popularne, troch bardziej skomplikowane w działaniu s cele dotycz ce NAT i PAT: a) wykonaj translacj NAT wiele-do-jednego (MASQUERADE) b) wykonaj translacj PAT (REDIRECT) Powy sze listy nie wyczerpuj wszystkich operacji, jakie mo na wykona z pakietami, chocia by dlatego, e NetFilter pozwala stosowa moduły, które mi dzy innymi mog opisywa nowe cele pakietów. Przykładem stosowania modułów jest moduł ledzenia stanu poł cze pozwalaj cy realizowa filtrowanie statefull. Moduł ten dodaje nowe klasyfikatory pakietów, czyli sposoby w jaki mo na je odró nia. Zestaw klasyfikatorów pakietów dost pnych w iptables jest stosunkowo du y. Pozwala to na elastyczno w wyborze pakietów, jakich filtrowanie ma dotyczy. Najprostsze i popularne zarazem s klasyfikatory pozwalaj ce filtrowa pakiety na postawie poni szych kryteriów a) adres ródłowy (konkretny host lub cała podsie ) b) adres docelowy (konkretny host lub cała podsie ) c) interfejs, przez który pakiet trafił do firewalla d) interfejs, przez który pakiet wychodzi z firewalla e) typ protokołu warstwy transportowej (TCP, UDP, ICMP, itp.) f) numer portu docelowego (lub ródłowego) protokołu warstwy sieciowej (TCP lub UDP) g) stan poł czenia, do którego nale y pakiet (filtrowanie statefull) poł czenie nowe, nawi zane, powi zane z innym, itp. Klasyfikatory zasadniczo s elementem opcjonalnym reguł, dlatego je eli s pomini te, dotycz wszystkich pakietów. Z małymi wyj tkami, klasyfikatory mo na dowolnie składa w bardziej zło one reguły. Przykładowo mo na stworzy reguł, która b dzie dotyczyła pakietów o konkretnym adresie nadawcy, odbiorcy, b dzie zawierała dany typ protokołu i numer portu np. docelowego, a oprócz tego b dzie dotyczyła pakietów wchodz cych przez interfejs eth0.
Ćwiczenie laboratoryjne Na poni szym rysunku zaprezentowano pojedynczy zestaw laboratoryjny. Podczas zaj ka dy z komputerów jest zabezpieczany odpowiednimi regułami firewalla. Zestaw reguł wynika z funkcji, jak pełni dana maszyna. Konfigurowana podsie składa si z czterech komputerów oznaczonych: router, firewall, DMZ i klient. s Rysunek 1. Pojedynczy zestaw laboratoryjny. Wymagania (projekt funkcjonalny) przedstawione poni ej. Router Router powinien realizowa NAT dla całej podsieci 172.xx.0.0/16. Cały ruch do tej i z tej sieci powinien by przepuszczany. Ruch trafiaj cy do routera i wychodz cy z routera powinien by blokowany (polityki INPUT i OUTPUT). Jedynym wyj tkiem powinna by usługa SSH i komunikaty Ping protokołu ICMP. Do tej usługi nale y zrobi przekierowanie portów, aby działaj c na porcie 22, na obu interfejsach eth była dost pna pod wskazanym, innym numerem portu. Cały ruch w obr bie interfejsu lo powinien by dozwolony Na wskazanych numerach portów powinien by uruchomiony PAT. Konfiguracja PAT powinna udost pnia zadane usługi uruchomione na firewallu, DMZ i kliencie. Klient Klient powinien móc korzysta ze wszystkich usług protokołów TCP, UDP i ICMP filtrowanie statefull. Zamiast polityki domy lnej DROP ła cucha INPUT powinna by okre lona odpowiednia reguła REJECT. Ruch do klienta powinien by mo liwy tylko dla protokołu ICMP, SSH i TerminalServices. DMZ Konfiguracja DMZ powinna by t podobna do klienta, z ró nic, e SSH powinno by przekierowywane z innego numeru portu. Dodatkowo na DMZ powinny by otwarte porty dla podanych usług takich jak w3cache, WWW, DNS, SMTP lub ftp.
Firewall Firewall powinien realizować NAT dla całej podsieci klienta. Cały ruch z tej sieci powinien być przepuszczany filtrowanie statefull. Dla interfejsu zewnętrznego ruch trafiający do routera i wychodzący z routera powinien być blokowany. Jedynym wyjątkiem powinna być usługa SSH i komunikaty Ping protokołu ICMP. Do tej usługi należy zrobić przekierowanie portów, aby działając na porcie 22, na obu interfejsach eth była dostępna pod wskazanym, innym numerem portu. Dla interfejsów lo i prowadzącego do klienta cały ruch powinien być dozwolony Dla interfejsu prowadzącego do DMZ powinien być dozwolony tylko ruch na porty otwarte w DMZ Na wskazanych numerach portów na interfejsie zewnętrznym powinien być uruchomiony PAT. Konfiguracja PAT powinna udostępniać zadane usługi uruchomione na DMZ i kliencie. Przebieg ćwiczenia Ćwiczenie składa się z trzech części: a) konfigurowania routingu zgodnie ze schematem podsieci, b) konfigurowania firewalli zgodnie z podanym projektem funkcjonalnym, c) testowania konfiguracji i demonstracji wyników prowadzącemu. Konfiguracja routingu Adresy IP powinny być przydzielone zgodnie z podanymi wskazówkami: a. klient 192.168.[grupa].1/24 (eth0) b. DMZ 172.[16+grupa].1.1/17 (eth0) c. router do ksilaba: 10.1.1.[grupa]/8 (eth0, skonfigurowany przez DHCP) do firewalla: 172.[16+grupa].128.254/17 (eth1) d. firewall do routera: 172.[16+grupa].128.253/17 (eth0) do klienta: 192.168.[grupa].254/24 (eth1) do DMZ: 172.[16+grupa].1.254/17 (eth2) Przekazywanie pakietów jest włączone domyślnie na wszystkich komputerach. Dodatkowo należy dopisać trasę do sieci zawierającej DMZ na routerze, ponieważ DMZ nie jest umieszczony za NAT. Na tym etapie należy także dopisać na odpowiednich komputerach reguły realizujące NAT. Poprawność konfiguracji można sprawdzić następująco: wszystkie komputery powinny mieć wyjście na świat i widzieć siebie nawzajem, z wyjątkiem klienta. Komunikacja do tego komputera nie będzie możliwa z pozostałych, natomiast w drugą stronę tak. Konfiguracja firewalli Wszystkie opcje konfiguracji firewalli powinny być jak najbardziej precyzyjne. Należy posługiwać się parametrami określającymi interfejsy, typy protokołów, adresy docelowe i źródłowe. Każdy komputer powinien być skonfigurowany zgodnie z wcześniej opisanymi funkcjami każdej z maszyn.
Testowanie i prezentacja Poprawność konfiguracji wszystkich firewalli powinna być zademonstrowana prowadzącemu z wykorzystaniem programu ping, nc oraz klientów i serwerów poszczególnych usług. Jeżeli demonstrowane jest zablokowanie określonego typu ruchu należy go wygenerować i zademonstrować, że nie jest przepuszczany najlepiej programami nc w roli klienta i serwera. Pomysł na możliwe testy oraz sposób ich prezentowania także podlega ocenie podczas zajęć. Słowniczek Adres publiczny Grupa adresów IPv4 o standardowym przeznaczeniu. Pokrywa całą przestrzeń adresową od 0.0.0.0 do 255.255.255.255 za wyjątkiem adresów o specjalnym przeznaczeniu wyszczególnionych przez IANA (Internet Assigned Numbers Authority) m. in. w RFC 3330: http://www.rfc-editor.org/rfc/rfc3330.txt Adresami o specjalnym przeznaczeniu są np. adresy prywatne, adresy multicast. Adres publiczny jednoznacznie identyfikuje hosta lub sieć w skali globalnej. Adres prywatny Adres IPv4 przeznaczony do adresowania sieci pracujących w oparciu o TCP/IP bez połączenia z Internetem lub podłączonych za pośrednictwem mechanizmu NAT. Własnością adresów prywatnych jest niejednoznaczność, czyli wiele hostów na świecie może mieć jednocześnie taki sam adres prywatny. Dlatego w celu zapewnienia tak adresowanych hostów Firewall Urządzenie służące podniesieniu bezpieczeństwa i ochronie zasobów sieciowych wydzielonej sieci. Pośredniczy w komunikacji hostów należących do sieci chronionej z Internetem. Sieć chroniona Sieć, która znajduje się za urządzeniem pełniącym funkcję firewalla. NAT Mechanizm NAT (Network Address Translation) polega na zamianie (translacji) adresów pakietów wysyłanych i odbieranych przez hosty z sieci chronionej. Pozwala: a) ukryć adresy hostów sieci chronionej b) zapewnić dostęp do sieci Internet wielu hostom w przypadku niewystarczającej przyznanej puli adresów publicznych (w przypadku skrajnym jeden adres publiczny) Rodzajów translacji NAT jest kilka: a) wiele do jednego; wiele adresów prywatnych jeden publiczny b) wiele do wielu; wiele adresów prywatnych wiele (zwykle mniej) adresów publicznych c) jeden do jednego Komunikacja hosta A znajdującego się w sieci chronionej z hostem B o adresie publicznym w przypadku NAT przebiega w następujący sposób: a) pakiet z hosta A zostaje wysłany przez firewall 1 do hosta B Adres źródłowy jest adresem prywatnym, więc przechodząc przez firewall ulega zmianie na adres publiczny zgodnie z ustalonymi regułami translacji w firewallu. Firewall dodaje 1 lub router obsługujący NAT; używane będzie określenie firewall w znaczeniu urządzenia wykonującego NAT
do tablicy stanu połączeń wpis zawierający adresy hostów A i B oraz informacje na temat używanego protokołu warstwy transportowej OSI (np. numery portów TCP). Zmianie ulega także port, z którego nawiązywane jest połączenie. Pakiet z publicznym adresem hosta A i zmienionym portem trafia do hosta B, który odpowiedź wysyła właśnie na ten adres. b) pakiet z hosta B trafia do firewalla W Firewallu następuje porównanie parametrów odebranego pakietu z zapisanymi w tablicy stanu połączeń. Na tej podstawie adres i port docelowy zamieniany jest na adres i port, z którego inicjował połączenie host A PAT Mechanizm PAT (Port Address Translation) polega na zamianie (translacji) adresów pakietów wysyłanych i odbieranych przez hosty z sieci chronionej. Pozwala przekierować ruch przychodzący na wybrany port do innego hosta na inny zakres portów. Komunikacja hosta B znajdującego się w Internecie z firewallem przekierowującym pakiety z portu F do hosta A na port H w sieci chronionej w przypadku PAT przebiega w następujący sposób: a) host B wysyła pakiet na port F do firewalla Adres i port docelowy zostają zamienione na adres hosta A i port H. Do tablicy stanu połączeń w firewallu zostaje dopisana informacja o wykonanej translacji. Firewall wysyła je dalej, zgodnie z tablicą routingu, do hosta A. b) host A odbiera pakiet adresowany do niego na port H i wysyła odpowiedź hostowi B c) w pakiecie przechodzącym przez firewall, zgodnie z tablicą stanu, zostaje zamieniony adres i port źródłowy na adres firewalla i port F
Układ grup w laboratorium