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.
29. 10. 2012 at 20:26
Celkově se mi přístup líbí, ale jsem trošku nešťastný se zanášení základních systémových služeb D-Busem a XML. Raději bych tam viděl něco jednoduššího (IPC, text).
29. 10. 2012 at 22:07
A co teprve binární logy v journald!
30. 10. 2012 at 19:59
Souhlas, bohuzel to neni ani prvni ani posledni pripad. Pripomenme fontconfig, HAL, gconf, samozrejme dbus… proste snadno citelne pro stroj, ale necitelne pro cloveka. Aktualni situaci neznam, ale zadny funkcni semanticky editor, ktery by tento souboru dokazal dat smysl, aby se daly menit i „rucne“ jsem pred casem nenasel.
29. 10. 2012 at 23:19
Musi mat FirewallD konfiguracne subory XML a musia byt v /usr/lib?
30. 10. 2012 at 09:53
Detaily najdete v příštím díle, ale ano konfigurační soubory musí být v XML a ty uživatelsky definované se ukládají do /etc/firewalld
31. 10. 2012 at 08:19
OK, vdaka za info. Len nutnost toho XML mi stale vrta v hlave, uvidime v nasledujucom clanku na tuto temu.
30. 10. 2012 at 09:35
Pro zájemce o vyzkoušení FirewallD pořádáme 21. listopadu Network Manager and FirewallD Test Day.
30. 10. 2012 at 12:38
Vidím, že se Fedora jednoznačně odklání od desktopu a směřuje k mobilním zařízením a k běžným Frantům uživatelům, kteří nebudou mít pohodlnou možnost zasahovat do nastavení a chodu systému. Docela bych uvítal nějaký fork Fedory, který by byl směřován na moderní a kvalitní práci na nemobilním PC, se statickým připojením, s nedotykovou obrazovkou, s možností nastavení všeho možného znalým uživatelem.
30. 10. 2012 at 12:48
Nevím z čeho jste odvodil „kteří nebudou mít pohodlnou možnost zasahovat do nastavení a chodu systému.“, ale v příštím díle doufám zjistíte, že Firewalld není tento případ. GUI k Firewalld stále umožňuje měnit podobnou množinu nastavení jako předchozí system-config-firewall.
31. 10. 2012 at 08:18
Myslim, ze pokrocilemu pouzivatelovi, ktoreho ma na mysli Dzon vo svojom prispevku, nejde o GUI k Firewalld…
No nebudeme predcasne komentovat, uvidime v dalsom clanku o Firewalld.
31. 10. 2012 at 12:09
GUI pro nastavování firewallu? WTF??? Nastavování firewallu z uživatelského prostoru, dokonce bez zásahu uživatele? Kam jsme se to, sakra, dostali? Je snad na trhu místo pro ještě jedny Windous? Fedora se snaží mířit na cílovou skupinu, která neexistuje. Počet uživatelů linuxu stabilně klesá. Jaký div!
30. 10. 2012 at 17:54
Nechápu, proč není program iptables upraven tak, aby volal fitewalld. Podobně jako je třeba upraven chkconfig aby volal novější systemd. Nic se pak neochází a funguji staré skripty.
30. 10. 2012 at 20:09
Rekl bych ze proto, ze chkconfig je RH only „bastl“, zatimco iptables je puvodem z netfilteru a tam o firewallid jeste asi nic nevedi.
31. 10. 2012 at 10:22
Řekl bych, že proto, že narozdíl od systemd je firewalld možné zakázat (systemctl disable firewalld.service) a nadále používat (systemctl enable iptables.service) původní iptables službu a iptables příkaz.
31. 10. 2012 at 12:13
Jenže výběj bude možný tak dvě, tři verze. Pak nějaký jouda zase zjistí, že neumí udělat grafické klikátko tak, aby fungovalo pořádně s iptables a ve výsledku iptables zruší.
1. 11. 2012 at 13:59
Taková blbost hned v nadpisu… FirewallD řetězy těch tabulek naplňuje, tudíž je uživatelem iptables (i když ne příkazu iptables).
Nicméně i tak se mi nezdá prezentování FirewallD jako náhrady za iptables nebo nedej bože plnohodnotného firewalu pro všechny možné případy užití. To by ten software musel vypadat nejspíš úplně jinak.