Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Implementacja Firewalli

PANSTWOWA WYŻSZA SZKOŁA ZAWODOWA W KROŚNIE INSTYTUT POLITECHNICZNY KIRUNEK: SIECIOWE SYSTEMY INFOTMARYCZNE Imię i nazwisko autora : Maciej Michalski Nr albumu: 11753 Tytuł pracy : Implementacja Firewall’i w oparciu o elementy aktywne sieci LAN/WAN. Praca inżynierska wykonana pod opieką : dr. inż Mariusza Święcickiego. Ocena: …………………………….. Krosno 2011 1 Spis treści Wstęp……………………………………………………………………………………5 Cel pracy ……………………………………………………………………………….7 Zakres pracy……………………………………………………………………………8 Rozdział I Wprowadzenie do Firewalli 1.1 Wprowadzenie do Firewalli........................................................................................9 1.1.1 Co to jest Firewall?...…………………………………………………………....9 1.1.2 Jak działają Firewalle…………………………………………………………..10 1.1.3 Zagrożenia w sieci……………………………………………………………...14 1.1.4 Polityki bezpieczeństwa………………………………………………………..16 1.2 Podstawy Firewalli…………………………………………………………………17 1.2.1 Klasyfikacja firewalli…………………………………………………………..17 1.2.2 Technologie Firewalli………………………………………………………….19 1.2.3 Open source oraz komercyjne Firewalle………………………………………25 Rozdział II Technologie firewalli 2.1 TCP/IP dla Firewalli………………………………………………………………..26 2.1.1 Protokoły, Usługi i Aplikacje…………………………………………………..26 2.1.2 Internet Protocol (IP)…………………………………………………………...31 2.1.3 Transmission Control Protocol (TCP)………………………………………….33 2.1.4 User Datagram Protocol (UDP)………………………………………………...35 2.1.5 Internet Control Message Protocol (ICMP)…………………………………….37 2.1.6 Network Address Translation (NAT)…………………………………………..39 2.1.7 Broadcast ……………………………………………………………………...42 2.1.8 IP Routing………………………………………………………………………43 2.2 W jakiej sieci można zastosować firewalle (architektury)…………………………51 2.2.1 Architektury pojedynczego firewall’a………………………………………….51 2.2.2 Architektura podwójnego firewall’a……………………………………………54 2.2.3 System firewall (single/dual)………………………………………………...…55 2.2.4 Pozostałe architektury…………………………………………………………..58 2 2.2.5 Listy ACL oraz VLAN-y……………………………………………………….64 2.2.6 Wysoka dostępność w projektowaniu firewalli………………………………...76 Rozdział III Jak działają Firewalle 3.1 Router’y szeroko pasmowe i Firewalle…………………………………………….78 3.1.1 Jak działają Routery szerokopasmowe…………………………………………78 3.1.2 Linksys Routers/Firewall……………………………………………………….80 3.1.3 Konfiguracja routera Linksys…………………………………………………..83 3.2 Cisco PIX Firewall oraz ASA Firewall………………………………………......92 3.2.1 PIX / ASA Cechy firewalli……………………………………………………..92 3.2.2 Zasady działania firewalli PIX/ASA…………………………………………...94 3.2.3 Konfiguracja firewalli Cisco PIX/ASA……………………………………….100 3.3 Linux Firewall…………………………………………………………………….112 3.3.1 NetFilter cechy, żądania oraz zasada działania………………………………112 3.3.1 Konifiguracja NetFilter……………………………………………………….115 3.4 Aplikacja Proxy Firewall………………………………………………………….120 3.4.1 Funkcjonalność Serwera Proxy……………………………………………….120 3.4.2 Ograniczenia Serwera Proxy………………………………………………….122 3.4.2 Microsoft ISA Server 2004 Firewall………………………………………….122 Rozdział IV Kofiguracja zapory sieciowej bazującej na systemie operacyjnym GNU/Linux 4.1 Firewall bazujący na systemie GNU/Linux……………………..………………...136 4.1.1 Budowa systemu pełniącego rolę firewalla ………….………………………136 4.1.2 Iptables ………………………………..……………………………………...139 4.1.3 Firewall Firestarter ………………..……………………………………..…...141 Rozdział V Testy zbudowanej zapory sieciowej. 5.1 Testy i analiza zabezpieczonej sieci………………………………………………146 5.1.1 Prawidłowość filtrowanych danych……………………..……………………146 5.1.2 Hping2………………………………………………………………………...148 3 5.1.3 Nmap…………………………………………………………………………151 Rozdział VI Podsumowanie ………………………………………..………………152 Rozdział VII Bibliografia…………………………………………………………...153 Streszczenie…………………………………………………………………………..154 Aneks…………………………………………………………………………………155 4 Wstęp Firewalle należą obecnie do nowych osiągnięć technologii internetowej, innowacyjne osiągnięcia tej technologi to przedewszystkim tłumaczenie adresów sieciowych NAT, oraz wielowarstwowe filtrowanie pakietów. Historia pierwszych systemów bezpieczeństwa zaczyna się w latach-80, kiedy dwaj główni producenci komputerów IBM oraz COMPAQ zaczęli wprowadzać pewne mechanizmy ochronne do swoich sieci. Wraz ze wzrostem zagrożeń w sieci początkowe rozwiązania zaczęto przekształcać w bardziej kompleksowe systemy bezpieczeństwa, które miały chronić siećprzed intruzami z zewnątrz. W przeszłości sprawy bezpieczeństwa były rozwiązywane za pomocą prostego filtrowania pakietów, oraz zestawu modemów dialback. Niestety dzisiaj to rozwiązanie jest już przestarzałe i nieskuteczne, aby w przyszłości móc skutecznie chronić swoją sieć będzie zachodzić potrzeba przeglądania oraz sprawdzania każdego bitu komunikatu internetowego, szyfrowanego potwierdzania tożsamości witryny WWW przed połączeniem się, oraz szyfrowania prawie wszystkiego co przepływa w sieci. Obecnie problem bezpieczeństwa sieci rozwiązywany jest przy pomocy ścian ogniowych (firewalli) oraz wirtualnych przywatnych tuneli. Ponadto istnieją tzw. narzędzia dodatkowe takie jak detektory intruzów, wszelkiego rodzaju skanery mechanizmów zabezpieczających są to jednak jedynie narzędzia, które pełnią raczej rolę ostrzegania przed potencjalnym atakiem intruza. Zatem firewalle będą stanowić podstawę dla zabezpieczeń w Internecie tak długo dopóki ich funkcjonalnośc nie zostanie wbudowana w każdy protokół wykorzystywany w Internecie, oraz dopóki każdy komputer przyłączony do sieci Internetowej nie będzie zawierałw sobie odpowiednika firewalla, co nie zmieni faktu że firewalle staną się na zawsze stałym uzupełnieniem sieci korporacyjnych. Firewalle są ważnym elementem sieci, których zadaniem jest ochrona prze potencjalnymi zagrożeniami płynącymi z sieci. Systemy kontroli w standardowych programach, które można znaleźć na rynku nie dadzą dostatecznej ochrony przed intruzami z sieci. W dzisiejszym świecie rosnące uzależnienie od Internetu w pracy oraz w środowisku domowym zwiększa podatność systemów na różnorodne ataki oraz zagrożenia płynące z sieci. Wszelkie technologie firewalli są w dalszym ciągu jedną z najbardziej rozpowszechnianych form ochrony i zabezpieczania przed zagrożeniami dla nowych i istniejących komputerów w sieci. Siec nie potrafi się sama bronić zachodzi 5 zatem zachodzi potrzeba używania profesjonalnych urządzeń do ochrony systemów zarówno w sieciach dla małych firm jak i firm korporacyjnych. Aby zrozumieć to co firewalle są w stanie zrobic oraz w jaki sposób mogą być wykorzystane do osiągnięcia maksymalnego stopnia zabezpieczenia należy poznać podstawy firewalli, analizę róznych koncepcji zarówno komercyjnych jak i OpenSource które umożliwą administratorom dużych sieci korporacyjnych jak i małych sieci domowych bądź biurowych skutecznie wybrać oraz skonfigurować urządzenia zabezpieczające. Trzeba pamiętać że firewall jest w zasadzie pierwszą linią obrony naszej sieci tak więc musi zostać poprawie skonfigurowana aby w pełni radzić sobie z powierzonym mu zadaniem. Firewall pozwoli nam na ustalenie pewnych zasad w celu określenia jaki ruch powinien zostać dozwolony. W zależności od typu zaimplementowanego firewalla można ograniczyć dostep np. tylko dla określonych adresów IP, nazw domen czy też zablokować niektóre rodzaje ruchu poprzez blokowanie portów TCP/IP. 6 Cel pracy Celem niniejszej pracy było przedstawienie metod realizacji firewall’i w oparciu o różne komponenty (systemy operacyjne, routery- listy ACL, rozwiązania komercyjne), zapoznanie się z poszczególnymi architekturami, które stosowane są podczas budowy zapór sieciowych. Ponadto celem było również ukazanie poszczególnych modeli zapór sieciowych, opis ich możliwości oraz podstawowych metod konfiguracji. Wszystko to kończy budowa prostego firewalla opartego o system operacyjny Linux oraz szereg testów, które były wykonywane bezpośrednio na nim. 7 Zakres Pracy W pierwszym rozdziale pracy zatytułowanym „Wprowadzenie do Firewalli” opisane zostały podstawy firewalli, ogólne zasady ich działania. Ponadto rozdzial ten w sposób ogólny skupia się na zagrożeniach płynących bezpieczeństwa. Znalazła się tam również z Internetu oraz opisuje Polityki klasyfikacja firewalli ,oraz porównanie komercyjnych zapór sieciowych oraz zapór OpenSource. W drugim rozdziale zaś opisywane były najczęściej używane protokoły podczas pracy firewalli m.in. (IP, TCP, UDP, ICMP, NAT itp.).Poruszane były także aspekty dotyczące najczęstszych architektur, które są stosowane podczas budowy firewalli, tworzenie list ACL na routerach oraz wirtualnych sieci LAN (VLAN). Trzeci rozdział skupiał się głównie na charakterystyce czterech wybranych zaporach sieciowych były nimi (Router szerokopasmowy Linksys, CISCO PIX Firewall / ASA Firewall, Linux Firewall oraz Proxy ). Opisywane tam były przedewszystkim ich funkcje, metody używane podczas zabezpieczania sieci przed intruzami, oraz poszczególnych metod konfiguracji zapór sieciowych. Rozdział czwarty jest tzw. rozdziałem praktycznym, który obejmował budowe firewalla bazującego na systemie operacyjnym GNU/Linux, ponadto zawiera w sobie poszczególny opis konfiguracji firewalla oparty o łańcuchy oraz reguły IPTABLES. Ostatni rozdział pracy dotyczył wykonywanych testów na uprzednio zbudowanej zaporze. Testy te mialy na celu sprawdzenie czy zapora w pełni radzi sobie z zadaniami, do których została stworzona. Testy te były wykonywane prez szereg różnorodnych narzędzi np. (Hping2, Nmap). 8 Rozdział I Wprowadzenie do Firewalli W zależności od struktury sieci firewall jest podstawową jednostką zapewniajacą jej bezpieczeństwo przed szeregiem niebezpieczeństw płynących z sieci zewnętrznej Internetu. 1.1 Wprowadzenie do Firewalli Rozdział ten opisuje ogólne zasady działa firewalla, oraz ukazuje zagrożenia na jakie bęzie wystawiany nasz firewall podczas codziennej pracy. Ukazywał będzie nam także podstawowe polityki bezpieczeństwa, które okazą się niezbędne do prawidłowego funkcjonowania naszej zapory. 1.1.1 Co to jest Firewall ? Kiedy większość ludzi myśli o firewallu, myślą o urządzeniu, które znajduję się w sieci i kontroluje ruch, który przechodzi między segmentami sieci. Czasami firewalle mogą zostać implementowane na samych systemach takich jak na przykład Microsoft Internet Connection Firewall (ICF) w których przypadku systemy te znane są jako host oparty na firewallu. Zasadniczo wszystkie typy firewalli mają ten sam cel : określnie metod egzekwowania polityki kontroli dostępu (ACL). Wprawdzie w najprostszej definicji firewalle są niczym więcej jak polityką kontroli dostępu. 9 Rys. 1 Sieć z wykorzystaniem polityki kontroli dostępu (ACL) Firewalle umożliwiają definiowanie list kontroli dostępu oraz zapewnienie tylko tego ruchu sieciowego bądź przesyłania konkretnych danych które spełniają warunki zawarte w listach kontroli dostępu. Rysunek 1 ilustruje w jaki sposób używany jest firewall w sieci którego zadaniem jest przepuszczać dozwolony ruch sieciowy natomiast pozostały inny zatrzymywać. 1.1.2 Jak działają Firewalle Wszystkie firewalle które powinny być brane pod uwagę posiadają wspólną cechy oraz funkcjonalności co pomoże w zdefiniowaniu tego co może on zrobić. Zasadniczo firewalle muszą być w stanie wykonać następujące zadania:  Zarządzanie oraz kontrolać ruchu sieciowego  Autoryzowanie dostępu  Ochrona zasobów  Rejestrowanie oraz raportowanie wszelkiego rodzaju naruszenia bezpieczeństwa 10 Zarządzanie oraz kontrola ruchu sieciowego: Pierwsza i najbardziej podstawowa funkcjonalność, którą wszystkie firewalle muszą wykonać jest zarządzanie i kontrola ruchu sieciowego, komu przydzielić dostęp do chronionej sieci bądź hosta. Firewall bada pakiety oraz monitoruje nawiązywane połączenia, które są poddawane filtrowaniu. Badanie Pakietu: Badanie pakietu jest to proces przejmowania oraz przetwarzania danych w pakiecie, którego celem jest zdecydowanie czy pakiet ma zostać zaakceptowany czy też odrzucony zgodnie ze zdefiniowaną polityka bezpieczeństwa. Podczas badania pakietu brane pod uwage są następujące elementy:  Adres IP źródła  Port źródła  Adres IP docelowy  Port docelowy  Protokół IP (IPv4, IPv5, IPv6)  Nagłówek pakietu Firewall musi zbadać każdy pojedynczy pakiet z każdego adresu oraz z każdego interfejsu ponadto reguły kontroli dostępu muszą istnieć dla każdego pakietu który będzie zbadany. Kiedy firewalle połączą funkcje sprzętową wraz z badaniem pakietów od tego momentu po nawiązaniu sesji przez aplikacje firewall nadzoruje wszystkie połączenia przechodzące przez niego oraz analizuje nagłówki pakietów pod kątem które pokarze czy pakiety zostały wysłane przez aplikacje która znajduje się na liście dopuszczonych do ruchu sieciowego. Autoryzacja dostępu: Firewalle mogą zezwolić na dostęp używając kilku mechanizmów. Pierwszy mechanizm mówi o tym iż firewall może wymagać nazwy uzytkownika oraz hasła które pozwoli na pozytywne uzyskanie autoryzacji ( często znane jako rozbudowana 11 identyfikacja inaczej xAuth). Używając xAuth użytkownik usiłujący zainicjować połączenie jest zobowiązany podać nazwę użytkownika, hasło oraz tryb połączenia. Zazwyczaj jest to (client_auth) wszystkie te dane podawane są przed firewallem który po dokonaniu weryfikacji zezwala na dostęp. Innym mechanizmem służącym do autoryzacji połączenia jest użycie certyfikatów oraz kluczy publicznych. Korzyści certyfikatów nad identyfikacją xAuth są takie że proces autoryzacji może odbyć się bez ingerencji użytkownika, pod warunkiem że hosty zostały poprawnie skonfigurowane mianowicie posiadają certyfikaty zarówno host jak i firewall, oraz używają takiego samego klucza publicznego. Korzyść takiego rozwiązania najlepiej sprawdza się przy dużych infrastrukturach sieci. Ostatnim mechanizmem jest autoryzacja prowadzona na podstawie wstępnie dzielonych kluczy (pre-shared-key). Mechanizm ten jest mniej złożony w implementacji niż certyfikaty. Każdy Host posiada z góry ustalony klucz który jest użyty w procesie autoryzacji. Minusem tego systemu jest to że klucze rzadko się zmieniają oraz wiele organizacji używa klucza o tej samej wartości dla zbiorowych zdalnych centralnych komputerów co w rezultacie prowadzi do pogorszenia bezpieczeństwa procesu autoryzacji. Ochrona zasobów : Firewall może zostać skonfigurowany w taki sposób aby pełnił rolę pośrednika w komunikacji wówczas wywoływany jest proces pomiędzy dwoma hostami. Proces ten zwany jest zwykle jako Proxy. Proxy pełni funkcje hosta którego zadaniem jest ochranianie. Wszystkie połączenia których celem jest chroniony host muszą przejść przez Proxy. Proxy otrzymuje pakiety które przeznaczone są dla chronionego hosta po czym sprawdza je, po sprawdzeniu następuje budowa całkiem nowego pakietu który nastepnie jest wysyłany do chronionego hosta. Chroniony host odpowiada do Proxy po przez odwrócenie procesu którego wynikiem jest otrzymanei prez Proxy wiadomości ze pakiet dotarł do chronionego hosta. Firewall stanowi ochronę która jest osiągnięta przez użycie reguł kontroli dostępu (ACL), zastosowanie Proxy oraz kombinacji wszystkich dostępnych środków aby zapobiec chronionego hosta przed uzyskanie dostępu do niego przez nieuprawnione zasoby bądź hosty oraz na złośliwy ruch w sieci którego celem jest zmniejszenie 12 przepustowości łącza co w rezultacie prowadzi do awarii. Firewalle nie są jednak niezawodną metodą dla ochrony zasobów, dlatego nie powinno się tylko i wyłącznie polegać na firewallu aby zabezpieczyć hosta. Rejestrowanie oraz raportowanie wszelkiego rodzaju naruszenie bezpieczeństwa Obecnie firewall może raportować zdarzenia z kilku dróg. Większość firewalli używa do tego celu dwóch kilku, jedną metodą jest syslog natomiast druga metoda jest to raportowanie każdego logowania. Używając tych metod podczas logowania firewalle mogą na bieżąco ustalić jaka była przyczyna naruszenia zabezpieczeń, informacje te mogą być również użyte podczas diagnozowaniu problemów wadliwego działania firewalla. Firewalle udzielają wsparcia dla kilku typów metod :  Konsola powiadomień: Jest to prosty proces który przedstawia konsole powiadomień. Warunkiem poprawnego działania tej metody jest ciągła aktywność konsoli powiadomień która w razie wykrycia niebezpieczeństwa natychmiast wygeneruje stosowny raport w którym znajdą się informacje na temat tego co zaszło.  SNMP : Simple Network Management Protocol może być używany do zarządzania siecią oraz urządzeniami jakie znajdują się w jej obrębie. W celu wykrycia nieautoryzowanego dostępu do sieci SNMP może zostać użyty aby wygenerować pułapki które zostaną wysłane do systemu zarządzania siecią (Network Management System) który ma za zadanie monitorowania wszystki firewalli.  Powiadomienie na stronie WWW : Metoda której zadaniem jest powiadomienie administratora za pomocą strony WWW o zaistniałym niebezpieczeństwie. Funkcja ta wymaga konfiguracji firewalla by wysyłał takie powiadomienie.  E-mail : Prostszym rozwiązaniem od strony WWW jest metoda wysyłania wiadomości e-mail. Zasada działania jest prosta po prostu firewall wysyła wiadomość e-mail pod wskazany adres. 13 1.1.3 Zagrożenia w sieci Wiedza na temat firewalli nie powinna ograniczac się tylko do tego jak dziala firewall oraz jak pracuje. Aby skutecznie chronić trzeba zrozumieć zagrożenia jakie pojawiają się w ostatnim czasie w sieci. Zagrożenia jakie obecnie pojawiają się w sieci i na jakie możemy być narażeni:  Wirusy, robaki, trojany  Ataki Dos (Denial-of-service)  Zombie  Spayware  Złośliwe oprogramowanie Wirusy, robaki, trojany: Obecnie w sieci pojawia sie coraz więcej różnorodnego szkodliwego oprogramowania. Wirusy są programami które posiadają dolność do replikacji bez wiedzy użytkownika, dzięki samoczynnemu powielaniu się takiego programu może się on szybko rozprzestrzeniać w zainfekowanym systemie. Kolejnym zagrożeniem są konie trojańskie które są kodem ukrytym w programie mogącym realizować także inne funkcje niż, te o których jest informowany użytkownik. Program taki najczęściej wykonuje pożyteczne funkcje równocześnie realizując ukryte zadania. Robakiem będziemy nazywać program którego głównym zadaniem jest rozprzestrzenianie się za pomocą sieci komputerowej oraz powielanie się. Końcowym założeniem jest wykonanie kodu który został zadeklarowany przez twórcę robaka. Ataki DoS (Denial-of-service) : Ataki Dos powodują zagrożenia które polegają na przeciążeniu aplikacji serwującej .W sieciach komputerowych atak Dos oznacza zazwyczaj zalewanie sieci dużą ilością danych które maja na celu nasycenie dostępnego pasma, którym dysponuje atakowany host. Osiągnięcie się go wtedy staje się niemożliwe pomimo tego ze usługi na nim są gotowe do przyjęcia połączenia. 14 Zombie : To systemy które zostały zakażone oprogramowaniem szkodliwym zazwyczaj są to trojany bądź backdoor’y. Takie zainfekowane systemy mogą zostać użyte w przyszłości aby rozpocząć atak Dos. Spyware : Oprogramowanie komputerowe którego celem jest szpiegowane działań użytkownika. Zadaniem takich programów jest gromadzenie informacji o użytkowniku oraz często wysyłanie zdobytych informacji bez wiedzy użytkownika. Do takich informacji mogą należeć :  Adresy stron WWW  Numery kart płatniczych  Loginy oraz hasła  Adresy poczty elektronicznej itp. Programy tego typu można zaliczyć do kategorii złośliwego oprogramowania. Na chwile obecną pojawiają się one praktycznie w każdym środowisku systemowym. Złośliwe oprogramowanie : Do tej grupy możemy zaliczyć wszystkiego rodzaju aplikacje, skrypty itp. których celem jest szkodliwe bądź nawet przestępcze działanie w stosunku do użytkownika. Problem ten dotyka przede wszystkim użytkowników pracujących w środowisku Microsoft Windows 15 Rys. 2 Podstawowe grupy złośliwego oprogramowania i ich powiązania. [ http://upload.wikimedia.org/wikipedia/commons/e/e6/Malware_graph.svg] 1.1.3 Polityki bezpieczeństwa Pierwszym krokiem dla dobre polityki bezpieczeństwa jest wykonanie analizy ryzyka po to aby określić stopień zagrożenia dla chronionego systemu. Po wykonaniu tego można przystąpić do zaplanowania strategii budowania polityki bezpieczeństwa. Powinna ona zawierać wskazania możliwych rodzajów naruszenia bezpieczeństwa przykładem tego może być np. nieautoryzowany dostęp, utrata danych. Polityka bezpieczeństwa definiuje również poprawne i niepoprawne korzystanie z zasobów sieciowych ( np. konta użytkowników ,dane). Bardzo ważne jest żeby polityka bezpieczeństwa była znana przez wszystkich pracowników, którzy korzystają z zasobów informatycznych. Podczas projektowania polityki bezpieczeństwa trzeba rozważyć kilka podstawowych rzeczy. Mianowicie czy dana firma będzie w stanie ponieść koszty które związane będą z wprowadzeniem tej polityki w życie. Projektując mechanizmy ochrony należy określić następujące elementy :  Model bezpieczeństwa  Poziomy uprawnień (jakie poziomy uprawnień są obecne i jakie są zasady ich przyznawania)  Mechanizm kontroli dostępu 16  Metody identyfikacji oraz zapewnienia autentyczności  Uzyskiwanie autoryzacji  Monitorowanie zdarzeń w systemie. Jakie mechanizmy/procesy SA stosowane do monitorowania zmian w systemach. 1.2 Podstawy firewalli Podrozdział ten pokaże nam podstawy firewalli, dowiemy się zatem jak możemy sklasyfikować firewalle oraz jakie występują technologie tworzenia firewalli. Ponadto porównamy firewalle komercyjne jak i te które działają w oparciu o OpenSource. 1.2.1 Klasyfikacja firewalli Najbardziej typowy firewall jest wyspecjalizowanym systemem bądź urządzeniem które znajduje się w sieci i pełni role oddzielającą siec wewnętrzna od sieci zewnętrznej (Internet). Najwięcej sieci domowych (sieci LAN) używa prosty firewalli które nie są oparte na fizycznym sprzęcie. Ogólnie firewalle mogą zostać sklasyfikowane jako dwa typy:  Firewall osobisty  Firewalle sieciowe Różnica miedzy tymi dwoma typami jest taka że firewall sieciowy kładzie większy nacisk na analizę sieci zatem dla małych sieci LAN gdzie ruch sieciowy nie jest duży oraz nie ma zbyt dużego zagrożenia nie spełni on swojej roli. 17 Rys. 3 Klasyfikacja firewalli [Wes Noonan Ido Dubrawsky - Firewall Fundamentals str.37] Rysunek ukazuje nam różne rodzaje dostępnych firewalli Dostarcza nam również kompletnych szczegółów co do ich zdolności, oraz również stanie się pomocny podczas decyzji jaki firewall oraz o jakich zdolnościach będzie nam potrzebny aby wypełni zabezpieczyć naszą sieć przed zagrożeniami. Firewall osobisty: Firewalle te projektowane są z myślą o zabezpieczeniu pojedynczego hosta przed nieautoryzowanym dostępem. Przez lata firewalle osobiste były rozwijane oraz unowocześniane pod kątem dodawania nowych funkcji np. monitoring oprogramowania, wykrywanie ataków. Kilka z najbardziej popularnych komercyjnych firewalli to np. BlackICE jak również Cisco Security Agent, oprócz tego można skorzystac również z innych alternatyw a mogą być nimi Micro's PC-cillin, ZoneAlarm, Symantec personal firewall. Można powiedzieć że jest to propozycja mniej kosztowna dla użytkowników których nie stać na drogie komercyjne firewalle. Potrzeba scentralizowanej polityki bezpieczeństwa jest punktem zwrotnym dla firewalli 18 osobistych przez co dąży do zminimalizowania ciężaru administracyjnego. Otóż ciężarem tym możemy nazwać właściwą konfiguracje oraz ciągły monitoring każdego firewalla, co w firewallach osobistych nie jest konieczne. Przez centralizowanie polityki bezpieczeństwa oraz monitorowania wiele produktów złagodziło wysiłek właściwego konfigurowania oraz monitorowania wszelkich zdarzeń. Firewall sieciowy : Sieciowe firewalle są projektowane przede wszystkim po to aby chronić cala infrastrukturę sieci prze różnego rodzaju zdarzeniami płynącymi z sieci. Firewalle sieciowe możemy podzielić na dwa typy: firewalle sprzętowe oraz firewalle oparte na systemie operacyjnym. Przykładem firewall sprzętowego może być np. Cisco PIX, Cisco ASA, Juniper’s NetScreen firewall, Symantec’s Enterprise Firewall. Natomiast co do firewalli opartych o system operacyjny to są to np. Check Points Firewall-1 NG, Microsoft ISA Server, Linux+ IPTables oraz BSD pf packet filter. Nie można pominąć też systemu Sun który w pierwotnej wersji pełnił role firewalla . Również i te firewalle przez lata zostały udoskonalone oraz zyskały wiele nowych cech. Mowimy tutaj o wykrywaniu wirtualnych sieci prywatnych (VPN), możliwość zdalnego uzyskania dostępu do odleglych sieci VPN. Kolejną ważna cechą tych firewalli jest to że maja one zdolność dokładnego badania każdego pakietu który jest odbierany. Potrafią one również identyfikować ruch sieciowy nie tylko w opraciu o 3 i 4 warstwę modelu osi ale i również samemu ułożyć intensywność ruchu sieciowego. 1.2.2 Technologie firewalli Tutaj przyjrzymy się jakie są obecnie technologie firewalli oraz temu jaki sposób one pracują. Skupimy się na szerokim kręgu technologii które wykorzystuje się obecnie do zabezpieczania infrastruktury sieci:  Filtrowanie pakietów  Network Address Translation (NAT)  Proxy firewall  Wirtualne firewalle 19 Filtrowanie pakietów : Filtrowanie pakietów jest to selektywne przepuszczanie bądź blokowanie pakietów które napływają po przez interfejs sieciowy Ethernet. Kryteria które brane są pod uwagę podczas wykonywania tego są oparte warstwę 3 oraz warstwę 4.Natomiast podstawowym kryterium jest źródłowy oraz docelowy adres, port oraz protokół jaki jest wykorzystywany. Reguły którymi należy się posługiwać podczas filtrowania są porównywane sekwencyjnie czyli od pierwszej do ostatniej. Rys. 4 Proste filtrowanie za pomocą ACL Rysunek przedstawia nam prostą konfiguracje Access List której celem jest filtrowanie pakietów. Poniżej widzimy polecenia które zostały wpisywane na routerze w celu uzyskania tegoż efektu. 20 access-list 101 permit icmp any 192.168.185.0 0.0.0.255 echo-reply access-list 101 permit icmp any 192.168.185.0 0.0.0.255 ttlexceededaccess-list 101 permit tcp any 192.168.185.0 0.0.0.255 established access-list 101 permit udp any host 192.168.185.100 eq 53 access-list 101 permit udp any eq 123 192.168.185.0 0.0.0.255 Tab. 1 Lista komend wpisywana na routerze w celu utworzenia Access list control. Lista tych reguł związana jest z utworzeniem ACL który będzie zastosowana dla ruchu sieciowego odbywającego się dla DNS (53/UDP) oraz NTP (123/UDP), który został jawnie zdefiniowany na końcu listy ACL jako (ICMP)- (Internet Control Message Protocol) , echo-replay oraz (TTL) – Time To Live -exceeded responsem. Bez zdefiniowania tych dyrektyw pakiety te zostałyby zablokowane na routerze i nie przedostałyby się do chronionej sieci LAN. access-list 101 permit tcp any 192.168.185.0 0.0.0.255 established Tab. 2 Kluczowa reguła wprowadzana na routerze. Reguła ta wymagana jest aby zezwolić na powrót ruchu sieciowego od zewnętrznego systemu do adresu 192.168.185.0 /24 o ile w protokole TCP będą znajdowały się flagi ACK. Filtrowanie pakietów nie posiada specjalnych zdolności by zbadać zewnętrzny ruch sieciowy i dynamicznie wygenerować reguły pozwalające na powrotny ruch sieciowy. Network Address Translation (NAT) Kolejna technologia używana w firewallach jest NAT czyli (Network Address Translation). Na dzisiejszym rynku firewalli usługa NAT jest częścia prawie każdego urządzenia zaczynając od firewalli niskiego rzędu np. Linksys BEFSX41 poprzez urządzenia firmy Cisco PIX 535, NAT automatycznie dostarcza ochrone dla systemów. 21 NAT firewall tworzy tablice w pamieci urządzenia, które zawiera informacje o połączeniach które firewall przechwycił. Mówimy tutaj o technice przesyłania ruchu sieciowego poprzez router .Wiąże się to ze zmiana docelowych bądź źródłowych adresów IP, zazwyczaj również następuje zmiana portów TCP/UDP. Rys. 5 Przykładowe działanie usługi NAT firewall Hosty znajdujące się wewnątrz NAT czyli (192.168.1.1 oraz 192.168.1.2) próbują uzyskać dostęp do serwera Web (10.100.100.44). Host (192.168.1.1) otwiera port TCP 3844 i uzyskuje połączenie z serwerem Web (10.100.100.44) na porcie 80 TCP, natomiast host (192.168.1.2) otwiera port 4687 i również uzyskuje dostęp do serwera Web na porcie 80 TCP. NAT firewall jest skonfigurowany w taki sposób aby dokonywał translacji adresu całej podsieci w tym przypadku (192.168.1.0 /24) do pojedynczego adresu (172.28.230.55). W momencie gdy firewall zauważy próbę uzyskania połączenia z podsieci która znajduje się w jego tabeli następuje bowiem 22 wtedy zamiana adresów próbujących nawiązać połączenie (192.168.1.1 oraz 192.168.1.2) na adres pojedynczy (172.28.230.55). ADRES ŹRÓDŁO NAT IP ŹRÓDŁOWY WY PORT 192.168.1.1 3844 172.28.230.55 192.168.1.2 4687 192.168.1.1 4687 NAT PORT ADRES PORT DOCELOWY DOCELOWY 3844 10.100.100.44 80 172.28.230.55 4687 10.100.100.44 80 172.28.230.55 63440 10.100.100.44 80 Tab. 3 Translacja adresów (NAT) Ostatni wpis w tabeli pokazuje nam jak zachowa się system NAT w przypadku gdy określony port źródła jest już zajęty przez poprzednie połączenie. W tym przypadku host o adresie (192.168.1.1) usiłuje wykonać drugie połączenie z serwerem Web (10.100.100.44). Tak wiec host otwiera połączenie na porcie TCP 4687, który używany jest przez hosta (192.168.1.2) i w tym momencie nastepuje wykonanie połączenia z innego portu źródłowego oraz zostaje wykonana translacja alternatywna której efektem będzie uzyskanie dostępu do serwera Web. Proxy Firewall Proxy firewall jest niczym innym jak aplikacją która pełni role pośrednika pomiędzy dwoma końcowymi systemami. Działają one w warstwie firewalla gdzie obydwa końce połączenia są prowadzone za pomocą proxy, proces ten jest utrzymywany do momentu aż połączenie zostanie zakończone. 23 Rys. 6 Proxy firewall [ http://www.akadia.com/services/firewall_proxy_server.html] Podczas używania Proxy firewall użytkownik zleca pośrednikowi zadania za pomocą jakiegokolwiek klienta Mogą to być np. usługi HTTP bądź FTP. Usługa proxy firewall musi być uruchomiona dla każdego typu aplikacji internetowej tak jak widać na Rys.6 (HTTP- Hypertext Transfer Protocol), (FTP- File Transfer Protocol), (SMTPSimple Mail Transfer Protocol). Proxy firewall zawsze pracuje jednostronnie czyli mówimy o tym że biegną one od wewnętrznej sieci do zewnętrznej. Proxy firewall centralizuje swoją działalność dla aplikacji na pojedynczym serwerze, poprawnie uruchomiona aplikacja Proxy daje możliwość zbadania pakietów nie tylko z dla adresu źródłowego/docelowego, oraz numeru portu. 24 Wirtualne firewalle: Mówimy tutaj o złożonych logicznych firewallach które przebiegają przez fizyczne urządzenia. Uwzględnia to złożone sieci które musza być chronione poprzez unikalny firewall oparty o specyficzna politykę bezpieczeństwa która będzie wdrażana na jednym fizycznym urządzeniu. Dostawca usługi internetowej może dostarczyć usługę wirtualnego firewalla który będzie zabezpieczał oraz rozdzielał ruch sieciowy na jednym urządzeniu. Dostawc definiuje oddzielne domeny bezpieczeństwa dla każdego klienta natomiast domeny te kontrolowane są przez osobny logiczny firewall wirtualny. Niestety zdolność budowania wirtualnych firewalli możliwa jest tylko na urządzeniach które sa dosc drogimi urządzeniami. Mianowicie mówimy tutaj o urządzeniach takich jak np. Cisco PIX 525 i 535 oraz nowszą linie firewalli ASA. 1.2.3 Open source oraz komercyjne Firewalle Na dzisiejszym rynku możemy znaleźć dużą ilość różnorodnych firewalli. Niektóre z nich są w systemie (Open source) czyli tzw. otwarte oprogramowanie, do tej grupy Mozeli zaliczyć m.in. Linux IPTables, OpenBSD, oraz Solaris IPF firewall. Druga grupa firewalli to firewalle komercyjne czyli nie są dostępne bezpłatnie tak jak te z systemu (Open source). Do tej grupy możemy zaliczyć np. Cisco PIX, CiscoASA, Juniper ScreenOS oraz Checz Point’s firewall. Różnice miedzy tymi dwoma typami są zazwyczaj widoczne ponieważ firewalle komercyjne posiadają zazwyczaj dosyć większe możliwości niż firewalle darmowe (Open source). Najbardziej komercjalne firewalle dostarczają dużego wsparcia dla VPN (Virtual Private Network), ponadto pozwalają na głębokie zbadanie pakietów. Firewall open source skupiają swoja uwagę na tylko na filtrowaniu pakietów oraz nie posiadają tak głębokiego badania pakietów. Można śmiało powiedzieć ze firewall oparty o open source nie stanowi nieprzezwyciężonej przeszkody, dlatego dobrze jest łączyć oba te warianty czyli zastosować firewall oparty na systemie open source i wzmocnić ochronę o firewall komercyjny. 25 Rozdział II Technologie firewalli W rozdziale trzecim przedstawimy podstawowe technologie realizacji firewalli, poznamy też również podstawowe protokoły, które używane są podczas pracy firewalli. 2.1 TCP/IP dla firewalli Podrozdział ten będzie opisywał nam szereg różnorodnych protokołów wykorzystywanych podczas działania firewalli. Ponadto przyjrzymy się w jaki sposób zbudowany jest pojedynczy pakiet, jak wygląda proces enkapsulacji danych, oraz których protokołów najlepiej jest używać w celu uzyskanai maksymalnego zabezpieczenia. 2.1.1 Protokoły, usługi i aplikacje Model OSI 1 OSI ( Open System Interconnection) jest to model który traktowany jest jako odniesienie dla wielu rodzin protokołów komunikacyjnych. Podstawowym założeniem tego modelu jest podzielenie systemów sieciowych na 7 całkowicie niezależnych warstw. Model ten definiuje nam jakie rodzaje informacji mogą być przesyłane pomiędzy warstwami.  Warstwa 7 Aplikacji  Warstwa 6 Prezentacji  Warstwa 5 Sesji  Warstwa 4 Transportowa  Warstwa 3 Sieciowa  Warstwa 2 Łącza danych  Warstwa 1 Fizyczna 1 Akademia sieci Cisco. Pierwszy rok nauki Vito Amato, Wayne Lewis Wydawnictwo MIKOM 2001r. str. 23 26 Rys. 7 Model OSI (Open System Interconnection) [Akademia sieci Cisco. Pierwszy rok nauki Vito Amato, Wayne Lewis Wydawnictwo MIKOM 2001r. str 21] Siedem warstw modelu odniesienia OSI:2  Warstwa aplikacji: Warstwa ta jest najbliższa użytkownikowi ponieważ zapewnia usługi sieciowe dla aplikacji których on używa. Warstwa aplikacji ma za zadanie identyfikować oraz sprawdzać dostępność w procesie komunikacji, ponadto synchronizuje współpracujące ze sobą aplikacje. Realizuje uzgodnienia które dotyczą kontroli integralności danych, określa też czy istnieje wystarczająca ilość zasobów dla danego rodzaju aplikacji.  Warstwa prezentacji: Jej zadaniem jest sprawienie aby informacja która zostanie wysłana przez warstwę aplikacji z jednego systemu mogła być odczytana przez warstwę aplikacji w innym systemie. Ponadto warstwa 2 Akademia sieci Cisco. Pierwszy rok nauki Vito Amato, Wayne Lewis Wydawnictwo MIKOM 2001r. str. 23 27 prezentacji dokonuje również translacji pomiędzy różnimy formami reprezentacji danych.  Warstwa sesji: Warstwa ta ustanawia sesje pomiędzy aplikacjami czyli zarządza nimi. Możemy powiedzieć że warstwa sesji świadczy usługi dla warstwy nadrzędnej, zarządza wymiana danych dla niej. Oprócz tego raportuje błędy w warstwie sesji, warstwie prezentacji i warstwie aplikacji.  Warstwa transportowa: Jej głównymi zadaniami jest dzielenie oraz ponowne składanie danych w tzw. Strumienie. Zapewnia ona usługi transportu które są oddzielane poprzez warstwy wyższe od szczegółów które związane są implementacją transportu. Dla zapewnienia maksymalnej niezawodności usług warstwa używa różnorodnych mechanizmów czyli ustanowienie obsługi i kończenia połączeń wirtualnych, sterowanie przepływem informacji oraz wykrywanie błędów transportu.  Warstwa sieci: Możemy powiedzieć ze jest to złożona warstwa która ma za zadanie zapewnić połączenie oraz wybór trasy pomiędzy dwoma końcowymi hostami.  Warstwa łącza danych: Warstwa ta zapewnia danych niezawodne przenoszenie poprzez fizyczne medium. Do jej zadań nalezą także fizyczne adresowanie, zasady dostępu do medium, ustalenia kolejności dostarczania ramek oraz sterowanie przepływem danych.  Warstwa fizyczna: Jest to fundamentalna warstwa na której oparty jest cały model osi. Definiuje ona elektryczne, mechaniczne oraz funkcyjne specyfikacje łącza pomiędzy dwoma hostami. Definiowane są w tej warstwie takie charakterystyki jak np. poziomy napięć, szybkość przesyłania danych, maksymalna odległość transmisji oraz podobne atrybuty. Enkapsulacja danych:3 Komunikacja w sieci odbywa się na takiej zasadzie iż dane bądź pakiety danych wysyłane są od źródła do punktu przeznaczenia. Jeśli (host A) będzie chciał wysłać dane do (host B) dane przed wysłaniem musza zostać spakowane w procesie zwanym 3 Akademia sieci Cisco. Pierwszy rok nauki Vito Amato, Wayne Lewis Wydawnictwo MIKOM 2001r. str. 25 28 ENKAPSUJACJĄ. Proces ten polega na otaczaniu danych koniecznymi informacjami na temat protokołu. Po wysłaniu danych od źródła, przechodzą one przez warstwę aplikacji do coraz niższych warstw, pakowanie i przepływ wymienianych danych zmienia się w następstwie usług które wykonywane są przez poszczególne warstwy. Rys. 8 Proces enkapsulacji danych. Aby proces enkapsulacji przebiegł pomyślnie dane musza przejść przez 5 etapów konwersji. 1 ETAP (Budowa danych): W momencie gdy użytkownik chce wysłać komunikat np. przez stronę WWW bądź pocztę elektroniczna jego znaki konwertowane są do formatu danych któ®e swobodnie będą mogły wędrować w sieci. 29 2 ETAP (Pakowanie danych dla transportu pomiędzy dwoma punktami): Dane ulegają procesowi pakowania w celu transportu w sieci rozleglej. Dzięki zastosowaniu segmentów funkcje transportu zapewniają że hosty znajdujące się po obu końcach mogą nawiązać niezawodną komunikację. 3 ETAP (Dodawanie adresu sieci do nagłówka): Dane te umieszczane są w pakiecie czyli inaczej mówiąc w datagramie który zawiera nagłówek sieci z logicznymi adresami IP źródła oraz celu, ma to za zadanie pomoc urządzeniom sieciowym wysyłać pakiety dla sieci dynamicznych. 4 ETAP(Dodanie logicznego adresu MAC do nagłówka łącza danych): Każde urządzenie sieciowe musi zamieścić pakiet w ramce która obejmuje nagłówek z fizycznym adresem następnego bezpośrednio połączonego urządzenia na ścieżce. 5. ETAP (Konwersja danych na potrzeby transmisji): Ramka musi zostać przekształcona na ciąg jedynek i zer (bity) na potrzeby transmisji za pomocą medium. Dkapsulacja: Gdy oddalone urządzenie odbiera sekwencje bitów zostaje ono przekazane warstwie łącza danych, która po odebraniu ramki wykonuj następujące czynności:  Odczytuje fizyczny adres oraz pozostałe informacje kontrole dostarczone przez połączoną równorzędną warstwę łącza danych.  Przechodzi do rozbioru informacji kontrolnych ramki co w efekcie kończy się tworzeniem datagramu.  Datagramu przekazywany jest w górę do następnej warstwy, postępując zgodnie z instrukcja która znajduje się w kontrolnej części ramki. Proces ten nazywany jest dekapsulacja i jest on procesem odwrotnym do enkapsulacji, zachodzi na systemie odbiorczym. 30 2.1.2 Internet Protocol (IP) Protokół ten jest oparty na czternastowarstwowym modelu w którym warstwa IP odpowiada za połączenie oraz za przesyłanie danych pomiędzy dowolnymi hostami znajdującymi się w sieci. Ponadto zawiera on informacje dotyczące adresowania oraz detekcji błędów co pozwoli na właściwe wyznaczenie trasy pakietów. Urządzenie sieciowe np. router po przyjęciu pakietu odczytuje nagłówek i na jego podstawie stara się ustalić jak najlepszą trasę dla pakietu. IP wykonaniu modyfikacji nagłówka pakiet wysyłany jest w dalsza drogę. Jednym z podstawowych zadań tego protokołu jest umożliwienie bezpołączeniowego transportowania danych za pomocą Internetu w postaci datagramów. Datagramu IP są podstawowymi jednostkami danych które wysyłane są za pomocą Internetu. Kolejną własnością tych datagramów jest możliwość dzielenia ich na części podczas transportu co pozwala na wykorzystanie łącza transmisji o różnych rozmiarach ramek. Rys. 9 Pakiet IP składający się z następujących bloków informacji. 31  Wersja: zawiera informacje na temat wersji protokołu IP ()IPv4, IPv5, IPv6).  Długość: informacje na temat rozmiaru datagramu w 32-bit słowach.  ToS (Type of Service) Typ usługi: określa nam jaka usługa będzie używana (np. TCP lub UDP).  Rozmiar pakietu: zawiera informacje dotyczące rozmiaru całego pakietu IP podawany w bajtach  Identyfikator: Liczba która pozwala na połączenie w całość fragmentów datagramu.  Flagi: jest to 3-bitowe pole gdzie pierwszy bit okreśła czy pakiet może zostać podzielony na fragmenty, drugi bit informuje nas czy pakiet jest ostatnim fragmentem natomiast 3 bit jest nieużywany.  Przesunięcie fragmentu: określa położenie danych fragmentu liczone w bajtach. Informacja ta ułatwia prawidłową rekonstrukcje pakietu.  TTL(Time-to-live): licznik którego wartość zmniejszana jest w momencie przejścia przez każde urządzenie sieciowe (głównie są to routery). Gdy wartość TTL osiągnie zero pakiet nie będzie już dłużej transmitowany a nadawca otrzyma komunikat że pakietu nie można dostarczyć. To zabezpiecza przed nieskończonym wędrowaniem pakietów w sieci.  Protokół: określa kod protokołu wyższej warstwy.  Suma kontrolna nagłówka: Jest to suma 16-bitowego nagłówka IP. Przed jej wyliczeniem wartość tego pola powinna wynosić zero. Po odebraniu pakietu pole to jest liczone i porównywane z oryginalna wartością. Ma to na celu wykrycie ewentualnego uszkodzenia nagłówka pakietu.  Adres nadawcy/ Adres odbiorcy: Tutaj znajdują się adresy IP nadawcy/odbiorcy pakietu  Opcje: dodatkowe informacje dotyczące np. bezpieczeństwa.  Dane: Pole które zawiera dane pakietu lub jego fragment. 32 2.1.3 Transmission Control Protocol (TCP) Opisany wyżej protokół IP posiada sporo niedogodności np. pakiety mogą zostać porzucone bądź nawet zdublowane , wtedy z pomocą przychodzi nam protokół TCP który pomaga rozwiązać te problemy poprzez udostępnienie stabilnego kanału informacji. Można powiedzieć że zestaw TCP/IP jest w dużej części oparty na możliwościach które daje nam protokół TCP, który wykorzystuje IP tylko do transportu poszczególnych pakietów danych. Protokół TCP posiada sporo nowych możliwości w stosunku do protokołu IP np. :  Strumienie: Polega na formowaniu i transportowaniu danych w postaci strumieni bitów zorganizowanych w bajty lub 8-bitowe oktety.  Detekcja i korekcja błędów transmisji: Jeżeli podczas transmisji wystąpi błąd wówczas obie strony połączenia zostaną poinformowane, a następnie starają się zaradzić po przez ponowne wysłanie brakujących pakietów.  Połączenie typu full-duplex: jest to połączenie z możliwością jednoczesnej transmisji w obie strony, mająca na celu zmniejszenie ograniczenia przepustowości sieci. 33 Rys. 10 Pakiet TCP składający się z następujących bloków informacji  Port źródłowy: Port TCP, którego używa nadawca pakietu.  Port docelowy: Port TCP, którego używa odbiorca pakietu.  Numer sekwencji: Zawiera numer w sobie numer pierwszego bajtu danych które są transportowane za pomocą pakietu.  Numer kolejnej sekwencji: Zawiera numer pierwszego bajtu danych, których oczekuje nadawca.  Przesunięcie danych: liczba 32-bit danych nagłówka.  Zarezerwowane : miejsce które jest utrzymywane do wykorzystania w przyszłości.  Flagi: znajdują się tutaj tzw. Flagi sterujące m.in. bity SYN, ACK oraz FIN które używane są do rozpoczęcia kontynuacji oraz zakończenia połączenia.  Rozmiar okna: Rozmiar bufora danych odbieranych.  Suma kontrolna: pozwala na wykrycie uszkodzeń nagłówka pakietu który mógł nastąpić w czasie transmisji. 34  Wskaźnik pilnych danych: Jest on opcjonalny, pierwszy bajt pilnych danych który pokazuje gdzie jest ich koniec.  Opcje: Opcje protokołu TCP tak jak np.. rozmiar największego segmentu TCP.  Dane: Są to dane protokołu wyższej warstwy. 2.1.4 User Datagram Protocol (UDP) Protokół UDP działa tak samo jak protokół IP czyli w sposób bezpołączeniowy. W odróżnieniu od TCP na początku transmisji nie są wysyłane pakiety SYN/ACK aby niezawodność transmisji była zapewniona. Ponadto w protokole UDP nie znajdziemy żadnej kontroli transmisji czy tez nawet korekcji błędów. Konsekwencją tego może być zagubienie pakietów, zduplikowanie a nawet pakiety mogą przybyć w niewłaściwej kolejności. Pomimo tego protokół UDP wykorzystuje znacznie mniejsze nagłówki co pozwala lepiej wykorzystać przepustowość łącza a co za tym idzie szybciej przetwarzać pakiety niż miało to miejsce w TCP. Można powiedzieć że protokół ten używany jest jedynie w sytuacjach gdy kontrola transmisji zapewniona jest przez protokoły wyższych warstw. Przykładowymi usługami które wykorzystują ten protokół mogą być np. :  SNMP (Simple Network Management Protocol)  DNS (Domian Name System)  TFTP (Trivial File Transfer Protocol) 35 Rys. 11 Pakiet UDP składający się z następujących bloków informacji  Port źródłowy/ port docelowy: 16-bitowe numery portów używane do przetwarzania datagramów.  Rozmiar datagramu: Rozmiar datagramu podawany w bajtach.  Suma kontrolna: Jest ona opcjonalna i pozwala na wykrycie ewentualnego uszkodzenia zawartości datagramu.  Dane: Dane protokołów wyższych warstw. 36 2.1.5 Internet Control Message Protocol (ICMP) Protokół ten służy przede wszystkim do przesyłania różnego rodzaju pakietów informujących o błędach oraz kontrolowania kondycji połączenia. Transponowanie pakietów ICMP jest procesem składającym się z dwóch etapów. Komunikat ICMP dołączany jest jako dane do pakietu IP który następnie jest umieszczany oraz transponowany następnie przez Internet w postaci ramki. Można powiedzieć że protokół ICMP używa takiego samego sposobu komunikowania się jak zauważyliśmy w UDP. Oznacza to że komunikaty ICMP mogą zostać zagubione bądź powielone. Format datagramu jest tutaj najprostszy ponieważ zawiera tylko trzy pola. Rys. 12 Pakiet ICMP składający się z następujących bloków informacji  Typ komunikatu: Określa nam rodzaj sytuacji powodującej wysłanie datagramu.  Kod: Zawiera dodatkowe informacje na temat komunikatu. 37  Suma kontrolna: Pozwala nam na ewentualne wykrycie uszkodzonego datagramu ICMP. Datagram ICMP może również zawierać jeszcze nagłówek i dane pakietu który spowodował jego wysłanie. Pozwoli to na ustalenie aplikacji oraz protokołu który stał za przyczyną powstałego błędu. Jest wiele typów komunikatów ICMP w tabeli poniżej znajdują się lista najważniejszych. Typ komunikatu Nazwa Znaczenie 0 ECHO REPLAY Zwrot echa 3 DESTINATION UNREACHABLE nieosiągalność miejsca przeznaczenia 4 SOURCE QUENCH Tłumienie nadawcy 5 ROUTE REDIRECTED Zmień trasowanie 8 ECHO REQUEST Żądanie echa 11 DATAGRAM TIME EXCEEDED Przekroczenie limitu czasu 12 DATAGRAM PARAMETER PROBLEM Problem z parametrem 13 TIMESTAMP REQUEST Żądanie sygnatury czasowej 14 TIMESTAMP REPLAY Zwrot sygnatury czasowej 15 INFORMATION REQUEST Żądanei informacji Typ 38 komunikatu Nazwa Znaczenie 14 INFORMATIONREPLAY Zwrot sygnatury czasowej 17 ADDRESS MASK REQUEST Żądanie maski adresowej 18 ADDRESS MASK REPLAY Zwrot maski adresowej Tab. 4 Najważniejsze komunikaty ICMP [http://pl.wikipedia.org/wiki/Internet_Control_Message_Protocol] 2.1.6 Network Address Translation (NAT) Mechanizm ten pozwala na zamianę prywatnych adresów IP na wykorzystywane w Internecie unikatowe w skali świata adresy publiczne. Można powiedzieć że NAT został zaimplementowany po to aby można było udostępnić wiecej adresów IP sieciom prywatnym. NAT jest szczególnie skuteczny w walce przed włamaniami ponieważ skutecznie ukrywa wszelkie informacje warstw TCP/IP o wewnętrznych hostach. Sprawia że cały ruch wydaje się pochodzić od pojedynczego adresu IP. Pozwala nam również na stosowanie dowolnego zakresu adresów IP w sieci wewnętrznej, pomimo tego iż stosowane były już gdzieś indziej w Internecie. NAT ukrywa adresy za pomocą zmiany wszystkich adresów wewnętrznych hostów na adres firewalla. Jednocześnie w swojej tablicy translacji przechowywane są zapisy które pozwalają określić które gniazdko z interfejsu zewnętrznego odpowiada gniazdku interfejsu wewnętrznego. Mechanizm NAT można zatem uważać jako podstawowy mechanizm zastępczy Proxy. Niestety w Windows NT nie ma tej funkcji jaka jest NAT aby go zastosować należy użyć firewalla innej firmy, natomiast w przypadku systemów z rodziny UNIX-a wiele jego wersji posiada NAT bądź zezwala na jego korzystanie z oprogramowania Open source do maskowania adresów IP. 39 Działanie NAT: Aby korzystać z NAT wymagane jest aby firewall przechowywał tablice, w której zapisane będą przyporządkowane gniazda wewnętrzne oraz zewnętrzne. Gdy wewnętrzny host nawiązuje połączenie z zewnętrznym hostem firewall będzie zmieniał jego port źródłowy na jeden ze swoich portów zewnętrznych i będzie dokonywał odpowiedniego wpisu w tablicy translacji. Zapis ten będzie zawierał aktualne wewnętrzne gniazdo źródłowe, gniazo docelowe oraz przypisane gniazdo zewnętrzne ściany ogniowej. Zatem kiedy zewnętrzny host wysyła dane powrotem do gniazda hosta wewnętrznego, firewall wykona odwrotne przekształcenie. Jeżeli w tablicy translacji nie będzie pozycji dla danego gniazda lub tez gdy źródłowy adres IP jest inny od tego, którego oczekuje firewall pakiet zostaje odrzucony. Tryby translacji: W zależności od typu firewall stosowane są różne typy NAT. Poniżej znajdują się cztery podstawowe tyly translacji NAT:  Translacja statyczna (static translatiori): Nazywana jest również jakie przekierowywanie portów. Określony zasób sieciowy ma na stałe przypisane stałe przekształcenie które nigdy nie ulega zmianie. Statyczny NAT jest zazwyczaj stosowany gdy chcemy udostępnić hosty wewnętrzne dla hostów zewnętrznych.  Translacja dynamiczna (dynamie translation): Widnieje też pod takimi nazwami jak automatyczna lub maskowanie IP. Chroni wewnętrzne hosty po przez zastępowanie ich adresów IP adresem przypisanym dla firewalla. Hosty indywidualne wewnątrz obszaru chronionego przez firewall są identyfikowane za pomocą numeru portu połączenia przychodzącego.  Translacja ze zrównoważonym obciążeniem (load balancing translation): Pojedynczy adres IP oraz numer portu przekształcane są na pewien adres z puli identycznie skonfigurowanych serwerów. Prowadzi to do tego że pojedynczy adres publiczny może być obsługiwany przez kilka serwerów. 40  Translacja ze zwielokrotnionymi połączeniami (network redundancy tranlatori): Zwielokrotnione połączenia z Internetem są przyłączane do pojedynczego firewalla który posiada NAT i są wykorzystywane w oparciu o obciążenie oraz dostępność. Problemy związane z NAT :4 Problemy z NAT dotyczą przede wszystkim protokołów oraz używania niektórych usług, mianowicie istnieje kilka protokołów, których nie można używać z NAT, ponieważ wymagają one aby utworzyć kanał zwrotny do klienta, w których znajdują się informacje adresowe TCP/IP.  H.323, VDO Live – Programy które realizują usługi wideo telekonferencji nie będą działać poprawnie ponieważ wymagają utworzenia kanału zwrotnego. Takie same objawy będą występować przy usługach : Rshell, Xing.  FTP - Aby oprogramowanie mogło współpracować z NAT musi istnieć zgodność z RFC 1631. FTP umieszcza adres IP jako tekst ASCII wewnątrz pakietu TCP zatem jego długość może ulec zmianie w wyniku translacji adresów.  ICMP – Oprogramowanie to czasami umieszcza pierwszą część oryginalnego oprogramowania w komunikacie ICMP. Zawarty jest w nim przetłumaczony adres. Bezpiecznym rozwiązaniem jest nie przepuszczanie ruchu ICMP prze firewall. Widać zatem że NAT nie jest stuprocentowym narzędziem, pomimo tego że klienci są niewidoczni nie oznacza to wcale że nie można się do nich włamać. Poniżej znajduje się kilka przypadków w który NAT zawodzi:  Translacja statyczna nie chroni hostów znajdujących się wewnątrz.  Jeżeli NAT firewalla zawiera luki mogąone zostać wykorzystane w celu przełamania zabezpieczeń. 4 Firewalls ściany ogniowe Matthew Strebe, Charles Perkins Mikom 2000r str. 177 41  Nawiązanie połączenia przez klienta oznacza utworzenie połączenia zwrotnego które może zostać przechwycone techniką która nosi nazwę „Zwabianie hosta”. 2.1.7 Broadcast i multicast Broadcast: Broadcast jest to nic innego jak tryb transmisji którego celem jest wysłanie prze jeden port pakietów które powinny zostać odebrane przez wszystkie hosty w sieci. Adres rozgłoszeniowy (broadcast) jest to adres MAC który przedstawia się jako (FF:FF:FF:FF:FF:FF). Przeważnie jest on wykorzystywany w protokole ARP do przekształcania adresów sieciowych IP na adresy Ethernetowe. Rys. 13 Broadcast. W celu wyznaczenia adresu rozgłoszeniowego (broadcast) dla danej sieci potrzebny nam jest maska podsieci oraz adres hosta. Zatem wyliczmy broadcast dla tego przykładu. Załóżmy że adres hosta to 192.168.1.29 co po przeliczeniu binarnie 42 zapiszemy (11000000.10101000.00000001.00011101) maska to 255.255.255.0 co binarnie klasyfikuje się jako (11111111.11111111.11111111.00000000). Czyli adres rozgłoszeniowy będzie wyglądał następująco: 11000000.10101000.00000001.00011101 Adres IP 11111111.11111111.11111111.00000000 Maska odsieci 11000000.10101000.00000001.11111111 Adres rozgłoszeniowy 2.1.8 IP Routing Routery to urządzenia sieciowe, których zadaniem jest implementacja szerokij gamy usług. Zapewniają one interfejsy dla szerokiego zakresu łączy oraz podsieci, które działają z różną prędkością, można śmiało powiedzieć że routery są inteligentnymi węzłami sieci, które biorą udział w zarządzaniu siecią. Po za podstawowymi funkcjami takimi jak np. przełączanie czy routing posiadają także szereg dodatkowych cech, które pomogą zwiększyć efektywność działania sieci. Routery potrzebne są do obsługi wielu protokołów, z których każdy ma swoje własne protokoły routingu. W praktyce routery pełnią też funkcje mostów oraz ograniczonych koncentratorów. Podczas oceny i wyznaczania ścieżek w sieci, protokoły routingu wykorzystują dostępne informacje na temat topologii sieci, informacje te mogą skonfigurowane prze administratora. Czasami dzieje się tez tak że gromadzone są one w trakcie dynamicznych procesów działających w sieci. Po dokonaniu wyboru ścieżki router rozpoczyna przełączanie pakietu, które polega na przesłaniu pakietu zaakceptowanego przez dany interfejs do następnego interfejsu bądź portu który odpowiada najlepszej ścieżce do celu. Sieć w sposób spójny musi reprezentować ścieżki które są pomiędzy routerami. Jak widać na rysunku poniżej każde łącze pomiędzy routerem ma numer który w rzeczywistości jest adresem sieciowym. Adresy te muszą zawierać informacje, które będą wykorzystywane w procesie routingu. Oznacza to iż każdy adres musi mieć informacje dotyczące ścieżek wykorzystywanych przez media. 43 Rys. 14 Adresy reprezentują ścieżki łączenia mediów. Po przez korzystanie z tych adresów, warstwa sieci może zapewnić wzajemne połączenie niezależnych sieci. Spójny schemat adresowania całej sieci pozwala na znalezienie ścieżki do punktu przeznaczenia, bez zbędnego obciążania urządzeń oraz łączy w sieci przez rozgłaszanie. Wykorzystywanie adresów sieciowych w procesie routingu: Routery przekazują pakiety z jednego łącza danych do drugiego, do tego celu korzystają z dwóch podstawowych funkcji : wyznaczanie ścieżki i przełączenia. Część adresu, która dotyczy sieci jest wykorzystywana do wyboru ścieżki natomiast cześć dotycząca węzła kieruje port routera swą właściwą ścieżką. Router odpowiedzialny będzie za przekazywanie pakietów do następnej sieci, która znajduje się na ścieżce, aby wybrać ścieżkę router będzie korzystał z części adresu, która dotyczy sieci. Funkcja przełączania będzie pozwalać routerowi na zaakceptowanie pakietu w jednym interfejsie i przekazanie go do innego interfejsu. Natomiast funkcja wyznaczania ścieżki pozwoli routerowi na wybranie najbardziej odpowiedniego interfejsu za którego pośrednictwem zostanie przesłany pakiet. Część adresu, która dotyczy węzła odnosi się do określonego portu w routerze, który prowadzi do kolejnego routera we właściwym kierunku. 44 Protokoły routingu, protokoły routowalne:  Protokół routowalny: to dowolny protokół sieciowy, który będzie dostarczał informacji z adresu warstwy sieci umożliwiając tym przenoszenie pakietu pomiędzy hostami w oparciu o system adresowania. Routowane protokoły definiują przede wszystkim format i zastosowanie pól wewnątrz pakietu. Przykładem takiego protokołu może być protokół IP.  Protokół routingu: obsługuje routowany protokół przez dostarczenie mechanizmów współdzielenia informacji na temat routingu. Komunikaty routingu przemieszczają się pomiedzy routerami, przez co umożliwia routerom na komunikowanie się ze sobą w celu aktualizacji przechowywanych przez nie tablic routingu. Przykładami takich protokołów mogą być : RIP (Routing Information Protocol), IGRP (Interio Gateway Routing Protocol), OSPF (Open Shortest Path First). Routing wieloprotokołowy: Rys. 15 Routery przenoszą ruch sieciowy, który pochodzi z wszystkich routowanuch protokołów w sieci. 45 [Akademia sieci Cisco. Pierwszy rok nauki Vito Amato, Wayne Lewis Wydawnictwo MIKOM 2001r. str.177] Routery maja zdolność równoczesnego obsługiwania wielu niezależnych protokołów routingu oraz przechowywać tablice routingu dla kilku routowanych protokołów równocześnie. Taka cecha pozwala routerom na dostarczanie pakietów, które pochodzą z wielu routowanych protokołów za pośrednictwem tych samych łączy danych. Routing statyczny: Routing statyczny jest zarządzany w sposób ręczny czyli konfigurowany przez administratora sieci. Jeżeli zajdzie taka sytuacja ze topologia sieci ulegnie zmianie wtedy administrator musi ręcznie dokonać aktualizacji poszczególnych pozycji tablic routingu. Routing statyczny ma kilka użytecznych aplikacji, do których należą np. wiedza administratora na temat topologii sieci, celem routingu dynamicznego jest ujawnienie sporej ilości danych dotyczących sieci. Ze względu na bezpieczeństwo wskazane jest ukrywanie części sieci. Routing tez pozwala administratorowi sieci rozleglej na określenie, które informacje dotyczące zastrzeżonych obszarów sieci powinny być rozgłaszane. 46 Rys. 16 Elementy routingu statycznego [Akademia sieci Cisco. Pierwszy rok nauki Vito Amato, Wayne Lewis Wydawnictwo MIKOM 2001r. str.178] W przypadku gdy dostęp do sieci odbywa się tylko z jednej ścieżki wystarczającym rozwiązaniem jest użycie routingu statycznego. Routing dynamiczny: Routing dynamiczny działa w odmienny sposób niż routing statyczny. Po wprowadzeniu przez administratora sieci poleceń konfiguracyjnych, które inicjują routing dynamiczny informacje na temat tras są automatycznie aktualizowane przez proces routingu, za każdym razem gdy z sieci otrzymywane są nowe dane. Informacje te są wymieniane pomiędzy routerami jako element procesu aktualizowania. Powodzenie routingu dynamicznego będzie zależało od dwóch podstawowych funkcji routera a są nimi :  Obsługa tablic routingu,  Uaktualnień tabel routingu – do innych routerów. 47 Routing dynamiczny będzie korzystał z protokołów routingu w celu dzielenia się informacjami. Protokół będzie definiował nam zbiór reguł stosowanych przez router podczas procesu komunikacji z routerami sąsiednimi. Protokół routingu będzie opisywał np. :  Sposób wysyłania uaktualnień.  W jakim czasie wysłać uaktualnienia.  Jak zlokalizować odbiorcę uaktualnienia. Rys. 17 Definiowanie najlepszej scieżki za pomocą różnorodnych metryk Podczas dokonywania aktualizacji tablicy routingu najważniejszym celem jest wyznaczenie najlepszych informacji które należy umieścić w tablicy. Każdy algorytm routingu generuje liczbę tzw. (metryczkę), która odpowiada każdej ścieżce w sieci. Zazwyczaj im mniejsza metryczka tym lepsza jest ścieżka. Metryczki mogą być wyznaczone w oparciu o pojedyncze charakterystyki ścieżki, aby uzyskać bardziej złożoną metryczne należy połączyć kilka charakterystyk. Najczęściej stosowane metryki obejmować będą:  Liczbę skoków: Inaczej mówiąc jest to liczba routerów, przez które musi przejść pakiet aby dotrzec do celu. Im mniejsza jest liczba tych skoków tym metryka jest lepsze. 48  Pasmo: jest to nic innego jak pojemność łącza odwołując się do Rys. 17 łącze T1 z pojemnością 1544 Mb/s będzie lepsze ni łącze dzierżawione 64 kb/s.  Opóźnienie: określa nam czas potrzebny na przesłanie pakietu z punktu źródłowego do punktu docelowego.  Obciążenie: jest to suma aktywności w zasobach sieciowych, takich jak np. łącze bądź router.  Niezawodność: określa nam stopę błędu każdego łącza w sieci.  Takty zegara: definiuje opóźnienie łącza danych wyrażone w taktach zegara IBM PC (w przybliżeniu równa się to 55 milisekund )  Koszt : wartość, która wyznaczana jest w oparciu o pasmo, oraz wydatki pieniężne związane z siecią. Algorytmy routingu według wektora odległości: Algorytmy wektora odległości maja za zadanie okresowo rozsyłać kopie tablic routingu pomiędzy routerami. Regularne aktualizacje tablic routingu odzwierciedlają wszelkie zmiany które zachodzą w topologii sieci. Każdy router otrzymuje tablice routingu od routera sąsiadującego Rys. 18 Routing wektora odległości. 49 Każdy router dostaje tablice routingu od sąsiadującego routera. Jak widać na Rys. 18. Router B dostaje informacje od routera A. Router B dodaje związany z nim wektor odległości , zwiekszając w ten sposób otrzymany wektor odległości i przekazuje zmodyfikowaną tablicę routingu do routera, który z nim sąsiaduje czyli do routera C. Ten sam proces powtarzany jest we wszystkich kierunkach pomiędzy wszystkimi routerami sąsiadującymi. Taki algorytm pozwala na modyfikowanie oraz obsługę informacji , które dotyczą topologii sieci. Niestety algorytm ten nie pozwoli routerom na poznanie dokładnej topologii sieci złożonej. Algorytm routingu stanu łącza: Kolejnym podstawowym algorytmem routingu jest algorytm stanu łącza, który znany jest również pod nazwą algorytmu najkrótszej ścieżki SPF- (Shortest Path First). Przechowują one bazy danych , które dotyczą topologii sieci, jeżeli algorytm nie posiada określonej informacji o odległych sieciach ani żadnych wiadomości o dalszych routerach, to w takim przypadku algorytm stanu łącza posiada pełną wiedze o dalszych routerach i połączeniach. Routing stanu łącza głównie korzysta z ogłoszeń łącza LSA (Link State Advertisment) , topologicznej bazy danych, drzewa SPF, algorytmu SPF oraz tablicy routingu ścieżek i portów prowadzących do każdej sieci. Zrównoważony routing hybrydowy:5 Trzeci typ protokołu routingu jest to połączenie routingu wektora odległości oraz stanu łącza i nosi on nazwę zrównoważonego routingu hybrydowego. Stosuje on wektor odległości dla wyznaczenia najlepszej ścieżki do punktu docelowego, jednak różni się znacząco od większości protokołów wektora odległości, ponieważ aktualizacja bazy danych są wyzwalane poprzez zmiany topologii sieci. 5 Akademia sieci Cisco. Pierwszy rok nauki Vito Amato, Wayne Lewis Wydawnictwo MIKOM 2001r. str.195-196 50 Rys. 19 Routing hybrydowy łączy cechy routingu stanu łącza oraz routingu wektora odległości. [Akademia sieci Cisco. Pierwszy rok nauki Vito Amato, Wayne Lewis Wydawnictwo MIKOM 2001r. str.196] Można powiedzieć że zrównoważony routing hybrydowy jest szybko zbieżny, bardzo podobnie jak routing stanu łącza. Jedyne róznice między nimi są takie że routing hybrydowy wykorzystuje mniejsze ilości zasobów sieci takich jak pasmo , pamięć i praca procesora. Przykładami takiego routingu mogą być np. : Cisco EIGRP. 2.2 W jakiej sieci można zastosować firewalle (architektury) Podrozdział ten jak sama nazwa wskazuja będzie wyjaśniał nam aspekty dotyczące architektur firewalli. Poznamy zatem te najbardziej klasyczne zasady budowy firewalii mianowicie firewali z pojedynczym i podwójnym segmentem dmz itp. 2.2.1 Architektury pojedynczego firewall’a Obecnie na rynku są dwie dominujące architekturze pojedynczego oraz architektury firewalla. Mówimy tutaj o podwójnego firewalla. Architektura pojedynczego firewalla jest prostsza i jest zbudowana z jednego urządzenia które ma za zadanie 51 kontrolować ruch sieciowy oraz poddawać filtrowaniu . Jeżeli wybierzemy architektóre pojedynczego firewall możemy skorzystać z kilku typowych modeli:  Pojedynczy firewall z pojedynczym DMZ (Demilitarized zone).  Pojedynczy firewall ze złożonym DMZ.  Pojedynczy fireewall bez obsługi DMZ. Pojedynczy firewall z pojedynczym DMZ: Firewall z pojedynczym DMZ jest najbardziej popularną architekturą ponieważ jest ona ogólnego zastosowania. Z tą architekturą firewall posiada trzy interfejsy:  Interfejs wewnętrzny, który jest połączony z siecią chronioną  Zewnętrznego interfejsu który jest połączony z Internetem.  Interfejs DMZ, który połączony jest siecią w której znajdują się serwery oraz systemy do których dostają się zewnętrzni użytkownicy. Rys. 20 Pojedynczy firewall z pojedynczym DMZ W tej architekturze ruch sieciowy kontrolowany jest w trzech stronach. Ruch sieciowy, który przychodzi od strony Internetu dozwolony jest tylko do zasobów segmentu DMZ, natomiast zabroniony dla dostępu do sieci chronionej. Ruch sieciowy odbywający się od segmentu DMZ będzie dozwolony zarówno do sieci chronionej jak i do systemów pochodzących z Internetu. W końcu ruch sieciowy odbywający się od sieci chronionej 52 będzie dopuszczony dla segmentu DMZ jak i dla systemów pochodzących z zewnętrznego Internetu. We wszystkich sytuacjach, jedyny ruch jaki powinien był zostać dozwolony jest ten który znajduje się na liście kontroli dostępu (ACL) Rys. 20 ilustruje nam firewall z pojedynczym DMZ z nałożonymi restrykcjami na ruch sieciowy. Pojedynczy firewall ze złożonym DMZ: Firewall z wielokrotnym DMZ jest dość podobny do pojedynczego, jedyną różnicą jest to że DMZ został rozdzielony na dwa osobne segmenty które znajdują się poza firewallem. Nie ma żadnych praktycznych ograniczeń co do numeru segmentu DMZ jedyną restrykcja jaka się pojawi będzie to numer interfejsu który będzie znajdował się w firewallu. Ta architektura sprawdza się dobrze kiedy zachodzi potrzeba do oddzielnych zasobów na odmiennych segmentach DMZ. Ze względów bezpieczeństwa zastosowanie oddzielnych zasobów jest bardziej praktyczne ponieważ wszystkie zasoby nie są narażone na ewentualnie zaatakowanie. 53 Rys. 21 Pojedynczy firewall ze złożonym DMZ. Ruch sieciowy w tym przypadku odbywa się tak jak poprzednio z tą tylko różnicą że zasoby DMZ są rozdzielona na 2 odrębne segmenty, które nie są ze sobą jakikolwiek połączone. Pojedynczy fireewall bez obsługi DMZ: Pojedynczy firewall bez obsługi DMZ będzie pełnił tylko role ochrony dla ruchu sieciowego który będzie napływał od strony zewnętrznego Internetu. Główną regułą tego firewalla jest to że żaden ruch z nie zaufanego źródła nie może przedostać się do sieci wewnętrznej. Firewall będzie skupiał sie na dwóch głównych rzeczach mianowicie:  Będzie uniemożliwiał zewnętrznym hostom inicjowanie połączeń do chronionego zasobu sieci.  Będzie kontrolował ruch sieciowy oraz filtrował pakiety pochodzące od hostów wewnętrznych, ponadto będzie miał możliwość implementacji oprogramowania odpowiedzialnego za dogłębne filtrowanie np. : Websense, SurfControl 2.2.2 Architektury podwójnego firewall’a Architektura ta będzie bardzie złożona od poprzedniej i jest stosowana w sieciach, w których bezpieczeństwo danych i kontrola dostępu jest sprawą kluczową. Będziemy mieli tutaj do czynienia z dwoma firewallami, które znajdują się po przeciwnych stronach czyli przed wejściem do sieci chronionej jak i przed wejściem do zewnętrznego Internetu. Występują tutaj również zasoby DMZ które są scentralizowane jako jeden segment. 54 Rys. 22 Architektura podwójnego firewalla Architekturę tą możemy spotkać zaimplementowaną w takich urządzeniach jak np. Cisco PIX, Microsoft ISA Firewall Srever. Stosując powyższa architekturę zyskujemy dodatkowe bezpieczeństwo, ponieważ w razie ataku na sieć atakujący zmuszony jest pokonać dwa oddzielne firewalle aby uzyskać dostęp do chronionych zasobów sieci. Ponadto atakujący musi nastawić się na to że oba te firewalle nie będącej samej technologii tak wiec jest to kolejne utrudnienie które ma na celu zniechęcenie jego działań. 2.2.3 System firewall (single/dual) System firewall określał nam będzie ilość urządzeń używanych w celu chronienia sieci oraz zasobów znajdujących się w jej obrębie. Prowadzi to do tego że system firewalli będzie w stanie rozdzielać swój system ochrony na warstwy, które będą odpowiedzialne za osobne segmenty ochrony, mowa tutaj jest np. o filtrowaniu pakietów, zarządzaniem ruchem sieciowym itp. System firewall oparty jest o dwie główne architektury: single system firewall, dual system firewall. 55 Single system firewall: Single system firewall składa się z następujących warstw:  Router zewnętrzny  Segment sieci znajdujący się między zewnętrznym routerem i firewallem  Segment DMZ Rys. 23 Single firewall system W skrajnej warstwie systemu firewall zewnętrzny router powinien być pierwszym punktem kontroli ruchu sieciowego (Filtrowanie WE/WYJ na firewallu). Jedyny ruch sieciowy, który będzie przepuszczany przez router będzie ruch przeznaczony dal firrewalla, bądź zasobów chronionych przez ten firewall.. Pierwszy router pełni łatwiejszą rolę mianowicie monitoruje ruch sieciowy w segmencie pomiędzy routerem a firewallem, ponieważ tylko ruch, który powinien być dostarczony do firrewalla powinien istnieć w tym segmencie. Drugi zaś zabezpiecza firewall przed niedozwolonym dostępem do niego w ten sposób pomagając zapewnić dodatkowe 56 zabezpieczenie od nieautoryzowanego dostępu. Jeżeli zostanie wykryty takowy niedozwolony dostęp zostanie on zablokowany na routerze. Należy pamiętać że oprócz ochraniania firewalla oraz zasobów sam router powinien być zabezpieczony aby nie stał się łatwym celem bezpośredniego ataku z zewnątrz. Segment sieci, który znajduję się między zewnętrznym routerem i firewallem jest pierwszym punktem dla implementacji wykrywania oraz zapobiegania wtargnięć (IDS/IPS), ponieważ tylko jawny dozwolony ruch sieciowy powinien był zostać dopuszczony by przejść przez router, ntomiast IDS/IPS może zostać tak skonfigurowane by wysyłać alarm tylko w momencie wykrycia niedozwolonego ruchu sieciowego. Sam firewall jest następną warstwą i powinien on być skonfigurowany w taki sposób by zezwalał tylko na ruch odbywający się w kierunku chronionych zasobów, DMZ bądź wewnętrznych segmentach sieci. Zasoby DMZ powinny być chronione po przez połączenie oparte o host-firewall oraz sieć-IDS/IPS, taka struktura pozwala na dokładne określenie jaki ruch zostanie dozwolony a jaki ma być zabroniony. Taka struktura skutecznie dostarcza trzy oddzielne i odmienne warstwy filtrujące dla zewnętrznego routera w celu dostarczenia maksimum ochrony dla zasobów znajdujących się w DMZ. W końcu sieć wewnętrzna chroniona jest przez filtrowanie, które odbywa się na routerze i firewallu oraz obejmuje IDS/IPS między firewallem a siecią chronioną, co pozwala na rozpoznanie i monitorowanie całego ruchu, który pochodzi od firewalla. Dual system firewall: W tej architekturze system firewall składa się z następujących warstw:  Router zewnętrzny  Segment sieci pomiędzy zewnętrznym routerem i zewnętrznym firewallem  Zewnętrzny firewall  Segment DMZ  Wewnętrzny firewall 57 Rys. 24 Dual system firewall Jedyną różnicą pomiędzy systemami dual/single jest zastosowanie dwóch firewalli. Ma to na celu dostarczenia oddzielnych i odmiennych punktów w sieci do kontroli strumienia ruchu z odpowiednim wejściem i wyjściem, które filtrowane są na zewnętrznym firewallu. 2.2.4 Pozostałe architektury firewalli Router osłaniający: Jest to jedno z najtańszych rozwiązań uzywanych w budowie firewalli, ponieważ filtrowanie pakietów odbywa się za pomocą jednego routera, który chroni całą sieć. System ten jest tani z tego względu iż potrzebny jest tylko jeden router, który można w 58 bardzo łatwy sposób skonfigurować tak aby filtrował pakiety. Główną zaletą tego systemu jest wysoka wydajność. Rys. 25 Architektura firewalla - Router osłaniający. Z punktu widzenia bezpieczeństwa nie jest to jednak zbyt dobre rozwiązanie ponieważ mamy do dyspozycji tylko filtrowanie pakietów. Jeżeli zabezpieczenia na routerze zostaną złamane dostep do sieci wewnętrznej zostanie uzyskany ponieważ dalej nie ma żadnych zabezpieczeń. Zatem ta architektura może być stosowana jedynie w sieciach gdzie wykorzystywane są proste protokoły oraz ich liczba jest ograniczona. Takie rozwiązanie idealnie nadaje się gdy chroniona sieć wewnętrzna posiada dobrze zabezpieczone pojedyncze hosty. Host dwusieciowy: Architektura ta zbudowana jest na bazie hosta, który posiada przynajmniej dwa interfejsy sieciowe. Host ten udostepnia usługi pośredniczenia bądź pełni rolę routera i realizuje przeźroczyste pośredniczenie. 59 Rys. 26 Architektura firewalla – host dwusieciowy. Aby host dwusieciowy pełnił rolę firewalla należy włączyć funkcje trasowania pakietów, co będzie skutkowało tym że pakiety IP np. z Internetu nie będą bezpośrednio przesyłane do drugiej sieci w tym przypadku do sieci wewnętrznej. Systemy, które chronione są tym firewallem mogą się komunikować z tym hostem jak i również systemy zewnętrzne. Host dwusieciowy może świadczyć usługi tylko po przez bezpośrednią interakcje z użytkownikiem. Skutkuje to tym że każdy użytkownik chcący skomunikować się bezpośrednio z hostem musi posiadać własne konto. Niestety konta użytkowników niosą ze sobą poważne problemy ponieważ użytkownicy mogą niespodziewanie włączyć niebezpieczne usługi co zagrozi bezpieczeństwu sieci. Systemy te nie będą w stanie komunikować się ze sobą nawzajem, ponieważ ruch IP 60 pomiędzy nimi jest całkowicie zablokowany. Minusem takich hostów jest ich mała wydajność, ponieważ muszą pracować oddzielnie przy każdym połączeniu co wiąże ze sobą potrzebe większej ilości zasobów. Ponieważ host dwusieciowy jest pojedynczym miejscem obrony, dlatego musi on być bardzo dobrze zabezpieczony. Ekranowany host: Architektura ta ma za zadanie udostępniać usługi z hosta, który jest przyłączony do sieci wewnętrznej z wykorzystaniem oddzielnego routera. Głównym zabezpieczeniem w tej architekturze jest filtrowanie pakietów. Rys. 27 Architektura firewalla – ekranowany host Host bastionowy to komputer specjalnie zabezpieczony, który będzie udostępniał wybrane usługi w Internecie. Filtrowanie pakietów na routerze jest skonfigurowane w taki sposób aby aby tylko host bastionowy jako jedyny z sieci wewnętrznej, z którym 61 będą mogły łączyć się komputery z Internetu. Architektura ta zapewnia lepsze zabezpieczenie oraz zwiększenie użyteczności. Niestety poważnym minusem jest to że jeżeli napastnikowi uda się włamać do hosta bastionowego wówczas uzyska pełen dostęp do sieci wewnętrznej. Ekranowana podsieć: W zastosowaniu tej architektury korzysta się z dodatkowych elementów, które pozwolą nam na osięgnięcie wyższego poziomu bezpieczeństwa. Pojawi nam się tutaj sieć peryferyjna czyli router zewnętrzny oraz router wewnętrzny, będzie ona stanowić dodatkową warstwę bezpieczeństwa. W przypadku włamania się do hosta bastionowego napastnik uzyskuje jedynie dostęp do sieci peryferyjnej, tak więc będzie mógł podejrzeć ruch sieciowy odbywający się tylko w tej sieci. Rys. 28 Architektura firewalla – ekranowana podsieć Host bastionowy jest głównym miejscem kontaktu połączeń przychodzących z zewnatrz i wiekszośćjego czynności skupia się na działaniu jako serwer Proxy. Router wewnętrzy 62 często nosi nazwę routera dławiącego, który zabezpiecza sieć wewnętrzną zarówno od strony Internetu oraz sieci peryferyjnej. Wieloczęściowa sieć ekranowa: Architektura ta zbudowana jest z jednego routera wewnętrznego oraz zewnętrznego a pomiędzy nimi występuje kilka podsieci. Przeważnie podsieci te połączone są ze sobą za pomocą jednego lub więcej hostów wielosieciowych. Rys. 29 Architektura firewalla – wielocześciowa sieć ekranowa Architektury tej można użyć aby zapewnić wielowarstwowe zabezpieczenie oraza zapewnić ochrone hosta Proxy za pomocą routerów. Host wielosieciowy zapewni nam bardziej dokładną kontrolę połączeń, takie rozwiązanie pozwoli nam na stworzenie pełnej wielowarstwowej ochrony. Wymaga to jednak dokładnej konfiguracji hosta z wieloma interfejsami, aby móc w pełni wykorzystać zalety takiego rozwiązania. Architektura ta może zwiększyć wydajnośc maszyn, które intensywnie używają zasobów sieciowych, ponadto architektury wykorzystujące wieloczęściową sieć ekranową są odpowiednie dla sieci, które wymagająwysokiego poziomu zabezpieczeń. 63 2.2.5 Listy ACL oraz VLAN-y Listy ACL (Access List Control): Listy ACL (Access List Control) możemy określić mianem listy warunków, które używane są podczas sprawdzania ruchu w sieci, który kierowany jest przez interfejsy routera. Listy maja za zadanie informować router jakie pakiety powinny zostać zaakceptowane a jakie odrzucone, wybór ten dokonywany jest po przez sprawdzenie czy pakiet spełnia konkretny warunek zawarty w liście. Listy ACL mogą zostać utworzone dla każdego protokołu routowalnego przykładem tego może być np. protokół IPX.. Aby umożliwić filtrowanie ruchu sieciowego w listach ACL musi być określone czy pakiety mają być blokowane bądź przekazywane na interfejsach routera. Następnie router sprawdza każdy pakiet i w zależności od warunków znajdujących się w liście ACL przekaże go albo odrzuci. Lista ACL musi być definiowana oddzielnie dla każdego protokołu oraz interfejsu. Tak więc aby móc kontrolować ruch przychodzący i wychodzący należy utworzyć dwie osobne listy AC, ponadto na każdym interfejsie można zdefiniować dwa kierunki oraz wiele protokołów. Możliwości list ACL są następujące:  Umożliwienie kontrolowania ruchu w sieci,  Zapewnienie podstawowych zabezpieczeń podczas dostępu do sieci,  Ograniczenie ruchu i i zwiększenie wydajności sieci,  Określenie do jakich obszarów sieci może mieć dostęp użytkownik. Podczas tworzenia listy ACL na routerze wymagane jest aby podać unikalny numer identyfikacyjny, który odpowiada za typ utworzonej listy kontroli dostępu. 64 Protokół Zakres IP 1-99 , 1300-1999 IPX 800-899 Extender IP 100-1999 , 2000-2699 Apple Talk 600-699 Extender IPX 900-999 IPX Service Advertising Protocol 1000-1099 Tab. 5 Zakres numerów właściwych dla typu listy. Standardowe listy ACL stosowane są w momencie gdy zachodzi potrzeba blokowania całego ruchu jaki odbywa się w sieci, dopuszczenia całego ruchu bądź odrzucenia zestawu protokołów. Standardowe listy ACL będą sprawdzać adresy źródła trasowalnych pakietów co w efekcie będzie kończyło się przyznaniem bądź odebraniem prawa do wysłania informacji wyjściowych. Do utworzenia standardowej listy ACL stosuje się standardową wersję polecenia globalnego konfiguracji list kontroli dostępu np. : Router(config) # access-list nuemer-listy-dostępu {permit | deny} źródłó {maska źródła} Tab. 6 Tworzenie standardowej listy ACL Natomiast do usuwania standardowych list kontroli dostępu stosuje się polecenie którego składnia wygląda następująco: Router(config) # no access-list numer-listy-dostepu Tab. 7 Usuwanie listy ACL 65 Aby przyjrzeć się listom ACL przedstawimy przykład, który zezwalał będzie na przekazywanie ruchu pochodzącego wyłącznie z sieci o adresie 172.16.0.0 , natomiast wszelki ruch, który nie pochodzi z 172.16.0.0 będzie blokowany. Rys. 30 Przykład dwóch podsieci połączonych ze sobą za pomocą routera. Aby przepuszczać ruch sieciowy pochodzący z sieci źródłowej 172.16.0.0 należy zastosować następującą linie poleceń: Router(config) # access-list permit 172.16.0.0 0.0.255.255 Router(config) # interface Ethernet0/0 Router(config) # ip access-group 1 out Router(config) # interface Ethernet1/0 Router(config) # ip access-group 1 out Tab. 8 Linia poleceń listy ACL Polecenia zawarte wyżej realizują utworzenie listy kontroli dostępu, której celem będzie zezwolenie na ruch sieciowy pochodzący z adresu 172.16.0.0 natomiast ruch sieciowy odbywający się na interfejsach E0/0 oraz E1/0 będą blokowane, ponadto polecenie ip access-group 1 out grupuje liste ACL do interfejsu wyjściowego. 66 Rozszerzone listy ACL wykorzystywane są najczęściej w celu testowania wyrażeń warunkowych, ponieważ zapewniają szerszy zakres kontroli niż standardowe listy kontroli dostępu. Rozszerzona liste ACL najlepiej jest stosować wówczas gdy np. chcemy zezwolić na przekazywanie ruchu WWW, blokując jednocześnie transmisje FTP albo Telnet. Mogą ponadto sprawdzać pakiety pod katem określonych protokołów, numerów portów bądź innych parametrów. Umożliwi nam to większą elastyczność podczas określaniu warunków, które maja być sprawdzane przez listę ACL. Pełna postać polecenia rozszerzonej listy ACL : Router(config) # access-list numer-listy-dostepu {permit | deny} protokół źródło {maska-źródła miejsce-przeznaczenia maska-miejsca przeznaczenia} {operator} Tab. 9 Tworzenie rozszerzonej listy ACL Polecenie ip access-group łączy rozszerzoną listę ACL z interfejsem wyjściowym. Ważne jest to że na jeden port oraz na jeden protokół może przypadać tylko jedna lista ACL, którego składnia polecenia wygląda następująco: Router(config) # ip access-group access-list numer-listy dostepu {in | out} Tab. 10 Łączenie rozszerzonej listy ACL Adresy przeznaczenia, źródła oraz określone porty, które stosują rozszerzone listy ACL muszą być oznaczone poprzez liczby z zakresów o 100 do 199. Zarezerwowane numery portów znajdują się w tabeli poniżej: 67 Nr. portu Słowo kluczonwe Opis 0 ZAREZERWOWANY 1-4 NIEPRZYPISANE TCP/UDP 20 FTP-DATA FTP (DANE) TCP 21 FTP FTP TCP 23 TELNET POŁACZENIE Z TCP TERMINALEM 25 SMTP SMTP TCP 42 NAMESERVER SERWER NAZW TCP 53 DOMIAN DNS TCP/UDP 69 TFTP TFTP UDP 70 GOPHER TCP/IP 80 WWW TCP 133-159 NIEPRZYPISANE 160-223 ZAREZERWOWANE 161 FNP 224-241 NIEPRZYPISANE 242-255 NIEPRZYPISANE UDP Tab. 11 Zarezerwowane numery porów [www.iitis.gliwice.pl/~emanuel/materialy/sieci/12_listy%20ACL.ppt slajd 39-40] Listy ACL powinny być stosowane w routerach, które będą pełniły role firewalli oraz takich, które często umieszczane są pomiędzy siecią wewnętrzną a siecią zewnętrzną. Taki router będzie tworzył ścinane ogniową oraz zapewniał odizolowanie infrastruktury sieci. Listy te również można stosować w routerach umieszczonych między dwoma częściami sieci w celu kontroli ruchu wypływającego oraz wpływającego z określonej części sieci wewnętrznej. Aby w pełni wykorzystać zalety list ACL powinny być one tworzone na routerach granicznych, które umieszczone są na krańcach sieci. Zapewni to podstawowe zabezpieczenie prywatnych obszarów sieci przed niedozwolonym ruchem pochodzącym np. z słabiej kontrolowanego obszaru sieci. Ostatnim aspektem dotyczącym list ACL jest ich weryfikacja. Polecenie ip interface wyświetli nam 68 informacje o interfejsie IP oraz poda nam czy zostały ustawione listy ACL czy też nie. Natomiast polecenie show acces-list wyświetli nam zawartość wszystkich list ACL. VLAN (Virtual Local Area Network): Sieć VLAN jest niczym innym jak logiczną grupa usług sieciowych, które nie są ograniczone przez żaden segment sieci LAN. Ułatwiają administrowanie grupami stacji roboczych oraz serwerów, które mogą komunikować się między sobą w taki sposób jakby znajdowały się w jednym segmencie sieci LAN. Konfiguracja sieci VLAN odbywa się w postaci programowej przez co nie wymaga fizycznego podłączenia sprzętu sieciowego. Stacja roboczą bądź serwer może komunikować się z innymi stacjami, które znajdują się w tej samej grupie VLAN w innym przypadku komunikacja nie będzie możliwa. Sieci VLAN tworzone są po to aby zwiększyć skalowalność oraz bezpieczeństwo sieci, ponadto usprawniają zarządzanie nia. Routery w sieciach VLAN zapewniają filtrowanie ruchu rozgłoszeniowego, zapewniają bezpieczeństwo oraz mogą służyć do zarządzania przepływem. Pomiędzy poszczególnymi sieciami VLAN ruch powinien być routowany. Sieć VLAN jest domena rozgłoszeniową, która tworzona jest przez jeden bądź więcej switch’y. 69 Rys. 31 Siec VLAN z jednym routerem i jednym switchem Na rysunku wyżej widzimy sieć VLAN jednym routerem i jednym switchem, zauważymy tutaj trzy domeny rozgłoszeniowe. Router przekierowuje ruch pomiędzy sieciami VLAN za pomocą routingu warstwy 3. Implementowanie sieci VLAN na switchu powoduje następujące działania:  W switchu dla każdej sieci VLAN tworzona jest odrębna tablica.  Sprawdzany jest adres odbiorcy w celu podejmowania decyzji o wysyłaniu pakietu,  W celu zapamiętania wykonywane jest wyszukiwanie w tablicy adresów tylko da tej sieci VLAN. Do sieci VLAN można przypisać każdy z portów switcha, porty przypisane do VLAN-u odbierają te same pakiety rozgłoszeniowe, ale porty które nie są przypisane do tej sieci VLAN nie przesyłają pakietów. Użytkownicy, którzy podłączeni są do tego samego współdzielonego segmentu sieci VLAN korzystają wspólnie z przepustowości tego segmentu. 70 Zalety sieci VLAN:  Łatwość w przenoszeniu stacji roboczych w sieci LAN  Zwiększenie bezpieczeństwa,  Łatwość nadzorowania ruchu panującego w sieci,  Łatwość w zmianie konfiguracji sieci LAN. Możemy wyróżnić trzy podstawowe rodzaje tworzenia sieci VLAN, które służą do sposobu określania przypisywania pakietów:  Sieć VLAN oparta na portach  Sieć VLAN oparta na protokołach,  Sieć VLAN oparta na adresach MAC. Sieć VLAN oparta na portach: Jest to najczęściej stosowana metoda tworzenia VLAN-ów, porty przypisywane są pojedynczo, w grupach bądź po kolei na poszczególnym switchu. Często stosowane jest tam gdzie do przypisywania adresów IP do hostów używany jest protokół dynamicznej konfiguracji (DHCP). Sieć VLAN oparta na protokołach: Podczas konfigurowania operacje te wykonywane są podobnie jak w przypadku adresów MAC, ale używany jest adres logiczny IP.W obecnym czasie metoda ta nie jest już tak często używana, ponieważ stosowany jest mechanizm DHCP. Sieć VLAN oparta na adresach MAC: W obecnym czasie również i ta metoda nie jest często stosowana, każdy adres musi być ręcznie wprowadzany do switcha, jest to sposób, który jest dosyć trudny w administracji oraz w rozwiązywaniu jakichkolwiek problemów. 71 Rys. 32 Przykład tworzenia VLAN-ów Rysunek 27 pokazuje technike tworzenia VLAN-ów. Sieć składa się z routera, switcha oraz hostów które znajdują się w odrębnych sieciach VLAN. Lista poleceń wprowadzana na switchu: Cisco Internetwork Operating System Software IOS (tm) C2950 Software (C2950-I6Q4L2-M), Version 12.1(22)EA4, RELEASE SOFTWARE(fc1) Copyright (c) 1986-2005 by cisco Systems, Inc. Compiled Wed 18-May-05 22:31 by jharirba Press RETURN to get started! %LINK-5-CHANGED: Interface FastEthernet0/2, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed 72 state to up %LINK-5-CHANGED: Interface FastEthernet0/3, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/3, changed state to up %LINK-5-CHANGED: Interface FastEthernet0/4, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/4, changed state to up %LINK-5-CHANGED: Interface FastEthernet0/5, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/5, changed state to up Switch> Switch>en Switch#Vlan database % Warning: It is recommended to configure VLAN from config mode, as VLAN database mode is being deprecated. Please consult user documentation for configuring VTP/VLAN in config mode. Switch(vlan)#vlan 10 name A VLAN 10 added: Name: A Switch(vlan)#vlan 20 name B VLAN 20 added: Name: B Switch(vlan)#exit APPLY completed. Exiting.... Switch#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#interface fastEthernet 0/2 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 10 Switch(config-if)#interface fastethernet 0/3 Switch(config-if)#switchport access vlan 10 73 Switch(config-if)#interface fastethernet 0/4 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 20 Switch(config-if)#end %SYS-5-CONFIG_I: Configured from console by console Switch#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#interface fastEthernet 0/1 Switch(config-if)#switchport mode trunk Switch(config-if)#end %SYS-5-CONFIG_I: Configured from console by console Switch# Switch# Tab. 12 Lista poleceń wprowadzana na switchu Kluczowe polecenia dla konfiguracji switcha to vlan 10 name A , za którego pomocą tworzymy VLAN. Kolejnym etapem jest wybranie interfejsu np. interface fastEthernet 0/2 co w następnym etapie ukazuje się przypisaniem interfejsu do konkretnego VLANu po przez użycie polecenia switchport mode access. Lista poleceń wprowadzana na routerze: --- System Configuration Dialog --- Continue with configuration dialog? [yes/no]: no Press RETURN to get started! Router>enable Router#conf t Enter configuration commands, one per line. End with CNTL/Z. Router(config)#interface fastEthernet 0/0 74 Router(config-if)#no shutdown %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up Router(config-if)#interface fastethernet 0/0.1 %LINK-5-CHANGED: Interface FastEthernet0/0.1, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0.1, changed state to up Router(config-subif)#encapsulation dot1q 1 Router(config-subif)#ip address 192.168.1.1 255.255.255.0 Router(config-subif)#interface fastethernet 0/0.1 Router(config-subif)#encapsulation dot1q 10 Router(config-subif)#ip address 192.168.5.1 255.255.255.0 Router(config-subif)#interface fastethernet 0/0.2 %LINK-5-CHANGED: Interface FastEthernet0/0.2, changed state to up Router(config-subif)#encapsulation dot1q 20 Router(config-subif)#ip address 192.168.6.1 255.255.255.0 Router(config-subif)#end %SYS-5-CONFIG_I: Configured from console by console Router# Tab. 13 Lista poleceń wprowadzana na routerze. W tym przypadku kluczowymi poleceniami są przede wszystkim interface fastEthernet 0/0 , którego wynikiem będzie inicjowanie interfejsu , po czym kolejne polecenie ip address 192.168.6.1 255.255.255.0 nadaje adres IP oraz maskę. 75 2.2.6 Wysoka dostępność w projektowaniu firewalli Firewalle są krytycznymi elementami w infrastrukturze sieci ważne więc jest aby firewall oraz jego wszystkie funkcje, które zapewnia były zawsze dostępne. Firewalle tzw. wysokiej dostępności ( High availability) są zwykle wykonywane w jednym z dwóch sposobów:  Active/passive failover  Active/active failover Niezależnie od metody (failover) jaką użyjemy firewall HA polega na realizowaniu dwóch firewalli w równoległej konfiguracji. W systemie Active/passive jeden firewall aktywnie przekazuje ruch sieciowy, natomiast drugi firewall jest całkowicie bierny i nie przekazuje żadnego ruchu sieciowego. Jeżeli wystąpi taka sytuacja że firewall aktywny z jakiegoś powodu przestanie poprawnie działać wtedy na jego miejsce wchodzi firewall pasywny, który staje się aktywny co pozwala na dalsze przekazywanie ruchu sieciowego bez utraty ciągłości. Natomiast w systemie Active/active każdy firewall jest w stanie przekazywać ruch sieciowy, który zazwyczaj określany jest przez odmienne konteksty bezpieczeństwa. Kontekst bezpieczeństwa to nic innego jak tylko zestaw reguł oraz fizycznych funkcji firewalla, które są realizowane w odniesieniu do polityki bezpieczeństwa w sieci. 76 Rys. 33 System Active/active failover Jak widzimy na powyższym rysunku jest to system Active/active. Firewall 1 obsługuje DMZ 1 natomiast firewall 2 obsługuje DMZ 2. Jeżeli z jakiegoś powodu firewall 2 przestanie działać to ruch sieciowy, który miał odbywać się do DMZ 2 zostanie wówczas obsłużony przez firewall 1 a następnie dostarczony do miejsca przeznaczenia czyli DMZ 2. Kluczowym aspektem tego jest to że Firewall 1 jak i Firewall 2 nie mogą jednocześnie być odpowiedzialne za ten sam zestaw reguł, który pozwoli na ruch do tego samego segmentu DMZ. Tak więc firewall 1 jest podstawową zaporą, która kontroluje cały ruch sieciowy odbywający się do segmentu DMZ 1 natomiast firewall 2 kontroluje ruch sieciowy odbywający się do segmentu DMZ 2 oraz ma funkcje przejścia ruchu sieciowego dla DMZ 1 w razie awarii firewalla podstawowego. 77 Rozdział III Jak działają firewalle Rozdział drugi skupia się na na dogłębnym zbadaniu w jaki sposób działają poszczególne firewalle sprzętowe jak i również programowe. Zajmiemy się tutaj firewallami zbudowanymi w oparciu o routery jak i również faktyczne firewalle CISCO PIX/ASA, Linux+NetFilter oraz Microsoft ISA Server. 3.1 Router’y szeroko pasmowe i Firewalle Routery to chyba najbardziej popularne urządzenia do zarządzania siecią, poniższy podrozdział pokarze nam podstawowe zasadzy działania oraz metody zabezpieczania sieci prostych routerów szerokopasmowych. 3.1.1 Jak działają Routery szerokopasmowe Wiele routerów szerokopasmowych takich jak np. routery firmy linksys pełnia funkcje zapory sieciowej przy użyciu funkcji zwanej NAT (Network Address Translation) w celu ukrycia wewn. hostów pod jednym wyjściowym adresem IP. Routery z funkcja NAT nie będą zatem spełniały zaawansowanych funkcji jakich oczekuje się od firewalli takich jak np. CISCO PIX bądź ASA, natomiast będą spełniały dobrze swoja role w zakresie translacji oraz filtrowania pakietów zapewniając tym sposobem pewien stopień zabezpieczenia jednakże bez dogłębnej penetracji pakietów nie będzie możliwe uzyskanie maksymalnej ochrony dla sieci. 78 Rys. 34 Działanie NAT na routerach pełniących role firewalla Powyższy rysunek prezentuje nam działanie routera jako firewalla, które można opisać w następujących krokach: 1. Klient inicjuje połączenie z hostem zewnętrznym (HOST B). 2. Router otrzymuje żądanie połączenia i wykonuje translacje na adres wewnętrzny. 3. Pakiety dostarczane są do zewnętrznego hosta (HOST B), które wysyłane są z zewnętrznego adresu IP routera. Tak samo zewnętrzny host (HOST B) będzie odpowiadał na zewnętrzny adres routera. 4. Kiedy router otrzyma odpowiedź od zewnętrznego hosta zaczyna sprawdzać tablice NAT 5. Jeżeli adres hosta zewnętrznego (HOST B) zostanie znaleziony w tablicy routera pakiety dostarczane są do hosta wewnętrznego (HOST A), który uważa że pakiety dostarczane są bezpośrednio od hosta zewnętrznego (HOST B). 79 Można smiało powiedzieć ze jest to odpowiedni poziom zabezpieczenia dla typowych sieci domowych, ważne jest jedna to aby zrozumieć ze sama usługa NAT nie zapewni dostatecznej ochrony dla sieci. Jak widać w dokumencie RFC 2663 w sekcji 9 NAT podatny jest na ataki typu DoS (Denial-of-Service), zatem oprócz użycia routera zalecałoby się użyć jakiegoś dodatkowego urządzenia w celu zapewnienia dodatkowej ochrony. Przykładem najlepszego szerokopasmowego routera mogą być np. routery Linksys, którymi można wykonać filtrowanie na poziomie aplikacji. 3.1.2 Linksys Routers/Firewall Obecnie na rynku firma Linksys wprowadza szeroką gamę routerów z podstawowymi i zaawansowanymi funkcjami firewalla zarówno dla sieci przewodowych jak i bezprzewodowych. Większość produktów dla sieci przewodowych rozpoczyna się od numeru modelu BEF, natomiast w przypadku produktów dla sieci bezprzewodowych numer modelu rozpoczyna się od WRT. Routery te projektowane są przede wszystkim z myślą o użytkownikach domowych, zatem podczas projektowania główna uwaga skupiana jest na ich prostocie. Usługa NAT występuje tutaj praktycznie we wszystkich modelach chociaż w niektórych modelach występują ograniczone funkcje. Niestety firma linksys nie określa jakie modele oraz jakie firmware posiada ograniczone funkcje. Przyjrzymy się zatem routerowi (BEFSR41v4 EtherFast Cable/DSL Router with 4-Port Switch), który przeznaczony jest przede wszystkim do zastosowań domowych jak i do małych biur. Posiada on podstawowe funkcje, które są łatwe w konfiguracji tak wiec nie będą sprawiały większej trudności nawet nie zaawansowanym użytkownikom. Przeglądnijmy zatem funkcje tego routera:  Funkcje bezpieczeństwa i filtrowania,  Funkcje routingu,  Funkcje administracji i zarządzania,  Funkcje pozostałe. 80 Funkcje bezpieczeństwa i filtrowania: BEFSR41v4 jest routerem z podstawową funkcja NAT, który może wykonywać filtrowanie portów w celu umożliwienia ruchu odbywającego się w obydwie strony z chronionego punktu sieci. W przeciwieństwie do wielu zapór, które maja za zadanie blokować bądź zezwalać na ruch po poprzedniej identyfikacji portów lub adresów IP Linksys ułatwił to poprzez braku identyfikacji, tak więc możemy blokować kilka portów bądź adresów bez zbędnej identyfikacji. Ruch sieciowy, który przychodzi stosuje minimalistyczna politykę bezpieczeństwa, która opiera się na blokowaniu całego ruchu do wszystkich portów bądź zezwalaniu na ruch. Natomiast filtrowanie pakietów przychodzących może być dokonywane tylko w oparciu numer portu docelowego więc nie ma możliwości ustanowienia, które hosty maja mieć dostęp do sieci chronionej. Ponadto router ten wspiera koncepcje DMZ (demilitarized zone) niestety w routerach nie jest to bezpieczne ponieważ pozwala to każdemu hostowi w Internecie uzyskać dostęp do hosta wewnętrznego w nieograniczony i niezabezpieczony sposób. Tak wiec ogólnie DMZ w zastosowaniu na routerach linksys jest złym pomysłem, zdarzają się jednak takie okoliczności, które wymagają łączności z systemem DMZ. W związku z tym DMZ to prosty, aczkolwiek całkowicie niepewny sposób zapewnienia dostępu do wewnętrznych zasobów. Ponieważ routery Liknsys wykorzystują NAT niektóre protokoły takie jak np. Poppe, IPSeec bądź PPTP (Point-to-Point Tunneling Protocol) mogą nie działać prawidłowo. Wynika to z tego że podczas działania NAT zmienia adres źródłowy pakietów , które tłumaczone są przez router. Aby móc ułatwić korzystanie z tych protokołów Linksys wprowadził do routerów możliwość obsługi VPN czyli tzw. wirtualnej sieci prywatnej. Przepuszczanie tuneli VPN pozwala na ruch odbywający się przez router, podczas enkapsulacji danych w protokole VPN operujemy na pakietach UDP za czym idzie to że router może wykonywać NAT na pakietach UDP co skutkowało będzie tym że nie zmieni się zawartość pakietów w protokole VPN. Tak więc aby umożliwić ruch odbywający się przez router należy włączyć na nim usługę VPN. 81 Funkcje routingu: Jak już wspomnieliśmy BEFSR41v4 znajduje swoje zastosowanie w małych firmach bądź w sieciach domowych router ten obsługuje podstawowe funkcje routingu aby móc zastosować je w środowisku gdzie znajduje się wiele podsieci wewnętrznych. Ponadto router ten jest w stanie skonfigurować trasy statyczne, mamy tutaj do czynienia z obsługą protokołu RIP ver. 1 oraz 2. Pomimo tego że RIP może okazać się dobrym rozwiązaniem dla małych firm, realizacja RIP na tym routerze jest na bardzo podstawowym poziomie i nie posiada jakichkolwiek funkcji zabezpieczających, dlatego z celów bezpieczeństwa należałoby rozważyć czy ten router jest odpowiednim rozwiązaniem aby użyć go jako firewall bądź w celu zapewnienia funkcjonalnego i zaawansowanego routingu. Funkcje administracji i zarządzania: Duża większość urządzeń Linksys korzysta z interfejsu Web do zarządzania routerem. Oczywiście interfejs ten używa protokołu transportowego HTTP. Niestety jak wiadomo protokół ten nie jest szyfrowany oraz bezpieczeństwa danych podczas transportu. Tak więc zaleca się na szczególną ostrożność w stosunku do haseł konfiguracji routera, ponieważ mogą być one w bardzo prosty sposób przechwycone np. za pomocą sniffera sieciowego. Model zabezpieczeń, który stosowany jest w tych urządzeniach opiera się o prosty model wspólnego zabezpieczenia hasłem, czyli wszyscy użytkownicy mogą zalogować się za pomocą tego samego loginu i tego samego hasła aby wykonać wszystkie funkcje zarządzania routerem. Routery Linksys posiadają zazwyczaj podstawowe funkcje syslog dzięki czemu router wysyła dziennik zdarzeń do serwera syslog. Dziennik ten można przeglądać bezpośrednio na routerze za pomocą wewnętrznego oprogramowania LOG-VIEWER. Funkcje pozostałe: Ze względu na to że większość użytkowników domowych bądź znajdujących się w małej firmie nie posiada serwera DHCP (Dynamic Host Configuration) urządzenia Linksys wyposażone zostały w funkcjonalny serwer DHCP, który wbudowany jest w router i w domyślnej konfiguracji jest włączony. Funkcja ta jak wiadomo pozwoli 82 użytkownikowi po prostu podłączyć komputer do jednego z portów routera/switcha w celu uzyskania pełnej konfiguracji karty sieciowej czyli uzyskania adresu IP, maski sieciowej itp. W celu ułatwienia komunikacji z różnymi dostawcami Internetu Linksys obsługuje wiele Typów połączeń internetowych. Domyślnym ustawieniem jest oczywiście DHCP do uzyskiwania zewnętrznego adresu IP, ale statyczne adresy IP będą obsługiwane przez połączenie typu PPPoE, zarówno rozwiązanie, które odnosi się do niektóry obszarów świata stosuje się wtedy połączenie Remote Access Service (RAS) . Większość routerów posiada również wsparcie dla DDNS (Dynamic Domian Name Server), pozwala to routerowi automatycznie aktualizować wpisy DNS dla hostów, które są chronione przez router ale muszą mieć dostęp do Internetu. 3.1.3 Konfiguracja routerów Linksys Routery Linksys wykorzystują interfejs Web do wykonywania wszelkich funkcji, które związane są z konfiguracją. Interfejs ten jest domyślnie dostępny dla każdego hosta znajdującego się wewnątrz sieci, jest on dostępny za pomocą przeglądarki internetowej np. Microsoft Internet Explorer. Po wpisaniu adresu IP urządzenia pojawi nam się okienko logowania gdzie należy podawać login oraz hasło. W przypadu routera, którym się zajmujemy czyli BEFSR41v4 interfejs podzielony jest na pięć głównych zakładek :  Setup,  Security,  Applications & Gaming,  Administration,  Status, 83 Rys. 35 Zakładka konfiguracyjna Status. [http://fengnet.com/book/firewallfundamentals/images/fu750503.jpg] Jedyna zakładką, w której nie mamy możliwości zmiany żadnej konfiguracji jest zakładka status w której wyświetli się jedynie status routera. Basic Setup: W tym routerze zakładka Setup składa się z czterech pozycji:  Basic Setup  DDNS  MAC Address Clone  Advanced Routing W zakładce Basic setup można konfigurować w jaki sposób router będzie łączył się z dostawcą usług internetowych (np. za pomocą PPPoE lub DHCP). W zależności od typu połączenia można będzie określić dodatkowe opcje, które będą dostępne na 84 ekranie. Można także określić nazwę domeny oraz hosta, ponadto można ustawić maksymalna jednostkę transmisji (MTU) dla routera. Ponadto w zakładce Basic setup jest również możliwość konfiguracji sieci lokalnej dla routera. Mówimy tutaj przede wszystkim o ustawieniu adresu IP wewnętrznego interfejsu, ustawieniu serwera DHCP. W ustawieniach serwera DHCP, można określić serwery DNS, jeżeli nie skonfigurujemy tego router będzie pobierał wartości serwera DNS od usługodawcy Internetu. Rys. 36 Zakładka Basic Setup routera Linksys 85 Zakładka DDNS odpowiada za konfiguracje routera z odpowiednimi ustawieniami w celu umożliwienia dynamicznej aktualizacji ustawień DNS lub użycia DynDNS, TZO gdy adres zewnętrzny routera jest stały. Zatem wystarczy wpisać nazwę użytkownika w przypadku (DynDNS) lub adresu e-mail w przypadku (TZO).Po dokonaniu tych operacji router będzie automatycznie aktualizował DNS. Zakładka MAC Address Clone odpowiada za konfiguracje określonego adresu MAC.W momencie gdy usługodawca ISP wymaga określonego adresu MAC do wykorzystania przez router można to skonfigurować właśnie za pomocą tej opcji. Rys. 37 Zakładka Advanced Routing routera Linksys Zakładka Advanced Routing umożliwi nam przede wszystkim konfiguracje NAT, jak i również RIP, ponadto możemy konfigurować trasy statyczne jak widać na Rys. 31. Konfiguracja NAT opiera sie na zasadzie włączyć/wyłączyć tak wiec nie jest zbyt skomplikowana. Aby włączyć routing RIP należy wybrać opcję Enable, a następnie wybrać rodzaj transmisji odbioru z pola rozwijanego. Aby wprowadzić trase statyczną 86 należy wypełnić poszczególne pola oraz określić jakiego interfejsu będzie używała trasa statyczna, na rysunku zaznaczonym interfejsem jest interfejs LAN. Security: Zakładka Security składa się z dwóch ekranów Filter oraz VPN Passthrough. Zarówno w jednym jak i w drugim przypadku konfiguracja dotyczy ruchu z sieci wewnętrznej oraz dostępu do zasobów wewnętrznych. Gdy przejdziemy do zakładki Filter będziemy mieli możliwość konfiguracji adresu IP, portu, adresów MAC z sieci wewnętrznej, które mogą być filtrowane. Dla przykładu jeżeli chcemy aby host o adresie IP 192.168.1.29 miał dostęp do Internetu można zatem określić zakres adresów IP w polu Filter IP Address Range i router na tej podstawie będzie określał jakie hosty będą miały dostęp a jakie nie. Podobnie wygląda sprawa jeżeli nie chcemy aby niektóre numery portów nie posiadały dostępu do sieci wewnętrznej. Należy jednak pamiętać że router posiada tylko pięć pozycji zarówno dla zakresu portów jak i zakresu adresów IP. 87 Rys. 38 zakładka Filter routera Linksys [http://fengnet.com/book/firewallfundamentals/images/fu750506.jpg] Jeżeli chcemy uzyc filtrowania adresów MAC należy kliknąć Edit MAC Filter Setting, oraz określić jakie adresy MAC powinny mieć dostęp, ponadto poniżej pojawią się cztery opcje :  Block Anonymous Internet Requests (domyślnie Enabled)  Filter Multicast (domyślnie Disabled)  Filter Internet NAT Redirection (domyślnie Disabled)  Filter IDENT(port 113) (domyślnie Enabled) Zakładka VPN Passthrough dostarcza pakiet konfiguracji, za którego pomocą możemy ustawić w sposób przejrzysty router dla połączen typu: PPPoE, PPTP, oraz ruchu z hostów wewnętrznych, który odbywa się do zewnętrznej sieci. Wszystkie ustawienia 88 domyślnie są wyłączone, tak wiec jeżeli mielibyśmy korzystać z NAT i mieć dostęp do zdalnych zasobów przy użyciu jednego z trzech protokółów należy włączyć te ustawienia. Applications & Gaming: Zakładka Applications & Gaming oferuje nam konfiguracje filtrowania ze źródeł zewnętrznych do wewnętrznych zasobów sieciowych. Znajdziemy tam pięć ekranów konfiguracyjnych są to :  Port Range Forwarding,  Port Triggering,  UPnP Forwarding,  DMZ,  QoS, W oknie Port Range Forwarding mamy możliwość skonfigurować router tak aby zezwolić na pewne typy ruchu od wszystkich wewnętrznych hostów przez określone porty oraz do określonego miejsca przeznaczenia. Taki sposób konfiguracji daje nam możliwość zabezpieczenia routera a także daje możliwość dostępu do aplikacji i zasobów na serwerze umieszczonym w sieci zewnętrznej. 89 Rys. 39 Zakładka Port Range Forwarding na routerze linksys. Jak widzimy na rysunku podczas konfiguracji podajemy jaki jest zakres portów danej usługi, która będziemy chcieli uruchamiać oraz ustalamy jej wewnętrzny adres IP. Zakładka Port Triggering pozwala na określenie zakres portów, które gdy zostaną wykryte przez router otrzymają zezwolenie na łączenie się z hostem wewnętrznym. W ten sposób aplikacje działające na serwerze zewnętrznym w odniesieniu do portów zadeklarowanych na routerze będzie uzyskiwał bądź nie uzyskiwał dostępu. Zazwyczaj stosuje się do obsługi aplikacji bądź gier, które pracują za pośrednictwem komputera aby zainicjować połączenie do centralnego serwera na jedyną porcie a następnie komunikować się z dowolnej liczby serwerów za pomocą innego zestawu portów. Zakładka UPnP Forwarding pozwala na skonfigurowanie przekierowań portów do urządzeń opartych na technologii UPnP. Jeżeli urządzenia te nie wykorzystują UPnP zaleca się korzystania z podstawowych przekierowan portów. 90 W zakładce DMZ mamy możliwość zidentyfikowania pojedynczego hosta, który będzie traktowany jako całkowicie niefiltrowany. Chociaż host ten wciąż używa NAT do komunikacji z zasobami zewnętrznymi router będzie zezwalał na całkowity ruch w stosunku do tego hosta. Zakładka Qos pozwoli zdefiniować konkretny poziom usług oraz priorytet dla różnych typów ruchu w sieci, stosuje się to zazwyczaj w stosunku do wrażliwych aplikacji takich jak np. wideokonferencje i Voice over IP (VoIP) w celu opóźnienia działania aplikacji. Rys. 40 Zakładka Administration, routera Linksys [http://ptgmedia.pearsoncmg.com/images/chap5_1587052210/elementLinks/thfu750509 .jpg] Ostatnią zakładka jest Administration, w której określamy w jaki sposób router będzie zarządzany i jak powinie być skonfigurowany proces logowania. Można również 91 wykonać aktualizacje oprogramowania oraz reset routera do ustawień fabrycznych. Na ekranie Management określamy jakie jest hasło dostępu do routera, ponadto można skonfigurować router aby umożliwić zdalny dostęp do zarządzania nim, co może być przydatne w momencie gdy potrzebujemy połączyć się z routerem będąc w fizycznym innym miejscu. Jednakże ze względu na to ze zarządzanie routerem odbywa się przez protokół HTTP, który nie jest szyfrowany zaleca się aby ze względów bezpieczeństwa nie używać zdalnego dostępu do routera. Opcja Log określa adres IP serwera syslog oraz włącza rejestrowanie zdarzeń z routera. Factory Defaults pozwoli nam na zresetowanie routera do ustawień fabrycznych, natomiast gdy chcemy zaktualizować oprogramowanie użyjemy opcji Firmware Upgrade. Kiedy router zostanie zaktualizowany uruchomi się ponownie z nowym oprogramowaniem. 3.2 Cisco PIX Firewall oraz ASA Firewall W tym podrozdziale przyjrzymy się firewall-om firmy CISCO, poznamy jego możliwości oraz metody zabezpieczania sieci. Ponadto przejdziemy przez proces podstawowej konfiguracji naszego firewalla za pomocą konsoli administracyjnej jak i również graficznego interfejsu użytkownika. 3.2.1 PIX / ASA Cechy firewalli PIX/ASA jest to potężny pakiet firewalla z możliwościami inspekcji pakietów oraz kontroli aplikacji. Plusem tych firewalli PIX/ASA jest to że zasadniczo wszystkie modele można uruchomić z tym samym oprogramowaniem, wyjątek stanowi tylko PIX 501 oraz PIX 506E. Funkcje pełnione przez ten firewall są następujące:  Funkcja pracy awaryjnej, gdie dwa firewalle PI potrafią zapewnić bezawaryjna prace oraz wysoka dostępność usług w sieci. Funkcja ta obsługiwana jest tylko w PIX 515E bądź wyższych modelach, i jest obsługiwana w obu standardach : active/passive oraz active/active, 92  Firewall PIX posiada wbudowany serwer DHCP aby móc zapewnić przydział adresów,  Grupowanie obiektów, administrator ma możliwość grupowania obiektów np. (usług, urządzen sieciowych) w logiczne grupy list. Ma to na celu uproszczenie list kontroli dostępu (ACL),  ACL do kontrolowania dostępu ruchu wychodzącego oraz przychodzącego. Firewall PIX może również wykonywać tzw. Prekompilacje list ACL przy użyciu narzędzia o nazwie TURBO ACL, który zapewnia lepsza wydajność,  Posiada wsparcie dla NAT zarówno jednokierunkowego jak również dwukierunkowego,  Posiada wsparcie dla synchronizacji zegara z serwerem czasu Network Time Protocol (NTP),  Możliwość monitorowania sieci z kontrolą procesora Simple Network Management Protocol (SNMP),  Usługi wirtualnych firewalli (występuje tylko w wersji 7.x oprogramowania ),  Konfiguracja oraz aktualizacja oprogramowania PIX za pomocą protokołów HTTP oraz HTTPS,  Usługi VPN zarówno dla sieci LAN-LAN jak również dla usług zdalnego dostępu,  Wsparcie PPPoE dla użytkowników łączących się z firewallem PIX xDSL (nie jest obsługiwane w oprogramowaniu 7.x),  Obsługa Qos (Quality of service),  Obsługa sieci opartej o protokół IPv6,  Obsługa multisesji w aplikacjach multimedialnych,  Dogłębna inspekcja pakietów takich usług jak np. HTTP, FTP, ESMTP oraz wiele innych,  Obsługa sieci VLAN. http://www.cisco.com/go/pix Tab. 14 Adres Web z informacjami na temat funkcji firewalla PIX 93 Są to tylko niektóre z funkcji firewalla PIX aby dowiedzieć się o pełnej liście jego funkcji można odwiedzić powyższą stronę: Firewall ASA posiada wiele takich samych funkcji jak wspomniany wyżej firewall PIX, chociaz posiada kilka unilakych funkcji, których nie posiada PIX są to mianowicie :  Intrusion Prevention System (IPS) system wyrywania włamań,  Kompatybilny z sieciowym oprogramowaniem takim jak, antywirus,antyspam, antyphishing, http://www.cisco.com/go/asa Tab. 15 Adres Web z informacjami na temat funkcji firewalla ASA Pełną plistę funkcji firewalla możemy znaleźć na powyższym adresie Web. 3.2.2 Zasady działania firewalli PIX/ASA Zasadniczo funkcje firewalla PIX/ASA skupiają się na filtrowaniu ruchu, który jest udostępniany przez niego na poszczególne interfejsy. Pozwala to na ochronę komputerów w sieci przed nieautoryzowanym dostępem, a jednocześnie zezwala na dostęp po uprzednim zdefiniowaniu tego przez administratora. Funkcja firewalla realizowana jest po przez analizowanie polityki bezpieczeństwa, funkcjonowania w trybie zapory sieciowej oraz wykonywania inspekcji pakietów. Polityka bezpieczeństwa firewalla PIX/ASA: Polityka bezpieczeństwa firewalla PIX/ASA opiera się na decyzjach dotyczących ruchu sieciowego, który będzie zezwolono bądź odrzucony przez firewall. Aby to ułatwić PIX realizuje połączenie korzystając z następujących elementów w celu pomocy podczas podejmowania decyzji o filtrowaniu: 94  Zastosowanie NAT,  Zastosowanie filtrowania Web albo FTP,  Zastosowanie AAA (Authentication Authorization Accounting) dla ruchu tranzytowego ,  Uzywanie list ACL do sterowania przepływem ruchu w sieci, Te same funkcje realizuje firewall ASA ponadto został wzbogacony i kilka innych możliwości mianowicie:  Zastosowanie Advanced Inspection and Prevention Security Services Module (AIP SSM) do wykonywanie glebokiej inspekcji oraz penetracji pakietów oraz danych,  Stosowanie polityk Qos w celu nadawania priorytetów określonych rodzajów ruchów w sieci,  Zastosowanie CSC SSM w ceu zapewnienia ochrony przed zagrożeniami oraz kontroli treści, ponadto do tego dochodzi, antyspam, antyphishing, blokowanie adresów URL. Oddzielanie sieci na podstawie poziomów bezpieczeństwa: Firewall PIX oddziela sieci na odrębne strefy w oparciu o dane na temat ich poziomu bezpieczeństwa. Poziomy te szacują się z zakresie od 0 (całkowicie niezaufana sieć) do 100 (zaufana sieć). W zależności od ilość interfejsów na danym PIX-ie będą istnieć co najmniej dwie strefy, strefa 0 (z zewnętrzny interfejsem) oraz strefa 100 (wewnętrzny interfejs).Ruch odbywający się z wyższych stref może przechodzić do stref niższych pod warunkiem że istnieje reguła tłumaczenia utworzona dla tych dwóch stref. Ruch sieciowy pomiędzy strefami o tym samym poziome bezpieczeństwa również jest możliwy ale w tym wypadku muszą zostać włączone związki pomiędzy tymi zasobami. 95 Wykorzystywanie list ACL do zarządzani ruchem sieciowym: Zasadniczym aspektem każdego firewalla PIX jak i ASA jest zastosowanie list ACL do zarządzania ruchem w sieci. PIX może korzystać z wielu list ACL, które mogą być stosowane niezależnie dla każdego interfejsu na firewallu. W PIX 7.x możliwości lista ACL zostały rozszerzone aby umożliwić kontrole dla ruchu wychodzącego jak i przychodzącego. Przykładem zastosowania ACL może być użycie go w celu zezwolenia na ruch wychodzący do segmentu DMZ. Zastosowanie NAT w PIX/ASA: Firewalle PIX mogą korzystać z NAT w celu korzystania z prywatnych adresów IP w sieci wewnętrznej, ukryć adres lokalny zasobów sieci, bądź rozwiązać problemy z routingiem IP z powodu nakładania się zakresów adresów IP w sieci połaczonej. W przypadku obsługi NAT interfejs z niższego poziomu bezpieczeństwa może być przekazywany do interfejsu wyższego poziomu bezpieczeństwa. Implementacja ta jednak wymaga użycia obu translacji adresów i list ACL. Firewalle PIX wykorzystuja dwa typy translacji NAT:  Translacja statyczna: działa na zasadzie tradycyjnego NAT,  Translacja dynamiczna: Zewnętrzny adres (lub pula adresów) jest przypisana do zakresy adresów wewnętrznych i adres z tej puli jest dynamicznie przydzielany i zgłaszany do firewalla. Jeżeli wszystkie adresy w puli są zabrane PIX może dynamicznie przełączać się w PAT gdzie jeden adres zewnętrzny może dostarczyć translacje do wielu adresów wewnętrznych przez mapowanie portów UDP i TCP na nieużywane numery portów. Można także skonfigurować PAT bez puli adresów NAT, dzięki czemu, pojedynczy zewnętrzny adres może wykonać wszystkie translacje. Zastosowanie AAA dla ruchu sieciowego: Niektóre rodzaje ruchu sieciowego np. ruch wykonywany po protokole HTTP, mogą wymagać uwierzytelnienia i autoryzacji w momencie gdy użytkownik próbuje 96 zainicjować ruch. Wykorzystane może to zostać w celu zapewnienia iż tylko użytkownicy dopuszczeni do ruchu sa w stanie przejść przez firewall . PIX może być również skonfigurowany do przekazywania informacji o użytkownikach do serwera RADIUS lub serwera TACACS+. Zastosowanie filtrowania Web oraz FTP: Firewall PIX/ASA jest w stanie wykonywać prymitywne WWW (HTTP i HTTPS) i FTP. Funkcja może być zwiększona po przez zastosowanie innego systemu filtrowania zawartości, co pozwala na filtrowanie określonych stron WWW, serwerów FTP, oraz wiele innych aplikacji internetowych takich jak np. komunikatory internetowe i sieci peer-to-peer. Tryby pracy firewalla: Tradycyjny firewall PIX pracują w jednym trybie znanym jako routed mode. Jest to najbardziej powszechny sposób realizacji firewalla, tryb ten powoduje ze firewall traktowany jest w sieci jako router. Z pojawieniem się PIX/ASA 7.x pojawił się też nowy tryb pracy znany jako tryb przeźroczysty. W trybie tym firewall pracuje bardziej jako most ni router. Można powiedzieć że zasadniczo w tej samej sieci ruch odbywa się po dwóch stronach firewalla, ponieważ interfejsy firewalla nie maja adresów IP przypisanych do nich. Powszechnie firewall powinien pracować w trybie stealth ponieważ firewall nie jest wtedy łatwy do wykrycia.. W większości implementacji firewalli będzie on skonfigurowany do pracy w trybie router, czasami jednak zachodzi potrzeba aby firewall pracował w trybie transparent mode, używa się tego wtedy gdy chcemy aby firewall filtrował pakiety w obu kierunkach, ponadto w trybie transparent mode firewall ma możliwość używania różnego typu list ACL. Pełna inspekcja pakietów: Można powiedzieć że jest to główne zadanie firewalla PIX/ASA. Proces ten jest możliwy za pomocą procesu zwanego adaptacyjnym algorytmem bezpieczeństwa CISCO. Każdy pakiet jest wyczerpująco sprawdzany przez ASA i informacje o stanie 97 połączenia zapisywane są w jego pamięci. Firewall ASA stosuje następujące zasady odnośnie ruchu przychodzącego do PIX:  Zezwalanie na połączenie pochodzące sieci wewnętrznej o wysokim bezpieczeństwie, oraz z sieci o niskim bezpieczeństwie, o ile listy ACL zabraniają na połączenie.  W momencie zablokowania pakietu tworzony jest logsys z źródłem IP pakietu.  Odrzuca wszystkie ICMP z interfejsów o niższym bezpieczeństwie, z wyjątkiem kiedy jest on dozwolony. Zapobiega to na ruch wychodzący ICMP, aby mogły być skutecznie dostarczone.  Zezwolenie na cały ruch ICMP do firewalla(może zostac właczone, bądź sterowane za pomocą ICMP inspection). Rys. 41 Firewall CISCO PIX/ASA 98 Firewall PIX/ASA jest ciągle włączony i monitoruje wszystkie pakiety zwrotne w celu zapewnienia że są ważne. Odbywa się to za pomocą sprawdzania tabeli stanów aby ustalić czy pakiet ten jest uzasadnioną odpowiedzią na połączenie wychodzące. Jeśli tak jest pakiet automatycznie jest akceptowany. Ponadto ASA aktywnie losuje numery sekwencji TCP, przy jednoczesnym zapewnieniu minimalizacji ryzyka ataku numery sekwencji TCP. Kontrola aplikacji: Kontrola aplikacji jest na firewallu PIX jako składnik ASA, umożliwia wykonywanie dodatkowego filtrowania niektórych rodzajów aplikacji. W ten sposób firewall może dokonywać filtrowania nie w oparciu o protokół w użyciu (np. SMTP), ale na rzeczywistej aplikacji . Kontrola aplikacji odbywa się na następujących protokołach:  DNS  ESMTP  FTP  GTP  CTIQBE  HTTP  ICMP  H323  ICMP  MGCP  ILS  RSH  NETBIOS  PPTP  RTSP  XDMCP  TFTP  SNMP  SQLNET 99 3.2.3 Konfiguracja firewalli Cisco PIX/ASA Pierwszymi krokami podczas konfiguracji firewalla PIX dotyczą przede wszystkim umożliwienie dostępu administratora do graficznego interfejsu użytkownika Adaptive Security Device Manager (ASDM), w starszych wersjach oprogramowania znany był jako PIX Device Manager (PDM). Aby wstępnie skonfigurować firewalla należy podłączyć go do komputera zapomoga specjalnego kabla do portu szeregowego oraz ustawić emulator terminala według ustawień znajdujących się poniżej w tabelce. Ustawienie Wartość Liczba bitów na sekundę 9600 Parzystość Nie Bity danych 8 Bity stopu 1 Tab. 16 Ustawienia serial port dla konfiguracji CISCO PIX W celu ustanowienia połącenia z firewallem uzywamy emulatora terminalu (np. HYPER TERMINAL), po ustanowieniu połączenia z PIX-em powinien od razu pojawić nam się wiersz poleceń firewalla. pixfirewall> Tab. 17 Wiersz poleceń firewalla PIX Następnym krokiem będzie wprowadzenie polecenie enable w celu uzyskania dostępu do trybu uprzywilejowanego. Domyślnie od razu definiujemy hasło dla firewalla. pixfirewall> enable Password: pixfirewall# Tab. 18 Wiersz poleceń firewalla PIX –przechodzenie w tryb uprzywilejowany 100 Domyślnie polecenie enable zakłada że uzytkownich będzie chciał przystąpić do konfiguracji podstawowych możliwości firewalla PIX a są nimi:  Przypisywanie adresów IP do interfejsów firewalla,  Konfiguracja nazwy domeny, nazwy firewalla oraz hasła,  Konfiguracja routingu,  Konfiguracja firewalla dla dostępu zdalnego,  Konfiguracja NAT  Konfiguracja list ACL, Przypisywanie adresów IP do interfejsów firewalla: Aby rozpocząć przepisywanie adresów IP do interfejsów administrator musi wejść w tryb konfiguracji. Ponieważ tryb konfiguracji wykorzystuje tryb wiersza poleceń, który jest podobny do IOS, tak więc tryb konfiguracji jest tak jakby na bazie CISCO IOS ROUTER. firewall# configure terminal firewall(config)# Tab. 19 Wiersz poleceń firewalla PIX – przechodzenie w tryb konfiguracji W standardowej konfiguracji interfejsy firewalla są zamknięte, aby dokonać włączenia poszczególnych interfejsów należy skorzystać z poniżnych poleceń: firewall(config)# interface ethernet0 auto firewall(config)# interface ethernet1 auto Tab. 20 Wiersz poleceń firewalla PIX –aktywacja poszczególnych interfejsów. 101 Domyślnie interfejs FastEthernet0 uważany jest za interfejs zewnętrzny natomiast FastEthernet1 za interfejs wewnętrzny. Konfiguracje interfejsu odbywa się przez polecenie auto, które określa że ten interfejs powinien być automatycznie ustalony przez PIX. Można także ręcznie określić prędkość interfejsu w zakresie od (10Mbs 100Mbs). Kolejnym krokiem jest przypisanie nazwę oraz poziom bezpieczeństwa dla poszczególnego interfejsu. Domyślnie zewnętrzny interfejs posiada poziom zabezpieczeń 0 a wewnętrzny interfejs 100. Nazwa jaka możemy przypisać to nazwa, której można używać w konfiguracji aby łatwo zidentyfikować dany interfejs. firewall(config)# nameif ethernet0 outside security0 firewall(config)# nameif ethernet1 inside security100 Tab. 21 Wiersz poleceń firewalla PIX- ustanowienie nazwy interfejsu oraz poziomu zabezpieczeń. Podczas przypisywania adresów do interfejsów ważne jest aby zrobić to przed ich włączeniem ponieważ gdy zrobimy to w sposób odwrotny to po przypisaniu im adresów one dalej nie będą działać. Konieczne jest wtedy restartowanie interfejsu. Przypisywanie adresów IP odbywa się w trybie konfiguracji globalnej. Firewall obsługuje adresy statyczne ale może być także skonfigurowana z użyciem protokołu PPPoE lub DHCP. Aby przypisać statyczny adres IP należy skorzystac z adresu IP, interfejsu oraz maski podsieci: firewall(config)# ip address outside 10.19.24.1 255.255.255.0 firewall(config)# ip address inside 192.168.122.1 255.255.255.0 Tab. 22 Wiersz poleceń firewalla PIX- przypisywanie statycznego adresu IP dla interfejsów Aby mieć pewność że PIX może komunikować się z urządzeniami znajdującymi się po obu stronach należy wykonać operacje ping na te dwa interfejsy: 102 firewall(config)# ping 10.19.24.100 10.19.24.100 response received -- 0ms 10.19.24.100 response received -- 0ms 10.19.24.100 response received -- 0ms firewall(config)# ping 192.168.122.226 192.168.122.226 response received -- 0ms 192.168.122.226 response received -- 0ms 192.168.122.226 response received -- 0ms firewall(config)# Tab. 23 Wiersz poleceń firewalla PIX- wykonanie sprawdzenia poprawności konfiguracji interfejsów za pomocą programu ping. W oprogramowaniu 7.x proces przydzielania adresów IP dla interfejsów różni się trochę od poprzedniego, aczkolwiek idea pozostaje ta sama. W tym przypadku inicjujemy poszczególny interfejs i później ustalamy poszczególne parametry. firewall(config)# interface ethernet 2 firewall(config-if)# Tab. 24 Wiersz poleceń firewalla PIX- inicjalizacja interfejsu. W tym momencie możemy zacząć konfigurować interfejs, aby podać nazwę interfejsu użyjemy polecenia nameif, do przypisania poziomu zabezpieczeń użyjemy polecenia security-level number, określając prędkość interfejsu mamy do dyspozycji kilka ustawień (auto | 10 | 100 | 1000 | nonegotiate), firewall(config-if)# firewall(config-if)# firewall(config-if)# firewall(config-if)# firewall(config-if)# no shutdown nameif dmz01 security-level 50 speed auto duplex auto Tab. 25 Wiersz poleceń firewalla PIX- inicjalizacja interfejsu. 103 Konfiguracja adresu IP odbywa się tak samo tak że tutaj nie dodano żadnych nowych funkcji. Tak jak w większości urządzeń CISCO po dokonaniu konfiguracji aby zmiany zostały na stałe należy wpisać je do pamięci urządzenia tzw. NVRAM. firewall# write memory Tab. 26 Wiersz poleceń firewalla PIX- zapis konfiguracji do pamięci NVRAM. Możemy to zrobić za pomocą polecenia które wpisze nam obecna konfiguracje do pamięci. Konfiguracja nazwy domeny, nazwy firewalla oraz hasła: Kiedy do firewalla został przypisany adres IP i gdy wiemy że działają one prawidłowo, następnym krokiem będzie konfiguracja nazwy domeny, nazwy firewalla oraz hasła. Polecenie do ich wykonania są takie same we wszystkich wersjach PIX-a. Nazwę hosta skonfigurujemy po przez wprowadzenie polecenia hostname, natomiast zmiana nazwy domeny po przez polecenie domain-name: pix10(config)# hostname pix10 pix10(config)# domain-name home.lab Tab. 27 Wiersz poleceń firewalla PIX- zmiana nazwa hosta oraz nazwy domeny. Istnieją dwa hasła w PIX/ASA i domyślnie używane są obydwa, pierwsze hasło odpowiedzialne jest za logowanie i używane jest do uwierzytelniania dostępu zdalnego przez telnet bądź ssh. Aby ustawić to haslo logowania skorzystamy z polecenia passwd: pix10(config)# passwd ReallyDifficultPassword Tab. 28 Wiersz poleceń firewalla PIX- ustanowienia hasła pierwszego Drugie hasło odpowiedzialne jest za uzyskanie dostępu do trybu konfiguracji globalnej. Aby ustawić hasło należy użyć składni znajdującej się w tab. 28. Istnieje możliwość ustawienie wielu haseł, z których każde będzie miało dostęp do różnego poziomu zabezpieczeń. 104 pix10 (config)# enable password DifferentPasswordThanPasswd Tab. 29 Wiersz poleceń firewalla PIX- ustanowienia hasła drugiego. Konfiguracja routingu: Następnym krokiem będzie konfiguracja rotangu dla firewalla. Firewall obsługuje trasy statyczne jak i również dynamiczne używając do tego celu OSPF (Open Shortest Path First).Można skonfigurować trasy statyczne przez poniże polecenie route : pix10 (config)# route outside 0.0.0.0 0.0.0.0 10.21.67.2 1 Tab. 30 Wiersz poleceń firewalla PIX- ustalanie routingu. Wartość 1 na końcu polecenia określa charakterystykę do następnego skoku i jest to parametr opcjonalny. Ogólnie trasa domyślna będzie wskazywać na następy router firewallu np. router dostawy usług internetowych. Konfiguracja dla dostępu zdalnego: Firewall PIX/ASA obsługuje trzy podstawowe metody dostępu zdalnego:  TELNET  SSH  ASMD/PDM Konfiguracja Telnet: Konfiguracja za pomocą telntu jest najprostsza aczkolwiek najmniej bezpieczna. Powodem tego jest to że telnet nie posiada szyfrowania danych w transmisji i wysyła dane w postaci zwykłego tekstu. Ułatwia to zadania dla atakującego, który może w łatwy sposób zdobyć informacje na temat np. nazw użytkowników oraz haseł. Konfigurowanie usługi telnet we wszystkich rodzajach PIX-a obywa się w ten sam 105 sposób mianowicie za pomocą polecenia telnet (hostname | ip-address mask interfacename): pix10 (config)# telnet 10.21.120.15 255.255.255.255 inside Tab. 31 Wiersz poleceń firewalla PIX- konfiguracja telnet Można ograniczyć dostęp do usługi telnet dla niektórych adresów poprzez zdefiniowanie odpowiedniej maski. Tak jak w tab. 29 tylko do hosta o adresie 10.21.120.15 może połączyć się z firewallem. Ze względu na ogólny brak bezpieczeństwa zaleca nie używanie się telnetu. Konfiguracja Ssh: Konfiguracja ssh jest trochę bardziej złożona od telnetu ponieważ dostęp do konfiguracji połączenia należy ustalić za pomocą protokołu SSH hosta docelowego, który musi posiadać parę kluczy RSA. Dlatego konfiguracja SSH jest serią kroków która wygląda następująco:  Przypisanie hosta i domeny do firewalla  Generowanie i zapisanie pary kluczy RSA  Konfiguracja firewalla w celu umożliwienai dostępu przez SSH. Przypisywanie nazwy hosta i domeny odbywa się w taki sam sposób jak poprzednio natomiast generowanie kluczy RSA jest wykonywane za pomocą metody. Można zatem wygenerować klucze RSA korzystając z ca generate rsa w globalnej konfiguracji. pix10 (config)# ca generate rsa key 1024 For <key_modulus_size> >= 1024, key generation could take up to several minutes. Please wait. Keypair generation process begin. .Success. pix10(config)# Tab. 32 Wiersz poleceń firewalla PIX- generowanie klucza RSA. Mankamentem tej operacji jest to że po wygenerowaniu klucza RSA nie jest on automatycznie zapisywany w pamięci urządzenia, zatem musimy użyć polecenia ca 106 save all aby zapisać wygenerowany klucz RSA. Mamy możliwość określenia wielkości modułu klucza RSA 512, 768, 1024, 2048. Po wygenerowaniu klucza RSA następnym krokiem jest zezwolenie SSH na dostęp do firewalla. pix10 ssh 10.21.120.15 255.255.255.255 inside Tab. 33 Wiersz poleceń firewalla PIX- połączenie ssh Wystarczy wtedy uruchomić polecenie ssh adres IP, maska aby ustanowić połączenie z firewalle. ASDM/PDM : Oprócz metod zarządzania za pomocą terminala istnieje również interfejs GUI znany jako PIX Device Manager (PDM) lub Adaptive Security Device Manager (ASDM). Obydwa te interfejsy są bardzo podobne do siebie i działa on jako Web-interfejs za pomocą małego serwera WWW, który znajduje się na firewallu. Po pierwsze trzeba upewnić się że po pobraniu oprogramowania i zainstalowaniu ASDM/PDM na firewallu działa on poprawnie. Następnym krokiem jest włączenia serwera HTTP na firewallu, ostatnim krokiem jest umożliwienie dostępu dla HTTP w sposób podobny do udostępniania telnetu bądź ssh uruchamiając polecenie http adres IP, maska: pix10(config)# http server enable pix10(config)# http 10.0.0.0 255.0.0.0 inside Tab. 34 Wiersz poleceń firewalla PIX- uruchomienie konfiguratora http Dostęp do ASDM odbywa się za pomocą przeglądarki internetowej np. Internet Explorer. 107 Rys. 42 CISCO ASDM [http://www.watchguard.com/help/docs/fireware/10/en-US/Content/enUS/bovpn/manual/images/f_cisco-login.jpg] ASDM może również korzystać z aplikacji Java bez konieczności uruchamiania przez przeglądarkę internetową. Aby połączyć się z interfejsem konfiguracyjnym należy podać adres IP firewalla oraz jego hasło, gdy autoryzacja przebiegnie pomyślnie zostaniemy zalogowani do graficznego interfejsu konfiguracyjnego jak widać na rysunku 36. 108 Rys. 43 Interfejs graficzny ASDM [Firewall Fundamentals Wes Noonan, Ido Dubrawsky Cisco Press 2006 str. 155] Konfiguracja NAT: W większości sytuacji w celu zapewnienia funkcjonalności ruchu wychodzącego trzeba skonfigurować NAT, ponieważ zazwyczaj zachodzi potrzeba ukrywania wewnętrznych adresów IP za pomocą NAT.Aby podejrzeć składnie polecenia wykonajmy polecenie nat: nat (real-ifc) nat-id real-ip [mask [dns] [outside] [[tcp] tcp-max-conns [emb-limit]] [udp> udp-max-conns] [norandomseq]] global (mapped-ifc) nat-id {mapped-ip [-mapped-ip] [netmask mask] | interface} Tab. 35 składnia polecenia NAT na firewallu PIX Tak więc aby ustawić translację adresów musimy wykonać następujące polecenia. Polecenia te nie zmieniają się w żadnej wersji oprogramowania. 109 pix10(config)# nat-control pix10(config)# nat (inside)1 0.0.0.0 0.0.0.0 pix10(config)# global (outside)1 10.21.67.10-10.21.67.14 netmask 255.255.255.240 Tab. 36 Ustawianie NAT na firewallu PIX. W powyższym przykładzie kontrola NAT jest włączona na wszystkie wewnętrzne adresy i jest skonfigurowany z ogólnej puli 10.21.67.10 do 10.21.67.14. W tym monecie wewnętrzne hosty mają dostęp do zewnętrznych zasobów z wykorzystaniem NAT. Ewentualnie jeżeli mamy tylko jeden adres przypisany do interfejsu można uprościć polecenie : pix10config)# global (outside)1 interface INFO: outside interface address added to PAT pool pix10(config)# Tab. 37 Ustawianie NAT na firewallu PIX. Konfigurowane list ACL: Kontrola ruchu jest jednym z podstawowych działać firewalla PIX/ASA. Przetwarzanie listy ACL odbywa się na zasadzie first-match manner co oznacza ze tak szybko jak przetwarzane są dane ACL tak szybko zostaje dopasowywany do ACE ACL, po czym przestaje być analizowany a działania określone są w ACE które dalej są wykonywane. Konfiguracja oraz wdrożenie list ACL jest procesem składającym się z dwóch etapów:  Definiowanie listy ACL i wdrażanie ACE  Przypisywanie listy ACL do interfejsu. Definiowanie listy ACL i wdrażanie ACE: Firewalle PIX/ASA obsługują wiele różnych typów list ACL: 110     Rozszerzona lista ACL Standardowa lista ACL Listy ACL używane przy WebVPN Lista dostępu EtherType Można skonfigurować wiele typów list ACL dla firewalla PIX/ASA i definiować wiele list tego samego typu. Na przykład można zbudować jedną listę ACL do kontrolowania ruchu przychodzącego z Internetu do segmentu DMZ, a następie zbudować inną listę ACL, której zadaniem będzie kontrola ruchu pochodzącego z segmentu DMZ do sieci wewnętrznej. Aby np. umożliwić ruch http z dowolnego serwera na serwer należy wykonać polecenie zawarte w tabeli 35. pix10(config)# access-list out_in_01 permit tcp any host 10.21.67.2 eq http Tab. 38 konfiguracja list ACL na firewallu PIX Aby móc przeglądać listę ACL w celu upewnienia się że dodaliśmy warunek do listy należy wykonać polecenie : pix10(config)# show access-list out_in_01 access-list out_in_01; 1 elements access-list out_in_01 line 1 extended permit tcp any host 10.21.67.2 eq www (hitcnt=0) Tab. 39 Wyświetlenie zawartości listy ACL Przypisywanie list ALC do interfejsu: Niezależnie od tego jakim oprogramowaniem dysponuje firewall listy ACL stosowane są do interfejsu przez wydanie polecenia access-group. Na przykład jeżeli chcemy zastosować listę ACL, która została wcześniej zdefiniowana do interfejsu zewnętrznego musimy wykonać następujące polecenie pix10(config)# access-group out_in_01 in interface outside . Tab. 40 Konfiguracja listy ACL na firewallu PIX 111 3.3 Linux Firewall W tym podrozdziale omówimy firewall bazujący na systemie GNU/Linux, który do swojej pracy będzie wykorzystywał IPtables. Można smiało zauważyć że również firewalle niekomercyjne tzw. OpenSource mogą dobrze chronić naszą siec oraz dobrze pełnić powierzone im zadania. 3.3.1 NetFilter cechy, żądania oraz zasada działania Niektóre z najważniejszych projektu : funkcji NetFilter możemy znaleźć na stronie głównej http://www.netfilter.org Tab. 41 strona główna projektu NetFilter. Cechy tego oprogramowania są następujące:  Dynamiczne filtrowanie pakietów dla ruchu o protokole IPv4  Network Address Translation (NAT) oraz Network Address Port Translation (NAPT)  Elastyczna i rozszerzalna infrastruktura  Filtrowanie pakietów w protokołach IPv4 oraz IPv6  Duża liczba wtyczek/modułów Inna korzyść NetFilter jest taka ze jest to oprogramowanie Open Source tak więc wszelkie modyfikacje, które użytkownicy chcą wykonać mogą śmiało wykonać czekając na dostarczenie kodu od twórcy oprogramowania. Ponadto może on obsługiwać wiele interfejsów sprzętowych. Pomoc ta pozwala na stworzenie wielu stref DMZ, które można wykorzystać w celu zwiększenia szczegółowości bezpieczeństwa dla różnych systemów. NetFilter wymaga użycia wersji systemu LINUX z jadrem 2.4 bądź wyższym. Oprócz modułów kodu NetFilter narzędzie iptables potrzebne jest do konfigurowania oraz manipulacji firewallem. Te dwa elementy potrzebne sa tylko do uzyskania firewalla oraz NAT . Zasada działania NetFilter: NetFilter posiada wbudowanych pięć łańcuchów, które podzielone są na trzy tablice: 112  Filter  NAT  Mangle Tabela Filter ma trzy wbudowane łańcuchy, których funkcjonowanie jest podobne do funkcjonowania trzech głównych łańcuchów ipchains. Funkcje jakie pełnią łańcuchy w tabeli jest sprawdzenie co kończy się przyjęciem bądź odrzuceniem pakietu na podstawie wyników jego oceny. Trzy łańcuchy wbudowane w tabeli Filter to:  Input  Forward  Output Zadaniem łańcucha Input jest ocena pakietów, które trafiają do samego firewalla, natomiast łańcuch Output ocenia pakiety, które przychodzą od strony firewalla. Łańcuch Forward ma za zadanie oceniać pakiety, które przychodzą od firewalla z jednego interfejsu sieciowego na drugi. Główna różnica między łańcuchami w Netfilter i ipchains jest przede wszystkim to ze ipchains wszystkie pakiety wychodzące z jednego interfejsu sieciowego do drugiego muszą przejść przez wszystkie trzy główne łańcuchy czyli: (INPUT, FORWARD,OUTPUT).W NetFilter sprawa ma się zupełnie inaczej ponieważ tutaj wystarczy że pakiet przejdzie tylko przez łańcuch FORWARD, ponieważ tylko on jest odpowiedzialny za przekazywanie pakietów pomiędzy interfejsami. Rys. 44 NetFilter INPUT 113 Jak widzimy na Rys. 37 host o adresie 192.168.45.10 wysyła pakiet, który skierowany jest do samego firewalla. Aby pakiet przeszedł przez firewall dalej musi przezjśc przez reguły zawarte w łańcuchu INPUT w tabeli FILTER. Rys. 45 NetFilter FORWARD Ruch z hosta o adresie 192.168.45.10 docelowo kierowany jest do serwera 10.1.1.1. Zazwyczaj wymagana jest również obecność NAT aby połączyć się z serwerem ponieważ serwer posiada zewnętrzny adres, który przypisany jest do zewnętrznego adresu firewalla. Aby pakiet dotarł do systemu o adresie 10.1.1.1 ruch musi poprawnie przejść przez reguły łańcucha FORWARD z filtrem tabeli, ponieważ ruch odbywa się z jednego interfejsu do drugiego. Rys. 46 NetFilter OUTPUT 114 Jak widać na Rys. 39 firewall komunikuje się z hostem o adresie 192.168.45.10. Ruch sieciowy musi przejść przez reguły zawarte w łańcuchu OUTPUT tabeli Filter przed osiągnięciem punktu docelowego. Zazwyczaj jest tak że firewall blokuje ruch w obie strony co skutkuje tym że łańcuch OUTPUT jest pusty i cały ruch od strony firewalla jest przepuszczany. Może być to uznane za zagrożenie dla bezpieczeństwa na niektórych systemach. Tabela NAT może wykonywać zwykłą translacje adresów oraz translacje portów (Port Address Translation). Obejmuje to docelowy NAT (DNAT) oraz źródłowy NAT (SNAT). Tabela składa się z trzech wbudowanych łańcuchów:  PREROUTING  POSTROUTING  OUTPUT Łańcuch PREROUTING używany jest głównie do NAT. Pakiety sprawdzane są w lokalnej tabeli routingu, natomiast DNAT używany jest w przypadku gdy adres docelowy dla pakietów nie jest stały i ulega zmianie. DNAT może być używany do realizacji następujących zadańi:  Przekierowanie portów  Równoważenia obciążenia sieci  Przeźroczyste Proxy Maskarada to nic innego jak prostsza wersja SNAT, w której pakiety otrzymują adresy IP interfejsu wyjściowego firewalla jako adres źródłowy.Co do funkcjonalności to jest ona taka sama jak w urządzeniach CISCO IOS oraz w globalnej konfiguracji PIX/ASA. Ostatnia tabela w NetFIlter to tabela o nazwie Mangle, pozwala ona na modyfikowanie firewalla oraz liczne pola nagłówka takie jak np. TTL (Time-To-Live), Differentiated Service Code Point (DSCP), mamy też możliwość zmiany pola średni rozmiar segment TCP. Dodatkowo tabela pozwala na określenia, które pakiety będą poddawane dalszemu przetwarzaniu przez podane łańcuchy. 3.3.2 Konfiguracja NetFilter Na samym początku dobrze jest się zapoznać z ogólna zasadą działania narzędzia do konfigurowania całego systemu filtracji pakietów. Mówimy tutaj o narzędziu 115 IPTABLES. Standardowo posiadamy trzy podstawowe łańcuchy : INPUT, FORWARD, OUTPUT, których pod żadnym pozorem nie możemy ich skasować. Możemy tworzyć nowe i operować wtedy na całych łańcuchach. Aby móc operować na łańcuchach i regułach musimy posługiwać się przyjętymi zasadami tworzenia, poniżej znajdują się opcje do działania na łańcuchach i tabela oraz regułach. Opcje tworzenia Tabel: N- tworzenie nowego łańcucha X - kasowanie pustego łańcucha P- zmiana domyślnej polityki dla łańcucha L- wyświetlenie reguł łańcucha F- usunięcie regul z łańcucha Z- zerowanie liczników pakietów oraz bajtów w łańcuchach E- zmiana nazwy łańcucha Opcje manipulowania regułami w tabeli: A - dodanie nowej reguły do łańcucha I - dodanie nowej reguły w określoną pozycję łańcucha R - zastąpienie reguły w określonej pozycji nową D - usunięcie reguły w określonej pozycji bądź pierwszej w łańcuchu Tab. 42 Opcje tworzenia tabel i reguł Iptables Stwórzmy zatem przykładową konfiguracje dla pojedynczego hosta, który nie będzie pełnił żadnych usług sieciowych. Podczas tworzenia zapory naszym celem będzie maksymalne zabezpieczenie hosta przed niebezpieczeństwami płynącymi z sieci. # iptables -F # iptables -P FORWARD DROP # iptables -P OUTPUT ACCEPT # iptables -P INPUT ACCEPT # iptables -N accept # iptables -N log # iptables -N block # iptables -A accept -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -A accept -m state --state NEW -i ppp0 -j ACCEPT # iptables -A accept -p icmp --icmp-type echo-request -s 10.0.0.0/24 -j ACCEPT 116 # iptables -A log -d 255.255.255.255 -j RETURN # iptables -A log -j LOG # iptables -A block -j DROP # iptables -A INPUT -j accept # iptables -A INPUT -j log # iptables -A INPUT -j block Tab. 43 Tworzenie reguł dla pojedynczego hosta. Analizując te polecenia na początku utworzyliśmy trzy łańcuchy : accept, log oraz block. Analogicznie w łańcuchu akcept będą umieszczane reguły, które akceptują pakiety, w log te które logują, a w block te, które nie będą odrzucane. W łańcuchu akcept znajduje się reguła która akceptuje połączenie zestawione (ESTABLISHED,RELATED). Chodzi nam tutaj np. o pakiety ICMP dla konkretnego połączenia lub też pakiety, które wymagają połączenia od strony serwera do klienta. Mamy tutaj także zezwolenie na echo(tzw. ping) z sieci 10.0.0.0/24, akceptujemy także połączenia przychodzące z interfejsu ppp0. Łańcuch log służył nam będzie do umieszczania reguł, które będą śledzić podejrzane pakiety w sieci. Na końcu umieszczamy powiązania pomiędzy podstawowymi łańcuchami a łańcuchami stworzonymi przez nas. Teraz załóżmy że nasz host będzie pełnił role serwera, na którym będą uruchomiane usługi. Priorytetem będzie możliwość oglądania strony WWW umieszczonej na naszym serwerze za pośrednictwem Internetu, ponadto na serwerze uruchomiona będzie usługa SMTP, który będzie rozsyłał poczte. Oprócz tego port POP3 będzie pozwalał użytkownikom sieci lokalnej na pobieranie poczty. # iptables -I accept 1 -p tcp -s 0.0.0.0/0 -d 1.1.1.1/32 --dport 25 -j ACCEPT # iptables -I accept 2 -p tcp -s 0.0.0.0/0 -d 1.1.1.1/32 --dport 80 -j ACCEPT # iptables -I accept 3 -p tcp -s 10.0.0.0/24 -d 1.1.1.1/32 --dport 110 -j ACCEPT Tab. 44 Polecenia Iptables dla serwera. Oto konfiguracja, w której znalazły się reguły akceptujące połączenie protokołu TCP na porcie 25(SMTP), oraz port 80 (HTTP) z całego świata. Natomiast port 110 również będzie akceptowany ale tylko z sieci lokalnej jak w tym przypadku o adresie 10.0.0.0/24. Dodanie opcji „-p tcp” spowoduje nam automatyczne załadowanie rozszerzeń protokołu TCP. Będziemy zatem mogli określac numery portów za pomocą 117 „-dport”. Dodatkowym ułatwieniem może być uzywanie aliasów zamiast numerów portów z pliku znajdującego się w : /etc/services. Często bywa tak że serwery SMTP podczas komunikacji wykonują tzw. zapytanie o właściciela połączenia (AUTH). Zatem deamon będzie nasłuchiwał na porcie 113 a w tym momencie inne serwery SMTP mogą wykonywać połączenia do naszego hosta na tym właśnie porcie, w tym przypadku od razu lepiej jest poinformować serwer że nasza usługa nie działa na tym porcie. # iptables -I block 1 -p tcp -d 1.1.1.1/32 --dport 113 -j REJECT --reject-with tcp-reset Tab. 45 Ustawienie TCP RST w konfiguracji iptables Niestety aby powyższe polecenie zadziało musimy mieć wkompilowane w jądro rozszerzenie o nazwie CONFIG_IP_NF_TARGET_REJECT, które umożliwi nam korzystanie z celu REJECT. Podczas administracją serwera musimy wziąć pod uwagę że zdarzy nam się potrzeba wycięcia pewnej części sieci bądź pewnych hostów, które zagrażają naszemu serwerowi bądź nadużywają go w niedozwolony sposób.Najlepszym rozwiązaniem tego problemu jest właśnie odcięcie danej sieci bądź hosta od naszych usług.: # iptables -N abuse # iptables -A abuse -p tcp -s 6.6.6.0/24 -d 1.1.1.1/32 --dport 25 -j DROP # iptables -A abuse -s 7.7.7.7/32 -d 1.1.1.1/32 -j DROP # iptables -I INPUT 1 -j abuse Tab. 46 Blokowanie nadużyć na serwerze Dodamy zatem nowy łańcuch o nazwie abuse, w której znajdą się sieci oraz adresy hostów blokowanych. Ważne jest żeby reguły blokowania umieścić przed regułami wpuszczającymi ruch dla naszych usług., inaczej zablokujemy sobie ruch dla wszystkich usług. Dzieje się tak ponieważ w Iptables pierwsza pasująca reguła jest brana pod uwage. NAT w NetFilter: Tablica Nat zawarta w jądrze Linuxa składa się z trzech łańcuchów zawartych w tablicy nat. Każda reguła sprawdzana jest dotąd aż nie nastąpi zgodność trzy łańcuchy to: 118  PREROUTING – wykorzystywany dla docelowego NAT  POSTROUTIG – wykorzystywany dla źródłowego NAT (SNAT)  OUTPUT – wykorzystywany dla docelowego NAT (DNAT) NAT źródłowy (POSTROUTIG): Kiedy chcemy zmienić swój adres źródłowy użyjemy do tego celu SNAT. Reguły dotyczące tego umieścimy w łańcuchu PREROUTING. Filtr pakietów jak i sam kod routingu będzie widział niezmieniony pakiet. # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.1.1.1 Tab. 47 polecenie SNAT w Iptables W regułach SNAT musimy podać interfejs wyjściowy „-o”. Dość szczególnym typem SNAT jest maskowanie, jednak powinno ono być stosowane wyłącznie dla dynamicznie przypisywanych adresów IP. Na przykład jeżeli posiadamy sieć lokalną i używanym przez nas połączeniem z Internetem jest dial-up musimy użyć maskowania żeby cała sieć miała dostęp do Internetu po przez maszynę z Linuxem. Potrzebna jest zatem reguła: # iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o ppp0 -j MASQUERADE Tab. 48 Maskowanie w Iptables NAT docelowy (PREROUTING): NAT docelowy używany jest głównie w momencie gdy chcemy zmienić adres docelowy dla pakietu. Reguły DNAT umieszczamy w łańcuchu PREROUTING, co w efekcie oznacza że jak tylko pakiet dotrze do maszyny jest zmieniany na jego adres docelowy. # iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 1.1.1.1 Tab. 49 zmiana adresu przeznaczenia na 1.1.1.1 # iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 \ -j DNAT --to 1.1.1.1:8080 Tab. 50 przekierowanie ruchu http na adres 1.1.1.1 na portu 80. 119 Przy konstruowaniu reguł DNAT używamy celu „DNAT” oraz opcji dodatkowej „-to destination” , która określa nam adres docelowy bądź grupę adresów i opcjonalnie zakres portów. Problemy z NAT dotyczą tylko niektórych protokołów. Zatem aby NAT działa poprawnie zachodzi potrzeba napisania rozszerzeń, które będą śledzić połączenie na poziomie danego protokołu oraz aktualnego stanu NAT. 3.4 Aplikacja Proxy Firewall Podrozdział ten ukaże nam aplikacje serwera Proxy, która może zostać użyta jako firewall bądź w celu ukrycia naszych wewnętrznych zasobów. Ponadto dowiemy sięjakie są jego ograniczenia oraz jakei może pełnić fukcję. 3.4.1 Funkcjonalność Serwera Proxy Firewalel jak i również serwery Proxy maja kilka podstawowych funkcji są nimi:  Działanie jako pośrednik pomiędzy hostami,  Cache danych w celu zmniejszenia czasu dostępu do danych jak i odciążenia przepustowości łącza, 120 Rys. 47 Proces komunikowania się hostów przez Proxy. Rys. 42 pokazuje nam sytuacje gdzie serwer 1 i serwer 2 próbują się z e sobą komunikować za pośrednictwem serwera Proxy. Gwarantuje nam to że oba hosty nigdy nie będą komunikować się bezpośrednio ze sobą. Logicznie rzecz biorą serwer 1 oraz serwer 2 komunikują się ze sobą nawet jeżeli w fizycznym procesie komunikacji występuję za pomocą Proxy. Funkcja ta jest całkowicie przejrzysta dla użytkownika końcowego co w rezultacie oznacza ze serwer 1 nie ma pojęcia że komunikacja nie przebiega w sposób bezpośredni. Tak samo widzi tą sprawę serwer 2. Wiele serwerów Proxy, które posiadają obsługuje protokół HTTP może używać podręcznej pamięci cache w celu zapisywania tam danych, które mogą być używane w późniejszym czasie przez hosty. Funkcja ta pozwoli serwerowi Proxy zmniejszyć zapotrzebowanie na pasmo do Internetu, ponieważ za pierwszym razem dane pobierane są z Internetu i zapisywane w pamięci cache, natomiast za każdym kolejnym wysłaniem żądania o te dane pobierane są one z pamięci cache serwera Proxy. Dodatkowym atutem tego jest zmniejszenie czasu potrzebnego do wyświetlenia danych, ponieważ wiele serwerów Proxy podłączonych jest do klientów. 121 3.4.2 Ograniczenia Serwera Proxy Niestety serwery Proxy posiadają pewne ograniczenia, które uniemożliwiają wykonywanie na nich pewnych operacji. Po pierwsze serwer Proxy ma zastosowanie tylko przypadku gdy żądanie dla Proxy jest zdefiniowane na serwerze. Niestety większość serwerów Proxy może obsługiwać tylko niewielką liczbę żądań. Ograniczenie oznacza że inne aplikacje nie będą dozwolone, bądź że zajdzie potrzeba użycia generic service Proxy. Po drugie serwery Proxy mają zazwyczaj gorsze wyniki w filtrowaniu niż tradycyjny firewall. Skutkuje to tym że serwery Proxy podczas wykonywania filtrowania pakietów będzie zużywał więcej czasu na tą operację niż standardowe firewalle przez co mogą wystąpić opóźnienia w dostarczaniu danych.. W końcu serwery Proxy są bardziej kosztowe w przeciwieństwie do odpowiadających im firewalli. Dzieje się tak ponieważ zazwyczaj serwery Proxy mają dosyć duże wymagania sprzętowe, potrzebują szybszych procesorów oraz więcej pamięci, dochodzi do tego także wysoki koszt modernizacji sprzętu. W związku z tym serwery Proxy nie nadają się aby pełniły rolę firewalla z obsługą filtrowania pakietów. 3.4.3 Microsoft ISA Server 2004 Firewall Microsoft ISA Server 2004 Firewall występuje w dwóch wersjach Standard Edition oraz Enterprise Edition. Główna różnica pomiędzy tymi dwoma wersjami dotyczy ich skalowalności. Funkcja Standard Edition Enterprise Edition Sieci Nieograniczona liczba Nieograniczona liczba z dodatkiem sieci korporacyjnych(sieci, które mogą być stosowane do każdej tablicy firewalla) Skalowalność (up) Max 4 procesory i 2GB Nieograniczone pamięci. Skalowalność(out) Pojedynczy serwer Max do 32 węzłów przy użyciu Microsoft Network 122 Load Balancing (NLB) Bufor Pojedynczy Server store Nielimitowany po przez wykorzystanie Cache Array Routing Protocol (CARP) Dostępność Brak Dostępne z użyciem Network Load Balancing (NLB) Zarządzanie Bazowy system operacyjny Lokalna konfiguracja i Zaawansowana tablica zarządzanie konfiguracyjna Microsoft Windows Server Microsoft Windows Server 2003 (Standard lub Enterprise Edition) 2003 (Standard lub Enterprise Edition), Microsoft Windows 2000 Server lub Advanced Server z Service Pack 4 Tab. 51 Porównanie ISA Server 2004 Standard and Enterprise Funkcje firewalla ISA Server 2004 można podzielić w następujący sposób:  Bezpieczeństwo i filtrowanie,  Buforowanie funkcji serwera Web  Funkcjonalność VPN  Funkcje zarządzania i administracji,  Uwierzytelnienia klientów firewalla Microsoft ISA Server 2004 jest w stanie pełną inspekcję pakietów, oraz filtrowanie całego ruchu sieciowego, który będzie przechodził przez firewall. Ponadto ma możliwość wykonania przejrzystego układu filtrowania dla wielu protokołów np. Telnet, RealAudio, Internet Relay Chat (IRC) filtrowanie to odbywać się będzie w warstwie transportowej bądź w warstwie sesji. Filtrowanie aplikacji przez ISA Server 2004 może odbywać się tylko za pośrednictwem Proxy i może być wykonywane dla wielu protokołów np. FTP, HTTP. Dzięki temu ISA Server 2004 może działać w imieniu klientów ochraniając ich od zewnętrznych zasobów oraz zagrożeń. Microsoft 123 ISA Server 2004 obsługuję także podstawowe funkcje wykrywania włamań, aczkolwiek aby wypełni zabezpieczyć się przed tego typu problemami należy zintegrować swój istniejący system z produktami innych firm np. SS RealSecure. Obecnie ISA Server 2004 posiada możliwość wykrywania następujących włamań bądź prób ataku:  WinNuke  Ping of Heath  Land attaca  IP half scan  Port scan  UDP bomb  POP3 buffer overflow  SMTP buffer overflow  DNS zone transfer  DNS length overflow  DNS host name overflow Microsoft ISA Server 2004 obsługuje trzy rodzaje klientów, którzy próbują uzyskać dostęp do zewnętrznych zasobów sieci chronionej:  Klient SecureNAT  Klient Firewall  Klient Web proxy Klient SecureNAT nie posiada zbyt zaawansowanej konfiguracji i nie jest zbyt bezpiecznym typem połączenia z firewallem. Występuje tutaj zupełny brak uwierzytelniania podczas połączenia z firewallem tak więc nie mamy możliwości określenia jakie prawa może mieć użytkownik logujący się do systemu. Klient firewall jest jednym z komponentów systemu ISA Server 2004, jest to rozwiązanie, które naprawdę wyróżnia ten system spośród innych. Oprogramowanie klienckie firewalla może zostać zainstalowane na każdym komputerze z systemem Windows, niestety klient posiada pewne ograniczenia dla systemów typu: Linux, Unix, 124 Sun oraz Mac. Klient firewall pozwoli nam na zdefiniowanie dostępu do zewnętrznych zasobów w oparciu o grupy użytkowników Umożliwia także określenie w jaki sposób użytkownicy mają się wzajemnie porozumiewać. informacje na temat autoryzacji użytkowników będą znajdowały się w pliku dziennika firewalla. Najmocniejszą cechą klienta firewall jest możliwość wykonania kontroli bezpieczeństwa bezpośrednio na kliencie. Klient Web Proxy jest używany za każdym razem kiedy komputer konfigurowany jest za pomocą przeglądarki internetowej, aby korzystać w pełni z serwera Proxy ISA Server 2004 w pełni przejmuje role tego serwera. Klient ten pozwoli nam na zwiększenie wydajności dostępu do sieci ponieważ dane mogą być przechowywane przez serwer i przekazywane w późniejszym czasie do użytkowników z pamięci podręcznej. To także sprawi że zmniejszy się zapotrzebowanie na pasmo Internetu. Aby zapewnić dostęp do chronionych zasobów sieci ISA Server 2004 wprowadza tzw. zasady publikowania. Zasady te są realizowane w stosunku do przychodzących funkcji filtrowania zasobów, które są chronione przez firewall. Na przykład jeżeli serwer WWW, który potrzebuje do świadczenia usług klientów zewnętrznych należy wówczas użyć sieci tzw. usług wydawniczych (web server publishing rules) do zapewnienia dostępu do chronionych zasobów sieci. Wyróżniamy cztery rodzaje zasad publikacji:  Reguły publikowania serwera WWW  Reguły publikacji Web serwer Secure  Reguły publikowania na serwerze E-mail  Reguły publikowania serwera Microsoft ISA Server 2004 podobnie jak wiele innych firewalli posiada wsparcie techniczne oraz zintegrowaną funkcjonalność dla VPN umożliwiając tym sposobem korzystanie z ISA Server 2004 zarówno jako składnik site-to-site VPN jak i również jako punkt końcowy dla usługi sieci VPN dostępu zdalnego. ISA Server 2004 ma również możliwość obsługi trybu native IPsec tunnel mode. Ze względu na dużą funkcjonalność VPN ISA Server 2004 ma możliwość wykonywania dynamicznego filtrowania pakietów oraz pełnej kontroli ruchu VPN. 125 Prawie wszystkie funkcje tego firewala wykonywane są za pośrednictwem konsoli ISA Server. Pełna nazwa tej konsoli to Microsoft Management Konsole, jest ona uruchamiana na serwerze ISA Rys. 48 ISA Server 2004 Management Console Dostęp do konsoli może być bezpośrednio na serwerze bądź za pomocą zdalnego dostępu ale w tym wypadku zachodzi potrzeba instalacji oprogramowania do zarządzania. programowanie to pobierane jest z serwera ISA i instalowane na hoscie. Oprócz tego trzeba skonfigurować serwer ISA aby umożliwić konfiguracje w trybie zdalnym tak więc należy dodać do Remote Management Enterprise komputery, które w trybie zdalnym będą miały dostęp do konfiguracji. 126 Rys. 49 Remote Management Rulet Najprościej jest kliknąć prawym przyciskiem myszy na obiekcie Firewall Policy i wybrać pozycję Edit System Policy, następnie w grupie Remote Management wybrać Microsoft Management Console, ostatnim krokiem jest wybranie karty From i wybranie odpowiedniej grupy, którą chcemy zaktualizować. Po zakończeniu konfiguracji należy kliknąć ok. aby powrócić do głównego okna konsoli ISA Server . 127 Rys. 50 Apply Changes ISA Server 2004 Ostatnim zadaniem, które musimy wykonać aby nasze ustawienia zostały trwale zapisane jest kliknięcie na przycisk Apply tak jak widać na Rys. 43. Do specyficznych funkcji firewalla ISA Server 2004 należą:  Filtrowanie ruchu wychodzącego,  Publikowanie zasobów wewnętrznych,  Filtrowanie aplikacji sieciowych,  Konfiguracja reguł polityki systemowej,  Konfigurowanie metod dostępu do klienta,  Cache danych internetowych, 128 Do filtrowania ruchu wychodzącego firewall ISA stosuje następujące elementy polityki:  Zasada działania : określa nam czy ruch powinien być dozwolony czy też zabroniony gdy warunki zasady są spełnione.  Protokoły: W tym miejscu określamy protokoły, których dotyczy reguła, nie ma tutaj praktycznie żadnych ograniczeń co do protokołu.  Źródło: Określamy tutaj źródło, z którego wykonywany jest ruch, zazwyczaj źródło pochodzi z sieci wewnętrznej.  Przeznaczenie: Tutaj z kolei definiujemy źródło wykonywanego ruchu, zazwyczaj celem końcowym ruchy jest siec zewnętrzna.  Ustawienia użytkownika: Tutaj administrator definiuje gdzie będzie miałą zastosowanie nowo powstała reguła.  Typy zawartości: Tutaj definiować będziemy rodzaje oraz rozszerzenia plików dla których reguła będzie tworzona. Typy zawartości można określić i stosować zasady tylko dla HTTP oraz tunele dla FTP. Pozwoli nam to na dokąłdne określenie jakie konkretne treści będą dozwolone a jakie nie np. (rozszerzenia *.exe będą odrzucane).  Harmonogramy: Tutaj definiujemy harmonogram, w którym reguła zostanie zastosowana. Wykazy będą dotyczyć nowych połączeń oraz już istniejących. Rys. 51 Tworzenie nowej reguły dostępu 129 Tworzenie nowej reguły dostępu oparte jest na procesie kreatora, z jednym wyjątkiem mianowicie mówimy tutaj o typie zawartości oraz o harmonogramie. Te opcje konfigurujemy poprzez edycje właściwości istniejącej już reguły. Podczas konfiguracji nowej reguły na początku wpisujemy odpowiednią nazwę reguły dostępu po kliknięciu NEXT pojawi sięgam okno Rule Action gdzie będziemy mogli wybrać czy zezwolić czy też zabronić na ruch sieciowy. Po kliknięciu NEXT ukaże się nam kolejne okno o nazwie Protocols gdzie ustalimy dla jakich protokołów ruch sieciowy będzie dozwolony a dla jakich zabroniony. Po zakończeniu musimy jeszcze ustalić źródło z którego będzie odbywał się ruch sieciowy aby dodać źródło klikamy na Add Network Entities i podajemy skąd będzie odbywał się ruch. Rys. 52 Okno z którego wybieramy skąd będzie odbywał się ruch sieciowy Po określeniu źródła klikamy przycisk NEXT i kolejnym ekranem będzie User Sets czyli określenie użytkowników, dla których reguła będzie miała zastosowanie. Ważne jest że tylko klienci serwera Proxy jak również sieci Web mogą dokonać uwierzytelnienia, więc jeżeli chcemy dokonać uwierzytelnienia dla wszystkich 130 użytkowników należy przyjąć wartość domyślną dla wszystkich użytkowników tak jak na Rys. 46. Rys. 53 ustawienie wartości domyślnych dla wszystkich użytkowników reguły Po dokładnym przejrzeniu reguły klikamy przycisk FINISH co sprawi że nasza reguła zostanie utworzona ale nie będzie jeszcze stosowana dla firewalla. Aby sprawić że będzie ona stosowana należy zastosować ją w oknie głównym konsoli. Publikowanie zasobów wewnętrznych jest to również proces tworzenia reguły dostępu, odbywa się on również za pomocą kreatora. Niezależnie od reguły publikowania proces tworzenia jest podobny do poprzedniego. Tak więc wybieramy utworzenie nowej reguły firewalla (np. reguła publikowania w internecie) a następnie uruchamiamy kreatora. Po uruchomieniu kreatora postępujemy jak poprzednio podajemy nazwę reguły po czym klikamy NEXT, nastepnym oknem jakie pojawi się będzie Define Website to Publish. 131 Rys. 54 Define Website to Publish w firewalli ISA W tym miejscu określany informacje dla wewnętrznego serwera, który obsługuje stronę internetową, po wprowadzeniu odpowiednich informacji klikamy NEXT. Jedną z ciekawych funkcji publikowania jest to że mamy możliwość określania poszczególnych folderów na stronie internetowej. Po zakończeniu klikamy NEXT. Pojawi nam się wtedy kolejne okno Public Name Details gdzie określamy że strona będzie widoczna jako publiczna w Internecie. Po zakończeniu klikamy NEXT, teraz pozostaje nam zdefiniowanie interfejsów, adresów IP oraz numerów portów, których będzie używać nowo utworzona reguła. Można też zdefiniować ścieżkę wewnętrzną gdzie również będzie dostępna strona WWW ale w tym przypadku tylko w sieci wewnętrznej. W ostatnim oknie User Sets wybieramy użytkowników dla których reguła będzie miała zastosowanie. Po przejrzeniu poprawności reguły klikamy FINISH. Aby zastosować regułę dla firewalla należy tak jak w poprzednim przypadku zastosować jaw konsoli ISA. 132 Firewall ISA Server 2004 zawiera wiele wbudowanych filtrów aby zapewnić kontrolę w warstwie aplikacji Konfiguracja ta odbywa się w różnych miejscach konsoli ISA na przykład dla filtrów internetowych należy kliknąć na regułę HTTP lub HTTPS i wybrać Configure http. Firewall ISA Server 2004 następujące opcje filtrowania:  Maksymalna długość nagłówka (liczona w bajtach)  Długość URL (liczona w bajtach)  Normalizacja URL  Blokowanie plików wykonywalnych Windows (*.exe)  Metoda filtrowania http definiowana przez użytkownika  Rozszerzenie filtrowania Znaczącym wyjątkiem jest filtrowanie DNS, które konfiguruję się w General section po przez aktywowanie opcji Intrusion Detection oraz DNS Attack Detection. Domyślnie obie te opcje są włączone. Aby móc kontrolować dostęp do firewalla muszą być stworzone zasady polityki systemu. Zasady te nie stworzone domyślnie podczas przeglądania reguł, ale mogą być włączone. Zatem klikając Show System Policy Rules spowodujemy ze wszystkie zasady polityki systemu firewalla zostaną wyświetlone tak jak widać na Rys. 55. 133 Rys. 55 System Policy Rules firewalla ISA Mamy tutaj możliwość dodawania, zmiany oraz usuwania polityki systemu w sposób ręczny, lub po przez interfejs graficzny klikając prawym przyciskiem myszy na opcję Edit System Policy co spowoduje uruchomienie System Policy Editor. System Policy Editor pozwoli nam praktycznie na skonfigurowanie wszystkiego zaczynając np. od tego jakie systemy mogą zdalnie zarządzać firewallem oraz jak realizuje on swoje uwierzytelnienia. Konfiguracja cache web data to prosty proces, otóż w konsoli ISA przechodzimy do opcji Cache, klikamy prawym przyciskiem myszy po czym wybieramy Properties aby uruchomić Server Cache Properties. Aby włączyć cache należy po prostu wybrać dyski oraz ustawić maksymalny rozmiar pamięci podręcznej. Po zakończeniu klikamy OK. oraz Apply. Konieczny jest restart usług ISA aby konfiguracja zaczęła działać. Kiedy cache jest już włączony należy określić zasady jakie dane powinny być przechowywane 134 oraz w jaki sposób. Wybierając opcję Rules tab opracowujemy konkretne reguły, które zabezpieczą na jakie dane powinny być przechowywane. Podobnie jak większość zadań wykonywanych w Microsoft ISA Server 2004 również i to oparte jest na kreatorze, aczkolwiek kreator ten jest prosty i nie powinien sprawiać żadnych problemów podczas konfiguracji. 135 Rozdział IV Kofiguracja zapory sieciowej bazującej na systemie operacyjnym GNU/Linux Rozdział trzeci opisuje nam budowe oraz konfiguracje firewalla bazującego na systemie GNU/Linux. Znajdziemy tutaj również opis konfiguracji naszego firewalla wraz ze skryptem powłoki bash odpowiadającej za działanie naszego firewalla. 4.1 Firewall bazujący na systemie GNU/Linux Podrozdział ten opisywać będzie poszczególne kroki wykonywane podczas tworzenia firewalla bazującego na systemie GNU/Linux. Dystrybucja uzyta w procesie tworzenia firewalla to Slackware 13.1 z kernelem w wersji 2.6.33.4. 4.1.1 Budowa systemu pełniącego rolę firewalla Rozdział ten poświęcony będzie budowie oraz konfiguracji firewalla opartego o system GNU/Linux. Rozpatrzymy dwa warianty firewalla: firewall stworzony na podstawie skryptu pisanego w powłoce bash, konfiguracji reguł IPtables , oraz firewalla stworzonego na bazie oprogramowania OpensSource z interfejsem graficznym. Do budowy firewalla wykorzystamy dystrybucję Linuxa Slackware 13.1 z kernelem w wersji 2.6.33.4 , która zostanie zainstalowana na dysku twardym w celu utworzenia zapory sieciowej. Po standardowej instalacji systemu przystępujemy do zabezpieczenia go w standardowy sposób. Efekt polecenia netstat oraz ps przed dokonaniem standardowego zabezpieczenia systemu: root@host:~# netstat -an Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:37 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* 136 LISTEN tcp6 0 0 :::6000 :::* LISTEN tcp6 0 0 :::53 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN udp 0 0 0.0.0.0:512 0.0.0.0:* udp 0 0 0.0.0.0:37 0.0.0.0:* udp 0 0 0.0.0.0:53 0.0.0.0:* udp6 0 0 :::53 :::* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State unix 2 [ ACC ] STREAM LISTENING unix 2 [ ACC ] STREAM LISTENING unix 2 [ ACC ] STREAM LISTENING unix 2 [ ACC ] STREAM LISTENING lfM7xL0OoX unix 2 [ ACC ] STREAM LISTENING unix 2 [ ] DGRAM unix 2 [ ACC ] STREAM LISTENING /var/run/dbus/system_bus_socket unix 2 [ ACC ] STREAM LISTENING /root/.kde/share/apps/nepomuk/socket unix 2 [ ] DGRAM @/org/freedesktop/hal/udev_event unix 2 [ ACC ] STREAM LISTENING unix 2 [ ACC ] STREAM LISTENING root/kdeinit4__0 unix 2 [ ACC ] STREAM LISTENING root/klauncherMT1885.slave-socket unix 2 [ ACC ] STREAM LISTENING unix 2 [ ACC ] STREAM LISTENING unix 2 [ ACC ] STREAM LISTENING unix 2 [ ACC ] STREAM LISTENING mpFbUy2pCN unix 2 [ ACC ] STREAM LISTENING I-Node 6235 4513 6153 4595 Path @/tmp/fam-root/var/run/acpid.socket @/tmp/dbus-kf9pDWnKpz @/var/run/hald/dbus- 5917 2301 4569 @/tmp/.X11-unix/X0 @/org/kernel/udev/udevd 7697 4622 5918 6179 /tmp/.X11-unix/X0 /tmp/ksocket- 6194 /tmp/ksocket- 6423 7687 5849 4600 /tmp/.ICE-unix/1914 /tmp/virt_1111 /dev/gpmctl @/var/run/hald/dbus- 6422 @/tmp/.ICE-unix/1914 Tab. 51 Efekt działana polecenia netstat z parametrami –an root@host:~# ps -axf PID TTY STAT TIME COMMAND 6 ? 5 ? 4 ? 3 ? 1 ? 2 ? 7 ? 92 ? 147 ? 150 ? 155 ? 163 ? 167 ? 177 ? 180 ? 183 tty1 SW SW SW SWN S SW SW S S S S S S S S S 0:00 0:00 0:00 0:00 0:03 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 [kupdated] [bdflush] [kswapd] [ksoftirqd_CPU0] init [2] [keventd] [i2oevtd] /sbin/portmap /sbin/syslogd /sbin/klogd /sbin/rpc.statd /usr/sbin/inetd /usr/sbin/lpd /usr/sbin/atd /usr/sbin/cron -bash 137 184 185 186 187 188 206 208 tty2 tty3 tty4 tty5 tty6 ? ? S S S S S SW SW 0:00 0:00 0:00 0:00 0:00 0:00 0:00 /sbin/getty /sbin/getty /sbin/getty /sbin/getty /sbin/getty [eth0] [eth1] 38400 38400 38400 38400 38400 tty2 tty3 tty4 tty5 tty6 Tab. 52 Efekt działania polecenia PS z parametrami –axf Następnym krokiem jaki musimy wykonać z naszym systemem to wyłączenie niepotrzebnych demonów, które uruchamiaja niepotrzebne usługi. Aby to wykonać należy wprowadzić szereg poleceń mających na celu wyłączenie demonów. root@host:~# find /etc/rc* -name “*nfs-kernel-server” –exec rm {} \; root@host:~# root@host:~# find /etc/rc* -name “*nfs-common” –exec rm {} \; root@host:~# root@host:~# find /etc/rc* -name “*atd” –exec rm {} \; root@host:~# root@host:~# find /etc/rc* -name “*inetd” –exec rm {} \; root@host:~# root@host:~# find /etc/rc* -name “*cron” –exec rm {} \; root@host:~# root@host:~# find /etc/rc* -name “*lpd” – exec rm {} \; root@host:~# Tab. 53 wyłączenie niepotrzebnych demonów w linuxie. Po wykonaniu tych czynności oraz ponownym restartowaniu systemu demony nie będą już aktywne. Kolejnym ważnym krokiem jest aby posiadać stabilne źródła jądra, na którym będziemy wprowadzali pewne zmiany. Po pierwsze musimy zaopatrzyć się w patch umożliwiający filtrowanie pakietów w 7 warstwie modelu OSI. Dostępny jest on pod adresem http://l7-filter.sourceforge.net/ . Zatem ściągami netfilter-layer7-v2.22.tar i następnie dokonujemy uzupełnienia kernela. Po wykonaniu patchowania należy przekompilować jądro z opcjami, które będą dostępne na płytce cd oraz je zainstalować. root@host:~# make dep && make bzImage && make modules && make modules_install 138 root@host:~# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.33.4 root@host:~# cp /usr/src/linux/.config /boot/config-2.6.33.4 root@host:~# cp /usr/src/linux/System.map /boot/System.map-2.6.33.4 Tab. 54 Opcje użyte podczas prekompilacji jądra, polecenia użyte do instalacjo nowego jądra. Ostatnim krokiem będzie zainstalowanie pakietu Iproute2 w systemie. Zatem aby to wykonać użyjemy poleceń: root@host:~# tar zxvf iproute2-2.6.16-060323.tar.gz root@host:~# cd iproute2-2.6.16-060323 root@host:~# ./configure root@host:~# make root@host:~# make install Tab. 55 Instalowanie pakietu Iproute2 Po wykonaniu tej czynności konieczny jest restart systemu ponieważ jest to wymagane do poprawnego działania. Po ponownym uruchomieniu systemu mamy już w pełni działające narzędzia do konfiguracji podstawowego firewalla. Możemy zatem przystąpić do konfiguracji firewalla opartego o IPtables. 4.1.2 Iptables Do konfiguracji podstawowej użyjemy narzędzia Iptables, które działa podobnie jak starsze narzędzie ipchains. Do wykonania podstawowego firewalla opartego o reguły łańcuchów iptables użyjemy skryptu napisanego w powłoce bash: #!/bin/bash # sciezka do IPTABLES IPT="/usr/local/sbin/iptables" usage() { echo "Usage: $0 {start|stop}" } 139 case "$1" in start) echo "1" > /proc/sys/net/ipv4/tcp_syncookies # interfejsy sieciowe GW="eth0" IPGW="aaa.bbb.ccc.ddd" # routowalny adres IP {od dostawcy} IF="eth1" IPIF="192.168.1.1" # tutaj definiujejmy hosty ktorych adresy bedziemy maskowac NATED_HOSTS="192.168.1.11 192.168.1.12 192.168.1.13 192.168.1.14 192.168.1.15 192.168.1.16 192.168.1.17 192.168.1.18 192.168.1.19 192.168.1.20 192.168.1.21 192.168.1.22 192.168.1.23 192.168.24 192.168.1.25 192.168.1.26 192.168.1.27 192.168.1.28 192.168.1.29 192.168.1.30" #maskarada for HOST in $NATED_HOSTS; do $IPT -t nat -A POSTROUTING -o $GW -s $HOST -j MASQUERADE done echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter echo "1" > /proc/sys/net/ipv4/ip_forward # Hosty ktore ma wpuszczane przez serwer z sieci lokalnej # odbywa się to według identyfijacji ADRES IP + MAC $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.11 -m mac --mac-source 00:00:00:00:00:00 -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.12 -m mac --mac-source 00:00:00:00:00:01 -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.13 -m mac --mac-source 00:00:00:00:00:02 -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.14 -m mac --mac-source 00:00:00:00:00:03 -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.15 -m mac --mac-source 00:00:00:00:00:04 -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.16 -m mac --mac-source 00:00:00:00:00:05 -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.17 -m mac --mac-source 00:00:00:00:00:06 -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.18 -m mac --mac-source 00:00:00:00:00:07 -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.19 -m mac --mac-source 00:00:00:00:00:08 -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.20 -m mac --mac-source 00:00:00:00:00:09 -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.21 -m mac --mac-source 00:00:00:00:00:0A -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.22 -m mac --mac-source 00:00:00:00:00:0B -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.23 -m mac --mac-source 00:00:00:00:00:0C -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.24 -m mac --mac-source 00:00:00:00:00:0D -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.25 -m mac --mac-source 00:00:00:00:00:0E -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.26 -m mac --mac-source 00:00:00:00:00:0F -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.27 -m mac --mac-source 00:00:00:00:00:1A -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.28 -m mac --mac-source 00:00:00:00:00:2A -j ACCEPT 140 $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.29 -m mac --mac-source 00:00:00:00:00:3A -j ACCEPT $IPT -t nat -A PREROUTING -i $IF -s 192.168.1.30 -m mac --mac-source 00:00:00:00:00:4A -j ACCEPT # Tutaj blokujemy ruch $IPT -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.0/24 -j ACCEPT $IPT -t nat -A POSTROUTING -s 192.168.0.0/16 -d 192.168.0.0/16 -j DROP $IPT -t nat -A PREROUTING -i $IF -j DROP ## echo "Firewall wlaczony" ;; stop) $IPT -F $IPT -Z $IPT –X Tab. 56 skrypt konfiguracyjny firewalla napisany w powłoce bash. I tak powstały skrypt prostego lecz skutecznego firewalla będzie zabezpieczał naszą siec. Opisując krótko działanie tego firewalla jego zadanie będzie polegalo na tym że nikt z sieci LAN nie będzie miał dostępu do Internetu jeżeli nie zostanie przypisany do maskarady oraz do tablicy, która sprawdza powiązania adresu IP z adresem MAC, po pomyślnym sprawdzeniu uzyskuje dostęp do serwera, w każdym innym przypadku dostęp jest blokowany. 4.1.2 Firewall Firestarter Przyjrzymy się teraz drugiej implementacji firewalla, który również oparty będzie o system GNU/Linux. Będzie to oprogramowanie OpenSource o nazwie Firestarter. Zapewni nam on graficzny interfejs do budowy fiewalla. Będziemy mieli tutaj możliwość grupowania poszczególnych elementów w obiekty co pozwoli nam na kontrole nad wieloma zaporami sieciowymi. Zatem przechodzimy do strony http://www.fs-security.com/ i pobieramy z niej stabilną wersje Firestarter 1.0.3 (stable). Po instalacji uruchamiamy go z konsoli po czym pojawi nam się okno kreatora firewalla, za którego pomocą skonfigurujemy go. 141 Rys. 56 Kreator Firewalla Firestarter Mamy tutaj do dyspozycji kilka ustawień mianowicie czy adresy sieciowe będą przydzielane za pomocą serwera DHCP czy tez będą statyczne, oraz możliwość ustawienia konkretnych interfejsów, w przypadku naszego firewalla będą to dwa interfejsy (ETH0 oraz ETH1). Po pomyślnej konfiguracji ukaże na się okno statusu firewalla. 142 Rys. 57 Status firewalla Firestarter Użyjemy tego oprogramowania do stworzenia reguł dotyczącej połączeń przychodzących oraz wychodzących. Interfejs zdarzeń firewalla będzie na bieżąco pokazywał nam przechwycone próby włamania do systemu 143 Rys. 58 Zakładka Events firewalla Firestarter. Jeżeli klikniemy prawym przyciskiem myszy na wpis w tabelce events będziemy mogli kontrolować sposób w jaki firewall będzie postępował w razie wykrycia podobnego połączenia. Jak widać na Rys. 51 firewall wykrył trzy próby nieautoryzowanego dostępu z sieci zewnętrznej, które zaznaczone są kolorem czerwonym, natomiast kolorem czarnym odznacza się połączenie które nie jest szkodliwe dla nas i jest dopuszczone przez nasz firewall. 144 Rys. 59 Zakładka Policy firewalla Firestarter Musimy także zdefiniować politykę bezpieczeństwa naszego firewalla, w której musimy umieścić reguły dotyczące ruchy wychodzącego jak i również przychodzącego. Ponadto musimy zdefiniować czarne oraz białe listy połączeń, czyli jakie połączenia będą dozwolone a jakie będą blokowane. 145 Rozdział V Testy zbudowanej zapory sieciowej. 5.1 Testy i analiza zabezpieczonej sieci W tym podrozdziale opisane zostały testy działania zaprojektowanego firewalla. Firewall zostanie analizowany zarówno od strony zewnętrznych problemów jaki problemów wewnętrznych. Celem testów jest sprawdzenie poprawności działania firewalla jak i równieżsprawdzenai jego wydajności. 5.1.1 Prawidłowość filtrowanych danych Pierwszym krokiem będzie sprawdzenie czy firewall w ogóle przepuszcza jakikolwiek ruch sieciowy odbywający się od sieci wewnętrznej. Tak więc po wystartowaniu naszego systemu konfigurujemy go. Nas firewalla posiada dwie karty Ethernet, pierwszy interfejs EHT0 posiada routowalny adres IP przydzielony przez usługodawcę, natomiast drugi interfejs ETH1 posiada adres IP wewnętrzny 192.168.1.1/24. Komputer znajdujący się w sieci wewnętrznej jest z systemem Windows i posiada adres IP 192.168.1.2/24 a jego domyślna brama to 192.168.1.1. Komputer z systemem Windows podłączamy bezpośrednio do firewalla za pomocą kabla skrosowanego, natomiast firewall jest podłączony za pomocą switcha do sieci zewnętrznej. Stan interfejsów po uruchomieniu usług firewalla klasyfikuje się następująco: root@host:~# ip address 1: lo: <LOOPBACK> mtu 16436 qdisc noop link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc htb qlen 1000 link/ether 00:c0:26:a5:c5:9f brd ff:ff:ff:ff:ff:ff inet 192.168.7.28/24 brd 192.168.7.255 scope global eth0 3: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc htb qlen 1000 link/ether 00:00:21:ec:58:e0 brd ff:ff:ff:ff:ff:ff inet 192.168.1.1/24 brd 192.168.1.255 scope global eth1 Tab. 57 stan interfejsów sieciowych po załadowaniu usług firewalla. 146 Po wykonaniu prawdzenia interfejsów następnym krokiem będzie sprawdzenie poprawności działania konfiguracji IPtables: root@host:~# iptables –L –n –v Chain INPUT (policy DROP 4 packets, 755 bytes) pkts bytes target prot opt in 2 168 ACCEPT 0 0 ACCEPT udp -- * 22 2992 ACCEPT 0 0 ACCEPT out icmp -- * * * tcp -- * source 0.0.0.0/0 0.0.0.0/0 * all -- lo * 0.0.0.0/0 state RELATED,ESTABLISHED 0.0.0.0/0 0.0.0.0/0 destination 0.0.0.0/0 state RELATED,ESTABLISHED 0.0.0.0/0 state RELATED,ESTABLISHED 0.0.0.0/0 Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT icmp -- * * 192.168.1.0/24 0.0.0.0/0 0 0 ACCEPT udp -- * * 192.168.1.0/24 0.0.0.0/0 0 0 ACCEPT 0 0 DROP tcp -- * * tcp -- * * 192.168.1.0/24 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x16/0x02 state NEW 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED Chain OUTPUT (policy ACCEPT 33 packets, 4179 bytes) pkts bytes target prot opt in out source destination Tab. 58 Konfiguracja Iptables po uruchomieniu usługi firewalla. root@host:~# iptables –L –n –v iptables –t nat –L –n -v Chain PREROUTING (policy ACCEPT 3 packets, 518 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 5 packets, 392 bytes) pkts bytes target 0 0 prot opt in out source destination MASQUERADE tcp -- * * 192.168.1.0/24 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 5 packets, 392 bytes) pkts bytes target prot opt in out source destination Tab. 59 Konfiguracja IPtables po uruchomieniuusługi firewalla. Analizując tak przeprowadzone testy możemy zauważyć ze komputer z systemem Windows z sieci wewnętrznej wykonywał już połaczenia z internete za pośrednictwem naszego firewalla. Świadczyc będą o tym liczniki znajdujące się w IPtables. Strony 147 WWW chodza prawidłowo tak więc ruch odbywający się po TCP działa, wywołanie ping również działa prawidłowo tak wieć ICMP również działa, Liczniki na firewallu będą zwiekszać się wraz z ilością ściągniętych danych z Internetu. 5.1.2 Hping2 Uzyjemy teraz narzędzia hping do przetestowania naszego firewalla. pierwszym krokiem jest pobranie ze strony http://www.hping.org/download.php . Po zainstalowaniu zbadamy skuteczność w przepuszczaniu pakietów do sieci chronionej. root@host:~# ip r a 192.168.1.0/24 via 192.168.7.78 Tab. 60 Ustawienie w tablicy routowania Na samym początku musimy ustawić w tablicy routowania komputer z sieci wewnętrznej aby pakiety z adresem docelowym 192.168.1.0/24 były kierowane przez badanego przez nas firewalla. Teraz wykonmy ping z hosta znajdującego się w sieci zewnętrznej do hosta z systemem Windows w sieci wewnętrznej. user@host:~# ping -c 5 192.168.1.2 PING 192.168.1.2 (192.168.1.2): 56 data bytes --- 192.168.1.2 ping statistics --5 packets transmitted, 0 packets received, 100% packet loss Tab. 61 Efekt działania ping z hosta zewnętrznego. I jak widzimy pakiety ICMP zostaly w pełni odrzucone, oznacza to o poprawnym działaniu filtrowania danych ICMP, tak więc nasz firewall spełnia powierzone mu zadanie. Wykonajmy zatem jeszcze jeden test, mianowicie zainicjujmy skanowanie za pomoca pakietów ACK. Na początek przeskanujemy nasz firewall: user@host:~# hping 192.168.7.28 -A -p 22 -c 5 HPING 192.168.7.78 (eth0 192.168.7.28): A set, 40 headers + 0 data bytes --- 192.168.7.28 hping statistic --- 148 5 packets tramitted, 0 packets received, 100% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms user@host:~# hping 192.168.7.28 -A -p 80 -c 5 HPING 192.168.7.78 (eth0 192.168.7.28): A set, 40 headers + 0 data bytes --- 192.168.7.28 hping statistic --5 packets tramitted, 0 packets received, 100% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms Tab. 62 Skanowanie firewalla za pomocą pakietów ACK W kolejnym kroku sprawdzimy jakie porty sa otwarte na wewnętrznym hoście z systemem Windows: Rys. 60 Polecenie netstat –an majace na celu ukazanie otwartych portów. 149 Jak widzimy na rysunku powyżej w systemie jest kilka portów, które są otwarte i wynokuja tzw. nasłuchiwanie. Wykonamy teraz skanowanie portów na hoscie wewnętrznym.Skupiamy się na portach, które są otwarte: user@host:~# hping 192.168.1.2 -A -p 1028 -c 5 HPING 192.168.1.2 (eth0 192.168.1.2): A set, 40 headers + 0 data bytes --- 192.168.1.2 hping statistic --5 packets tramitted, 0 packets received, 100% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms user@host:~# hping 192.168.1.2 -A -p 135 -c 5 HPING 192.168.1.2 (eth0 192.168.1.2): A set, 40 headers + 0 data bytes --- 192.168.1.2 hping statistic --5 packets tramitted, 0 packets received, 100% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms Tab. 63 Polecenie do wykonania skanowania portów. I w taki sposób spradzilismy naszgo firewalla pod kątem bezpieczeństwa filtrowania danych TCP oraz UDP. Wszystkie przeprowadzone testy firewalla wypadły z pozytywnym wynikiem. 150 5.1.3 Nmap Aby mieć pewnośc ze firewall naprawde dobrze wykonuje powierzone mu zadanie wykonany drugi test za pomocą narzędzie Nmap, którego celem będzie pokazanie ze firewall broni sieć wewnetrzną przed atakami z sieci zewnętrznej. user@host:~# nmap -sS -O 192.168.7.78/32 Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ ) Note: Host seems down. If it is really up, but blocking our ping probes, try -P0 Nmap run completed -- 1 IP address (0 hosts up) scanned in 30 seconds user@host:~# nmap -sU 192.168.7.78/32 Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ ) Note: Host seems down. If it is really up, but blocking our ping probes, try -P0 Nmap run completed -- 1 IP address (0 hosts up) scanned in 30 seconds user@host:~# nmap -sF 192.168.7.78/32 Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ ) Note: Host seems down. If it is really up, but blocking our ping probes, try -P0 Nmap run completed -- 1 IP address (0 hosts up) scanned in 30 seconds Tab. 64 wykorzystanie skanera Nmap Jak widac zaden pakiet nie dotarł do firewalla, ponieważ nasz firewall nie posiada żadnych otwartych portów, a odpowiednie pakiety kierowane są do reguły DROP stworzonej przez nas w IPtables. 151 Rozdział VI Podsumowanie Celem niniejszej pracy było stworzenie firewalla bazującego na systemie GNU/Linux, który powinien spełniać podstawowe funkcje firewalla, być odpornym na różnorodne ataki, które mogą napływać z sieci zewnętrznej. W pracy znajdziemy także podstawowe informacje na temat modelu osi, protokołów które używane sa podczas pracy firewalli ale i również podczas działania innych urządzen sieciowych. Mamy możliwośc przyjrzenia się różnym firewallom zarówno tym komercyjnym takim jakk np. CISCO PIX/ASA, bądź Linksys jak i również rozwiązaniom OpenSource, które pomimo tego że są darmowe mogą również dobrze spełniać powierzone mu zadania. Wnioski jakie możemy wyciągnąc to przedewszystkim to że aby uchronić się przed zagrożeniami płynącymi z sieci należy bezwzględnie zastosować firewall. Niekoniecznie musi to być to sprzęt, którego cena jest bardzo wysoka, ponieważ dobry administrator może również za pomocą tańszych środków uzyskać porządany efekt podczas zabezpieczania sieci. Oczywiście tyczy się to tylko wtedy gdy posiadamy ograniczone środki budżetowe, natomiast jeżeli nie posiadamy zbyt dużych ograniczeń warto jest inwestować w sprzęt z tzw. górnej półki ponieważ w każdej sieci bezpieczeństwo użytkowników oraz ich danych to podstawa, i tak na dobrą sprawe administrator sieci nie powinien sobie pozwolić na jakiekolwiek błędy podczas planowania oraz wdrażania systemu zabezpieczeń. 152 Rozdział VII Bibliografia 1. ISA Server 2004 UNLEASHED Michael Noel Sams Publishing 2005r. 2. Cisco Network Security Troubleshooting Handbook Mynul Hoda Cisco Press 2005r. 3. Troubleshooting Linux® Firewalls Michael Shinn, Scott Shinn Prentice Hall PTR 2004r. 4. Designing and Implementing Linux Firewalls and QoS using netfilter, iproute2, NAT, and L7-filter Lucian Gheorghe Packt Publishing 2006r. 5. Akademia sieci Cisco. Pierwszy rok nauki Vito Amato, Wayne Lewis Wydawnictwo MIKOM 2001r. 6. Zarządzanie sieciami IP za pomocą ruterów CISCO Scott Ballew Wydawnictwo RM 2003r. 7. Cisco Router Firewall Security Richard A. Deal Cisco Press, 2004r. 8. Firewalls ściany ogniowe Matthew Strebe, Charles Perkins Mikom 2000r. 153 Streszczenie Niniejsza praca opisuje nam zasady implementacji Firewall’i w oparciu o elementy aktywne sieci LAN/WAN. Ponadto ukazuje nam również zagrożenia jakie panują w Internecie, oraz jakie powinny wyglądac dobre polityki bezpieczeństwa. Poruszane były również aspekty dotyczące technologii oraz architektur w jakich wykonywane sa firewalle. Były to architektury pojedynczego oraz podwójnego firewalla, single/dual system firewall oraz inne. W pracy zostały również omówione protokoły, które są najczęściej wykorzystywane podczas pracy firewalli są to m.in. (TCP, IP, UDP, ICMP, NAT oraz inne). Rozdział trzeci przedstawia wybrane poszczególne modele zapór sieciowych zaczynając od routerów szerokopasmowych firmy Linksys po przez bardziej zaawansowane technologicznie firewalle CISCO PIX oraz ASA firewall, Microsoft ISA Server 2004. Również zostały poruszone aspekty firewalli opartych na systemie OpenSource. Charakterystyki te dotyczyly ogólnych zagadnien co do możliwości jakie mogą spełniać poszczególne firewalle, oraz ograniczeń jakie posiadaja. Przedstawione zostały również metody konfiguracji firewalli. W zależności od stopnia zaawansowania firewalla w opisie konfiguracji zawarte są tryby konfiguracyjne (tryb tekstowykonsola), (tryb graficzny- GUI). Rozdział czwarty jest tzw. rodzialem praktycznym, który opisuje Budowe oraz konfiguracje zapory sieciowej bazującej na systemie operacyjnym GNU/LINUX. Zawarte są tak również informacje dotyczące podstawowej konfiguracji firewalla przy użyciu regół oraz łańcuchów IPTABLES oraz przy uzyciu Firewall Firestarter. Ostatni rozdział poświęcony jest testom oraz analizie zabezpieczonej sieci. Firewall został poddany próbie przełamania zabezpieczen po przez uzycie narzędzi typu (Hping2) oraz (Nmap), których celem bylo zdobycie dostępu do sieci chronionej. Ponadto Firewall został poddany testom, które miały wykazać że firewall dobrze spełnia powierzone mu zadania oraz poprawie filtruje dane, które przez niego przechodza.Wszystkie testy wykonywane na firewallu zostały zakończone pomyślnie co skutkowało tym że firewall dobrze spełnial powierzone mu zadania i bronil przed jakimkolwiek atakiem intruza na sieć chroniona. 154 155