Firewall
![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/5b/Firewall.png/220px-Firewall.png)
Firewall (čti /:ˈfaɪə(r)ˌwɔːl:/, fajrvol) je síťové zařízení, které slouží k řízení a zabezpečování síťového provozu mezi sítěmi s různou úrovní důvěryhodnosti a zabezpečení. Zjednodušeně se dá říci, že slouží jako kontrolní bod, který definuje pravidla pro komunikaci mezi sítěmi, které od sebe odděluje. Tato pravidla historicky vždy zahrnovala identifikaci zdroje a cíle dat (zdrojovou a cílovou IP adresu) a zdrojový a cílový port, což je však pro dnešní firewally už poměrně nedostatečné – modernější firewally se opírají přinejmenším o informace o stavu spojení, znalost kontrolovaných protokolů a případně prvky IDS. Firewally se během svého vývoje řadily zhruba do následujících kategorií:
- Paketové filtry
- Aplikační brány
- Stavové paketové filtry
- Stavové paketové filtry s kontrolou známých protokolů a popř. kombinované s IDS
Historie
Pojem firewall označoval původně protipožární zeď, která sloužila pro oddělení ohně v budově tak, aby se již dále nešířil. Později se pojem používal pro podobná využití, tentokrát se však jednalo o kovovou desku oddělující motorový prostor auta nebo letadla od prostoru pro pasažéry.
Technologie firewallu ve výpočetní technice se poprvé objevovala koncem osmdesátých let, kdy byl Internet co se týče celosvětového použití poměrně mladou technologií. Předchůdci dnešních firewallů byly tenkrát routery používané právě koncem osmdesátých let, které sloužily pro zabezpečení sítě.
První generace: filtrování paketů
Prvním typem síťového firewallu byl paketový filtr, který sledoval síťové adresy a porty paketu, aby zjistil, zda má být tento paket povolen nebo zablokován. První dokument publikovaný o technologii firewall byl v roce 1988, kdy inženýři společnosti Digital Equipment Corporation (DEC) vyvinuli filtrační systémy známé jako brány firewall pro paketové filtry. Tento poměrně základní systém byl první generací toho, co je dnes hojně užívaná technická funkce internetového zabezpečení. V laboratořích AT&T Bell pokračoval ve výzkumu filtrování paketů Bill Cheswick a Steve M. Bellovin, kteří vyvinuli pracovní model pro svou vlastní firmu založený na původní architektuře první generace. Význam firewallu zásadně vzrostl s rozšířením internetu a následně prvními úspěšným šířením virů a jiných hrozeb.
Druhá generace: stavové filtry
V letech 1989–1990 tři kolegové z laboratoře AT&T Bell, Dave Presotto, Janardan Sharma a Kshitij Nigam vyvinuli druhou generaci firewallů a nazvali ji circuit-level brány.
Brány firewall druhé generace vykonávají práci svých předchůdců z první generace, ale pracují až do 4. vrstvy (transportní vrstva) modelu OSI. To je dosaženo uchováváním paketů, dokud není k dispozici dostatek informací k posouzení stavu. Známá pod termínem stavová kontrola paketů zaznamenává všechna připojení, procházející skrze síť a určuje, zda je paket začátkem nového připojení, nebo součástí stávajícího spojení, nebo není součástí žádného spojení. Přestože statická pravidla jsou stále používaná, tato pravidla mohou nyní obsahovat stav připojení jako jedno z jejich kritérií testování.
Určité DOS útoky bombardují firewall tisíci falešnými pakety s pokusem o jeho přetížení tím, že přehltí jeho vyrovnávací paměť.
Třetí generace: aplikační vrstva
Marcus Ranum, Wei Xu a Peter Churchyard vyvinuli aplikační firewall známý jako Firewall Toolkit (FWTK). V červnu 1994 Wei Xu rozšířil FWTK o kernel zdokonalení, obsahující IP filtr a transparentní socket. Tento firewall byl znám jako první transparentní aplikační firewall, uvedený coby komerční produkt Gauntlet firewallu ve společnosti Trusted Information Systems. Gauntlet firewall byl v letech 1995–1998 hodnocen jako jeden z nejlepších firewallů.
Klíčová výhoda filtrování aplikační vrstvy spočívá v tom, že může "rozumět" určitým aplikacím a protokolům (například FTP, Domain Name System (DNS) nebo Hypertext Transfer Protocol (HTTP)). Je to užitečné, protože dokáže rozpoznat, zda se nežádoucí aplikace nebo služba nepokouší obejít bránu firewall pomocí protokolu na povoleném portu nebo zjistit, zda není protokol zneužíván ke špatným účelům.
Od roku 2012 není takzvaný firewall další generace (NGFW) ničím jiným než "širší" nebo "hlubší" kontrolou v aplikačním zásobníku.
Kategorie firewallů
Podle umístění lze firewally dělit na:
- Síťový firewall – samostatné hardwarové řešení pro ochranu počítačové sítě
- Personální firewall – realizován na koncových stanicích (počítačích)
Paketové filtry
Nejjednodušší a nejstarší forma firewallování, která spočívá v tom, že pravidla přesně uvádějí, z jaké adresy a portu na jakou adresu a port může být doručen procházející paket, tj. kontrola se provádí na třetí a čtvrté vrstvě modelu síťové komunikace OSI.[1]
Výhodou tohoto řešení je vysoká rychlost zpracování, proto se ještě i dnes používají na místech, kde není potřebná přesnost nebo důkladnější analýza procházejících dat, ale spíš jde o vysokorychlostní přenosy velkých množství dat.
Nevýhodou je nízká úroveň kontroly procházejících spojení, která zejména u složitějších protokolů (např. FTP, video/audio streaming, RPC apod.) nejen nedostačuje ke kontrole vlastního spojení, ale pro umožnění takového spojení vyžaduje otevřít i porty a směry spojení, které mohou být využity jinými protokoly, než bezpečnostní správce zamýšlel povolit.
Mezi typické představitele paketových filtrů patří např. tzv. ACL (Access Control Lists) ve starších verzích operačního systému IOS na routerech spol. Cisco Systems, popř. JunOS spol. Juniper Networks, starší varianty firewallu v linuxovém jádře (ipchains).
Aplikační brány
Jen o málo později, než jednoduché paketové filtry, byly postaveny firewally, které na rozdíl od paketových filtrů zcela oddělily sítě, mezi které byly postaveny. Říká se jim většinou Aplikační brány, někdy také Proxy firewally. Veškerá komunikace přes aplikační bránu probíhá formou dvou spojení – klient (iniciátor spojení) se připojí na aplikační bránu (proxy), ta příchozí spojení zpracuje a na základě požadavku klienta otevře nové spojení k serveru, kde klientem je aplikační brána. Data, která aplikační brána dostane od serveru, pak zase v původním spojení předá klientovi. Kontrola se provádí na sedmé (aplikační) vrstvě síťového modelu OSI (proto se těmto firewallům říká aplikační brány).
Jedním vedlejším efektem použití aplikační brány je, že server nevidí zdrojovou adresu klienta, který je původcem požadavku, ale jako zdroj požadavku je uvedena vnější adresa aplikační brány. Aplikační brány díky tomu automaticky působí jako nástroje pro překlad adres (NAT), nicméně tuto funkcionalitu má i většina paketových filtrů.
Výhodou tohoto řešení je poměrně vysoké zabezpečení známých protokolů.
Nevýhodou je zejména vysoká náročnost na použitý HW – aplikační brány jsou schopny zpracovat mnohonásobně nižší množství spojení a rychlosti, než paketové filtry a mají mnohem vyšší latenci. Každý protokol vyžaduje napsání specializované proxy, nebo využití tzv. generické proxy, která ale není o nic bezpečnější, než využití paketového filtru. Většina aplikačních bran proto uměla kontrolovat jen několik málo protokolů (obyčejně kolem deseti). Původní aplikační brány navíc vyžadovaly, aby klient uměl s aplikační branou komunikovat a neuměly dost dobře chránit svůj vlastní operační systém; tyto nedostatky se postupně odstraňovaly, ale po nástupu stavových paketových filtrů se vývoj většiny aplikačních bran postupně zastavil a ty přeživší se dnes používají už jen ve velmi specializovaných nasazeních.
Typickými představiteli aplikačních bran byly např. The Firewall Toolkit (fwtk) a z něj vycházející Gauntlet spol. TIS později zakoupený společností NAI.
Stavové paketové filtry
Stavové paketové filtry provádějí kontrolu stejně jako jednoduché paketové filtry, navíc si však ukládají informace o povolených spojeních, které pak mohou využít při rozhodování, zda procházející pakety patří do již povoleného spojení a mohou být propuštěny, nebo zda musí znovu projít rozhodovacím procesem. To má dvě výhody – jednak se tak urychluje zpracování paketů již povolených spojení, jednak lze v pravidlech pro firewall uvádět jen směr navázání spojení a firewall bude samostatně schopen povolit i pakety odpovědí a u známých protokolů i další spojení, která daný protokol používá. Například pro FTP tedy stačí nastavit pravidlo, ve kterém povolíte klientu připojení na server pomocí FTP a protože se jedná o známý protokol, firewall sám povolí navázání řídícího spojení z klienta na port 21 serveru, odpovědi z portu 21 serveru na klientem použitý zdrojový port a po příkazu, který vyžaduje přenos dat, povolí navázání datového spojení z portu 20 serveru na klienta na port, který si klient se serverem dohodli v rámci řídícího spojení a pochopitelně i pakety odpovědí z klienta zpět na port 20 serveru. Zásadním vylepšením je i možnost vytváření tzv. virtuálního stavu spojení pro bezstavové protokoly, jako např. UDP a ICMP.
K největším výhodám stavových paketových filtrů patří jejich vysoká rychlost, poměrně slušná úroveň zabezpečení a ve srovnání s výše zmíněnými aplikačními branami a jednoduchými paketovými filtry řádově mnohonásobně snazší konfigurace – a díky zjednodušení konfigurace i nižší pravděpodobnost chybného nastavení pravidel obsluhou.
Nevýhodou je obecně nižší bezpečnost, než poskytují aplikační brány.
Typickými představiteli této kategorie firewallů jsou např. FireWall-1 spol. Check Point do verze 4.0, starší verze Cisco PIX, Cisco IOS Firewall, starší verze firewallů Netscreen spol. Juniper a z volně dostupných produktů iptables v linuxovém jádře a ipfw v *BSD.
Stavové paketové filtry s kontrolou protokolů a IDS
Moderní stavové paketové filtry kromě informací o stavu spojení a schopnosti dynamicky otevírat porty pro různá řídící a datová spojení složitějších známých protokolů implementují něco, co se v marketingové terminologii různých společností nazývá nejčastěji Deep Inspection nebo Application Intelligence. Znamená to, že firewally jsou schopny kontrolovat procházející spojení až na úroveň korektnosti procházejících dat známých protokolů i aplikací. Mohou tak například zakázat průchod http spojení, v němž objeví indikátory, že se nejedná o požadavek na WWW server, ale tunelování jiného protokolu, což často využívají klienti P2P sítí (ICQ, gnutella, napster, apod.), nebo když data v hlavičce e-mailu nesplňují požadavky RFC apod.
Nejnověji se do firewallů integrují tzv. in-line IDS (Intrusion Detection Systems – systémy pro detekci útoků). Tyto systémy pracují podobně jako antiviry a pomocí databáze signatur a heuristické analýzy jsou schopny odhalit vzorce útoků i ve zdánlivě nesouvisejících pokusech o spojení, např. skenování adresního rozsahu, rozsahu portů, známé signatury útoků uvnitř povolených spojení apod.
Výhodou těchto systémů je vysoká úroveň bezpečnosti kontroly procházejících protokolů při zachování relativně snadné konfigurace, poměrně vysoká rychlost kontroly ve srovnání s aplikačními branami, nicméně je znát významné zpomalení (zhruba o třetinu až polovinu) proti stavovým paketovým filtrům.
Nevýhodou je zejména to, že z hlediska bezpečnosti designu je základním pravidlem bezpečnosti udržovat bezpečnostní systémy co nejjednodušší a nejmenší. Tyto typy firewallů integrují obrovské množství funkcionality a zvyšují tak pravděpodobnost, že v některé části jejich kódu bude zneužitelná chyba, která povede ke kompromitování celého systému.
Typickými představiteli této kategorie jsou Check Point FireWall-1 (od verze 4.1, nyní NGX), produkty řady Netscreen, ISG a SSG společnosti Juniper. Podobná funkcionalita je k dispozici ve formě experimentálních modulů také pro iptables v linuxovém jádře.
Bezpečnostní politika
Nastavení pravidel pro komunikaci přes firewall se běžně označuje termínem „bezpečnostní politika firewallu“, zkráceně „bezpečnostní politika“. Bezpečnostní politika zahrnuje nejen samotná pravidla komunikace mezi sítěmi, ale u většiny dnešních produktů také různá globální nastavení, překlady adres (NAT), instrukce pro vytváření šifrovaných spojení mezi šifrovacími branami (VPN – Virtual Private Networks), vyhledávání možných útoků a protokolových anomálií (IDS – Intrusion Detection Systems), autentizaci a někdy i autorizaci uživatelů a správu šířky přenosového pásma (bandwidth management).
Reference
V tomto článku byl použit překlad textu z článku Firewall (computing) na anglické Wikipedii.
- ↑ ictp.trieste.it. Dostupné v archivu pořízeném dne 2019-06-19.
Externí odkazy
Obrázky, zvuky či videa k tématu firewall na Wikimedia Commons