FirewallD je nová služba, která má na starost nastavování firewallu ve Fedoře 18. Autorem je Thomas Woerner, jenž je také autorem staršího nástroje system-config-firewall.

Nejprve ale něco o tom, jak to funguje v současnosti.

V Linuxu je firewall (paketový filter) implementován v jádře a tento framework se jmenuje Netfilter. V uživatelském prostoru je k dispozici nástroj iptables (případně ip6tables pro IPv6), který nastavuje tento paketový filtr v jádře. Dále má Fedora stejnojmennou službu, která tento nástroj využívá.

Současný model firewallu v uživatelském prostoru je víceméně statický. Počáteční konfigurace firewallu je vytvořena instalátorem anaconda a uživatel ji může později měnit nástrojem system-config-firewall. Pravidla jsou uložena v /etc/sysconfig/iptables. To, že jsou pravidla uložena v jednom souboru, je výhoda, protože tento soubor je možné generovat nebo měnit jednoduchými skripty. Problémem u tohoto modelu je, že pro aplikování každé změny je nutné firewall (službu iptables) restartovat. S tím souvisí další problém – protože služba iptables je jen skupinka skriptů, které se jednorázově pustí při re-startu této služby, tak jiné služby, které potřebují samy manipulovat s firewallem (jmenovitě libvirt) nemají žádnou možnost, jak zjistit, že k restartu firewallu došlo. Dále je nutné při restartu odebrat a znovu nahrát kernel moduly netfilter (např. pro ftp, sambu aj.), což může způsobit přerušení aktivních připojení.

Naproti tomu v novém dynamickém modelu FirewallD se většina změn obejde bez restartu firewallu. Protože jde o neustále běžící službu, přístupnou přes D-Bus, tak např. libvirt dokáže zaznamenat její restart a zareagovat tím, že znovu vytvoří potřebná pravidla pro běžící virtuální stroje. Přes D-Bus je navíc možné měnit a zjišťovat nastavení firewallu. GUI k FirewallD se jmenuje firewall-config a CLI firewall-cmd.

Nevýhodou FirewallD je, že všechny modifikace firewallu je nutné provádět přes FirewallD (GUI, CLI nebo D-Bus). Pokud by uživatel např. sám povolil nějakou službu přímo přes program iptables, tak FirewallD ji bude dál považovat za zakázanou.

FirewallD také neumí číst /etc/sysconfig/iptables, ale má vlastní konfigurační soubory XML v /usr/lib/. Poslední změnou, která by se nemusela všem líbit, je, že výpis všech nastavených pravidel například pomocí iptables -L je obsáhlejší než v případě služby iptables. Důvodem jsou nové řetězce (chains) kvůli síťovým zónám.

Pomocí staršího nástroje system-config-firewall je sice možné měnit většinu důležitých nastavení firewallu, ale problémem je, že například s notebookem se během dne můžete připojit k několika různým sítím a nastavení firewallu, které je vyhovující v jedné síti, už nemusí dávat příliš smysl v případě jiné sítě.

Například připojení k veřejné síti wi-fi bude logicky vyžadovat přísnější nastavení firewallu než v případě připojení k pevné domácí síti, kde můžete ostatním zařízením na síti víceméně důvěřovat.

 

Autorem obrázku je Máirín Duffy.

Právě koncept zón umožňuje mít různá nastavení firewallu pro různá připojení. Zóny definují stupeň důvěry síťovému rozhraní nebo připojení. Klasifikovat síťová připojení do zón je možné buď přímo v konfiguračních souborech jednotlivých síťových připojení, tj. v /etc/sysconfig/network-scripts/ifcfg-* nebo v GUI k NetworkManageru. Jednoduchým přepnutím zóny tak lze snadno změnit komplexní nastavení firewallu pro dané připojení.

FirewallD je možné používat již ve Fedoře 17, ale jako výchozí služba pro firewall by měl nahradit službu iptables teprve ve Fedoře 18. Nadále bude možné používat i službu iptables, ne ale zároveň s FirewallD. Půjde tedy o podobnou situaci jako u NetworkManageru a služby ‘network’ (balíček initscripts).

Příště: Konfigurace zón.