Laboratorium sieci komputerowych Firewall
Transkrypt
Laboratorium sieci komputerowych Firewall
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 noci midzy dzisiejszymi potrzebami rynku, a przewidywaniami które przywiecały projektantom Internetu. W zało eniach Internet miał by sieci ukierunkowan na bezpieczestwo w skali makroskopowej: odporno na uszkodzenie znacznej liczby wzłów przy zachowaniu jak najbardziej rozległej komunikacji. Odporno na uszkodzenia w skali mikroskopowej, czyli pojedynczego wzła była kwesti drugorzdn. Przemawiała za tym tak e sama funkcjonalno sieci – miała ona przesyła informacje, a nie przechowywa je. W miar wzrostu popularnoci elektronicznych form obróbki, przesyłania i gromadzenia informacji na znaczeniu zyskały pojedyncze wzły lub niewielkie podsieci. Za ich ochron odpowiedzialne s firewalle, inaczej mówic ciany ogniowe. Czsto funkcj firewalla pełni dedykowane urzdzenia. Czasami, z ró nych wzgldów, po dane jest zastosowanie w roli firewalla komputera oferujcego całkiem spore mo liwoci zabezpieczania podsieci. Konstruowanie firewalla Na konstrukcj firewalla składaj si trzy nastpujce kolejno procesy: a) projekt funkcjonalny b) implementacja c) testowanie Bez wtpienia 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 o wyró nienie funkcji, jakie bd pełniły poszczególne chronione wzły sieci, jaka topologia bdzie je łczyła i jaki poziom bezpieczestwa bdzie wymagany dla poszczególnych obszarów. Na poziomie projektowania mo na te wzi pod uwag mo liwoci, 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 wyglda skrypt konfiguracyjny firewalla opartego o dostpne w systemie Linux iptables realizowane na NetFilter, inaczej o ipchains, a jeszcze inaczej o ipfilter w systemach BSD. Warto nadmieni, e narzdzi 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 czsto nale y wygenerowa szereg pakietów o odpowiednich cechach np. dotyczcych flag nagłówka IP, czy pofragmentowanych datagramów IP. Konstruowanie firewalla – iptables Polecenie iptables stanowi interfejs, za pomoc którego bezporednio konfiguruje si NetFilter w systemie Linux. Nazwa została zaczerpnita czciowo z poprzednika (ipchains), a czciowo z jakociowej zmiany, jak było umieszczenie wszystkich funkcjonalnoci operacji na pakietach w jednym narzdziu zorganizowanym w tablice (ang. tables) zawieraj ce łacuchy reguł. Kada 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 mona wyobrazi sobie reguł, która wszystkie pakiety wygl daj ce na ruch www (port 80 TCP) bdzie akceptowała. Podstawow reguł filtrowania jest prawo pierwszej pasuj cej reguły – jeeli zawarto pakietu odpowiada klasyfikatorowi, do pakietu aplikowany jest cel (np. odrzu) i przetwarzanie pakietu przez NetFilter koczy si. Jeeli pakiet nie pasuje do adnej z reguł, stosowana jest tzw. domylna polityka łacucha (typowo – akceptuj). Najbardziej popularne cele pakietów, realizuj ce zarazem najprostsze funkcje to: a) akceptuj (ACCEPT) b) odrzu (DROP) c) odrzu i odelij 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) Powysze listy nie wyczerpuj wszystkich operacji, jakie mona wykona z pakietami, chociaby dlatego, e NetFilter pozwala stosowa moduły, które midzy 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 mona je odrónia. Zestaw klasyfikatorów pakietów dostpnych w iptables jest stosunkowo duy. Pozwala to na elastyczno w wyborze pakietów, jakich filtrowanie ma dotyczy. Najprostsze i popularne zarazem s klasyfikatory pozwalaj ce filtrowa pakiety na postawie poniszych 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 naley pakiet (filtrowanie statefull) – poł czenie nowe, nawi zane, powi zane z innym, itp. Klasyfikatory zasadniczo s elementem opcjonalnym reguł, dlatego jeeli s pominite, dotycz wszystkich pakietów. Z małymi wyj tkami, klasyfikatory mona dowolnie składa w bardziej złoone reguły. Przykładowo mona stworzy reguł, która bdzie dotyczyła pakietów o konkretnym adresie nadawcy, odbiorcy, bdzie zawierała dany typ protokołu i numer portu np. docelowego, a oprócz tego bdzie 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. Rysunek 1. Pojedynczy zestaw laboratoryjny. Wymagania (projekt funkcjonalny) przedstawione s poni ej. Router • • • • Klient • • • DMZ • • 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 trafiajcy do routera i wychodzcy z routera powinien by blokowany (polityki by usługa SSH i komunikaty Ping INPUT i OUTPUT). Jedynym wyjtkiem powinna protokołu ICMP. Do tej usługi nale y zrobi przekierowanie portów, aby działajc na porcie 22, na obu interfejsach eth była dostpna pod wskazanym, innym numerem portu. Cały ruch w obrbie interfejsu lo powinien by dozwolony Na wskazanych numerach portów powinien by uruchomiony PAT. Konfiguracja PAT powinna udostpnia zadane usługi uruchomione na firewallu, DMZ i kliencie. Klient powinien móc korzysta ze wszystkich usług protokołów TCP, UDP i ICMP – filtrowanie statefull. Zamiast polityki domylnej DROP łacucha INPUT powinna by okrelona odpowiednia reguła REJECT. Ruch do klienta powinien by mo liwy tylko dla protokołu ICMP, SSH i TerminalServices. Konfiguracja DMZ powinna by podobna do klienta, z t 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 firewall1 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 b) 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. 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