1. FIREWALLS

1.5. Przykłady firewalli

Jednym z najczęstszych przykładów firewalli jest ten dostępny w dystrybucjach Linuksa, zwany przez IPTables. Firewall ten, podobnie jak większość firewalli filtrujących pakiety, oparty jest na regułach i listach kontroli dostępu (ACL), które służą do reprezentowania i egzekwowania polityki bezpieczeństwa sieci, którą chcą chronić, monitorować i kontrolować.

W IPTables, te ACL mają szczególną charakterystykę, ponieważ używają wyszukanych elementów i parametrów do budowania reguł w oparciu o kontekst bezpieczeństwa i potrzeby. Oznacza to, że administrator jest w stanie zbudować dowolny typ ACL, zgodnie ze swoimi potrzebami i w zgodzie z prywatnością i bezpieczeństwem zaprojektowanej polityki. W głębszym ujęciu firewall ten opiera się na zaprojektowanej, utworzonej przez trzy różne struktury: 

·      Zasady

Reguły to w zasadzie polecenia przekazywane do zapory, aby mogła wykonać określoną akcję (zezwolić lub zablokować). Muszą one być zbudowane zgodnie z językiem skonfigurowanym w oprogramowaniu firewall, aby mogło ono je zrozumieć i muszą być zgodne z określonymi wzorcami, aby mogły być prawidłowo zinterpretowane (Rysunek 8). Ogólnie rzecz biorąc, reguły są podobne wśród wielu programów i urządzeń firewall, gdzie główna koncepcja reguły jest przestrzegana przez wszystkie. Nie jest trudno wyeksportować reguły z jednego firewalla do innego, o ile język reguł jest podobny. W IPTables, reguły przechowywane są w łańcuchach i przetwarzane według kolejności. Pierwsza reguła jest pierwszą do sprawdzenia, druga jest drugą do sprawdzenia, i tak dalej aż do końca wszystkich reguł. W tym miejscu ważne jest zaplanowanie kolejności stosowania reguł, ponieważ przy złej kolejności jakaś treść może zostać zablokowana przez poprzednią regułę, podczas gdy w rzeczywistości powinna być dozwolona. Planowanie reguł zapory jest ważnym czynnikiem w administracji sieci, jednak wiele programów zapór pozwala administratorowi na reorganizację reguł po ich skonfigurowaniu i zapisaniu. Skupiając się na konkretnym przypadku IPTables, nowe reguły są przede wszystkim przechowywane w jądrze systemu operacyjnego, co oznacza, że jeśli maszyna zostanie ponownie uruchomiona, cała zawartość reguł zostanie usunięta i utracona. Ze względu na ten czynnik, wszystkie reguły powinny być zapisane w pliku, który będzie ładowany przy każdym starcie maszyny. Prawdą jest, że najczęściej używa się dedykowanych maszyn do pracy tylko jako firewall, gdzie akt ponownego uruchomienia nie jest tak częsty jak w przypadku normalnego komputera osobistego, jednakże często zdarza się, że używany jest duży zestaw reguł, gdzie konieczność konfigurowania ich wszystkich przy każdym ponownym uruchomieniu maszyny powoduje, że jest to bardzo ciężkie zadanie i czasochłonne. 


Rysunek 8 - Przykładowa reguła Iptables

 

·      Łańcuchy

Przechowywanie reguł firewalla, łańcuchy pozwalają administratorowi na określenie różnego rodzaju zabiegów, które mają być zastosowane wobec pakietów, niezależnie od tabeli, na której się skupiają. W IPTables można znaleźć dwa różne rodzaje łańcuchów, gdzie pierwszy z nich, nazwany standardowym, zawiera łańcuchy, które są już dostępne w oprogramowaniu i mogą być stosowane do ogólnego ruchu sieciowego. Drugi typ to łańcuchy tworzone przez samego administratora i przeznaczone do realizacji konkretnych potrzeb.

W przypadku standardowych łańcuchów, możliwe jest zidentyfikowanie "Prerouting", składającego się z ruchu przychodzącego do maszyny lokalnej (maszyny firewall), a także zawierającego ruch generowany lokalnie i kierowany do maszyny lokalnej. Innym standardowym łańcuchem jest "Input", który dotyczy całego ruchu, którego miejscem docelowym jest ponownie sama maszyna. Ponadto, łańcuch "Forward" jest związany z ruchem sieciowym, który przechodzi przez maszynę, a "Output" składa się z ruchu generowanego lokalnie, zarówno z lokalnym jak i zdalnym miejscem przeznaczenia. Jest to w zasadzie cały ruch, który wytwarza firewall i który jest wysyłany do sieci lub do samej maszyny. Ostatni łańcuch to "Postrounting" i skupia on ruch wychodzący z maszyny, w tym ruch sieciowy generowany lokalnie i mający również lokalne przeznaczenie).

·      Tabele

Reguły są przechowywane w łańcuchach, a co za tym idzie, łańcuchy są przechowywane w tabelach, gdzie każda tabela przechowuje łańcuchy i reguły o tej samej specyfice. Tutaj również występują trzy różne typy tabel: Filter; NAT i Mangle.

"Filter" to tabela odpowiedzialna za filtrowanie wszystkich pakietów, które przechodzą przez firewall, bez względu na ich przeznaczenie. Tabela ta służy do analizy ruchu sieciowego, zezwalając lub blokując go zgodnie z regułami zapisanymi w tabeli. Kiedy skupiamy się na firewallu, głównym zidentyfikowanym działaniem jest filtracja pakietów, mimo że pozwalają one na inne działania. W tym przypadku, to właśnie tabela "Filter" jest główną odpowiedzialną za takie filtrowanie pakietów.

Tabela "NAT" kontroluje pakiety, które przechodzą przez firewall, ale mają różne miejsca pochodzenia i przeznaczenia. NAT, czyli Network Address Translation, to mechanizm pozwalający na tłumaczenie adresów prywatnych na publiczne i odwrotnie. Tabela ta jest zwykle używana do komunikacji pomiędzy siecią prywatną a publiczną, umożliwiając komputerom w sieci prywatnej dostęp do sieci publicznej poprzez jeden lub więcej publicznych adresów IP.

Ostatni typ tabeli nosi nazwę "Mangle" i pozwala na manipulowanie cechami pakietów, takimi jak typ usługi. Pozwala to na implementację jakości usług, znanej również jako QoS.

 

Podsumowując, IPTables to firewall filtrujący pakiety, dostępny z dystrybucjami Linuksa i pozwalający na kontrolę i monitorowanie sieci oraz samego komputera. Zapewnia on różne akcje, w tym "akceptuj", "upuść", "odrzuć" i "zaloguj" skonfigurowane w reguły i spersonalizowane łańcuchy. Jak już wspomniano, reguły muszą być skonfigurowane w określonej kolejności i muszą być zaplanowane przed ich wdrożeniem, aby wszystkie działania były zgodne z polityką bezpieczeństwa organizacji.