abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:22 | IT novinky

    Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | Nová verze

    Byla vydána nová verze 12.0 minimalistické linuxové distribuce (JeOS, Just enough Operating System) pro Kodi (dříve XBMC) a multimediálního centra LibreELEC (Libre Embedded Linux Entertainment Center). Jedná se o fork linuxové distribuce OpenELEC (Open Embedded Linux Entertainment Center). LibreELEC 12.0 přichází s Kodi 21.0 "Omega".

    Ladislav Hagara | Komentářů: 0
    včera 12:55 | Nová verze

    Microsoft vydal novou velkou aktualizaci 2404.23 v září 2019 pod licencí SIL Open Font License (OFL) zveřejněné rodiny písma Cascadia Code pro zobrazování textu v emulátorech terminálu a vývojových prostředích.

    Ladislav Hagara | Komentářů: 0
    včera 05:33 | Nová verze

    OpenTofu, tj. svobodný a otevřený fork Terraformu vzniknuvší jako reakce na přelicencování Terraformu z MPL na BSL (Business Source License) společností HashiCorp, bylo vydáno ve verzi 1.7.0. Přehled novinek v aktualizované dokumentaci. Vypíchnout lze State encryption.

    Ladislav Hagara | Komentářů: 0
    30.4. 23:55 | Humor

    Spouštět webový prohlížeč jenom kvůli nákupu kávy? Nestačí ssh? Stačí: ssh terminal.shop (𝕏).

    Ladislav Hagara | Komentářů: 7
    30.4. 18:11 | Nová verze

    Yocto Project byl vydán ve verzi 5.0. Její kódové jméno je Scarthgap. Yocto Project usnadňuje vývoj vestavěných (embedded) linuxových systémů na míru konkrétním zařízením. Cílem projektu je nabídnou vývojářům vše potřebné. Jedná se o projekt Linux Foundation.

    Ladislav Hagara | Komentářů: 0
    30.4. 17:56 | Nová verze

    Operační systém 9front, fork operačního systému Plan 9, byl vydán v nové verzi "do not install" (pdf). Více o 9front v FQA.

    Ladislav Hagara | Komentářů: 0
    30.4. 13:11 | Nová verze

    Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána v nové verzi 6.1. Přehled novinek i s náhledy v oficiálním oznámení a na GitHubu. Řešeny jsou také 2 bezpečnostní chyby.

    Ladislav Hagara | Komentářů: 3
    30.4. 12:33 | Zajímavý software

    Lennart Poettering na Mastodonu představil utilitu run0. Jedná se o alternativu k příkazu sudo založenou na systemd. Bude součástí systemd verze 256.

    Ladislav Hagara | Komentářů: 26
    29.4. 23:22 | Nová verze

    Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.

    Ladislav Hagara | Komentářů: 13
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (0%)
     (0%)
     (100%)
     (0%)
    Celkem 1 hlasů
     Komentářů: 0
    Rozcestník

    Linuxové DMZ - VI

    12. 3. 2003 | Michal Vymazal | Bezpečnost | 18370×

    Firewall: paketový filtr, stavový firewall, aplikační proxy, analyzátor paketů.

    Firewall - základní popis

    V dnešním dílu se vám pokusím přiblížit základní funkce firewallu. Budeme se pohybovat v obecné rovině a podíváme se, z čeho vlastně čerpají profesionální návrháři. V závěru článku jsem pak uvedl odkazy na dokumenty, které pocházejí z dílny amerického normalizačního úřadu (NIST), a popisují velmi podrobně problematiku, kterou zde dnes budeme probírat. České normy zatím bohužel neexistují, takže nezbývá než se odkazovat na dokumenty v anglickém jazyce. Dnes se tedy budeme pohybovat v obecné rovině. Odkazy na zajímavé projekty z oblasti Linuxu uvedeme v některém z dalších dílů.

    Síťové firewally jsou zařízení nebo systémy, které oddělují jednotlivé datové sítě a to prostřednictvím pravidel, kterým říkáme bezpečnostní politiky. Firewall je vlastně jakási ochranná hráz, skrze kterou musejí projít všechny informace (rozumějte pakety), které si chceme "mezi oddělenými světy" předat. Ve velké většině případů je firewall zmiňován právě v souvislostech propojení s Internetem a ve spojitosti s rodinou protokolů TCP/IP. Nicméně, firewally nejsou nutně závislé na Internetu a musejí být schopny pracovat i s jinými protokoly. Internet je sice častý, nicméně ne jediný případ jejich využití. Klasickým příkladem mohou být například vnitropodnikové sítě, kdy jednotlivé pobočky jsou k "hlavnímu stanu" připojeny pomocí privátních kanálů. Tyto kanály (např. WAN sítě) jsou rovněž chráněny firewally, přestože v těchto větvích se nemusí nacházet jediná přípojka do Internetu. V době zvané "informace nad zlato" se tak jejich provozovatelé snaží předejít neoprávněným přístupům k zařízením (k informacím v těchto zařízeních uložených), monitorovat provoz v těchto sítích, povolit jen vybrané síťové služby, omezit provoz na pronajatých linkách apod. Určité modelové topologie zapojení firewallu jsme si již ukázali ve 3.dílu, podrobný popis jednotlivých zapojení pak najdete v literatuře (1).

    Skladba firewallu

    V 2. dílu jsme uvedli, že firewall má celkem 4 stupně. Pokud se však pozorně začtete do níže uvedené literatury (2), dozvíte se, že můžeme rozlišovat celkem až 8 (!) stupňů. Tento zdánlivý rozpor si hned vysvětlíme.

    Členění stupňů firewallů vypadá (podle 2) v současné době takto:

    • paketový filtr (ano, o tom slyšíme neustále)
    • stavový firewall (stateful inspection firewall)
    • aplikační proxy (application proxy gateway firewall)
    • dedicated proxy firewall
    • hybrid firewall technologies (sem je možné zařadit analyzátory paketů)
    • network address translation
    • host based firewall
    • personal firewall

    Podíváte-li se blíže, pak pojmy dedicated proxy firewall, host based firewall a personal firewall jsme si ve druhém dílu dovolili vynechat, protože se jedná o zvláštní případy instalací. Ještě připomenu, že vlastní překlad adres (network address translation - NAT) bývá často zařazován na úroveň paketových filtrů. Nyní jsme tedy již u našeho starého známého schématu:

    • paketový filtr
    • stavový firewall
    • aplikační proxy
    • analyzátor paketů

    tak, jak jsme uvedli v druhém dílu. Podívejme se teď na jednotlivé stupně poněkud blíže.

    Paketový filtr

    Tvoří základní stupeň každého firewallu a to mimo jiné i proto, že má na své straně dvě velké výhody, kterými jsou rychlost a přizpůsobitelnost (flexibility). Paketový filtr může být použit v libovolné síti na libovolný typ protokolu (my se ale budeme věnovat jen rodině protokolů TCP/IP). I to je důvod, proč jsou paketové filtry využívány i na jiných zařízeních než firewallech, klasickým případem jsou směrovače (router).

    Paketové filtry však mají i řadu nevýhod:

    1. Vzhledem k tomu, že nezkoumají (neumějí to) tzv. "upper layer data" (jinými slovy, vše co je nad 3. vrstvou OSI modelu (OSI model popisujeme zde) tj. od Transportní vrstvy výše), nemohou bránit specifickým útokům na slabiny operačních systémů nebo aplikací. Stručně řečeno, paketové filtry umějí sledovat hlavičky paketů, ne jejich vzájemné vazby nebo návaznost.
    2. Mají omezené logovací možnosti. Vlastní logování snižuje výkonnost systému, na kterém je paketový filtr provozován. Pokud úroveň logování "přeženete", může dojít k přetížení daného zařízení a k jeho následnému kolapsu. Klasickým příkladem může být pokus o logování např. všech příchozích SYN paketů. U domácího stroje (modelová topologie - Domácí PC, zde) to asi vadit nebude, nicméně u modelové topologie č. 5 (Linuxová DMZ, samostatná rozhraní pro WAN a Modem pool, připojení k Internetu skrze router, zde) vám pokus o logování všech SYN paketů na firewallu (např. do log souboru) může přivodit kolaps firewallu. Je vcelku jedno, jestli ten log soubor vytváříte na firewallu, nebo na jiném stroji. Zkrátka - u paketových filtrů musíte pečlivě zvážit, které události budete logovat a které nikoliv. Budete muset vzít v potaz výkonnost stroje, propustnost všech jeho síťových rozhraní, stanovit mez pod kterou nesmí klesnout výkon (např. 20%).
    3. Řada paketových filtrů nepodporuje autentizační mechanismy.
    4. Paketové filtry jsou náchylné k útokům, které zneužívají nedokonalosti TCP/IP protokolů (např. network layer address spoofing). Vzhledem ke své jednoduchosti nastavení vzniká řada chyb vlivem špatné konfigurace filtrů (na nepovolenou potřebnou službu obvykle přijdete, ale na povolenou nepotřebnou službu nemusíte přijít nikdy).

    Klasickým příkladem zařízení, které bude používat pouze paketový filtr, je právě router provozující ACL (access list) pro kontrolu síťového provozu. Takovýto "přístupový" router je v literatuře (1) označován jako Boundary router a jeho zapojení může vypadat právě takto:

    Vidíme, že náš Boundary router vlastně tvoří jakýsi "první stupeň" firewallu. Můžeme na něm provozovat paketový filtr, který odfiltruje nežádoucí pakety a zbytek provozu předá firewallu, který pak může provádět kontrolu na vyšších vrstvách OSI modelu, jak si řekneme níže.

    Stavový firewall (Stateful inspection firewall)

    Jakmile TCP (spojově orientovaná služba) aplikace vystaví TCP spojení (relaci) s protější stranou, ja na zdrojové straně tomuto spojení rovněž přiřazen určitý port. Tento port pak "obhospodařuje" spojení vystavené s protější stranou (remote host system). Paketový filtr musí povolit (přijmout) všechny příchozí pakety (příchozí ve směru od druhé strany) tak, aby spojově orientovaná služba mohla vůbec pracovat. Nicméně povolení určitého množství portů již vytváří prostor pro neposedy, kteří by této vlastnosti chtěli využívat k nejrůznějším pokusům, případně nekalostem.

    Stavový firewall to řeší tak, že si vytvoří tabulku pro každé spojení, kam zaznamenává každé vytvořené (platné) TCP spojení a to včetně portů odpovídajících tomuto spojení. Tato "stavová tabulka" je pak následně využívána pro ověřování činnosti jednotlivých spojení. Dorazí-li tedy paket, který žádnému vystavenému spojení neodpovídá (neodpovídá tabulce), je stavovým firewallem vyhodnocen jako nevyhovující (přesněji, nevyhovující politice) a podle politiky s ním pak stavový firewall i naloží (zahodí jej, odmítne, propustí, přesměruje apod.).

    Stavový firewall se oproti paketovému filtru liší také tím, že není obecně univerzální, ale je využitelný (nasaditelný) pouze pro TCP/IP protokoly.

    Jistěže, stavové firewally mohou obsluhovat (podobně jako paketové filtry) řadu protokolů, ale technologie "stavových tabulek" je zatím využitelná pouze pro protokoly z rodiny TCP/IP. Z tohoto důvodu je stavový firewall někdy v literatuře označován jako "nadstavba" paketového filtru. Podrobnější popis stavového firewallu nad IPTABLES můžete najít například zde.

    Aplikační proxy server (Application proxy firewall gateway)

    Jedná se o další rozšíření funkčnosti firewallu, které kombinuje tzv. "lower layer access control" (tedy na úrovni síťové vrstvy OSI modelu zde, což zajišťuje právě paketový filtr) s tzv. "upper layer" (tedy 7, neboli Aplikační vrstva OSI modelu). Všechny síťové pakety, které procházejí skrze firewall, pak musí projít skrze tuto bránu. Zde je tedy ono správné místo, kde můžeme narazit na výrazy typu "SMTP proxy, http proxy, ftp proxy" a podobně.

    Velkou výhodou aplikačních serverů je právě ta skutečnost, že kontrolu provádějí přímo na aplikační, tedy 7. vrstvě OSI modelu. Nevýhodou je skutečnost, že tento provoz "něco stojí" a zaplatíte za něj částí výkonu stroje. To bývá obvykle hlavním důvodem, proč jsou jednotlivé aplikační servery umístěny v DMZ na samostatných strojích. Klasickým příkladem je samostatný stroj pro poštu (SMTP server), samostatný stroj pro ftp, samostatný stroj pro www služby apod. Modelová topologie pak může vypadat třeba takto:

    Dedicated proxy firewall

    Přece jen se o nich krátce zmíním. Tento firewall se od klasické aplikační proxy liší tím, že představuje jakýsi "mezistupeň". Jeho úkolem je zachycovat provoz sledované síťové služby a dané pakety přeposílat na další stroj, který se nachází v DMZ, Vnitřní síti apod. Vlastní provoz může být jak jednosměrný (tedy pakety zvenčí dovnitř nebo zevnitř ven), tak obousměrný. Klasickým příkladem je SMTP proxy zvaná SMTP on firewall. Popis konfigurace můžete najít zde.

    Důvod tohoto zapojení je prostý - zvenčí je vidět pouze SMTP proxy, která však poštu předává dalšímu poštovnímu serveru v DMZ nebo ve vnitřní síti. Vlastní poštovní server pak není zvenčí vidět. Není asi třeba zdůrazňovat, že náš "dedicated proxy firewall" nebo-li SMTP proxy je jednoúčelový tupoučký automat, který skutečně neumí nic jiného než to, co po něm přesně chceme. Pak si jej můžeme dovolit předřadit před firewall a umístit buď někam na samostatný stroj nebo na přístupový router (opět náš Boundary router viz. literatura (1) na konci článku).

    Analyzátory paketů

    Vlastní analyzátor je samozřejmě pasivní záležitost. Výstupem mohou být zpracované výstupy v podobě logů, varovných nebo kritických zpráv. Klasickým analyzátorem paketů je třeba snort, který toho samozřejmě umí mnohem více (snort již lze zařadit do kategorie nástrojů IDS, nicméně u této kapitoly ještě zdaleka nejsme). Za další lze jmenovat např. portsentry (pro Debian např. zde) a anglicky psaný popis zde.

    Nicméně, v této kapitolce bych uvítal aktivitu čtenářů a čtenářek. Pokud tedy máte odkaz na zajímavý nástroj z této oblasti, pak neváhejte a napište. Rádi vaše dílko uveřejníme.

    Překlad síťových adres (Network Address Translation)

    Zde jen krátce. Hlavním posláním zmíněného překladu adres je "skrytí" vnitřní sítě před sítí vnější. Vlastní NAT pak může probíhat v několika režimech zvaných static, hiding a port. Vzhledem k tomu, že této věci se již věnoval Martin v jednom z předchozích dílů, dovolím si zájemce o podrobnější vysvětlení odkázat na literaturu na konci článku nebo na nějaké to NAT HOWTO, například sem nebo sem.

    Shrnutí

    Shrneme-li tedy vše, co zde již bylo řečeno, pak lze základní funkce firewallu popsat asi takto:

    • Filtrování paketů
    • Provádění stavových kontrol (stateful inspections) jednotlivých spojení.
    • Proxy operace na vybraných aplikacích.
    • Logování zakázaného/povoleného provozu na firewallu.
    • Provádění ověřování uživatelů na základě mechanismů, které nepoužívají statická hesla (ta je možné odposlechnout).
    • Analýza paketů.

    Je celkem zřejmé, že všechny tyto stupně se mohou, ale také nemusejí, nacházet na jednom a témž stroji. Rozdělení těchto modulů na fyzické stroje bude závislé na konkrétní situaci a na celkové zátěži, kterou jsme ochotni "přidělit" každému stroji.

    Filtrování paketů by pak mělo probíhat na základě následujících charakteristik:

    • Protokoly (tj. IP protokoly, ICMP protokol)
    • Zdrojová a cílová IP adresa
    • Zdrojové a cílové porty (vlastně označují konkrétní aplikaci)
    • Síťové rozhraní na firewallu, jímž paket prochází

    Související články

    Linuxové DMZ - I (Úvod do problematiky)
    Linuxové DMZ - II (Zařízení v DMZ)
    Linuxové DMZ - III (Modelové topologie)
    Linuxové DMZ - IV (Protokoly rodiny TCP/IP)
    Linuxové DMZ - V (Routery a minidistribuce LRP)
    Linuxové DMZ - VII (Paketové filtry)

    Odkazy a zdroje

    SP 800-41 Guidelines on Firewalls and Firewall Policy (NIST)
    DRAFT NIST Special Publication 800-36, Guide to Selecting IT Security Products

    NIST je zkratka pro National Institute of Standards and Technology a jak sami již z názvu tušíte, jedná se o organizaci zabývající se vývojem a vydáváním standardů (v našem případě se tedy jedná o standardy z oblasti informačních systémů). Bližší informace o NIST naleznete zde

           

    Hodnocení: 36 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.