Wyższa Szkoła Informatyki i Zarządzania Wydział Informatyki



Podobne dokumenty
Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

MODEL WARSTWOWY PROTOKOŁY TCP/IP

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

Model sieci OSI, protokoły sieciowe, adresy IP

Protokoły sieciowe - TCP/IP

Pytanie 1 Z jakich protokołów korzysta usługa WWW? (Wybierz prawidłowe odpowiedzi)

Przesyłania danych przez protokół TCP/IP

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.

Router programowy z firewallem oparty o iptables

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP. WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r.

Zestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

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

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek:

ARP Address Resolution Protocol (RFC 826)

MASKI SIECIOWE W IPv4

Sieci Komputerowe Translacja adresów sieciowych

Sieć komputerowa Adresy sprzętowe Adresy logiczne System adresacji IP (wersja IPv4)

Warstwa sieciowa. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci

Wyższa Szkoła Informatyki i Zarządzania Wydział Informatyki

Komunikacja w sieciach komputerowych

Test sprawdzający wiadomości z przedmiotu Systemy operacyjne i sieci komputerowe.

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Zadania z sieci Rozwiązanie

Którą normę stosuje się dla okablowania strukturalnego w sieciach komputerowych?

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

Plan wykładu. Warstwa sieci. Po co adresacja w warstwie sieci? Warstwa sieci

Akademia Techniczno-Humanistyczna w Bielsku-Białej

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

7. Konfiguracja zapory (firewall)

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c

Warstwy i funkcje modelu ISO/OSI

Adresy w sieciach komputerowych

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 13 Topologie sieci i urządzenia

Bezpieczeństwo w M875

1. Sieć komputerowa - grupa komputerów lub innych urządzeń połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów.

iptables/netfilter co to takiego?

Scenariusz lekcji Opracowanie: mgr Bożena Marchlińska NKJO w Ciechanowie Czas trwania jednostki lekcyjnej: 90 min.

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

Sieci komputerowe - Wstęp do intersieci, protokół IPv4

Warstwa sieciowa. Adresowanie IP. Zadania. Warstwa sieciowa ćwiczenie 5

SIECI KOMPUTEROWE Adresowanie IP

Zapory sieciowe i techniki filtrowania danych

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

Sprawozdanie z zajęć laboratoryjnych: Technologie sieciowe 1

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

Struktura adresu IP v4

TCP/IP formaty ramek, datagramów, pakietów...

Technologie sieciowe

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Sieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i sieciowej

Model OSI. mgr inż. Krzysztof Szałajko

ZASADY PODZIAŁU SIECI NA PODSIECI, OBLICZANIA ADRESÓW PODSIECI, ADRESÓW HOSTÓW I ADRESU ROZGŁOSZENIOWEGO

Projektowanie bezpieczeństwa sieci i serwerów

Zadania do wykonania Firewall skrypt iptables

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

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

Laboratorium - Przeglądanie tablic routingu hosta

MODEL OSI A INTERNET

Laboratorium 2.8.2: Zaawansowana konfiguracja tras statycznych

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Katedra Inżynierii Komputerowej Politechnika Częstochowska. Zastosowania protokołu ICMP Laboratorium podstaw sieci komputerowych

Technologie informacyjne - wykład 8 -

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

SIECI KOMPUTEROWE. Dariusz CHAŁADYNIAK Józef WACNIK

Pakiet Iptables. Filtrowanie pakietów i filtrowanie stanowe

Plan wykładu. Wyznaczanie tras. Podsieci liczba urządzeń w klasie C. Funkcje warstwy sieciowej

Plan wykładu. Warstwa sieci. Po co adresacja w warstwie sieci? Warstwa sieci

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

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

Zapory sieciowe i techniki filtrowania.

Translacja adresów - NAT (Network Address Translation)

Tworzenie i obsługa wirtualnego laboratorium komputerowego

ZiMSK NAT, PAT, ACL 1

Praca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

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

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 25

Programowanie sieciowe

Laboratorium Sieci Komputerowe

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

Zarządzanie bezpieczeństwem w sieciach

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Tomasz Greszata - Koszalin

Akademia Techniczno-Humanistyczna w Bielsku-Białej

4. Podstawowa konfiguracja

Instrukcja 5 - Zastosowania protokołu ICMP

Sieci komputerowe - administracja

Urządzenia sieciowe. Tutorial 1 Topologie sieci. Definicja sieci i rodzaje topologii

Programowanie współbieżne i rozproszone

Laboratorium 6.7.2: Śledzenie pakietów ICMP

MODUŁ: SIECI KOMPUTEROWE. Dariusz CHAŁADYNIAK Józef WACNIK

Sieci Komputerowe Modele warstwowe sieci

Bazy Danych i Usługi Sieciowe

pasja-informatyki.pl

E.13.1 Projektowanie i wykonywanie lokalnej sieci komputerowej / Piotr Malak, Michał Szymczak. Warszawa, Spis treści

Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37

WSTI w Katowicach, kierunek Informatyka opis modułu Teleinformatyka i teoria sieci komputerowych

Transkrypt:

Wyższa Szkoła Informatyki i Zarządzania Wydział Informatyki Katedra: Podstaw informatyki i technologii informatycznych Kierunek studiów: Informatyka Specjalność: Systemy informatyczne PRACA DYPLOMOWA INŻYNIERSKA Temat: Symulator komputerowy zapory ogniowej http://www.wsi.edu.pl/~skzo/ Dyplomant: Robert Cieślar Numer albumu: 3128 Promotor: prof. nadzw., dr n.t., dr n.f. Piotr Marecki Bielsko-Biała, 2011

DEKLARACJA My niżej podpisani, oświadczamy, że : 1. Dyplomant zapoznał się z art. 193 ustawy prawo o szkolnictwie wyższym z dnia 27 lipca 2005 roku (Dz. Ustaw z 2005 roku, Nr 164, poz.1365, z późn. zm.), który mówi, że Organ właściwy, w drodze decyzji, stwierdza nieważność postępowania w sprawie nadania tytułu zawodowego, jeżeli w pracy stanowiącej podstawę nadania tytułu zawodowego osoba ubiegająca się o ten tytuł przypisała sobie autorstwo istotnego fragmentu lub innych elementów cudzego utworu lub ustalenia naukowego. 2. Praca dyplomowa pt.: Symulator komputerowy zapory ogniowej została napisana samodzielnie, przy respektowaniu praw autorskich innych osób. Nie narusza ona praw autorskich w rozumieniu ustawy z dnia 4 lutego 1994 roku o prawie autorskim i prawach pokrewnych (Dz. Ustaw z 2000 roku, Nr 80, poz.904, z późn. zm.) oraz dóbr osobistych chronionych prawem autorskim. 3. W pracy dyplomowej dyplomant korzystał za zgodą Promotora z informacji przekazanych mu w Karcie Tematycznej Pracy Dyplomowej oraz w ramach konsultacji dyplomowych, do których prawa autorskie przysługują Promotorowi. Ponadto wszystkie fragmenty pracy dyplomowej zaczerpnięte z cudzych źródeł są oznaczone kursywą w formie cytatów. 4. Praca dyplomowa nie zawiera informacji, uzyskanych w sposób niedozwolony. Ponadto praca dyplomowa nie była wcześniej podstawą żadnej innej procedury urzędowej związanej z nadawaniem dyplomów wyższej uczelni lub tytułów zawodowych. 5. Zgodnie z aktualną ustawą prawo o szkolnictwie wyższym, WSIZ przysługuje pierwszeństwo w opublikowaniu pracy dyplomowej w ciągu 6 miesięcy od daty jej obrony. Po tym terminie dyplomant (w całości) oraz promotor (fragmenty) mogą publikować niniejszą pracę pod warunkiem wskazania źródła : Cieślar R. : Symulator komputerowy zapory ogniowej, praca dyplomowa inżynierska niepublikowana, WSIZ, Bielsko-Biała, 2011, promotor : prof. nadzw., dr n.t., dr n.f. Piotr Marecki. 6. WSIZ może wdrażać rezultaty niniejszej pracy dyplomowej poprzez Centrum Transferu Technologii. WSIZ, Dyplomant oraz Promotor mogą bez żadnych ograniczeń korzystać z praw majątkowych (to znaczy sprzedawać lub udostępniać pracę dyplomową), wynikających z niniejszej pracy dyplomowej, w celach edukacyjnych, naukowych oraz komercyjnych pod warunkiem wskazania źródła : Cieślar R.. : Symulator komputerowy zapory ogniowej, praca dyplomowa inżynierska niepublikowana, WSIZ, Bielsko-Biała, 2011, promotor :prof. nadzw., dr n.t., dr n.f. Piotr Marecki. 7. Studenci WSIZ mogą korzystać z niniejszej pracy dyplomowej do celów edukacyjnych, bez żadnych ograniczeń - pod warunkiem wskazania źródła : Cieślar R. : Symulator komputerowy zapory ogniowej praca dyplomowa inżynierska niepublikowana, WSIZ, Bielsko-Biała, 2011, promotor :prof. nadzw., dr n.t., dr n.f. Piotr Marecki. Cieślar Robert PESEL : 85090913296... podpis Dyplomant... Promotor Bielsko-Biała, dnia :...... W imieniu WSIZ Dziekan

Spis treści WPROWADZENIE...5 1 Geneza, teza i cel pracy...5 1.1 Geneza...5 1.2 Teza pracy...5 1.3 Cele pracy...5 2 Specjalizacja...6 2.1 Zapory ogniowe...6 2.2 Model OSI...7 2.3 Warstwy...8 2.4 Porty oraz usługi...9 2.5 Zagrożenia w sieci Internet...10 2.6 Przedstawienie przykładowego ataku...12 3 Zakres i problematyka...14 3.1 Zakres...14 3.2 Problematyka...14 3.3 Struktura pracy...15 4 Przegląd bibliografii...16 4.1 Publikacje...16 4.2 Prace dyplomowe wykonane w WSIZ...17 4.3 Witryny internetowe...18 ROZDZIAŁ I. SPECYFIKACJA SYSTEMU INFORMATYCZNEGO...19 1 Ogólna specyfikacja własności zapór ogniowych...19 1.1 Protokoły sieciowe wykorzystywane w symulatorze...19 1.2 Adresowanie w sieci...21 1.3 Topologia sieci...24 1.4 Maski podsieci...26 2 Architektura układów typu firewall...27 2.1 Informacje ogólne...27 2.2 Przykładowa platforma firewall...27 3 Tworzenie zapór ogniowych...30 ROZDZIAŁ II. PROJEKT SYSTEMU INFORMATYCZNEGO...35 1 Narzędzia informatyczne...35 1.1 Dia 0.96.1...35 1.2 Platforma Ajax...36 3

1.3 FireBug 1.7.3...37 2 Pierwowzory symulatora...37 2.1 Tworzenie reguł na platformie AirOS Ubiquiti...37 2.2 Tworzenie reguł w systemie RouterOS...38 3 Model oraz założenia symulatora...39 4 Ramki oraz zapora...41 4.1 Schemat blokowy generowania ramek...41 4.2 Tablica zapory...42 4.3 Schemat symulacji...43 5 Opis przykładowych funkcji systemu...45 ROZDZIAŁ III. REALIZACJA SYSTEMU INFORMATYCZNEGO...47 1 Graficzny interfejs użytkownika...47 1.1 Główne okno symulatora...47 1.2 Paski narzędziowe...48 2 Konfiguracja...48 2.1 Ustawienia sieci lokalnej...49 2.2 Dodawanie oraz edycja reguł zapory...51 3 Wyniki graficzne przeprowadzanych symulacji...53 ROZDZIAŁ IV. TESTOWANIE SYSTEMU...55 1 Testy statyczne...55 2 Testy dynamiczne...56 2.1 Wyniki czasowe symulacji względem ilości ramek...56 2.2 Analiza poprawności wyników symulacji...57 3 Uwagi do testowania...59 ZAKOŃCZENIE...61 1 Podsumowanie...61 2 Wnioski...61 3 Zalecenia do wdrożenia...61 4 Streszczenie w języku angielskim SUMMARY...62 BIBLIOGRAFIA...63 SPIS TABEL I RYSUNKÓW...64 4

WPROWADZENIE 1 1.1 Geneza, teza i cel pracy Geneza Od momentu popularyzacji szerokopasmowych połączeń internetowych komputery w znacznej mierze narażone są na ataki i próby nieautoryzowanego dostępu do informacji. Większość użytkowników nie zdaje sobie sprawy, że już po kilku minutach od podłączenia komputera do sieci, różnego rodzaju szkodliwe oprogramowanie skanujące sieć w poszukiwaniu znanych oraz podatnych luk w zabezpieczeniach zapuka do drzwi naszego komputera. Zapora ogniowa jest jednym z niezbędnych narzędzi do walki z zagrożeniami związanymi z użytkowaniem stałego podłączenia internetowego, zapewniając lepszą ochronę sieci LAN, czy pojedynczej stacji roboczej. Wybierając temat pracy autor sugerował się zainteresowaniem tematyką zapór ogniowych, gdyż są one nieodłącznym elementem w tworzeniu oraz zarządzaniu sieciami rozległymi. 1.2 Teza pracy Komputerowy symulator zapory ogniowej, jak i materiał dydaktyczny zawarty w pracy przedstawi, jak ważnym mechanizmem w ochronie naszego komputera i sieci lokalnej jest zapora ogniowa. Zagrożenia, pochodzące z internetu, nie są tylko z zakresu szkodliwych aplikacji typu spyware, wirusów, czy robaków, a ograniczenie się do aplikacji antywirusowej nie zapewnia dostatecznego poziomu zabezpieczenia na zainfekowanie się szkodliwym oprogramowaniem i nieupoważnionym dostępem do zasobów, które nie powinny być udostępnione. 1.3 Cele pracy Niniejsza praca ma za zadanie przedstawienie architektury oraz mechanizmy funkcjonowania zapory ogniowej w sposób przyswajalny dla zwykłego użytkownika; przekazać niezbędną, a zarazem cenną wiedzę na temat podstaw wymiany informacji w sieci, konfiguracji oraz wdrażania zapory sieciowej w domu czy firmie. Drugim celem pracy jest zbudowanie aplikacyjnego symulatora zapory sieciowej, dzięki któremu możliwe będzie generowanie pakietów znanych protokołów 5

sieciowych oraz porównywania ich z wzorcami łańcucha utworzonych reguł tabeli. Pozwoli to na przeprowadzenie prostych doświadczeń oraz analizy zachowania zapory na podstawie logów systemowych. Projektowany symulator powinien posiadać następujące elementy: Możliwość definiowania reguł za pomocą takich pól informacyjnych zawierających się w ramkach jak adresów źródłowych i docelowych, portów źródłowych i docelowych oraz typów protokołów sieciowych. 2 2.1 Generowanie dowolnej ilości ramek przychodzących. Przegląd wyników symulacji w postaci wykresów oraz logów. Specjalizacja Zapory ogniowe Zapory ogniowe, nazywane potocznie firewall'ami, wykorzystywane są do filtrowania ruchu pomiędzy dwiema sieciami o różnych stopniach zaufania. Ich stosowanie jest bardzo ważnym elementem podczas budowy wszelkiego rodzaju sieci komputerowych. Problematyka zapór ogniowych skupia się na ich odpowiedniej konfiguracji. Rozumie się przez to skonstruowanie takiej tablicy, która posiada reguły, dzięki którym administrator sieci (tudzież systemu) w znacznym stopniu wyeliminuje niechciane ramki, które mogą zagrozić bezpieczeństwu czy nieautoryzowanemu dostępowi do zasobów przy zachowaniu jak najlepszych parametrów przepływu informacji przez urządzenia. Specjalizacja ta w informatyce występuje od momentu, gdy dostęp do sieci zaczął być coraz bardziej powszechny, a bezpieczeństwo stało się nieodzownym elementem układów informatycznych. Opisując bardziej szczegółowo działanie zapory ogniowej można powiedzieć, że jej głównym zadaniem jest zapobieganie zagrożeniom oraz niepowołanemu dostępowi do sieci. Urządzenie, jakim jest zapora ogniowa, może być zwykłym komputerem z zainstalowanym odpowiednim oprogramowaniem pełniącym zarazem funkcje routera. Kwalifikacja nadchodzących ramek polega na ich ciągłym śledzeniu oraz dopasowywaniu do wzorców ujętych w ramach zdefiniowanych reguł. W przypadku, gdy ramka spełnia te kryteria podejmowana jest decyzja, czy ramka zostanie odrzucona, czy też dopuszczona do określonych usług sieciowych. 6

Podstawowe informacje, dla których można przeprowadzać analizę, zawarte są w nagłówkach przekazywanych informacji. Do takich informacji należą między innymi: adresy źródłowe oraz docelowe, porty źródłowe oraz docelowe, protokoły sieciowe. Przedstawione powyżej kryteria są najczęściej wykorzystywane. Oczywiście istnieje szereg innych argumentów, dla których można tworzyć wzorce reguł. Zatem można zaprogramować zaporę w taki sposób, aby podczas przetwarzania ramek wyrażenie sprawdzające wyglądało w następujący sposób: Jeżeli zostanie spełniony warunek W1 oraz warunek W2 podejmij działanie D1 lub Jeżeli zostanie spełniony warunek W3 oraz nie zostanie spełniony warunek W4, podejmij działania określone jako D2. 2.2 Model OSI Chcąc lepiej zrozumieć zasadę działania zapór ogniowych, trzeba bliżej przyjrzeć się sposobowi przekazywania informacji w sieciach komputerowych. Do tego typu zadań wykorzystuje się protokoły sieciowe, które to przesyłają dane w kawałkach. Kawałki te noszą nazwę pakietów, a każdy z nich zawiera informacje zawarte w implementacji poszczególnych protokołów, które z kolei należą do poszczególnych warstw modelu OSI. Model OSI to zbiór międzynarodowych zasad, dzięki którym możliwa jest komunikacja różnego rodzaju sprzętu oraz systemów operacyjnych. Model, o którym mowa, posiada siedem warstw, z których każda odpowiedzialna jest za coś innego. Warto zaznaczyć w tym miejscu, że każda z warstw zbudowana jest na bazie warstwy poprzedniej, co ściślej mówiąc oznacza, że warstwa aplikacji jest opakowana w warstwę prezentacji, a ta z kolei w warstwę sesji, która jest opakowana warstwą transportową itd. W informatycznym języku taki proces nazywamy kapsułkowaniem. Każda z warstw składa się z części nagłówka, w której umieszczone są informacje odpowiednie danej warstwie i część z danymi, w której zawarte są informacje warstwy poprzedniej. Warto wspomnieć, że model OSI traktowany jest jako model teoretyczny, a w rzeczywistości wykorzystywany jest uproszczony model TCP/IP, posiadający tylko cztery warstwy, co umożliwiło zunifikowanie transmisji w sieci. 7

Rys. 1. Porównanie modelu OSI i TCP/IP1 2.3 Warstwy Warstwa aplikacji jest najwyższą warstwą z siedmiu warstw modelu OSI. Jej zadaniem jest specyfikacja interfejsu oraz żądanie bezpośredniego dostępu do gniazd (ang. socket). Gniazdo, to nic innego, jak połączenie typu protokołu, adresu lokalnego oraz numeru portu, w przypadku, gdy typ gniazda pozwala na jego używanie. Aplikacje są zwykłymi procesami uruchomionymi na komputerach lokalnych i zdalnych. Procesy te nie mogą komunikować się bezpośrednio. Aby możliwe było przesłanie danych przez sieć, omawiana warstwa przekazuje komunikat do warstwy niższej. Warstwa prezentacji przekształca dane, aby zapewnić standardowy interfejs dla warstwy aplikacji przy ruchu w górę oraz zunifikowaniu formatu danych, które otrzymują warstwy niższe. Zapewnia to niezależność w różnicach reprezentacji danych, uwalniając od problemów ze zgodnością ich typu czy struktury. Inaczej mówiąc, warstwa ta dostarcza procedury standaryzujące system kodowania podczas wymiany danych między warstwami. 1 Opracowanie własne 8

Warstwa sesji kontroluje połączenia między komputerami lokalnymi i zdalnymi, poprzez synchronizacje zarządza sesjami (połączeniami) już ustanowionymi, nawiązywanymi, prawidłowym zakończeniem, a w przypadku zerwania połączenia ich wznowieniem. Koordynując połączenie, zapewniamy prawidłowe przesyłanie danych między aplikacjami. Warstwa transportowa zapewnia transfer danych między stacjami źródłowymi i docelowymi, w zależności od wykorzystanego protokołu transmisji. Protokół TCP zapewnia wiarygodność dostarczanych danych poprzez podzielenie danych na segmenty i kontrolę błędów, która polega na numerowaniu części, przypisywaniu sum kontrolnych oraz potwierdzeniu odbioru segmentu. Drugim protokołem tej warstwy jest UDP. Protokół ten jednak nie zapewnia całkowitej pewności przesyłanych danych, ponieważ nie otrzymujemy potwierdzenia o poprawnym odebraniu przesłanego datagramu. Warstwa sieci zapewnia transfer danych ze źródła do miejsca przeznaczenia za pośrednictwem jednej lub kilku sieci przy jednoczesnym utrzymaniu jakości wymaganej przez warstwę transportową. To tutaj zapada decyzja o podziale danych, przekazywanie ich od węzła do węzła, aż do punktu docelowego. Najbardziej znanym protokołem tej warstwy jest protokół internetowy, w którym adresowanie polega na przypisywaniu urządzeniom w sieci numerów IP. Warstwa łącza danych zajmuje się fizycznym adresowaniem sieci, logiczną kontrolą łącza oraz dostępem do mediów, sterując przepływem i kolejnością dostarczania ramek, zapewniając niezawodne przenoszenie danych. Warstwa fizyczna wykonuje żądania zlecone przez warstwę łącza danych. Warstwa ta odnosi się do sprzętu sieciowego, fizycznego okablowania lub bezprzewodowego połączenia elektromagnetycznego. Głównym jej zadaniem jest wymiana danych cyfrowych przez kanał komunikacyjny. 2.4 Porty oraz usługi Protokoły transportowe, które umożliwiają wymianę informacji w sieci, powiązane są z numerami portów. Porty te nazywane są potocznie gniazdami. Gniazda te identyfikują lokalny proces na odległych systemach informatycznych. Jest 9

on prócz adresu sieciowego drugim w kolejności parametrem wykorzystywanym podczas filtrowania ramek w sieci. Niektóre z portów są zarezerwowane i domyślnie przypisane do poszczególnych usług sieciowych takich jak: WWW, FTP, SMTP. Zakres tych portów to 1 do 1024. Uruchomienie na tych portach jakiejkolwiek aplikacji sieciowej, która korzysta z gniazd bez praw administratora systemu jest niemożliwe. Pozostałe porty z zakresu 1025 do 65535 mogą być dowolnie wykorzystywane. Należy wspomnieć w tym momencie, że większość ataków sieciowych skierowanych jest bezpośrednio w poszczególne usługi sieciowe, co poruszane będzie w kolejnym podpunkcie. Tab. 1. Nasłuchy portów usług sieciowych2 Port Usługa Opis 21 FTP Protokół usługi transferu plików 22 SSH Protokół usługi szyfrowanego połączenia terminalowego 25 SMTP Usługi wymiany poczty elektronicznej 53 DNS Protokół usługi zapewniający zamianę adresów na domeny i odwrotnie 80 HTTP Protokół przesyłania dokumentów hipertekstowych 110 POP3 Protokół zapewniający odbiór poczty elektronicznej 143 IMAP Następca protokołu POP3 z możliwością katalogowania 443 HTTPS Szyfrowany protokół przesyłania dokumentów hipertekstowych 2.5 Zagrożenia w sieci Internet W sieci Internet występuje wiele zagrożeń, z którymi użytkownicy, jak i administratorzy, muszą się zmagać. W celu znacznego wyeliminowania tych zagrożeń stworzone zostały specjalistyczne narzędzia, które w znacznym stopniu mogą ochronić nas przed ich wpływem. Do takich narzędzi w szczególności zaliczyć możemy aplikacje typu: antywirusy, antyspyware, antyspamowe, aplikacje dla kontroli rodzicielskiej, 2 Opracowanie własne 10

programy szyfrujące dane, zapory sieciowe. Należy jednak pamiętać o jednej rzeczy, z której nie zdaje sobie sprawy spora cześć społeczeństwa internetowego, że zawsze najsłabszym ogniwem w bezpieczeństwie systemów informacyjnych jest człowiek. Dlatego też należy szczególnie uważać na linki, załączniki czy pliki, które zostały nam przesłane przez nieznane osoby. Omawiana w tej pracy zapora ogniowa, która jest jednym z tych narzędzi, może chronić systemy informacyjne w szczególności przed takimi zagrożeniami jak: nieautoryzowany dostęp w systemach informacyjnych występuje mnogość różnego rodzaju usług sieciowych, jednakże w przypadku firm czy korporacji dostęp do zasobów sieci mogą mieć tylko uprawione do tego osoby. Dlatego też w celu wyeliminowaniu nieautoryzowanego dostępu administrator może stworzyć wzorce reguł tak, aby dostęp do usługi był możliwy tylko z określonych adresów. Prawidło skonfigurowana zapora ogniowa jest najlepszym rozwiązaniem w tego typu atakach; ataki DoS, DDoS ataki te są jednym z najgroźniejszych zagrożeń w systemach informatycznych. Polegają na masowym wysyłaniu datagramów na poszczególne porty usług w celu zapchania łącza lub przeciążeniu stosu TCP/IP czego konsekwencją jest unieruchomienie określonej usługi w systemie. Administrator, w celu wyeliminowania tego typu zagrożenia, może stworzyć reguły zapory w taki sposób, aby nie przyjmował więcej połączeń, niż ustalone zostało to we wzorcu reguły dla jednego hosta. Zapora może ograniczyć tego typu ataki, jednakże całkowite uchronienie się jest niemożliwe; spamowanie - spamowanie polega na masowym wysyłaniu poczty elektronicznej z różnego rodzaju niechcianymi informacjami. Często komputery zarażane są oprogramowaniem, które bez naszej wiedzy łączy się z serwerem poczty wychodzącej, wysyłając spam, czego konsekwencją jest zablokowanie naszego adresu przez dodanie go do czarnych list. Administrator może zapobiec takiemu procederowi poprzez nałożenie limitów połączeń dla jednego hosta 11

w sieci tak, by przy wielokrotnej próbie łączenia się z serwerami poczty wychodzącej adres został dodany do listy, która blokuje dalszy dostęp do usług pocztowych kolejno powiadamiając użytkownika o zaistniałej sytuacji i sprawdzenia jego systemu pod kątem niechcianego oprogramowania oraz jego usunięciu; podszywanie atak ten polega na preparowaniu nagłówka IP. Wiedząc, z jakich hostów usługa może przyjmować połączenia, intruz zmienia wartości nagłówka tak, aby usługa zaakceptowała przychodzący datagram. W celu wyeliminowania tego typu ataków administrator musi podjąć działania, które będą mieć na celu weryfikacje wiarygodności przychodzących datagramów. Zapora sieciowa w znacznym stopniu może zabezpieczać przed tego typu atakami sieciowymi; skanowanie samo skanowanie bezpośrednio nie jest zagrożeniem dla systemów informacyjnych. Tego typu proceder polega na wyszukiwaniu w sieci aktywnych hostów, na których uruchomione są poszczególne usługi, które mogą być podatne na różnego rodzaju ataki od zawieszenia, aż po przejęcie pełnej kontroli nad systemem. Administrator może stworzyć reguły zapory w taki sposób, by sprawdzane były próby nawiązywania połączeń na większą liczbę portów z jednego hosta, W momencie wykrycia tego typu ataku adres, z którego nawiązywane są połączenia, dodawany jest do czarnej listy, która blokuje jakiekolwiek połączenia z danego hosta przez określony przedział czasowy. Konsekwencją takiego zabezpieczenia jest niepełny lub całkowity brak wyniku skanowania. 2.6 Przedstawienie przykładowego ataku Podrozdział ten zostanie poświęcony przedstawieniu jednego typu ataku, który to będzie miał na celu wysłanie spreparowanej ramki. Do zademonstrowania ataku zostanie wykorzystane narzędzie Nemesis, które jest programem generującym różnego rodzaju pakiety w systemach UNIX, działającym w trybie tekstowym. Należy zdawać sobie sprawę z faktu, że osoba posiadająca bogatą wiedzę dotyczącą sieci komputerowych, ich funkcjonowania oraz umiejętności programistyczne mogłaby stworzyć złośliwe oprogramowanie, które po wydaniu określonego zadania generowałoby ramki z losowym adresem źródłowym. Przy 12

masowym wysyłaniu takich pakietów mielibyśmy atak DoS. W przypadku uruchomienia takiej aplikacji na kilku komputerach atak ten przyjmuje nazwę DDoS. Z oczywistych względów administrator sieci nie jest w stanie określić faktycznego źródła ataku, czego skutkiem nie jest możliwe stworzenie reguł zapory w taki sposób, by całkowicie zabezpieczyć się przed atakiem. Administrator w takiej sytuacji musi ograniczyć ilość przyjmowanych ramek z jednego źródła, co i tak w przypadku bardzo natężonego ataku może nie przynieść pożądanego efektu. Rys. 2. Wysyłanie spreparowanego pakietu TCP oraz ICMP3 Jak widzimy na powyższej ilustracji, spreparowanie jakiejkolwiek ramki nie stwarza żadnego problemu. Pierwszy spreparowany pakiet TCP był skierowany do hosta o adresie 192.168.98.1. Adresem źródłowym, z którego miałoby być nawiązywane połączenie jest adres 10.2.3.4. Dodatkowymi elementami są; port źródłowy (tutaj 5700) oraz docelowy 80. Atrybutem, który posiada ramka TCP, jest flaga - w tym przypadku to znacznik SYN, odpowiadający za synchronizacje połączenia. Drugą ramką był pakiet kontrolny ICMP dla tych samych adresów, jednakże 3 Opracowanie własne 13

tutaj atrybutem był typ komunikatu echo request. 3 Zakres i problematyka 3.1 Zakres Tematyka pracy dyplomowej zawiera się w zakresie sieci komputerowej jak i bezpieczeństwie informatycznym, dlatego też nieodzownym elementem jest zapoznanie z materiałami, które dotyczą ogółu tychże zagadnień. Na temat sieci komputerowych, jak i bezpieczeństwem z nimi związanych, napisano dziesiątki książek i jeszcze wiele z pewnością zostanie napisanych. Dla zrozumienia zagadnień związanych z zaporami ogniowymi oraz projektem dotyczącym pracy dyplomowej zostaną przybliżone, omówione oraz wykorzystane takie informacje, jak: 3.2 model OSI wraz z warstwami, adresowanie w sieci Internet, przykładowe protokoły sieciowe, topologia, tworzenie reguł na podstawie działającego układu firewall, zagrożenia w sieci. Problematyka Problemem, z jakim borykają się administratorzy, jest stworzenie takiej ściany ogniowej, która w jak najlepszy sposób będzie chronić dostęp do sieci czy systemu, przy zachowaniu jak najlepszych parametrów transmisji informacji. Należy sobie zdać sprawę z faktu, że jeżeli budowana zapora ogniowa będzie bardzo skomplikowanym układem, który posiada dziesiątki reguł, a zakres sprawdzanych informacji w nagłówkach czy też danych każdej ramki będzie zbyt duży, przełoży się to na czas, w jakim ramki zostaną kompletnie sprawdzone, a tym samym na szybkość przekazywania tychże informacji. Głównym problemem tworzonego symulatora jest jego zaprojektowanie w taki sposób, aby odzwierciedlał on prawdziwe działanie zapory ogniowe. Oczywiste jest, że zbudowanie takiego symulatora, który będzie posiadał nawet niewielką ilość 14

możliwości, którą daje nam prawdziwa zapora ogniowa, jest procesem bardzo czasochłonnym. Dlatego też należy stworzyć uproszczony model, który potrafiłby zademonstrować zasadę działania zapory na podstawie kilku podstawowych elementów oraz przekazać niezbędną wiedzę w zakresie jej konfiguracji. 3.3 Struktura pracy Struktura pracy będzie składać się zasadniczo z kilku części, którymi są: Wprowadzenie ta część pracy składa się z: genezy, tezy pracy, wyznaczenia celów jakich praca ma dotyczyć oraz opisu struktury, jaką praca posiada. W podpunkcie Specjalizacja zostanie przybliżona wiedza z zakresu sieci oraz zagrożeń, które jej towarzyszą. Prócz wymienionych wyżej, wprowadzenie posiada przegląd bibliografii, jaka została wykorzystana podczas tworzenia niniejszej pracy dyplomowej. Rozdziały I. Specyfikacja systemu informatycznego w rozdziale tym zostanie przybliżona tematyka protokołów komunikacyjnych, wykorzystanych do tworzenia modelu symulatora. Zagadnienia te są podstawą do zrozumienia działania zapór ogniowych oraz mechanizmów im towarzyszącym. Przedstawia praktyczne ich wykorzystanie, budowę oraz zasadę działania. Omawiane są zagadnienia oraz przykładowe reguły zapory ogniowej. Rozdział II. Projekt systemu informatycznego w rozdziale tym znaleźć będzie można omówienie narzędzi informatycznych, wykorzystanych podczas tworzenia projektu, pierwowzory, którymi kierował się autor podczas tworzenia symulatora zapory ogniowej. Przedstawione zostaną schematy blokowe, algorytmy oraz wyrywkowy kod źródłowy przykładowych funkcji symulatora. Rozdział III. Realizacja systemu informatycznego informacje zawarte w tym rozdziale dotyczą gotowego projektu symulatora zapory ogniowej, omówiona jest jego funkcjonalność, działanie, sposób wprowadzania danych oraz analizowanie wyników. Zaprezentowane w taki sposób, aby osoba wdrażająca się w obsługę aplikacji mogła z niej w prosty sposób korzystać. Rozdział IV. Testowanie systemu informatycznego w rozdziale czwartym 15

zamieszczono informacje na temat opisu oraz metod testowania aplikacji wraz z napotkanymi problemami programistycznymi. Zakończenie jest częścią składającą się z czterech podpunktów. Podsumowania całości pracy, wniosków dotyczących zapór ogniowych oraz uwag końcowych, w których zawarto informacje dotyczące dalszego rozwoju aplikacji. Ostatni podpunkt zakończenia zawiera streszczenie całości pracy w języku angielskim. Bibliografia - w tej części zostanie przedstawiona szczegółowa bibliografia, wykorzystana podczas tworzenia pracy. Informacje, zawarte w bibliografii, rozbite będą na trzy punkty. Pierwszym z nich będą publikacje, kolejnym - prace dyplomowe wykonane w WSIZ, ostatnim - witryny internetowe. 4 Przegląd bibliografii Tematyka zapór ogniowych, sieci komputerowych jak i zagadnienia potrzebne do stworzenia pracy dyplomowej niejednokrotnie były opisywane w różnego rodzaju publikacjach, pracach dyplomowych dostępnych na uczelni czy Internecie. Te i inne informacje znajdujące się w materiałach pomogły w głębszym zrozumieniu potrzebnych zagadnień. Zostały opisane w kilku zdaniach w poniższych podpunktach. 4.1 Publikacje 4.1.1 Robert J. Shimorski, Debra Littlejohn Shnider, Dr. Thomas W. Shnider, Wielka księga Firewalli, Helion, Gliwice 2004 Wielka księga Firewalli. Mającą niespełna 1400 stron książka zawiera wiele cennych informacji, dotyczących programowych jak i sprzętowych zapór ogniowych, sposoby ich konfiguracji oraz instalacji. Autorzy poruszyli w niej książce problematykę zarówno komercyjnych rozwiązań, jak i bezpłatnych, opartych o kod źródłowy OpenSource, odmian firewalli. Prócz samej wiedzy teoretycznej, informacje zawarte w książce pokazują, jak wdrażać zapory w domu lub w firmie oraz metody dotyczące włamań jak i zapobieganiu im. 4.1.2 Jon Erickson, Hacking Sztuka penetracji, Helion, Gliwice 2004 Hacking Sztuka penetracji. Informacje zawarte w tej książce dotyczą tematyki związanej z zagrożeniami towarzyszącymi informatyce. Szczegółowo opisano oraz wyjaśniono techniki, jakimi posługują się hakerzy, związane z nimi podstawowe ataki 16

oraz pojęcia programistyczne, sposoby podsłuchiwania czy przekierowania ruchu w sieci. 4.1.3 Mark Baartse, Stuart Canway, Jean-Luc David i inni, JavaScript Zaawansowane programowanie, Helion, Gliwice 2003 JavaScript Zaawansowane programowanie. Mająca ponad 1200 stron książka opisuje zagadnienia związane z programowaniem skryptowym w JavaScript. Informacje zawarte w tej książce są przejrzyste i mimo tego, że kierowana jest dla bardziej zaawansowanego programisty skryptowego jest łatwo przyswajalna przez mniej doświadczonych odbiorców. Poparta jest szeregiem licznych przykładów wraz z towarzyszącym nim opisami. 4.1.4 Mark Sportack, Sieci Komputerowe Księga eksperta, Gliwice 2004 Sieci komputerowe Księga eksperta. Licząca ponad 600 stron pozycja ta opisuje zagadnienia związane z sieciami komputerowymi. Omawiany jest między innymi model OSI wraz z poszczególnymi warstwami sieci, opisem sieciowych systemów operacyjnych, technologii wraz z protokołami sieciowymi. Przedstawia ona mechanizmy zabezpieczenia sieci, ochrony danych oraz daje komplet praktycznych wskazówek, a także rozwiązań potrzebnych w efektywnym użytkowaniu sieci. 4.2 Prace dyplomowe wykonane w WSIZ 4.2.1 Jacek Kapanowski, Modelowanie i symulacja 2008, dr n.t., dr n.f. Piotr Marecki, prof. nadzw. cyfrowa układów Firewall Tematyka tej pracy opisuje podstawowe zagadnienia z sieci komputerowych. Są nimi miedzy innymi adresy sieciowe czy protokoły komunikacyjne, wykorzystywane w sieciach rozległych. Spora część pracy poświęcona jest topologii sieci, w której występują zapory ogniowe, ich zastosowanie, możliwości oraz rodzaje. Opisane zostały sposoby filtrowania pakietów takie jak: filtrowanie za pośrednictwem analizy stanu połączeń czy bramy na poziomie aplikacji typu serwer proxy. Autor opisał także zagrożenia występujące w sieci, metody ataków, ewentualne sposoby obrony przed nimi oraz rolę zapory ogniowej, jaką pełni w danym przypadku. Dyplomant w swojej pracy projektuje symulator zapory ogniowej, którego działanie polega na generowaniu pseudolosowych ramek dla poszczególnych klas, a za pomocą poszczególnych metod ramki te są odrzucane lub akceptowane przez symulator zapory. Dzięki statystykom 17

oraz wykresom można przeglądać stosunek ramek zaakceptowanych i odrzuconych. 4.2.2 Dawid Puszczowicz, Analiza systemów firewall i ich wykorzystanie dla ochrony sieci lokalnych 2006, prof. zw. dr hab. inż. J. Korostil Dyplomant w swojej pracy opisuje szczegółowo rodzaje oraz typy zapór ogniowych, mechanizmy jej towarzyszące (od filtrowania pakietów, przez translacje adresów po bramy pośredniczące proxy). Poruszane są takie tematy jak budowa i składowe ściany ogniowej, w jaki sposób rozpoznać topologie sieci oraz co powinien wiedzieć użytkownik, aby wdrożyć zaporę sieciową. Opisany został szereg zapór ogniowych programowych jak i sprzętowych, komercyjnych oraz darmowych. Autor opisał także szereg specjalistycznych narzędzi, które dostępne są dla każdego użytkownika w sieci, a wykorzystywane są do różnego rodzaju ataków czy analizy ruchu sieciowego. 4.2.3 Paweł Sieńczewski, Bezpieczeństwo w sieciach 802.11, dr. inż. Marcin Tomana Dyplomant w swojej pracy porusza zagadnienia związane z bezpieczeństwem sieci bezprzewodowej. Opisywane są informacje dotyczące zagrożeń wynikające z nieautoryzowanego dostępu do sieci. Spora część pracy poświęcona jest badaniom dotyczącym łamania klucza WEP, który służy do szyfrowania połączenia bezprzewodowego. Z badań wynika, że dzięki wykorzystaniu specjalistycznego oprogramowania, które jest łatwo dostępne w sieci, złamanie takiego zabezpieczenia może trwać kilka minut. Przekazuje wiedzę dotyczącą najlepszych sposobów zabezpieczenia takiej sieci dzięki stworzonej aplikacji, która doradza w doborze najlepszej metody zabezpieczenia się przed różnego rodzaju typami zagrożeń. Użytkownik sam jest w stanie wdrożyć odpowiednie zabezpieczenia. 4.3 Witryny internetowe Witryny internetowe, prócz omówionych wcześniej publikacji oraz prac dyplomowych wykonanych w WSIZ, były kolejnym źródłem informacji, dzięki któremu możliwe było napisanie pracy dyplomowej. Wiedza zawarta w materiałach online pozwoliła na bliższe zapoznanie się z językiem programowania, jakim jest JavaScript oraz środowiska programistycznego Ajax platform. Możliwe było także odnalezienie niezliczonych materiałów dotyczących sieci komputerowych, jak i zapór ogniowych, których to praca dyplomowa dotyczy. 18

ROZDZIAŁ I. SPECYFIKACJA SYSTEMU INFORMATYCZNEGO 1 Ogólna specyfikacja własności zapór ogniowych 1.1 Protokoły sieciowe wykorzystywane w symulatorze IP jest podstawowym protokołem komunikacyjnym w sieci lokalnej oraz internecie. W sieciach, opartych na tym protokole, dane są przesyłane w blokach nazywanych pakietami. Pakiety te mogą być przesyłane przez dowolną liczbę urządzeń pośredniczących, nie zapewniając dostarczenia danych do odbiorcy. Głównymi właściwościami protokołu są: 32 bitowe adresy identyfikujące odbiorcę oraz nadawcę pakietu, ttl czas życia pakietu, liczba określająca po ilu przeskokach pakiet zostanie zignorowany, każdy przeskok powoduje zmniejszenie tej liczby o jeden, suma kontrolna, używana do określenia poprawności nagłówka, transportowany protokół (ICMP, TCP, UDP), flagi: DF nie fragmentuj, MF następne części fragmentu, typ usługi (TOS) priorytet pakietu, wersja IPv4 lub IPv6. Rys. 3. Nagłówek datagramu IP4 TCP - protokół ten umożliwia strumieniowy przepływ danych między dwoma maszynami korzystającymi z tego protokołu. Strumień zawiera w sobie mniejsze porcje danych, zwane segmentami, zapewniając przy tym niezawodność transmisji poprzez kontrolę polegającą na potwierdzeniu otrzymanego segmentu. Do właściwości protokółu zaliczyć można: port źródłowy i docelowy, 4 Opracowanie własne 19

suma kontrolna, określająca poprawność danych, flagi (SYN, ACK, PSH, RST, URG, FIN), numer sekwencyjny, określający miejsce w pliku przed fragmentacją, numer potwierdzenia otrzymania segmentu, szerokość okna mówiąca, jak wielką porcje danych może przyjąć odbiorca, wskaźnik priorytetu, informujący o ważności pakietu. Rys. 4. Nagłówek pakietu TCP5 UDP - należy do podstawowych protokołów internetowych. Jest zarazem bezpołączeniowy oraz nie posiadającym mechanizmów kontroli przepływu danych. Dane, przekazywane przez ten protokół, maja formę datagramów. Dzięki odejściu od koncepcji kontroli przekazywanych danych, protokół ten charakteryzuje się znacznie szybszą transmisją danych. Jednak nie mamy gwarancji, co do dostarczenia informacji. Do cech jego prostej budowy należą: port źródłowy oraz docelowy, suma kontrolna, sprawdzająca dane oraz nagłówek pakietu, długość czyli wielkość całego datagramu. Rys. 5. Nagłówek pakietu UDP6 ICMP - jest internetowym protokołem komunikatów kontrolnych stosowany 5 Opracowanie własne 6 Opracowanie własne 20

przede wszystkim w diagnostyce sieci. Jego zadaniem jest zgłaszanie błędów, które wystąpiły w łączności między danymi hostami, pozwalając łatwo zdiagnozować problem. Do najczęściej wykorzystywanych przez administratorów narzędzi należą ping oraz traceroute ; typ komunikatu np. echo request, echo reply, suma kontrolna sprawdzająca poprawność nagłówka oraz danych, kod uszczegółowienie typu. Rys. 6. Nagłówek komunikatu ICMP7 1.2 Adresowanie w sieci Podstawą adresowania urządzeń w sieci Internet jest protokół IP w wersji czwartej (Ipv4). Adres ten to 32 bitowa liczba, która dla ułatwienia jest zapisywana w systemie dziesiętnym, gdzie zapis poszczególnego adresu to cztery oktety rozdzielone kropką. Każda z maszyn pracujących w sieci Internet ma przydzielony indywidualny dla tej maszyny adres, który nie może się powtórzyć dla żadnego innego urządzenia w tej sieci. Adresy protokołu IPv4 zostały podzielone na klasy, gdzie każda z nich rozpoczyna się określoną sekwencją bitów, na podstawie których oprogramowanie jest w stanie określić, które bity przedstawiają sieć, a które zostały użyte do określenia konkretnego komputera w tej sieci. Tab. 2. Klasy adresowe8 Klasa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 A 0 Adres sieci Adres hosta B 1 0 Adres sieci C 1 1 0 Adres sieci D 1 1 1 0 Adresy multicast E 1 1 1 1 Adresy zarezerwowane Adres hosta Adres hosta Każdej klasie przyporządkowano zakresy adresowe, które szczegółowo przedstawiono 7 Opracowanie własne 8 Opracowanie własne 21

w kolejnej tabeli. Tab. 3. Zakresy klas adresowych9 Klasa Pierwszy adres IP Ostatni adres IP Blok Największy ciągły blok A 1.0.0.0 126.0.0.0 24-bitowy 10.0.0.0/8 B 128.1.0.0 191.254.0.0 20-bitowy 172.16.0.0/16 C 192.0.1.0 223.255.254.0 16-bitowy 192.168.0.0/24 D 224.0.0.0 239.255.255.254 12-bitowy 224.0.0.0/20 E 240.0.0.0 255.255.255.254 8-bitowy 240.0.0.0/24 Klasa A adresy w tej klasie mają ustawiony pierwszy bit na 0. Następnych siedem identyfikuje adres sieci a ostanie 24 bity identyfikują docelowy adres hosta. Adresy te należą do zakresu od 1.0.0.0 do 126.0.0.0, gdzie dla każdej sieci z tego zakresu można zaadresować 16777214 unikalnych numerów IP. Dla każdej sieci z tego zakresu można zaadresować 16777214 unikalnych numerów IP. Tab. 4. Klasa A10 Klasa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 A 0 Adres sieci Adres hosta Klasa B w przypadku tej klasy adresowej pierwsze dwa bity mają wartość binarną 10, kolejne 14 to adres sieci, a w przypadku ostatnich dwóch oktetów o sumarycznej wielkości 16 bitów mamy do dyspozycji łączną wartość 65534 unikatowych adresów IP. Przedział adresowy tej klasy należy do zakresu od 128.1.0.0 do 191.254.0.0 Tab. 5. Klasa B11 Klasa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 B 1 0 Adres sieci Adres hosta Klasa C klasa ta charakteryzuje się ustawionymi pierwszymi trzema bitami na 110, kolejnych 21 bitów określa adres sieci pozostałe osiem bitów identyfikuje adres hosta. Dla każdej sieci klasy C możliwe jest zaadresowanie 254 indywidualnych adresów IP, 9 Opracowanie własne 10 Opracowanie własne 11 Opracowanie własne 22

a jej zakres mieści się w przedziale 192.0.1.0 do 223.255.254.0 Tab. 6. Klasa C12 Klasa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 C 1 1 0 Adres sieci Klasa D - Adres hosta adresy z tej klasy mieszczą się w zakresie od 224.0.0.0 do 239.255.255.254, w dodatku nie są one wykorzystywane w normalny sposób, a ich zastosowanie jest ograniczone. Należą one do tak zwanej grupy multicastowej. W przypadku tego typu adresu pierwsze cztery bity to 1110. Tab. 7. Klasa D13 Klasa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 D 1 1 1 0 Adresy multicast Klasa E - żadne z tych adresów nie są dopuszczane do stosowania w Internecie. Zostały one zarezerwowane przez organizację InterNIC w celach badawczych oraz dla ewentualnych potrzeb w przyszłości. Tab. 8. Klasa E14 Klasa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 E 1 1 1 1 Adresy zarezerwowane Struktura adresu IP składa się z 32 bitów czyli czterech oktetów po osiem bitów zapisanych w systemie dziesiętnym, gdzie każdy oktet rozdzielony jest kropką. Zapis taki często określany jest mianem kropkowo-dziesiętnym. Sposób zapisu w tym systemie jest wygodny dla człowieka, jednakże komputery pracują w systemie binarnym. Dlatego, aby komunikacja mogła odbywać się prawidłowo, potrzebna jest konwersja z systemu dziesiętnego na binarny i na odwrót. Zatem 32 bitowy adres IP będzie miał następujący zapis: 01001110 10011101 10101111 01100010 w postaci zapisu dziesiętnego jako: 78.157.175.98 12 Opracowanie własne 13 Opracowanie własne 14 Opracowanie własne 23

1.3 Topologia sieci Adres IP jest pojedynczą liczbą 32 bitową, zbudowaną w oparciu o hierarchię dwupłaszczyznową określającą cześć sieci oraz maszyn należących do tej sieci. Dlatego też dla każdego adresu IP możemy wydzielić numer sieci oraz numer hosta. Numer sieci w protokole IP jest zbiorem maszyn, które są zdolne komunikować się bezpośrednio między sobą w warstwie drugiej modelu OSI np. Ethernet, FDDI, Token Ring, (niezależnie od tego, czy są podłączone ze sobą bezpośrednio, czy przez szereg segmentów typu switch, hub, most). Rys. 7. Ethernet 2 i 3 należą do tej samej sieci15 Na przedstawionym rysunku Ethernet 2 i 3 należą do tej samej sieci. Dzieje się to za sprawą przełącznika, który nie jest widziany z poziomu warstwy sieci. Host 2, Host 3 oraz Host 4 maja ten sam numer sieci i dlatego komunikacja między tymi hostami odbywa się w warstwie łącza danych tworząc układ podwójny jednej wydzielonej sieci IP. Hosty 1 oraz 2 tworzą drugą odrębną siec IP poprzez posiadanie identycznego numeru sieci. Dla przykładu komunikacja między Hostem 3 oraz 1 15 Opracowanie własne 24

z uwagi na różne identyfikatory sieci jest niemożliwa z poziomu warstwy łącza danych. Trzecią sieć tworzą hosty 4 i 5 poprzez połączenie punkt - punkt oraz posiadanie tego samego identyfikatora sieci. Jak można zaobserwować na rysunku Host 2 oraz 4 mają dwa adresy przypisane do różnych interfejsów sieciowych spełniając tym samym role routerów, które wydzielają poszczególne trzy przedstawione sieci IP. Warto zauważyć, że w przypadku przeniesienia któregokolwiek hosta do innej sieci konieczna jest zmiana jego adresu tak, aby posiadał ten sam identyfikator sieci. Adres hosta jest zależny od sieci w której się znajduje. Mimo, iż adresy posiadają ten sam identyfikator sieci, konieczne jest dołączenie do adresu maski podsieci, gdyż nie wiadomo, gdzie zaczyna, a gdzie kończy granica między identyfikatorem sieci a hostem. Dołączenie maski konieczne jest do prawidłowej identyfikacji zakresu adresów tej podsieci. Tak samo, jak w przypadku adresu IP, maska podsieci również jest liczbą 32 - bitową gdzie wszystkie bity, które określają cześć sieci w zapisie binarnym są równe 1, a część hosta równa 0. Przykładowo: 11111111 11111111 11111111 00000000 Pierwsze 24 bity maski określają cześć sieci dla skojarzonego z nią hosta, pozostałe 8 reprezentują numer danego hosta. Wszystkie bity równe 1 muszą być między sobą przylegające tj. nie istnieje maska o zapisie: 11111111 11111111 00000011 00000000 Widać, że ostatnie 2 bity w trzecim oktecie maski zawierają binarną jedynkę. Taki zapis jest niedozwolony, ponieważ nie przylegają do innych. Rys. 8. Użycie programu ipcalc16 16 Opracowanie własne 25

Maska sieci jest przynależnym elementem, z którym zawsze jest skojarzony adres IP. Dzięki niej określamy, do jakiej podsieci adresowej należy dany adres hosta. Maskę można zapisać na dwojaki sposób: standardowy 255.255.255.0 lub jako maskę 24-bitową o zapisie IP/MASKA. Liczba ta mówi nam o nieprzerwanym ciągu bitów ustawionych na 1 identyfikujących adres sieci, pozostałe osiem bitów określa potencjalne adresy hostów, pamiętając o zmniejszeniu tej liczby o dwa, gdyż wykorzystywane są do określenia adresu sieci oraz adresu rozgłoszenia. W celu przedstawienia poszczególnych zapisów wykorzystamy linuksowe polecenie linii komend ipcalc dla adresu 192.168.98.5 oraz maski 24-bitowej. Łatwo można zaobserwować na dołączonym rysunku, że adresem sieci dla podanego adresu jest 192.168.98.0 adresem rozgłoszenia 192.168.98.255 nasza 24bitowa maska w standardowym zapisie to 255.255.255.0, a po prawej stronie zapis binarny dla poszczególnych wartości. Dodatkowymi informacjami są takie dane jak to, że adres należy do zakresu prywatnego klasy C oraz maksymalna liczba hostów, która może zostać zaadresowana równa jest 254. 1.4 Maski podsieci Poniższa tabela przedstawia przykładowe wartości masek w zapisie CIDR, zapisie standardowym oraz liczbą dostępnych dla nich hostów. Zapisy te przydatne są przy tworzeniu reguł dla naszej zapory sieciowej, gdyż za ich pomocą będziemy mogli określić pule adresowe dla akceptowanych lub odrzucanych pakietów nawiązujących połączenia z naszym routerem, komputerem czy całą siecią lokalną. Tab. 9. Maski podsieci17 Maska w zapisie CIDR Maska Rozmiar Dostępna liczba hostów 10 255.192.0.0 64 klasy B 4194302 11 255.224.0.0 32 klasy B 2097150 12 255.240.0.0 16 klas B 1048574 13 255.248.0.0 8 klas B 524286 14 255.252.0.0 4 klasy B 262142 15 255.254.0.0 2 klasy B 131070 16 255.255.0.0 1 klasa B 65534 17 Opracowanie własne 26

2 17 255.255.128.0 128 klasy C 32766 18 255.255.192.0 64 klasy C 16382 19 255.255.224.0 32 klasy C 8190 20 255.255.240.0 16 klas C 4094 21 255.255.248.0 8 klas C 2046 22 255.255.252.0 4 klasy C 1022 23 255.255.254.0 2 klasy C 510 24 255.255.255.0 1 klasa C 254 25 255.255.255.128 128 adresów 126 26 255.255.255.192 64 adresy 62 27 255.255.255.224 32 adresy 30 28 255.255.255.240 16 adresów 14 29 255.255.255.248 8 adresów 6 30 255.255.255.252 4 adresy 2 Architektura układów typu firewall 2.1 Informacje ogólne Zapory sieciowe możemy podzielić na dwa rodzaje. Pierwszym z nich jest firewall sprzętowy czyli dedykowane urządzenie służące wyłącznie filtracji pakietów. Kolejnym z nich jest samo oprogramowanie, służące do blokowania niepowołanego dostępu do komputera czy sieci. Śmiało możemy stwierdzić, że wariant drugi jest częściej wykorzystywany w przypadku pojedynczych stacji roboczych ze względów na tańszą jego implementację. Firewall jest oprogramowaniem monitorującym przepływające przez niego pakiety sieciowe oraz zarządzającym połączeniami przychodzącymi i wychodzącymi, przepuszczającym tylko zgodne z ustanowionymi regułami oraz algorytmami danej zapory. To właśnie filtrowanie jest jego podstawowym celem, aczkolwiek nie jest to jedyny z mechanizmów, których nam dostarcza. Ten i inne możliwości zapory ogniowej zostaną omówione w dalszej części, a poniższa ilustracja pokazuje bardzo ogólny jej zarys. 2.2 Przykładowa platforma firewall Do zapoznania się z architekturą zapory ogniowej zostanie wykorzystana płyta 27

RouterBOARD firmy Mikrotik z preinstalowanym systemem operacyjnym RouterOS, bazującym na Linuksie oraz ważną licencją, którą otrzymujemy wraz z jej zakupem. Na rynku istnieje wiele wariantów oprogramowania oraz sprzętu do budowy sieci umożliwiającym jej zabezpieczenie. Jednak ze względu na stosunek ceny do możliwości oprogramowania wybrano platformę Mikrotik, której możliwości dotyczące zapory ogniowej klasyfikować możemy według: adresu MAC, adres IP, portów lub ich zakresu, zawartości pakietu oraz ich rozmiaru, interfejsu, protokołów wraz z opcjami, Rys. 9. RouterBOARD 43318 Konfigurowanie filtracji polega na definiowaniu tzw. reguł (ang. rule). Pojedyncza reguła składa się z wzorca i akcji. Gdy wiadomość poddawana jest analizie, najpierw dopasowywana jest do wzorca; jeśli do niego pasuje - o dalszym losie wiadomości decyduje akcja reguły. Jeśli zaś dane w wiadomości nie pasują do wzorca danej reguły - pod uwagę brana jest kolejna reguła. Reguły przeglądane są w takim 18 Opracowanie własne 28

porządku, w jakim zostały wprowadzone. Dla danej wiadomości przeszukiwanie reguł trwa do momentu pierwszego dopasowania do wzorca lub (w przypadku braku dopasowania) do wyczerpania reguł. Dla przykładu, w regułach filtrujących akcją jest najczęściej odrzucenie (DROP) lub akceptacja wiadomości (ACCEPT). Wszystkie reguły tego samego typu pamiętane są w strukturze zwanej tablicą (ang. table), od której pakiet bierze swą nazwę. Istnieją zatem trzy wbudowane tablice: filter (filtrowanie), nat (translacji), mangle (zmiany opcji IP). Datagramy IP również dzielą się na kilka rodzajów. Rodzaj datagramu zależy od kombinacji adresów (źródłowego i docelowego) w nim zawartych. Wyróżnia się zatem: datagramy, dla których dana stacja jest celem, datagramy, których dana stacja jest źródłem, kombinację rodzajów 1 i 2, datagramy routowane. W zależności od rodzaju datagramu, jego przetwarzanie przebiega w kilku etapach. Na przykład dla datagramów routowanych etapy te w uproszczeniu wyglądają następująco: 1. pakiet dociera do interfejsu wejściowego, 2. zostaje wybrany dla niego właściwy interfejs wyjściowy, 3. pakiet opuszcza stację przez interfejs wyjściowy. Na każdym etapie można stosować do datagramu różne typy reguł, dlatego wewnątrz każdej tablicy reguły są dodatkowo grupowane ze względu na etap przetwarzania pakietu. Wobec tego różne tablice mogą zawierać grupy reguł związanych z tym samym etapem. Sekwencja reguł, powstała przez połączenie tych grup, nazywa się łańcuchem (ang. chain). Pakiet iptables zawiera pięć wbudowanych łańcuchów: INPUT, OUTPUT, FORWARD, 29

PREROUTING, POSTROUTING. Rys. 10. Schemat blokowy zapory sieciowej19 3 Tworzenie zapór ogniowych Zasadniczo tworzenie zapory ogniowej rozpoczyna się od stworzenia bariery nie do przejścia, a następnie dodaję się reguły, dzięki którym będziemy mogli przepuścić lub wpuścić interesujący nas ruch sieciowy. Powinniśmy w tym momencie ściśle zdefiniować, jakie połączenia będą mogły być realizowane z wnętrza lokalnej sieci do Internetu z Internetu do wnętrza sieci oraz skąd i na jakie interfejsy będzie można 19 Opracowanie własne 30

wykonywać połączenie do procesów lokalnych naszego routera. Do naszych badań zostanie wykorzystany router RB433 producenta Mikrotik. Oczywistym jest, że aby korzystać z dobrodziejstw Internetu potrzebny nam będzie adres IP przydzielony przez naszego dostawcę internetowego. Zakładamy w tym momencie, że adres ten to 10.20.30.98, bramą domyślną jest 10.20.30.1 oraz z maską podsieci 255.255.255.0, a wytworzoną przez nas podsiecią lokalną będzie 192.168.98.0/24. Liczba 24 po ukośniku oznacza 24 bitową podsieć, co jest równoznaczne z zapisem 255.255.255.0. Warto tutaj zwrócić uwagę, że zapis ten odnosi się do zadeklarowanej podsieci adresowej, a zapis 192.168.98.1/24 będzie odnosił się do danego adresu tej podsieci. Interfejsem, dzięki któremu będziemy łączyć się z internetem, będzie eth0, a lokalnym - eth1. Rys. 11. Przykładowa topologia sieci chronionej przez firewall20 /ip address add address=10.20.30.98 netmask=255.255.255.0 interface=eth0 /ip address add adress=192.168.98.1/24 interface=eth1 Pierwsza linia przypisuje nam podany przez dostawcę adres z daną maską podsieci do wskazanego przez nas interfejsu, który będzie służył jako połączenie z siecią zewnętrzną. W linii drugiej został przypisany adres dla interfejsu sieci wewnętrznej, który zarazem będzie bramą domyślą dla komputerów w sieci lokalnej. Zauważyć można inny zapis dodawanych wartości, jednakże efekt końcowy będzie taki sam, gdyż router sam przeliczy i podstawi odpowiednią maskę podsieci. Kolejnym krokiem jest zdefiniowanie adresu bramy domyślnej. Adres ten określa kolejny skok, przez który będzie przekazywany nasz ruch kierowany w stronę sieci globalnej. Pomoże nam w tym 20 Opracowanie własne 31

kolejna komenda. /ip route add gateway=10.20.30.1 W tym momencie z całą pewnością mamy całkowity dostęp do sieci Internet w przypadku połączeń realizowanych bezpośrednio z naszego routera. Aby umożliwić dostęp do sieci globalnej pozostałym komputerom z naszej sieci lokalnej, będziemy musieli wykorzystać jeden z mechanizmów, który umożliwia nam implementacja zapory ogniowej. Mowa o tabeli NAT i maskowaniu. /ip firewall nat add action=masquerade chain=srcnat out-interface=eth0 \ src-address=192.168.98.0/24 Dzięki tej regule w czasie rzeczywistym mechanizm maskarady będzie tłumaczył wszystkie adresy lokalne, które zgodnie ze specyfikacją protokołu IPv4 nie są widziane(routowalne) w sieci Internet, umożliwiając nam dostęp do sieci zewnętrznej. Każda z zapór ogniowych ma swoje właściwości oraz specyfikacje tworzenia reguł. Najbardziej znany firewall wykorzystywany w systemach opartych na jądrze linuksa jest iptables, który umożliwia wprowadzenie domyślnej polityki dla przechodzących przez firewall pakietów. RouterOS nie umożliwia nam takiej właściwości dlatego, też potrzebne będą reguły odrzucające wszelki ruch. Warto pamiętać, aby reguły te znajdowały się zawsze za wszystkimi pozostałymi w celu zapewnienia poprawnego funkcjonowania zapory. /ip firewall add action=jump chain=input in-interface=eth0 jump-target=syn-flood /ip firewall add action=return chain=syn-flood limit=1,5 protocol=tcp tcp-flags=syn /ip firewall add action=log chain=syn-flood log-prefix=syn-flood /ip firewall add action=drop chain=syn-flood Powyższe reguły spełniają następujące czynności. Pierwsza reguła tworzy nowy łańcuch dla interfejsu wejściowego eth0 o nazwie syn-flood dla wszystkich pakietów kierowanych na proces lokalny routera. Kolejna reguła sprawdza każdy pakiet pod kątem włączonej flagi synchronizującej dla protokołu TCP z częstotliwością jednego na sekundę oraz przeciążeniem pięciu pakietów. Dzięki tej regule możliwe będzie wyłapanie zalewu naszego routera pakietami synchronizującymi, co mogłoby doprowadzić do przeciążenia stosu TCP/IP. Jest to często stosowana odmiana rozproszonego ataku odmowy usługi DDOS (ang. Distributed Denial of Service). Akcja 32

return pozwoli nam na sprawdzanie kolejnych reguł naszego łańcucha. Trzecia reguła zapisze w logach systemowych wykryty atak z wyznaczonym przez nas prefiksem, po czym pakiet zostanie odrzucony bez jakichkolwiek zwrotnych komunikatów kontrolnych. /ip firewall add action=accept chain=input connection-state=established ininterface=eth0 /ip firewall add action=accept chain=input connection-state=related in-interface=eth0 /ip firewall add action=accept chain=input in-interface=eth1 srcaddress=192.168.98.0/24 Dwie pierwsze reguły mają na celu zaakceptowanie połączeń przychodzących na proces lokalny dla interfejsu łączącego router z siecią globalną (tylko tych, które uprzednio zostały nawiązane przez sam router). Reguły te odnoszą się do protokołów korzystających tylko z trybu pasywnego. (jednak jest dobrym zwyczajem umieszczenie tego typu reguł podczas tworzenia zapory sieciowej). Ostatnia reguła akceptuje wszystkie połączenia z routerem nawiązywane bezpośrednio z sieci lokalnej przy zachowaniu adresu źródłowego należącego do wspólnej podsieci. /ip firewall filter add action=drop chain=input Powyższa reguła powinna znajdować się zawsze za wszystkimi innymi regułami łańcucha input. Ma ona za zadanie odrzucić wszystkie pakiety kierowane bezpośrednio na proces lokalny maszyny, które nie pasowały do wzorców ją poprzedzających. /ip firewall add action=accept address=192.168.98.0/24 /ip firewall add action=accept address=192.168.98.0/24 chain=forward in-interface=eth1 src- chain=forward in-interface=eth0 dst- Zapora ogniowa w tym przypadku ma za zadanie zaakceptowanie wszystkich połączeń dla łańcucha forward przy zachowaniu wzorca, gdzie dla pakietu przychodzącego na interfejs lokalny - adres źródłowy należy do naszej podsieci oraz dla przypadku, gdy adresem docelowym jest nasza podsieć, a interfejsem wejściowym pakietu jest eth1. /ip firewall filter add action=drop chain=forward Powyższa reguła powinna znajdować się zawsze za wszystkimi innymi regułami łańcucha forward. Ma ona za zadanie odrzucić wszystkie pakiety przechodzące przez router, które nie pasowały do wzorców ją poprzedzających. 33

Po zapoznaniu się z podstawami zagadnieniami z tematyki sieci komputerowych, wymiany informacji w sieci oraz architekturą i specyfikacją zapór ogniowych możliwe jest przejście do kolejnej fazy pracy dyplomowej, tj. do projektowania komputerowego symulatora zapory ogniowej. Podsumowując, można powiedzieć, że zbudowanie symulatora, który odzwierciedlałby w pełni funkcjonującą zaporę ogniową z punktu projektowego, jest zadaniem bardo złożonym. Dlatego też konieczne jest stworzenie uproszczonego modelu, który przedstawiłby funkcjonowanie zapory ogniowej przy jak najmniejszej złożoności problemu. Projektowany symulator posiadać następujące własności: możliwość deklarowania adresów źródłowych jak i docelowych, możliwość deklarowania portów źródłowych jak i docelowych, zakresów powyższych, deklaracje przynajmniej trzech protokołów sieciowych, możliwość zadeklarowania podejmowanej akcji dla reguł zapory. Prócz elementów wymienionych wyżej, warto byłoby zwrócić uwagę na możliwość przeglądania przynajmniej wyników dla poszczególnych wygenerowanych ramek, dla których kolejno podjęto próbę dopasowania do wzorców wszystkich istniejących reguł zapory; wyniki w postaci wykresów mówiące o ilości zaakceptowanych oraz odrzuconych ramek dla zadeklarowanych reguł, jak i wykres liniowy przedstawiający zmiany w funkcjonowaniu zapory w zależności od zadeklarowanych wzorców oraz ilości takich reguł. Ważnym elementem, o którym należałoby nie zapomnieć, jest możliwość zadeklarowania sieci, jaką firewall będzie chronił, ponieważ - jak wiadomo, ramki w sieci mają zawsze wyznaczone trasy, po których mogą byś transportowane. Aby więc ustrzec się przed generowaniem ramek, które według szeregu specyfikacji nie powinny dotrzeć do interfejsów naszej sieci lokalnej, konieczna jest możliwość zadeklarowania zakresu adresów sieci chronionej, jak i aktualnie aktywnych hostów w sieci z możliwością wybrania uruchomionych na nich usługach w celu umożliwienia generowania ramek tak, jakby wyglądało to w realnych sieciach komputerowych. Wspomniane tutaj własności pozwolą na symulowanie zapory ogniowej. 34

ROZDZIAŁ II. PROJEKT SYSTEMU INFORMATYCZNEGO 1 Narzędzia informatyczne Wykonanie programu, jak i samego projektu informatycznego wraz stworzeniem odpowiedniej dokumentacji, nie byłoby możliwe dzięki narzędziom informatycznym, które zostały wykorzystane w tym także przypadku. Wszystkie wymienione narzędzia opisane w dalszej części podrozdziału są oprogramowaniem wolnym czyli takim, w którym licencja pozwala na korzystanie z nich dla użytku indywidualnego. 1.1 Dia 0.96.1 Narzędzie Dia jest programem, dzięki któremu możliwe było stworzenie schematów blokowych wraz z połączeniami, które występują między odpowiednimi blokami. Oprogramowanie to jest bardzo przejrzyste w pełnej polskiej wersji językowej, co ułatwia prace użytkownikowi. Dużym plusem narzędzia jest jego wieloplatformowość. Wersje binarne dostępne są niemal dla każdego systemu operacyjnego. Licencja oprogramowania jest bezpłatna do użytku własnego. Rys. 12. Narzędzie Dia do tworzenia schematów i diagramów blokowych21 21 Opracowanie własne 35

1.2 Platforma Ajax Platforma Ajax (APF) jest programem typu framework czyli narzędziem, które udostępnia szkielet do budowy aplikacji dzięki dostarczeniu programiście wielu komponentów oraz bibliotek, które to można rozbudowywać oraz dostosowywać do potrzeb budowanej aplikacji. Oprogramowanie przeznaczone jest dla programistów, którzy tworzą aplikacje uruchamiane za pośrednictwem przeglądarki internetowej. Wygląd tworzonych aplikacji wygląda jak konwencjonalna aplikacja okienkowa. Narzędzie to jest dostępne oraz możliwe do pobrania bezpłatnie z witryny internetowej producenta. Tworzenie aplikacji za pośrednictwem platformy ajax jest bardzo intuicyjne i proste, przeznaczone dla wszystkich programistów oraz deweloperów, którzy posiadają podstawową wiedzę na temat programowania w języku skryptowym JavaScript oraz architektury opartej na interakcji klient-serwer. Producenci są bardzo zaangażowani w tworzenie oraz ulepszanie swojego oprogramowania. Na swoich stronach internetowych udostępniają pełną dokumentację wraz ze zwięźle oraz jasno opisanymi przykładami, dla których dołączona jest demonstracja opisywanego przypadku. Namawia także programistów do wypowiadaniu się na forum, którego celem jest dalsze ulepszanie, poznawanie oraz zdobywanie umiejętności w zakresie omawianego oprogramowania. Rys. 13. Logo platformy Ajax.org22 22 Opracowanie własne 36

1.3 FireBug 1.7.3 Narzędzie Firebug jest dodatkiem dla przeglądarki internetowej Firefox przeznaczonym dla deweloperów oraz programistów, tworzących oprogramowanie oparte o język HTML, kaskadowe style CSS oraz skrypty JavaScript. Do głównych zadań dodatku należy monitorowanie zdarzeń dla CSS, HTML i Javascript, ich analiza oraz ewentualna edycja bezpośrednio z poziomu przeglądarki. Dodatek ten był pomocny przy debugowaniu oraz znajdowaniu ewentualnych błędów w kodzie. Rys. 14. FireBug 1.7.3 narzędzie deweloperskie23 2 Pierwowzory symulatora Pierwszym krokiem w projektowaniu symulatora zapory ogniowej było zapoznanie się z istniejącymi na rynku rozwiązaniami sieciowymi, które umożliwiają definiowanie reguł zapory ogniowej. 2.1 Tworzenie reguł na platformie AirOS Ubiquiti Kolejna ilustracja ukazuje tworzenie reguł zapory sieciowej w urządzeniu firmy Ubiquiti Networks, specjalizującej się w konstruowaniu urządzeń do tworzenia sieci bezprzewodowych, skierowanych dla dostawców internetowych oraz małych sieci domowych. Jak widać na dołączonej ilustracji, jest to bardzo prosty firewall, który pozwala na filtracje pakietów ze względu na kilka kryteriów. Są nimi między innymi: interfejs docelowy (LAN, WAN, ANY), typ datagramu IP (tylko IP, ICMP, UDP, TCP), adres oraz port źródłowy, adres oraz port docelowy, negacja. 23 Opracowanie własne 37

Zapora w momencie dopasowania ramki do reguły umożliwia nam dwie akcje. Pierwszą z nich jest akceptacja ramki, drugą z kolei jest odrzucenie ramki bez informowania nadawcy. Możliwe jest także zadeklarowanie interfejsu, który jest traktowany jako wejściowy. Rys. 15. Tworzenie reguł na platformie AirOS24 2.2 Tworzenie reguł w systemie RouterOS Kolejnym pierwowzorem pomagającym w stworzeniu symulatora jest zapora systemu mikrotik. Mikrotik, tak jak i omawiany poprzednik, specjalizuje się w tej samej dziedzinie z tym jednak wyjątkiem, że możliwości systemu jak i układu zapory są bardziej rozbudowane. Już na pierwszy rzut oka zauważyć można różnice w obu przypadkach tworzenia reguł zapory oprogramowanie systemu RouterOS. Jest dużo bogatsze pod względem możliwości konfiguracji od tego, które udostępnia AirOS. Możliwości dotyczące zapory ogniowej klasyfikować możemy według: adresu MAC, adres IP, portów lub ich zakresu, zawartości pakietu oraz ich rozmiaru, interfejsu, stanu połączenia, typu połączenia, protokołów wraz z opcjami, oraz wielu innych zawartych w sekcji advanced oraz extra. 24 Opracowanie własne 38

Rys. 16. Tworzenie reguł w systemie RouterOS25 3 Model oraz założenia symulatora Dzięki bliższemu zapoznaniu się z tworzeniem reguł oraz wykorzystywaniem zapory ogniowej w urządzeniach sieciowych, które możemy spotkać na naszym rynku, przyjęto następujący model tworzonego symulatora. Przyjęte zostaje tworzenie ramek, których pierwowzorami są protokoły: TCP (Transmission Control Protocol), UDP (User Datagram Protocol) oraz ICMP (Internet Control Message Protocol). Ze względu na ilość posiadanych pól wymienionych protokołów oraz skomplikowanie problemu w rozważaniu wszystkich z nich przyjmuje się, że kryteria zapory będą operować tylko na pięciu polach takich jak: adres lub zakres adresów źródłowych oraz docelowych, port lub zakres portów źródłowych raz docelowych (tylko w przypadku obsługiwania ich przez protokół), protokół sieciowy. Z kolei akcjami towarzyszącymi każdej z dopasowanych ramek będzie akceptacja ramki oraz jej przepuszczenie do sieci lokalnej lub sieci Internet 25 Opracowanie własne 39