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

Podobne dokumenty