Úvod
– Brána firewall pro filtrování paketů čte příchozí síťové pakety a filtruje (povoluje nebo zakazuje) každý datový paket na základě informací v záhlaví v paketu. Linuxové jádro má vestavěnou funkci filtrování paketů nazvanou Netfilter .
– V RHEL 7 jsou k dispozici dvě služby pro vytváření, údržbu a zobrazování pravidel uložených Netfilterem:
1. firewalld
2. iptables
– V RHEL 7 je výchozí službou firewallu firewalld.
– firewalld je dynamický správce firewallu, který podporuje zóny firewallu (sítě).
– Služba firewalld má podporu pro IPv4, IPv6, a pro ethernetové mosty.
– Služba firewalld také poskytuje rozhraní D-BUS. Služby nebo aplikace, které již D-BUS používají, mohou přidávat nebo vyžadovat změny pravidel brány firewall přímo prostřednictvím rozhraní D-BUS.
Výhody oproti iptables
firewalld má oproti iptables následující výhody:
1. Na rozdíl od příkazu iptables příkaz firewall-cmd nerestartuje bránu firewall a nenaruší navázaná připojení TCP.
2. firewalld podporuje dynamické zóny.
3. firewalld podporuje D-Bus pro lepší integraci se službami, které závisí na konfiguraci firewallu.
Možnosti konfigurace
Služba firewalld má dva typy možností konfigurace:
1. Běh :Změny nastavení brány firewall se projeví okamžitě, ale nejsou trvalé. Změny provedené v režimu konfigurace za běhu se při restartu služby firewall ztratí.
2. Trvalé :Změny nastavení brány firewall se zapisují do konfiguračních souborů. Tyto změny se použijí při restartování služby brány firewall.
Konfigurační soubory
Konfigurační soubory pro firewalld existují ve dvou adresářích:
/usr/lib/firewalld :Obsahuje výchozí konfigurační soubory. Neprovádějte změny v těchto souborech. Upgrade balíčku firewalld přepíše tento adresář.
/etc/firewalld :Změny výchozích konfiguračních souborů jsou uloženy v tomto adresáři. Soubory v tomto adresáři přetěžují výchozí konfigurační soubory.
zóny brány firewall
Služba firewalld vám umožňuje rozdělit sítě do různých zón na základě úrovně důvěry, kterou chcete dát zařízením a provozu v konkrétní síti. Pro každou zónu můžete definovat následující funkce:
Služby :Předdefinované nebo vlastní služby, kterým lze důvěřovat. Důvěryhodné služby jsou kombinací portů a protokolů, které jsou dostupné z jiných systémů a sítí.
Porty :Další porty nebo rozsahy portů a související protokoly, které jsou přístupné z jiných systémů a sítí.
Masquerading :Přeložte adresy IPv4 na jednu externí adresu. Je-li povoleno maskování, jsou adresy privátní sítě mapovány a skryty za veřejnou adresou.
Přesměrování portů :Přesměrování příchozího síťového provozu z určitého portu nebo rozsahu portů na alternativní port v místním systému nebo na port na jiné adrese IPv4.
Filtr ICMP :Blokovat vybrané zprávy protokolu Internet Control Message Protocol.
Rich Rules :Rozšiřte stávající pravidla brány firewall o další zdrojové a cílové adresy a akce protokolování a auditu.
Rozhraní :Síťová rozhraní vázaná na zónu. Zóna pro rozhraní je určena pomocí ZONE=option v /etc/sysconfig/network-scripts/ifcfg soubor. Pokud tato možnost chybí, je rozhraní vázáno na výchozí zónu.
Předdefinované zóny brány firewall
Softwarový balík firewalld obsahuje sadu předdefinovaných síťových zón v následujícím adresáři:
# ls -lrt /usr/lib/firewalld/zones/ total 36 -rw-r----- 1 root root 342 Sep 15 2015 work.xml -rw-r----- 1 root root 162 Sep 15 2015 trusted.xml -rw-r----- 1 root root 315 Sep 15 2015 public.xml -rw-r----- 1 root root 415 Sep 15 2015 internal.xml -rw-r----- 1 root root 400 Sep 15 2015 home.xml -rw-r----- 1 root root 304 Sep 15 2015 external.xml -rw-r----- 1 root root 291 Sep 15 2015 drop.xml -rw-r----- 1 root root 293 Sep 15 2015 dmz.xml -rw-r----- 1 root root 299 Sep 15 2015 block.xml
Soubory zóny obsahují přednastavená nastavení, která lze použít na síťové rozhraní. Například:
# grep –i service /usr/lib/firewalld/zones/public.xml <service name=“ssh”/> <service name=“dhcpv6-client”/>
V tomto příkladu síťová rozhraní vázaná na veřejnou zónu důvěřují pouze dvěma službám, ssh a dhcpv6-client.
Následuje stručné vysvětlení každé zóny:
drop :Všechny příchozí síťové pakety jsou zahozeny, žádná odpověď. Jsou možná pouze odchozí
síťová připojení.
blokovat :Všechna příchozí síťová připojení jsou odmítnuta zprávou icmp-host-zakázaná pro IPv4 a icmp6-adm-prohibited pro IPv6. Jsou možná pouze síťová připojení iniciovaná ze systému.
domů :Pro použití v domácnostech. Ostatním počítačům v sítích většinou důvěřujete, že váš počítač nepoškodí. Jsou přijímána pouze vybraná příchozí spojení.
veřejná :Pro použití ve veřejných prostorách. Nedůvěřujete ostatním počítačům v síti, že váš počítač nepoškodí. Jsou přijímána pouze vybraná příchozí spojení.
práce :Pro použití v pracovních oblastech. Ostatním počítačům v sítích většinou důvěřujete, že váš počítač nepoškodí. Jsou přijímána pouze vybraná příchozí spojení.
dmz :Pro počítače ve vaší demilitarizované zóně, které jsou veřejně přístupné s omezeným přístupem do vaší vnitřní sítě. Jsou přijímána pouze vybraná příchozí spojení.
externí :Pro použití v externích sítích s povoleným maskováním, zejména pro routery. Nedůvěřujete ostatním počítačům v síti, že váš počítač nepoškodí. Jsou přijímána pouze vybraná příchozí spojení.
interní :Pro použití v interních sítích. Ostatním počítačům v sítích většinou důvěřujete, že váš počítač nepoškodí. Jsou přijímána pouze vybraná příchozí připojení.
důvěryhodná :Všechna síťová připojení jsou akceptována.
Nastavení výchozí zóny brány firewall
Po úvodní instalaci je veřejná zóna výchozí zónou, jak je uvedeno v konfiguračním souboru /etc/firewalld/firewalld.conf .
# grep –i defaultzone /etc/firewalld/firewalld.conf DefaultZone=public
Síťová rozhraní jsou vázána na výchozí zónu, pokud není v souboru ifcfg uvedeno pomocí ZONE=[zone]. Následující příkaz zobrazuje rozhraní, která jsou vázána na veřejnou zónu:
# firewall-cmd --get-active-zone public interfaces: eth0 eth1
Ke změně výchozí zóny můžete použít příkaz firewall-cmd:
# firewall-cmd --set-default-zone=work success
Ke změně výchozí zóny můžete také použít grafické uživatelské rozhraní firewall-config. Na liště nabídek vyberte Možnosti->Změnit výchozí zónu a poté vyberte zónu z rozbalovacího seznamu.
služby brány firewall
– Služba brány firewall je kombinací místních portů a protokolů a cílových adres.
– Služba brány firewall může také zahrnovat moduly jádra Netfilter, které se automaticky načtou, když je služba povolena.
– Součástí softwarového balíčku brány firewall je sada předdefinovaných služeb v následujícím adresáři:
# ls -lrt /usr/lib/firewalld/zones/ total 36 -rw-r----- 1 root root 342 Sep 15 2015 work.xml -rw-r----- 1 root root 162 Sep 15 2015 trusted.xml -rw-r----- 1 root root 315 Sep 15 2015 public.xml -rw-r----- 1 root root 415 Sep 15 2015 internal.xml -rw-r----- 1 root root 400 Sep 15 2015 home.xml -rw-r----- 1 root root 304 Sep 15 2015 external.xml -rw-r----- 1 root root 291 Sep 15 2015 drop.xml -rw-r----- 1 root root 293 Sep 15 2015 dmz.xml -rw-r----- 1 root root 299 Sep 15 2015 block.xml
– Služby lze pro zónu povolit v režimu Runtime.
– Definice služeb lze upravovat pouze v trvalém režimu.
Spusťte firewall
Spuštění brány firewall:
# systemctl start firewalld
Chcete-li zajistit spuštění brány firewall při spuštění:
# systemctl enable firewalld
Chcete-li zkontrolovat, zda je spuštěn firewalld:
# systemctl status firewalld # firewall-cmd --state
Tři způsoby konfigurace služby brány firewall:
– firewall-cmd :Rozhraní příkazového řádku
– firewall-config :Grafické uživatelské rozhraní
– Upravte různé XML konfigurační soubory.
Nástroj firewall-cmd
Nástroj příkazového řádku firewall-cmd je součástí aplikace firewalld, která je standardně nainstalována. Chcete-li získat nápovědu k příkazu firewall-cmd:
# firewall-cmd --help
Příkaz firewall-cmd nabízí kategorie možností, jako jsou Obecné, Stav, Trvalé, Zóna, IcmpType, Služba, Adaptace a zóny dotazů, Přímé, Uzamčení, Seznam povolených uzamčení a Panika. Seznam informací pro všechny zóny:
# firewall-cmd --list-all-zones public (default, active) interfaces: eth0 eth1 sources: services: dhcpv6-client ssh ports: ...
Povolení přístupu klientům HTTP pro veřejnou zónu:
# firewall-cmd --zone=public --add-service=http success
Seznam služeb, které jsou povoleny pro veřejnou zónu:
# firewall-cmd --zone=work --list-services dhcpv6-client http ssh
Použití tohoto příkazu změní pouze konfiguraci Runtime a neaktualizuje konfigurační soubory.
Změny konfigurace provedené v konfiguračním režimu Runtime se ztratí při restartu služby firewall:
# systemctl restart firewalld # firewall-cmd --zone=work --list-services dhcpv6-client ssh
Chcete-li provést změny trvalé, použijte volbu –permanent. Příklad:
# firewall-cmd --permanent --zone=public --add-service=http success
Změny provedené v režimu trvalé konfigurace se neprovedou okamžitě. Změny provedené v trvalé konfiguraci se však zapisují do konfiguračních souborů. Restartování služby firewalld přečte konfigurační soubory a provede změny. Příklad:
# systemctl restart firewalld # firewall-cmd --zone=work --list-services dhcpv6-client http ssh