FirewallD je nová služba, která má na starost nastavování firewallu ve Fedoře 18. V tomto článku se podíváme na nastavení zón.

Článek navazuje na FirewallD – náhrada iptables.

Nejdříve si ukážeme, jak nastavit, do které zóny bude síťové připojení patřit. Pokud neurčíme jinak, patří každé připojení do výchozí zóny. Která zóna je touto výchozí, je nastaveno v /etc/firewalld/firewalld.conf. V současnosti je výchozí zóna nastavena na zónu s názvem “public”. Změnit výchozí zónu je tedy možné přímo editací tohoto souboru nebo např. příkazem firewall-cmd --set-default-zone=home nebo v firewall-config kliknutím na tlačítko “Změnit výchozí zónu”. Seznam existujících zón získáte třeba příkazem firewall-cmd --get-zones. Pokud vám stačí (třeba v případě domácího stolního počítače s jednou síťovou kartou), že budou všechna připojení v zóně “home”, tak je vaše práce u konce.

Řekněme ale, že máte notebook, se kterým se doma nebo v práci připojujete k pevné sítí, ale čas od času používáte bezdrátové připojení k různým veřejným sítím wi-fi.

Potom chcete vaše připojení wi-fi nechat ve výchozí zóně (“public”) a pouze vaše pevné připojení mít v zóně “home”. Zóna “home” totiž poskytuje větší stupeň důvěry v připojení a více povolených služeb. Jsou dvě možnosti, jak změnit zónu pro konkrétní připojení. Můžete editovat konfigurační soubor konkrétního připojení, tj. odpovídající soubor /etc/sysconfig/network-scripts/ifcfg-* a přidat (případně změnit) řádek se ZONE=home. Jednodušší možností je změnit to v GUI k NetworkManageru.

Takto vypadá nastavení zóny pro konkrétní připojení pomocí nástroje Network Connections v systémových nastaveních KDE. Podobné “přepínátko” by se mělo brzy objevit i v appletu NM, který je v GNOME a jiných prostředích.

Dále chcete, dejme tomu, ve své domácí zóně povolit ještě další služby, které jsou zatím zakázány. Zase máte několik možností. Můžete upravit přímo konfigurační soubor zóny /usr/lib/firewalld/zones/home.xml. Provedete to tak, že vytvoříte jeho kopii v /etc/firewalld/zones a teprve ten budete měnit, abyste se nemuseli bát, že vás update připraví o vaše změny. Chcete-li například povolit službu http, stačí přidat řádek <service name="http"/>. Další možnosti viz firewalld.zone(5).

Po editaci ale musíte firewalld restartovat (stačí reload), aby se změny načetly. Seznam existujících zón získáte, jak už jsem zmínil, buď příkazem firewall-cmd –get-zones, nebo v /usr/lib/firewalld/services/, kde jsou jejich konfigurační soubory, které můžete samozřejmě taktéž upravovat. Viz firewalld.service(5).

Další možností, jak povolit službu v konkrétní zóně, je firewall-cmd --permanent --zone=home --add-service=http, případně varianta bez --permanent, tedy firewall-cmd --zone=home --add-service=http. Rozdíl mezi nimi je ten, že --permanent mění konfiguraci trvalou, tj. ty dříve zmiňované soubory XML, které se načtou s restartem firewalld. Bez --permanent měníte současnou aktivní (runtime) konfiguraci, která ale s restartem zmizí, resp. bude přepsána konfigurací persistentní.

Runtime změny vás zajímají, asi pouze pokud si chcete pohrát s nastavením bez obav, že něco zkazíte, protože restartem se vše vrátí do původní podoby. Možná si řeknete, že je to zajímavá hračka, ale proč s tím někdo ztrácel čas? Důvodem je třeba služba libvirt, která za běhu modifikuje firewall, například nastaví NAT pro startující virtuální stroj a pak ho zase zruší, když se virtuální stroj vypne. Bylo by kontraproduktivní, kdyby takovéto změny byly trvalé a po (re)startu firewallu se nastavil NAT pro virtuální stroj, který v té chvíli možná vůbec neběží.

Samozřejmě úplně nejjednodušší je všechno naklikat v nástroji firewall-config, což je GUI k firewalld. firewall-config se zatím podobá nástroji system-config-firewall s několika drobnými rozdíly:

Nástroj firewall-config je čerstvá novinka a je velmi pravděpodobné, že vzhled se ještě bude měnit.

Na levé straně je seznam zón. Kliknutím na název zóny se načte její konfigurace, kterou můžete měnit. Další novinkou je přepínání pohledů (na obrázku zatím nepřeloženo jako “Current view”). Tímto se přepíná mezi konfigurací aktuální a persistentní. Pokud měníte konfiguraci aktuální, tak se změny okamžitě provádějí bez nutnosti cokoliv restartovat (na rozdíl od system-config-firewall), ale tyto změny po restartu zmizí. Po editaci persistentní konfigurace je ještě nutné stisknout “Reload Firewalld”, aby se persistentní změny načetly a stala se z nich nová aktuální konfigurace. V Pohledu “Persistentní konfigurace”, máte možnost přidávat a editovat zóny, služby nebo typy ICMP.

Teď už byste měli vědět vše podstatné, abyste byli schopní měnit firewall ve Fedoře 18. Případné problémy hlaste jako vždy do bugzilly. Také se můžete 21. listopadu zúčastnit testovacího dne a pomoct s testováním a zkvalitňováním této služby ve Fedoře.