Treść projektu
Proszę w grupach 1-3 osobowych sporządzić projekt zapory ogniowej.
Reguły zapory ogniowej
Zapora ogniowa w routerach opartych o jądro Linuxa składa się z uporządkowanej listy reguł. Ich kolejność jest istotna. Podczas pracy routera każdy pakiet, który do niego trafi i ma być przekazany dalej (czyli pakiet nie jest zaadresowany ściśle do routera) jest przetwarzany na podstawie listy reguł zawartych w łańcuchu Forward. Każdy lista posiada na końcu regułą z pustym poprzednikiem (częścią warunkową) oraz następnikiem zawierającym akcję Accept albo Drop. Pojedynczy pakiet rozpatrywany jest na podstawie listy kolejnych reguł. Każda reguła zawiera poprzednik i następnik.
Poprzednik zawiera dowolną liczbę części (może być również pusty). Każda część zawiera pewien warunek, który musi być spełniony, aby cała reguła była aktywna. Pojedyncza część reguły może być zanegowana. Po spełnieniu warunków zawartych w poszczególnych częściach reguła jest uważana za aktywną i należy rozpatrzyć następnik reguły. Następnik reguły zawiera dokładnie jedną akcję, która ma być wykonana, jeśli poprzednik reguły będzie spełniony. W przypadku gry poprzednik reguły jest pusty, uważa się iż ta reguła jest zawsze aktywna, jeśli oczywiście pakiet na nią trafi. Warto zwrócić uwagę, iż łańcuch reguł Forward rozpatruje pakiety krążące we wszystkich kierunkach (czyli interfejs wyjściowy jest dowolny).
Lista części w poprzedniku reguły
Poprzednik reguł może zawierać wiele różnych części, każda z części zawiera warunek, który musi być spełniony, aby cała reguła była uważana za poprawną. Pojedyncza część reguły może być zanegowana.
Reguła może posiadać tylko jeden egzemplarz poszczególnej części reguły (w związku z tym w regule nie mogą być na przykład Src_IP=1.0.0.0/8 i Src_IP = !1.2.3.4). Oto lista najistotniejszych części reguł:
• Src_IP, Dst_IP - Adres IP źródłowy albo docelowy (naprawdę w Linuxie nazywają się te parametry source i destination),
• Src_Mac - Adres MAC ramki źródłowej (naprawdę w Linuxie ten parametr nazywa się mac-source),
• In_IF, Out_IF - Interfejs źródłowy albo docelowy (naprawdę w Linuxie nazywają się te parametry in-interface i out-interface),
• Protocol - Pod-protokół w stosunku do IP (zwykle Protocol=TCP albo Protocol=UDP).
• Src_port, Dst_port - Port TCP albo UDP, źródłowy albo docelowy, reguła musi
zawierać pole wykrywające protokół odpowiednio TCP albo UDP (na prawdę w Linuxie
Następnik reguły
Każda reguła zawiera dokładnie jedną akcję, która ma być wykonana, jeśli reguła jest aktywna. Oto lista najczęściej występujących akcji:
• ACCEPT - Zaakceptuj i przestań przetwarzać dalej ten pakiet.
• DROP - Odrzuć pakiet i przestań go dalej przetwarzać.
• LOG - Zapisz informacje o tym pakiecie (pakiet dalej będzie przetwarzany przez listę reguł).
• NAZWA_INNEGO_ŁAŃCUCHA_REGUŁ – Przekieruj ruch do innej listy reguł. Ta lista reguł powinna być zdefiniowana osobno, oraz najlepiej by kończyła się regułą z pustym
poprzednikiem i następnikiem DROP albo ACCEPT.
Protokoły warstwy siódmej
Większość firewalli nie jest w stanie prawdziwie wykrywać i rozpoznawać protokołów warstwy siódmej, takich jak DNS, DHCP, HTTP(S), FTP, POP3, SMTP…, BitTorrent . Można jednak
przybliżyć tą funkcjonalność zakładając, że wskazane protokoły pracują na predefiniowanych portach.
Na przykład serwer HTTP domyślnie pracuje na porcie 80 TCP, więc aby wykryć połączenia z komputera do serwera HTTP można przyjąć, że to połączenia skierowane do Internetu, protokół TCP, port docelowy 80. Warto zwrócić uwagę, że usługi pocztowe używają kilka protokołów (zwykle POP3, SMTP, IMAP) i co za tym idzie szeregu portów.
Ruch dwukierunkowy
Prawie wszystkie protokoły do pracy wymaga ruchu dwukierunkowego (w tym TCP). Dlatego, aby zakłócić skutecznie pracę takich protokołów wystarczy zablokować ruch w jedną stronę. Aby jednak porządnie wykonać zaporę ogniową, powinno się zablokować ruch w obie strony, chociaż sama blokada w jedną stronę skutecznie zaburzyła by pracę.
Przykład
Załóżmy iż istnieje router, który zawiera 3 interfejsy: IF1, IF2, IF3. Adres IP nadany na IF1 to 10.0.1.1/24, na IF2 to 10.0.2.1/24, na IF3 to 10.0.3.33/24. W tabeli routingu jako brama domyślna jest ustawiony adres 10.0.3.1. Oczywiście w tym przypadku brama domyśla w routerze służy mu jako wyjście na zewnątrz i dostęp do Internetu.
Na urządzeniu tym skonfigurowano zaporę ogniową. Zadaniem routera było wymuszenie poniższych zasad i zablokowanie wszelkiego pozostałego ruchu.
A) Z Sieci lokalnej1 tylko komputer 10.0.1.2 ma dostęp do sieci lokalnej 2.
B) Dostęp do Internetu z sieci lokalnych (sieć lokalna1 i sieć lokalna2) mają jedynie komputery o adresach: 10.0.1.2, 10.0.2.2, 10.0.2.3.
C) Adres MAC komputera 10.0.1.2 to 11:22:33:44:55:66.
Router IF310.0.3.33/24
IF1 IF210.0.2.1/24 10.0.1.1/24
Sieć lokalna1 10.0.1.0/24 Sieć lokalna2
10.0.2.0/24 Sieć „zewnętrzna”
10.0.3.0/24 Internet