přejít na obsah přejít na navigaci

Linux E X P R E S, Hardware v distribuci openSUSE - Správné nastavení firewallu

Hardware v distribuci openSUSE - Správné nastavení firewallu

opensuse.png

Přestože nastavování firewallu není přímo hardwarovou záležitostí, je prakticky nedílně spjato s používáním jakéhokoli (zejména "vnějšího", tedy z Internetu přístupného) síťového rozhraní. Proto má v tomto seriálu své důležité místo, a to dokonce ve dvou dílech.


Zóny firewallu

Důležitým pojmem při používání firewallu jsou tzv. zóny. Zóna je síťová oblast mající určité vlastnosti a požadavky, podle kterých je potřeba nastavit firewall na daném rozhraní. Obvykle se rozlišují tři zóny:

  • Vnější zóna - tam patří celý Internet a také všechny nedůvěryhodné sítě (například metropolitní).
  • Vnitřní zóna - do té patří vnitřní (lokální) síť
  • Demilitarizovaná zóna (DMZ) - má specifické vlastnosti, protože jde o oblast ve vnitřní síti, kam je ale do určité míry přístup zvenčí, ale současně odtud není přístup do vnitřní zóny.

Vnější zóna se nastavuje zásadně stylem "co není povoleno, je zakázáno". Ve vnější zóně se to potenciálně hemží útočníky disponujícími dostatkem času a výkonu, a tedy schopnými zneužít případné slabiny, například omylem spuštěnou nezabezpečenou službu. Čili firewall bude vždy zapnutý a explicitně se v něm povolí jen to, co je nezbytně nutné. Standardně se povoluje průchod paketů ze sestavených a souvisejících spojení (totéž i pro samostatné datagramy, typicky protokolu UDP), základní ICMP provoz (je důležitý pro odhalování komunikačních problémů) a pak specificky ty služby, které mají být zvenku vidět (například SSH).

Opakem vnější zóny je zóna vnitřní. Někdy se na ní vůbec firewall nezapíná (což někdy nevadí, ale lepší je obecně firewall využívat), a když už, bývá povoleno více komunikačních služeb než pro vnější zónu (zejména služby jako SMB, VNC, CUPS, NFS a různé další).

Speciálním případem je demilitarizovaná zóna. Lze si představit třeba poštovní server umístěný uvnitř sítě, dostupný odkudkoli z Internetu (často je potřeba mít do DMZ přístup i z vnitřní sítě). Server musí mít přístup ven, ale nesmí mít přístup do vnitřní sítě. Důvodem je to, že pokud by se případnému útočníkovi povedlo (např. přes nějakou chybu v programu, který poskytuje služby navenek) spustit si v počítači vlastní kód, nedostane se do vnitřní sítě.

Nastavování firewallu v programu YaST2

V GNU/Linuxu je firewall implementován přímo v jádře, prostřednictvím paketového filtru Netfilter. Implementace je velmi modulární, lze proto přidávat různé moduly pro specifické funkce (takto je řešena většina funkcí, například různé způsoby nakládání s pakety, různé metody sledování souvisejících paketů, záznam paketů, značkování, NAT a různé další funkce). Kromě toho lze případně i předávat pakety do uživatelského prostoru ke zpracování pomocným programům, ale výrazně tím klesne výkon, který je jednou z hlavních výhod linuxového řešení firewallu.

Linuxový firewall se obvykle ovládá pomocí rozhraní nazvaného iptables, což je sada tabulek obsahujících pravidla pro nakládání s pakety. K iptables existují jednoduché konzolové nástroje, kterými lze pravidla přidávat, odebírat, měnit atd. To všechno je velmi silné, ale také dost složité na ovládání a pro někoho, kdo si chce rychle, a přitom relativně bezpečně nastavit firewall, to to není dobrá cesta. Existují však různé grafické nástroje, které tuto úlohu převezmou a odstíní uživatele od té mašinerie, která je "dole" v systému.

V distribuci openSUSE lze firewall ovládat přímo z programu YaST2 (s propojením na nastavování síťových rozhraní, viz minulé dva díly seriálu), a to velmi jednoduše, bez složitého sestavování komunikačních pravidel. Příslušný modul programu se spouští v sekci Bezpečnost a uživatelé přes položku Firewall.

Spouštění konfigurace firewallu v programu YaST2Spouštění konfigurace firewallu v programu YaST2

Základní konfigurace

Jak vidíte na následujícím obrázku, je nastavení firewallu členěno trochu jinak, než jak tomu bylo u nastavení síťových rozhraní. Nejsou zde karty (listy, záložky, prostě jak tomu kdo říká), nýbrž strom v levé části okna. Přepínáním v tomto stromě se zobrazují jednotlivé sekce nastavení.

Začátek nastavení firewalluZačátek nastavení firewallu

Po spuštění konfigurace firewallu se otevře sekce nazvaná Začátek, kde se určuje, zda vůbec firewall poběží. Ve skupině Spuštění služby se určuje, zda se firewall bude automaticky spouštět či nikoliv. Zákaz automatického startu samozřejmě neznamená, že by firewall nešel aktivovat ručně. Druhá skupina (Zapnout a vypnout) obsahuje právě tlačítka na ruční řízení firewallu, čili lze firewall zapnout, vypnout, anebo uložit nastavení a restartovat ho.

Pokud stisknete tlačítko Uložit nastavení a restartovat firewall, uloží se aktuální podoba konfigurace a firewall bude restartován, případně spuštěn (tj. pokud byl původně vypnutý, vždy se tímto tlačítkem zapne!). Ještě ohledně termínu "běžet" je důležité připomenout, že nejde o žádný skutečný běh (firewall není program, je to v podstatě kód knihovního charakteru v jádře), nýbrž o prosté používání jeho kódu při průchodu paketů.

Konfigurace rozhraní

Sekce nazvaná Rozhraní slouží k přiřazování zón k síťovým rozhraním. Každé rozhraní by mělo být vloženo do některé zóny, jinak bude (při zapnutém firewallu) podrobeno výchozímu nastavení, které blokuje veškerý provoz. Následující obrázek ukazuje příklad nastavení rozhraní.

Konfigurace síťových rozhraníKonfigurace síťových rozhraní

V tabulce vidíte čtyři položky. Tři příslušejí konkrétním rozhraním, čtvrtá je označena jako "any", což znamená libovolné další rozhraní, které by zde nebylo uvedeno. V tomto příkladu je jsou ethernetová karta a WiFi adaptér vloženy do vnitřní zóny (mají přístup pouze do vnitřní sítě), připojený CDMA modem (viz minulý díl Hardware v distribuci openSUSE - Modem, připojení k internetu) je rozhraním připojeným do Internetu (byť zde konkrétně přes síť s neveřejnými adresami, která je teprve připojena do vlastního Internetu - to ale z bezpečnostního hlediska není podstatné). Libovolné další rozhraní by automaticky podléhalo pravidlům vnější zóny - pokud by se toto pravidlo odstranilo, případná nově přidaná rozhraní by měla blokovánu komunikaci.

Výběr zóny pro rozhraníVýběr zóny pro rozhraní

Zóna pro rozhraní se vybírá buď při nastavování rozhraní (viz předchozí díly) nebo přímo zde, přes tlačítko Změnit... Tímto tlačítkem se zobrazí jednoduchý dialog umožňující výběr zóny z rozbalovacího seznamu. V pojetí programu YaST2 se od sebe vnitřní a demilitarizovaná zóna příliš neliší (je-li zapnut firewall pro vnitřní zónu), pouze z vnitřní zóny se nepovolené přístupy zamítají (je generován příslušný zamítavý ICMP paket), kdežto pro DMZ se tiše zahazují. Je blokováno předávání paketů mezi těmito zónami - pokud by bylo potřeba přistupovat z vnitřní zóny do DMZ, lze to v programu YaST2 nastavit pouze v kombinaci s maškarádou (viz dále), vytvořením pravidla pro přesměrování portu. Netřeba dodávat, že je potřeba mít zapnuté předávání paketů a správně nakonfigurovanou směrovací tabulku (viz Hardware v distribuci openSUSE - Síťová rozhraní).

Vlastní pravidla pro přiřazení zónVlastní pravidla pro přiřazení zón

Tlačítko Vlastní... slouží k definici samostatných pravidel pro přiřazování do zón. Lze tak nastavit například zmiňované pravidlo "any", ale také pravidla pro přiřazení zařízení, která systém aktuálně nezná (třeba "eth2" apod.). Funguje to tak, že se pro každou ze zón specifikují příslušné řetězce oddělené mezerou - YaST2 z toho pak vytvoří jednotlivá pravidla.

Povolené služby

YaST2 zjednodušuje nastavování povolené komunikace do té míry, že se nepracuje se složitými pravidly umožňujícími definovat spousty různých parametrů, nýbrž se určují jen povolené služby (tj. ve skutečnosti porty a protokoly). Lze si vybírat ze seznamu předpřipravených služeb nebo si přidávat své vlastní. Na obrázku vidíte sekci Povolené služby se třemi službami, pro které je firewall otevřen (v rámci vnější zóny).

Firewall - povolené službyFirewall - povolené služby

Rozbalovacím seznamem nahoře se vybírá zóna. Pokud není dole zaškrtnuto Chránit firewallem vnitřní zónu, budou ovládací prvky pro vnitřní zónu zašedlé a v seznamu se budou zobrazovat jako povolené všechny předpřipravené služby (což neznamená, že by nebyly povoleny i ty ostatní). Pokud se zaškrtávátko zaškrtne, seznam se vyprázdní a odšedne - nyní do něj lze přidávat služby stejným způsobem, jako pro zbývající zóny.

Povolené služby lze přidávat dvojím způsobem - buď se zvolí v seznamu Služba k povolení a stiskem tlačítka se přidá (tlačítko Smazat povolené služby naopak odebírá - lze ale odebírat jen po jedné, nelze bohužel vybrat více položek v seznamu a odebrat je najednou). Služba nemusí znamenat jen jeden konkrétní port - například výběr SMTP with Postfix povolí TCP porty 25 a 465. Druhou možností je stisknout tlačítko Pokročilé... a specifikovat přímo konkrétní služby. Dialog vidíte na obrázku.

Firewall - pokročilé přidání povolené službyFirewall - pokročilé přidání povolené služby

Nastavení má hodně možností, ale také nejedno úskalí. Lze specifikovat porty pro protokoly TCP a UDP (buď jednotlivě nebo rozsahy), RPC porty (resp. služby) a IP protokoly. Lze používat čísla i názvy, tedy například místo 80 použít http (zhruba to odpovídá přiřazení v souborech /etc/services, /etc/protocols a /etc/rpc; YaST2 však tyto soubory nepoužívá, má své vlastní údaje). Meze rozsahů se oddělují dvojtečkou, jednotlivé prvky seznamu mezerou.

Je tu ale několik úskalí. Především se tyto povolené služby nijak nezobrazují v základním seznamu (ani informativně, tj. že je něco takového někde nastaveno), což může způsobit bolení hlavy tomu, kdo si nevzpomene na tento dialog a řeší problém s otevřeným portem. Další problém je, že se zadané prvky seznamu automaticky seřadí podle abecedy, což může rozbořit vytvořené logické uspořádání.

Uvedená nastavení jsou globální, tedy bez ohledu na zdrojové adresy. Přesnější pravidla lze vytvářet také, ale ne v této sekci. Není to tedy tak, že by to nešlo vůbec.

V dalším dílu se bud pokračovat nastavením NATu, IP maškarády a zaměříme se na vlastní pravidla pro firewall.

Nahoru

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz