Firewally, bezpečnost

Martin Skala, xskala4@fi.muni.cz

Obsah

Co je to firewall?

V dnešní době neexistuje jednoznačná definice. Wikipedia říka, že účelem firewallu je regulovat některé toky z provozu mezi počítačovými sítěmi různých úrovní důvěry. Firewall je základní nástroj, který implementuje bezpečností politiku (sítě, stroje). Další vrstvou ochrany můžou nabídnout IDS/IPS systémy a v neposlední řadě lze využít tzv. honeypotů, které poměrně účinně snižují míru falešných poplachů.

Firewall je do linky zapojen sériově a obvykle vymezuje v síti zóny s různou úrovní důvěry. Úrovní může být myšlena zóna s vysokou mírou důvěry, nedůvěryhodná zóna nebo demilitarizovaná zóna (DMZ).

Typy Firewallů

Firewally lze dělit podle různých kritérií.

Uzpůsobení

Způsob fungování

Paketový filtr

Funguje na bázi pravidel postihujících jen základní údaje, které lze vyčíst z hlavičky paketů. Nejčastěji se využivá zdrojové adresy, zdrojového portu, cílové adresy, cílového portu, protokolu. Možné cíle jsou: přijetí, odmítnutí, zahození nebo další zpracování. Poměrně rychlý a výkonný typ firewallu, ovšem v dnešní době málokdy (sám o sobě) dostačující. Původně ipchains v jádře, od verze 2.4 nahrazen netfilter.

Výhody:


Nevýhody:
SW: ipchains, iptables, ipfw, ...

Aplikační proxy

Aplikační proxy (brána) poskytuje ochranu na aplikační vrstvě. Klient pošle proxy požadavek a ta sprostředkovává spojení za klienta (man-in-the-middle). Na venek se tváří jako klient samotný => maskuje zdrojovou ip/port původního klienta (paralela s NAT). Provádí celkovou inspekci paketů (četně obsahu).

Výhody:


Nevýhody:
SW:

Stavový filtr

Rozšíření paketových filtrů. Něco mezi paketovým filterem a aplikační proxy. Hlídá stavy relací (NEW, RELATED, ESTABliSHED, INVALID) a umožňuje definovat pokročilá pravidla filtrace.
SW: iptables, ipfw

Intrusion Detection System (IDS)

Detekční systém průniků (nebo pokusů o průnik) do sítě nebo na uzel. První zmínka v roce 1980 v USA (vojenský výzkum). V síti se jedná o pasivní prvek ochrany a bývá realizován jako HW. Na hostitelském systému bývá realizován jako SW. Síťový IDS si neporadí s šifrovaným provozem, ale je dobře škálovatelný.

Intrusion Prevention System (IPS)

Jedná se o systém prevence průniků. Oproti IDS je zapojen sériově a aktivně se podílí na obraně sítě/uzlu. Těžko se pozná rozdíl mezi pokročilým fw a IPS.

Honeypot

Moderní koncept siťových pastí na útočníky. Většinou se jedná o stroj, který je vyčleněn mimo běžně používané rozsahy a tudíž k tomuto stroji legitimní uživatel nepřistupuje. Několik druhů členění: virtuální, nízko/vysoko-interaktivní, webové, klientské, atd.

Network Address Translation (NAT)

Překlad adres využívaný ke změně hlaviček paketů. Přepisují se zdrojové (SNAT - Source NAT), nebo cílové (DNAT - Destination NAT) adresy. Technika, která se začala využívat v důsledku zmenšující se množiny volných IPv4 adres (v IPv6 již zcela zbytečné). Využívá se i u pasivního FTP, aplikační proxy, rozložení zátěže, atp.

Paketové filtry v *BSD

*BSD systémy disponují následujícími implementacemi firewallů:

Netfilter a Linux

Historie

V roce 1994 portoval Alan Cox do jádra 1.1 firewall (ipfw) z BSD. Od jádra 2.0 je k dispozici nástroj ipfwadmin pro správu pravidel. Od verze 2.2 je k dispozici nástroj ipchains, který přidává nové možnosti ipfw (řetězce pravidel). V jádře 2.4 byl firewall přepsán a přejmenován na netfilter. K nastavení pravidel netfilteru se používá uživatelský program iptables.

V jádře nutno zakompilovat (distribuční jádra standardně již mají):

Networking -->
    Networking options -->
       [*] Network packet filtering (replaces ipchains) -->
           IP: Netfilter Configuration -->
                <M> Connection tracking (required for masq/NAT) 
                <M> IP tables support (required for filtering/masq/NAT)

Filtrování

		                     Network
		                       |
		                       v
		                 ------------- 
		                |   mangle    |
		                |  PREROUTING |
		                 ------------- 
		                      |
		                      v
		                 ------------- 
		                |     nat     |
		                |  PREROUTING |
		                 ------------- 
		                      |
		                      v
		         --------------------------------- 
		         |                               |
		         v                               |
		    -------------                        |
		   |   filter    |                       |
		   |   INPUT     |                       |
		    -------------                        |
		         |                               |
		         v                               |
		     local process                       |
		         |                               |
		         v                               v
		    -------------                   ------------
		   |   mangle    |                 |   filter   |
		   |   OUTPUT    |                 |  FORWARD   |
		    -------------                   ------------
		         |                               |
		         v                               |
		    -------------                        |
		   |    nat      |                       |
		   |   OUTPUT    |                       |
		    -------------                        |
		         |                               |
		         v                               |
		    -------------                        |
		   |   filter    |                       |
		   |   OUTPUT    |                       |
		    -------------                        |
		         |                               |
		         --------------------------------- 
		                      |
		                      v
		                 ------------- 
		                |     nat     |
		                | POSTROUTING |
		                 ------------- 
		                      |
		                      v
		                   Network
		
		
		

Iptables

Konfigurační nástroj netfilteru.

Syntax

iptables [tabulka] [akce] [řetěz] [dadatečná omezení] [cíl] [dodatečné informace k cíly]

Tabulky

Operace nad řetězy:

Operace nad pravidly v řetězu:

Cíle

Pravidla v řetězcích se skládají jednak z kritérii, podle kterých se rozhodne, zda se má pravidlo na daný paket aplikovat a jednak z cíle, který určí, co se má s paketem udělat, pokud vyhovuje kritériím.
Cílem mohou být uživatelem definované řetězce, nebo jedna z následujících hodnot (výčet není kompletní):

Pokud jako cíl použijeme uživatelem definovaný řetězec a paket nebude vyhovovat žádnému pravidlu v tomto řetězci, bude vyhodnocování pokračovat následujícím pravidlem v řetězci původním.

Omezující podmínky

Pravidla - příklady

Literatura