Firewall'e. Cele firewalli



Podobne dokumenty
Router programowy z firewallem oparty o iptables

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

Instalacja i konfiguracja pakietu iptables

iptables -F -t nat iptables -X -t nat iptables -F -t filter iptables -X -t filter echo "1" > /proc/sys/net/ipv4/ip_forward

Zarządzanie bezpieczeństwem w sieciach

Pakiet Iptables. Filtrowanie pakietów i filtrowanie stanowe

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat zapory sieciowej (firewall) oraz oprogramowania iptables.

Zapory sieciowe i techniki filtrowania danych

Wdrażanie i zarządzanie serwerami zabezpieczającymi Koncepcja ochrony sieci komputerowej

Najprostsza odpowiedź, jaka przychodzi mi do głowy to, z powodu bezpieczeństwa.

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat zapory sieciowej.

Sieci Komputerowe Translacja adresów sieciowych

Warsztaty z Sieci komputerowych Lista 9

Zadania do wykonania Firewall skrypt iptables

iptables/netfilter co to takiego?

Tomasz Greszata - Koszalin

Sieci komputerowe. Zajęcia 4 Bezpieczeństwo w sieciach komputerowych

Wykład 3 Filtracja i modyfikacja pakietów za pomocą iptables.

Pakiet Iptables. Filtrowanie pakietów i filtrowanie stanowe

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Bezpieczeństwo w M875

Projektowanie bezpieczeństwa sieci i serwerów

Co to jest iptables?

Warsztaty z Sieci komputerowych Lista 8

Iptables informacje ogólne

7. Konfiguracja zapory (firewall)

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Zapory sieciowe i techniki filtrowania.

Uwaga: NIE korzystaj z portów USB oraz PWR jednocześnie. Może to trwale uszkodzić urządzenie ZyWALL.

Zadanie1: Odszukaj w Wolnej Encyklopedii Wikipedii informacje na temat NAT (ang. Network Address Translation).

Problemy techniczne SQL Server

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

4. Podstawowa konfiguracja

Wprowadzenie 5 Rozdział 1. Lokalna sieć komputerowa 7

Firewall bez adresu IP

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

LABORATORIUM - SINUS Firewall

Windows W celu dostępu do i konfiguracji firewall idź do Panelu sterowania -> System i zabezpieczenia -> Zapora systemu Windows.

Firewalle, maskarady, proxy

Zadanie z lokalnych sieci komputerowych. 1. Cel zajęć

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Opracowany na podstawie

ABA-X3 PXES v Podręczna instrukcja administratora. FUNKCJE SIECIOWE Licencja FDL (bez prawa wprowadzania zmian)

Tworzenie maszyny wirtualnej

Zdalne logowanie do serwerów

Ping. ipconfig. getmac

Sieci komputerowe laboratorium

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Tomasz Greszata - Koszalin

Sieci komputerowe : zbuduj swoją własną sieć - to naprawdę proste! / Witold Wrotek. wyd. 2. Gliwice, cop Spis treści

Narzędzia diagnostyczne protokołów TCP/IP

Konfiguracja zapory Firewall w systemie Debian.

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Linux. iptables, nmap, DMZ

Usługi sieciowe systemu Linux

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Poziomy wymagań Konieczny K Podstawowy- P Rozszerzający- R Dopełniający- D Uczeń: - zna rodzaje sieci - zna topologie sieciowe sieci

Instrukcja dla instalatora systemu SMDP Enterprise/Professional

Ćwiczenie Nr 4 Administracja systemem operacyjnym z rodziny Microsoft Windows

Instrukcja instalacji Control Expert 3.0

DHCP + udostępnienie Internetu

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Instrukcja konfiguracji funkcji skanowania

Struktura adresu IP v4

Wykład 6: Bezpieczeństwo w sieci. A. Kisiel, Bezpieczeństwo w sieci

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Ćwiczenie 5b Sieć komputerowa z wykorzystaniem rutera.

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

Metody zabezpieczania transmisji w sieci Ethernet

Spis treści. 1 Moduł RFID (APA) 3

Ćwiczenie 5a Sieć komputerowa z wykorzystaniem rutera.

Konfigurowanie interfejsu sieciowego może być wykonane na wiele sposobów.

9. Internet. Konfiguracja połączenia z Internetem

Firewalle, maskarady, proxy

Translacja adresów - NAT (Network Address Translation)

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

Instrukcja konfiguracji i uruchamiania połączenia VPN z systemami SAP

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)

Wireshark analizator ruchu sieciowego

Zdalna obsługa transcievera. H A M R A D I O D E L U X E R e m o t e S e r v e r C o n f i g u r a t i o n

Systemy operacyjne i sieci komputerowe Szymon Wilk Adresowanie w sieciach Klasy adresów IP a) klasa A

Test. Administrowanie sieciowymi systemami operacyjnymi

Linksys/Cisco SPA2102, SPA3102 Instrukcja Konfiguracji

ZADANIE.07 Różne (tryb tekstowy i graficzny) 2h

Konfigurowanie interfejsu sieciowego może być wykonane na wiele sposobów.

Problemy techniczne SQL Server. Jak odblokować porty na komputerze-serwerze, aby umożliwić pracę w sieci?

MONITOROWANIE WINDOWS Z NETCRUNCHEM 7 P A G E 1

Przekierowanie portów w routerze - podstawy

INSTRUKCJA INSTALACJI SYSTEMU

Podstawy bezpieczeństwa

Strona1. Suse LINUX. Konfiguracja sieci

Konfiguracja zapory ogniowej w trybie standardowym na module SCALANCE S623

SIECI KOMPUTEROWE Adresowanie IP

Spis treści. Instalacja oprogramowania...j... 8 Instalacja pakietów poprzez rpm...j Listowanie zawartości folderu...j... 14

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Przykładowa konfiguracja konta pocztowego w programie Thunderbird z wykorzystaniem MKS 2k7 (MS Windows Vista Busissnes)

12. Wirtualne sieci prywatne (VPN)

T: Konfiguracja interfejsu sieciowego. Odwzorowanie nazwy na adres.

Przykłady wykorzystania polecenia netsh

Wprowadzenie do zagadnień związanych z firewallingiem

Transkrypt:

Firewall'e Pojęcie firewall pochodzi z przemysłu, zapora chroniąca przed rozprzestrzenianiem się ognia. W przypadku sieci komputerowych zastosowanie jest analogiczne, firewall ma na celu możliwie najdokładniejsze uszczelnienie oraz zabezpieczenie sieci przed ogniem z zewnątrz. Jest to to więc bariera na pograniczu różnych sieci. Cele firewalli Blokowanie dostępu do komputerów oraz usług dla osób które nie powinny mieć do nich dostępu. Przykładowo pod windows 95 udostępniamy drukarkę i nie chcemy by każdy z całego świata mógł na niej drukować a nie możemy założyć haseł ze względu na stosowane rozwiązania. Ochrona systemów przed atakami na dziurawe oprogramowanie sieciowe. Programy pełniące usługi w sieci często posiadają różne błędy lub niedoskonałości. Hakerzy znając te błędy mogą znacznie zaszkodzić firmie jeśli mają zdalny dostęp do tych usług. Ochrona uszkodzonych lub dziurawych systemów operacyjnych. Systemy operacyjne również posiadają błędy, nawet głęboko, w jądrze lub implementacji sieci. Zapobieganie podsłuchiwaniu oraz wyciekom informacji z sieci wewnętrznej. Przykładowo jeśli nasza sieć oparta jest o koncentratory (huby) przesyłane informacje są propagowane w całej sieci aż do routera obcej firmy. Ochrona przed fałszowanie adresów IP. Wydzielenie fragmentów sieci o zróżnicowanym poziomie bezpieczeństwa. Najczęściej wyróżnia się trzy sektory: Internet: sieć zewnętrzna. Zakładamy że prędzej czy później nadejdą z niej wszelkiego rodzaju ataki. Intranet: sieć wewnętrzna. Sieć taka składa się z komputerów pracowników, laptopów, okablowania na terenie budynku i sieci bezprzewodowej. W jej obrębie użytkownicy korzystają z usług serwerów wewnętrznych, wymieniają informacje różnego typu i udostępniają własne dokumenty i usług. Strefa Zdemilitaryzowana (DMZ): sieć otoczona największą ochroną. Sieć taka najczęściej zawiera wyłącznie serwery lub komputery o najwyższym stopniu zaufania i zarazem wymagające szczególnej ochrony.

Czym jest firewall Firewall to przeważnie urządzenie lub komputer z odpowiednim oprogramowaniem. W praktyce przeważnie łączy się funkcje firewalla oraz routera, lub firewalla oraz serwera. Na przedstawionym powyżej diagramie firewalle mogą być osobnymi komputerami lub urządzeniami. Można jednak zmniejszyć koszty infrastruktury tworząc router z trzema kartami sieciowymi i zainstalowanym odpowiednim oprogramowaniem filtrującym. Najważniejsze jest by wyeliminować jakąkolwiek komunikację pomiędzy sieciami która omijała by firewalle. W przypadku małych sieci często spotykanym rozwiązaniem jest również połączenie funkcji serwera, routera oraz ściany ogniowej (poniższy rysunek). Typy firewalli Obecnie spotyka się 3 rodzaje zapór ogniowych. 1. Zapory lokalne (na komputerze klienta) 2. Zapory filtrujące. 3. Zapory Proxy. Zapory lokalne Zapory te instalowane na komputerach pracowników mają na celu ograniczenie dostępu do lokalnych programów, usług oraz zabezpieczenie przed atakami na system operacyjny i jego elementy. Bardzo popularnymi darmowymi rozwiązaniami są obecnie Kerio personal firewall oraz ZoneAlarm. Obydwa rozwiązania pozwalają na skuteczną ochronę komputera klienckiego z systemem windows 9x/2k/xp. Zapory takie posiadają też często dodatkowe funkcje jak filtrowanie połączeń wychodzących oraz pytanie użytkownika czy jest świadom iż dana aplikacja chce nawiązać połączenie sieciowe i czy zgadza się na to. Pozwala to na łatwe wykrycie programów szpiegowskich, niektórych robaków internetowych i koni trojańskich. Pozwala też na lepszą kontrolę jakie aplikacje korzystają z sieci a za razem lepszą ochronę z zewnątrz. Podstawową cechą firewalli lokalnych jest jednak filtrowanie połączeń przychodzących oraz blokowanie części lub wszelkich usług sieciowych. Rozwiązania te nie są tak elastyczne w konfiguracji jak typowe profesjonalne firewalle jednak pozwalają na znaczące podniesienie poziomu

bezpieczeństwa. Zapory Filtrujące Zapory te działają przeważnie na poziomie protokołów IP oraz TCP. Filtrują komunikację pomiędzy stronami firewalla na podstawie wielu atrybutów: adresów IP źródła oraz celu masek podsieci protokołu TCP, UDP, ICMP itd portu połączenia UPD / TCP lub typu komunikatu ICMP typu pakietu (nawiązanie połączenia czy należące do połączenia) Zaawansowane firewalle (np. omawiane w tym dokumencie iptables) pozwalają na śledzenie stanów połączeń by tworzyć bardziej złożone reguły filtrowania. Najlepszym tego przykładem jest filtrowanie wszystkich połączeń przychodzących z internetu a przepuszczanie tylko pakietów które należą do nawiązanego już połączenia. Pozwala to komputerom wewnątrz sieci prywatnej na nawiązywanie połączeń z internetem i obustronną komunikację. Nie pozwala jednak na nawiązywanie połączeń z internetu z komputerami sieci prywatnej. Daje to poziom bezpieczeństwa o rząd wielkości wyższy niż w przypadku zwykłego filtrowania pakietów IP. Nie pozwala bowiem hakerowi z zewnątrz na jakiekolwiek próby ataku komputerów wewnątrz. Serwery proxy Jest to rodzina firewalli o zupełnie innej metodzie działania. Serwer proxy pośredniczy w komunikacji pomiędzy sieciami jednak pośredniczy na poziomie protokołu warstwy najwyższej. Oznacza to iż jeżeli chcemy nawiązać połączenie z serwerem www nasze oprogramowanie TCP/IP nie łączy się z określonym serwerem www. Zamiast tego łączy się z naszym serwerem proxy jak by to on był docelowym serwerem www i mówi mu z kim chce się połączyć. Serwer proxy nawiązuje wtedy odpowiednie połączenie i pośredniczy w transmisji na poziomie protokołu HTTP. Oznacza to iż nie ma żadnego połączenia TCP/IP pomiędzy komputerem klienta a serwerem a cała zawartość komunikacji podlega kontroli serwera proxy. Zaletami takiego rozwiązania są: Możliwość pełnej kontroli kto i kiedy nawiązał połączenie i z jakim serwerem. Filtrowanie zawartości komunikacji lub podnoszenie alarmu gdy przesyłane dane zawiera podejrzane treści. Możliwość lepszej kontroli bezpieczeństwa. Nawet jeżeli serwer www z którym nawiązujemy połączenie posiada wadę bezpieczeństwa lub jest spreparowanym programem hakera serwer proxy może wykryć nieprawidłowość. W idealnym przypadku serwer proxy odbiera dane od klienta jak by był serwerem, przetwarza je pod względem bezpieczeństwa i zgodności z protokołem a następnie nawiązuje połączenie z klientem jak by był klientem. Odbierając dane z serwera postępuje analogicznie. Pozwala na nałożenie dodatkowych ograniczeń na protokół. Wiemy np. że nazwy kont użytkowników naszego serwera ftp są zawsze krótsze niż 15 znaków. Pośredniczenie w transmisji pozwala na obcinanie reszty zbyt długich nazw a zarazem ogranicza możliwość ataków przepełniania bufora. To samo dotyczyć może nagłówków, nazw plików itd. W przypadku serwerów proxy WWW oraz FTP można też buforować przesyłaną zawartość w celu ograniczenia ruchu pomiędzy siecią wewnętrzną a internetem. W takim przypadku reklamy i zdjęcia z serwisów informacyjnych przesyłane będą tylko raz mimo że cała firma zaczyna dzień od przeglądu gazet internetowych.

Wady serwerów proxy Dużo większa złożoność. Wymaganie instalacji oprogramowania na komputerze, brak tanich rozwiązań sprzętowych jak w przypadku zapór filtrujących. Konieczność aktualizacji oprogramowania wraz z rozwojem klientów i serwerów. Problem z połączeniami szyfrowanymi. Trzeba zastanowić się czy godzimy się na to by dane przesyłane między nami a serwerem docelowym były odszyfrowywane gdziekolwiek po drodze i ponownie szyfrowane. Serwer proxy staje się wtedy bardzo ważnym i niebezpiecznym zarazem elementem. Konieczność konfiguracji osobno serwerów proxy dla każdej usługi którą chcemy filtrować. Brak łatwego w konfiguracji oraz dostępnego darmowo oprogramowania do większości protokołów. Darmowe oprogramowanie filtrujące pod linuxem Lunix posiadał kilka zapór ogniowych które z czasem ulepszane doprowadziły do powstania bardzo elastycznego i wygodnego narzędzia iptables. Wcześniej pod linuxem dostępny był firewall ipfwadm. Następną generacją było narzędzie ipchains które pozwalało już na o wiele lepszą konfigurację i uszczelnianie zapór. Dopiero jednak z chwilą postania jąder linuxa z serii 2.4 dostępny stał się mechanizm iptables w wersji stabilnej. Architektura iptables Iptables jest mechanizmem filtrowania pakietów zaszytym w jądrze systemu operacyjnego. Za pomocą polecenia iptables mamy możliwość modyfikowania zasad filtrowania oraz polityk bezpieczeństwa. Każdy pakiet przychodzący z sieci lub do niej wychodzący przechodzi przez drzewo decyzyjne następującej postaci:

Administrator zapory posiada podstawowe narzędzia do organizacji i ustalenia zabezpieczeń. Oto terminy potrzebne do zrozumienia poleceń iptables: Łańcuchy Ideą firewalla filtrującego jest sprawdzenie czy pakiet spełnia jakieś z założonych reguł i podjęcie odpowiedniej decyzji co z nim zrobić. Dla ułatwienia konfiguracji pakiety przechodzą przez łańcuchy Posiadamy trzy podstawowe łańcuchy INPUT, OUTPUT oraz FOREWARD. Jak nazwy wskazują pojawiają się w nich pakiety które przyszły z sieci do komputera lokalnego, wychodzą z procesu lokalnego lub są routowane przez komputer Łańcuchy przetwarzane są od góry do dołu. Jeśli pakiet zostanie dopasowany do jakiejś z reguł może zostać przekierowany do innego łańcucha lub może mu zostać przypisany cel. Reguły łańcuchów Każdy łańcuch może posiadać dowolną liczbę reguł. Reguły pozwalają na dopasowanie pakietu i wykonanie określonej akcji Cele Gdy pakiet zostanie dopasowany do jakiejś reguły zostaje mu określony cel. Dostępne cele to:

ACCEPT Pakiet zostaje zaakceptowany i przechodzi do kolejnej fazy w prezentowanym powyżej diagramie. W uproszczeniu oznacza iż zezwolono na transmisję tego pakietu. DROP RETURN REJECT LOG MIRROR Pakiet zostaje porzucony bez żadnej informacji zwrotnej. Firewall zachowuje się jak by go nigdy nie było. Jest to bardzo dobre domyślne zachowanie ;-). Pakiet zostaje przekazany do łańcucha z którego przybył i jest dalej przetwarzany. Stosuje się tego wyłącznie gdy definiujemy własne łańcuchy Pakiet zostaje odrzucony jednak zostaje wysłany komunikat zwrotny że połączenie zostało odrzucone. Jest to bardziej eleganckie zachowanie jednak nie koniecznie pożądane. Jeżeli zainstalowany jest moduł logowania możemy nakazać zalogowanie iż pakiet spełnił określoną regułę. Może pozwalać to na wykrywanie prób włamań lub problemów z siecią. Nie jest to jednak cel ostateczny. Po jego wykonaniu pakiet jest dalej przetwarzany. Powoduje wysłanie całego pakietu do hosta od którego został odebrany. SNAT Cel definiowany wyłącznie w POSTROUTING i powoduje zmianę adresu źródłowego. MASQUERADE Podobnie do SNAT. Różnica polega iż adres źródła jest ustalany na adres IP karty którą będzie wysłany bez względu na przydzielony dynamicznie lub zmieniający się adres IP. DNAT Pozwala na zmianę adresu docelowego w tablicy nat. Polityki Dla ułatwienia i zwiększenia bezpieczeństwa możemy określić politykę łańcucha. Czyli domyślne zachowanie się w stosunku do pakietów które nie spełniły żadnej z reguł z tego łańcucha. Przeważnie polityką łańcucha INPUT jest DROP a OUTPUT ACCETP. Maskowanie adresów (NAT network address translation i MASQUERADE) Z powodu rosnących potrzeb sieci lokalnych oraz ograniczonych ilości adresów IP wymyślono mechanizm maskowania adresów IP. Najbardziej popularnym jest maskarada. Polega ona na ukryciu całej sieci pod jednym adresem IP. Firewall realizujący maskaradę widząc próbę połączenia z sieci wewnętrznej do internetu podmienia adres IP źródła oraz numer portu TCP lub UDP źródła i wysyła pakiet jak gdyby był wysłany przez niego. Zapamiętuje skojarzenie port < - > prawdziwy adres IP oraz port. Odbierając pakiet z internetu sprawdza pod jaki adres powinien wysłać pakiet, podmienia adres oraz port docelowy i wysyła w kierunku sieci lokalnej. Pozwala to na podłączenie w sieci lokalnej dowolnej liczby komputerów. Jeszcze większą zaletą takiego rozwiązania jest automatyczne ukrycie całej sieci wewnętrznej przed atakami i dostępem z

zewnątrz. Zapora maskując adresy przesyła pakiety z internetu jedynie gdy należą do połączenia nawiązanego z sieci lokalnej. Poniższy diagram pokazuje tez mechanizm w bardziej obrazowy sposób. Polecenie iptables Znając już ideę filtrowania przyjrzyjmy się składni polecenia oraz jak budować zasady firewalla. Składnia polecenia jest następująca: iptables polecenie reguła rozszerzenie akcja Dostępne polecenia iptables -n -L [łańcuch] Wyświetlenie informacji o aktualnej konfiguracji firewalla lub jednym łańcuchu jeśli zostanie podany. Parametr -n powoduje wyświetlenie adresów IP bez rozwiązywania na nazwy DNS. iptables -A łańcuch... Dodanie reguły na końcu łańcucha iptables -I łańcuch... Dodanie reguły na początku łańcucha iptables -D łańcuch numer Kasuje jedna z reguł o podanym numerze iptables -F łańcuch Kasuje wszystkie reguły z łańcucha iptables -N łańcuch Tworzy nowy łańcuch o podanej nazwie iptables -X Usunięcie wszystkich łańcuchów użytkownika iptables -X łańcuch Usunięcie łańcucha użytkownika o podanej nazwie iptables -P cel

Ustawienie polityki dla łańcucha. Powinien to być jeden z dostępnych celów. Dostępne reguły dopasowywania -p protokół dostępne tcp, udp, icmp, all -s adres[/maska] Adres źródła pakietu (nadawcy) -d adres[/maska] Adres docelowy (pod jaki wysłano pakiet) -i interfejs Nazwa interfejsu który odebrał pakiet (tylko w PREROUTING, INPUT oraz FOREWARD) -o interfejs Nazwa interfejsu którym pakiet będzie wysłany (tylko FOREWARD, OUTPUT oraz POSTROUTING) Rozszerzenia --dport port[:port] Określenie jakie porty docelowe pasują do wzorca od:do --sport port[:port] Określenie jakie porty źródłowe pasują do wzorca od:do --icmp-type numer Określenie typu komunikatu icmp np. echo-request --mac-source mac Określenie adresu sprzętowego z jakim przyszedł pakiet --syn Dopasowuje pakiety nawiązujące połączenie TCP. --state stan Określenie w jakim stanie połączenia. INVALID - nie określono stanu NEW - pakiet nie związany z żadnym połączeniem ESTABLISHED - pakiet należy do zestawionego połączenia RELATED - pakiet nie należy do połączenia ale jest z nim związany np icmp Na podstawie stanu można zrealizować zaporę przepuszczającą do sieci wewnętrznej wyłącznie pakiety ESTABLISHED i RELATED natomiast w stronę internetu wszystkich. --ttl-eq wartość --ttl-lt wartość --ttl-gt wartość Dopasowanie pakietu jeśli wartość pola TTL jest równa/mniejsza/większa od podanej --ttl-set wartość --ttl-inc wartość Ustawia/zwiększa wartość pola TTL. Przydatne w walce z ISP. Akcje -g łancuch przeskoczenie do łańcucha o podanej nazwie -j cel przeskoczenie do celu o podanej nazwie

Ponadto warunkom można przeczyć poprzez dodanie znaku wykrzyknika między parametr a wartość np. Adresy które nie należą do sieci 10.0.0.0/24 -d! 10.0.0.0/24 Aby skorzystać z dodatkowych opcji dostępnych w rozszerzeniach konieczne może być uaktywnienie rozszerzenia poprzez podanie parametru -m nazwa_rozszerzenia Przykłady Więcej szczegółów w dokumentacji systemowej (man iptables). Wyczyszczenie ustawień iptables -X iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD Akceptowanie wszystkich pakietów z adresu pętli zwrotnej które przybyły z tego urządzenia iptables -A INPUT -s 127.0.0.1 -i lo -j ACCEPT Blokowanie wszystkich pakietów TCP które nie są związane z żadnym połączeniem a nie są też nawiązaniem nowego połączenia. iptables -A INPUT -p tcp! --syn -m state --state NEW -j DROP Zablokowanie portu by nie można było łączyć się z nim poprzez TCP iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 110 -j DROP Ustawienie polityki dla łańcucha FORWARD na DROP przez co nasz komputer nie będzie routował czego popadnie a jedynie to co zezwolimy w regułach. iptables -P FORWARD DROP Włączenie maskarady. Regułki kolejno mówią iż routing pakietów pochodzących z karty sieciowej podłączonej do sieci wewnętrznej jest zawsze włączony. Warto dodać tu tylko zasady jakich protokołów lub portów nie przekazywać (np protokoły windows). Następnie jeśli pakiet nie przyszedł z sieci prywatnej to przepuszczamy go tylko jeśli dotyczy już istniejącego połączenia. Ostatecznie maskujemy adresy ip nadawcy naszym adresem publicznym. iptables -A FORWARD -i eth0 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 212.191.111.222 Narzędzia diagnozowania zapory ogniowej Program nmap pozwala na bardzo zaawansowane testowanie zabezpieczeń, ustawień oraz szczegułów konfiguracji.

Dla ciekawskich polecam dokumentację (man nmap) do naszych zajęć potrzebować będziemy jedynie kilku opcji tego polecenia. Wykonanie prostego aktywnego skanowania TCP oraz pokaz wyników. nmap -st 10.0.0.23 Wykonanie prostego aktywnego skanowania UDP oraz pokaz wyników. nmap -su 10.0.0.23 Wykrycie które komputery w sieci odpowiadają na ping oraz wyświetlenie podstawowych informacji nmap -sp 10.0.0.0/24 Skanowanie zakresu portów nmap -st 10.0.0.23 -p 0-3000 Rozpoznawanie systemu operacyjnego nmap -O 10.0.0.23 Skanowanie z pokazaniem duzej ilosci informacji nmap -O -su -st -v 192.168.192.34 -p 0-5000 Zadanie wykonaj skanowanie sieci lokalnej przeskanuj dokładnie kilka komputerów, domyślną bramę oraz kilka komputerów z sieci przyjrzyj się jak identyfikowane są komputery (jaki system operacyjny jest rozpoznawany) przeskanuj 212.191.65.6 i przeanalizuj wynik przeskanuj komputer kolegi i przeanalizuj wynik przeskanuj komputer z uruchomionym systemem Windows (adres IP podam na zajęciach) Ponadto przydatne są jak zawsze polecenia ping, telnet, ftp, ssh, wget itd. pozwalające sprawdzić czy dana usługa faktycznie jest dostępna. Uwagi końcowe Konfigurując firewall wraz z maskowaniem lub routingiem należy pamiętać o włączeniu w jądrze forwardowania pakietów. Aby tego dokonać możemy ustawić 1 w pliku specjalnym jądra wykonując następujące polecenie systemowe: echo 1 > /proc/sys/net/ipv4/ip_forward Aby firewall oraz routing działał musimy też pamiętać by karty sieciowe oraz ustawienia domyślnej bramy były poprawne. Należy zwrócić uwagę jakie adresy IP mamy ustawione na kartach sieciowych (łatwo pomylić się podczas tworzenia skryptu i zablokować całą komunikację) Skrypty firewall powinny używać zmiennych, np. Adres IP sieci wewnętrznej i zewnętrznej powinien być pobierany z polecenia ifconfig a nie wpisywany na sztywno. Również maski i inne ustawienia warto sparametryzować na wypadek zmian w konfiguracji lub przyznania innego adresu IP z DHCP.

Firewall powinien wycinać kompletnie wszystko co nie jest konieczne. Powinny być blokowane zarówno protokoły tcp jak i udp oraz icmp. Należy blokować komunikację protokołami Windows które są dość dziurawe. Zasadą jest również blokowanie przekazywania rozgłoszeń broadcast oraz multicast. Jeśli użytkownik jest w stanie, warto skonfigurować dodatkowe moduły oraz regułki blokujące np. Skanowanie portów lub proste próby zablokowania usług. Można pokusić się o regułki narzucające adres MAC domyślnej bramy itd. Zadania Treść poleceń proszę zapisywać w skrypcie powłoki. Proszę nadać mu uprawnienia do wykonywania i uruchamiać cały skrypt tak by nie tracić wcześniejszych poleceń. Tworzenie pliku (dowolny edytor nie koniecznie vi... można używać np. mc): vi zapora.sh Nadanie uprawnień, aby nadać uprawnienia wykonaj polecenie: chmod a+x zapora.sh Zawartość pliku, plik powinien zaczynać się od linii określającej typ skryptu, w kolejnych wierszach umieszczamy polecenia konfigurujące firewall: #/bin/bash /sbin/iptables -X... UWAGA!! Zauważmy iż nie wpisujemy w skrypcie samego polecenia iptables a pełną ścieżkę do niego. Pozwoli to na bezpieczne używanie skryptu podczas startu systemu lub okresowego uruchamiania. Automatyczne wykrywanie ścieżki polecenia mogłoby zatrzymać skrypt w niektórych okolicznościach lub wymagałoby dodatkowej konfiguracji. Uruchom następujące skrypty startowe usług systemowych. Pozwoli to na ciekawszą zabawę bo będziemy mogli sprawdzać czy poszczególne usługi są dostępne czy nie. /etc/ini.d/apache start /etc/ini.d/bind9 start /etc/ini.d/samba start /etc/ini.d/ssh start /etc/ini.d/squid start Utwórz skrypt konfigurujący zaporę ogniową zgodnie z poniższymi zaleceniami: Ustaw polityki 1. INPUT -> DROP 2. FORWARD -> DROP 3. OUTPUT -> ACCEPT Wyczyść łańcuchy wbudowane (przez to ze ustawiliśmy polityki na drop w czasie wykonywania

skryptu system nadal jest zabezpieczony ponieważ odrzuca jakąkolwiek komunikację. Skasuj łańcuchy użytkownika Dodaj regułę akceptującą wszelkie pakiety pochodzące z pętli zwrotnej z adresem IP 127.0.0.1 Dodaj regułę blokującą pakiety adresowane do całej podsieci (rozgłoszenia). Dodaj regułę blokującą pakiety które posiadają adres IP z podsieci przyłączonej do karty sieciowej a przyszły z innej karty sieciowej. Mając jedną nie ma to wielkiego zastosowania jednak warto dodać taką regułę dla uwagi. Zastosuj znak!, nazwę interfejsu oraz adresu źródła (adres sieci). Regułki takie mają na celu utrudnieni podszywania. Wykonaj polecenie iptables -p icmp -h aby uzyskać listę nazw komunikatów ICMP. Dodaj regułki zezwalające na komunikaty ping, pong oraz nieosiągalność celu i przekroczenie czasu życia. Pozostałe komunikaty ICMP powinny być blokowane. Dodaj reguły mówiące że pakiety których stan jest RELATED lub ESTABLISHED powinny być od razu akceptowane. Zarówno dla TCP jak i UDP. Dodaj regułę zezwalającą połączenia z usługą www z komputera o adresie 212.191.65.6. Aby poznać numery portów poszczególnych usług wykonaj polecenie cat /etc/services grep nazwa_usługi Dodaj regułę zezwalającą na połączenia z usługą telnet dla całej podsieci lokalnej (typu 10.0.1.0) Dodaj regułę zezwalającą na połączenia z usługą ssh z całej podsieci 212.191.65.0 / 255.255.255.0 Dodaj regułę pozwalającą na połączenia z portami z zakresu 3200-3500 (tylko dla wprawy) Dodaj regułę zezwalającą na połączenia z usługą DNS (nameserver) za pomocą TCP oraz UDP z dowolnych adresów IP. Dodaj regułę zezwalającą na połączenia z https z adresu IP serwera iret. Adres uzyskaj pingując serwer. Dodaj regułę blokującą wszelkie pakiety wychodzące skierowane do 3 usług netbios (port docelowy) oraz wychodzące z tych usług (port źródłowy). Zablokuj wychodzące komunikaty skierowane do usługi route lub z niej wychodzące. Sprawdź z kont na serwerach iret oraz kolos czy połączenia są możliwe z twoim komputerem. Sprawdź z komputera kolegi skanując własny komputer jakie usługi są dostępne z tego adresu IP. Sprawdź czy działa polecenie ping do twojego komputera Sprawdź czy polecenie ping przestaje działać do twojego komputera bo zakomentowaniu regułek ICMP i przeładowaniu skryptu. Dodaj regułkę blokującą całkowicie komunikację z sieci 10.0.0.0/16. Aby regułka blokowała wszystko umieść ją nad regułkami zezwalającymi na cokolwiek. Sprawdź czy działa polecenie ping od sąsiada oraz czy możesz nawiązać połączenie z internetem. Sprawdź adres IP swojej domyślnej bramy poleceniem route. Jakie z tego wnioski? Odblokuj dostęp do usługi www komputera sąsiada na podstawie jego adresu sprzętowego MAC Analogicznie zablokuj komunikaty ICMP dla tej karty sieciowej. Zablokuj komunikację wychodzącą na usługę www komputera kolos. Sprawdź czy możesz otworzyć stronę tego serwera oraz czy możesz otworzyć inne strony. Skrypty startowe Aby firewall był konfigurowany w chwili startu systemu należy dodać go w odpowiednie miejsce w systemie. W systemie linux istnieją tak zwane runlevele. Przejście pomiędzy nimi powoduje uruchomienie lub zablokowanie pewnych usług. Każdy z runleveli posiada swoje przeznaczenie i wyznacza konfigurację środowiska:

katalog level przeznaczenie /etc/rc0.d Run level 0 Zatrzymanie systemu /etc/rc1.d Run level 1 Praca w trybie single mode. Można logować się tylko lokalnie. Nie działa większość usług. /etc/rc2.d Run level 2 Normalny tryb pracy wieloużytkownikowej. (domyślny) /etc/rc3.d Run level 3 Jak wyżej, dla swobody jest ich więcej /etc/rc4.d Run level 4 Jak wyżej, dla swobody jest ich więcej /etc/rc5.d Run level 5 Jak wyżej, dla swobody jest ich więcej /etc/rc6.d Run level 6 Reboot systemu W powyższych katalogach przechowywane są skrypty startujące oraz zatrzymujące poszczególne usługi. Skrypty nazywane są odpowiednio: S00nazwa oraz K00nazwa Skrypty zaczynające się od litery K powodują zatrzymanie usługi (wykonywane są z parametrem stop), natomiast skrypty z nazwą rozpoczynającą się od litery S uruchamiają usługę. Skrypty startowe uruchamiane są z parametrem stop. Zera w nazwie zastępowane są liczbą dwucyfrową. Podczas wchodzenia do konkretnego runlevelu system najpierw wykonuje skrypty zatrzymujące runlevelu (w kolejności zgodnej z liczbą w nazwie) a następnie skrypty startowe. Aby nie posiadać w każdym katalogu kopii tego samego pliku, w katalogach rcx.d przechowywane są jedynie linki symboliczne do skryptów znajdujących się w /etc/init.d. Skrypty są bardzo wygodne, aby zatrzymać serwer www wpisujemy po prostu /etc/init.d/apache stop Zadanie Upewnij się czy w /etc/rc1.d istnieją linki symboliczne zatrzymujące następujące usługi: apache, bind9, samba, ssh, squid Jeżeli nie ma dodaj odpowiednie linki symboliczne. Dodaj linki symboliczne zatrzymujące, oraz uruchamiające te usługi w /etc/rc2.d Wykonaj polecenie pstree aby zobaczyć które z programów są uruchomione (nazwy mogą być inne niż skryptów samba -> nmbd oraz smbd, bind9 -> nameserver itd.). Dodaj skrypt konfigurujący firewall do /etc/init.d i nazwij go firewall_start.sh Utwórz skrypt czyszczący ustawienia firewalla (tylko czyszczenie wbudowanych łańcuchów oraz kasowanie łańcuchów użytkownika). Dodaj skrypt do /etc/init.d. nazwij skrypt firewall_stop.sh Nie umiemy używać zmiennych w skryptach dlatego tworzymy dwa osobne skrypty. Teraz dodaj linki symboliczne dla firewall_start.sh w /etc/rc2.d oraz firewall_stop.sh w /etc/rc1.d Wykonaj polecenie telinit 1 aby przełączyć runlevel na 1. W trybie single dostępnych jest bardzo mało usług oraz nie ma dostępu z sieci. Wykonaj pstree aby sprawdzić jakie programy są uruchomione, sprawdź też ifconfig, iptables -L -n oraz route. Sieć powinna być zablokowana, brak procesów oraz firewalla. Wykonaj telinit 2 aby powrócić do 2 poziomu uruchomienia. Wykonaj ifconfig, route, iptables -L -n oraz pstree aby zobaczyć czy wszystko się powiodło. Powinno wszystko działać włącznie ze skonfigurowanym firewallem.

Zadanie to powinno ułatwić zrozumienie jak działają skrypty startowe i jak nimi zarządzać. W przypadku normalnego linuxa zainstalowanego na dysku twardym pozostawienie takiej konfiguracji pozwoliłoby na automatyczne ustawianie firewalla oraz uruchamianie procesów podczas startu systemu. Dobre skonfigurowanie procedur startowych jest kluczowe w przypadku serwerów. Serwer po restarcie, braku zasilania czy awarii powinien wstać samoczynnie do pełnej funkcjonalności. Zawsze sprawdź czy po restarcie wszystko działa jak należy (niemal zawsze popełnia się jakieś błędy)