Je nástroj pro dynamickou správu firewallu s podporou síťových zón,
které definují úroveň důvěry síťových spojení. Podporuje rovněž IPv4,
IPv6, ethernetové mosty a sady IP adres. Poskytuje také rozhraní pro
přidávání pravidel přímo jako služby a aplikace. Více na domovské stránce projektu.
Firewalld je použit v následujících linuxových distribucích
jako základní nástroj správy firewallu:
RHEL 7 a novějších
CentOS 7 a novějších
Fedora 18 a novějších
SUSE 15 a novějších
OpenSUSE 15 a novějších
Níže jsou aplikace a knihovny podporující firewalld:
NetworkManager
libvirt
podman
docker
fail2ban
Konfigurační soubory
Pro nastavení firewallu můžeme využít definice zón, služeb a
sad IP adres. V /etc/firewalld/ najdeme tyto adresáře, které
obsahují nastavení daných komponent. Důležité tedy pro nás jsou:
firewalld.conf
ipsets/
whitelist.xml
blacklist.xml
services/
ssh.xml
zones/
public.xml
firewalld.conf
Obsahuje základní nastavení a definice firewallu, důležitá
je pro nás řádka, kde definujeme výchozí zónu:
DefaultZone=public
ipsets/
Obsahem tohoto adresáře jsou sady IP adres, u kterých
můžeme později určit zda budou blokovány anebo povoleny.
Vytvořím si například soubor whitelist.xml, který
bude sloužit k zápisu lokálních a povolených adres:
Lokalni a povolene adresy10.0.0.0/8192.0.0.0/8
Pro blokování některých IP adres si vytvořím soubor
blacklist.xml s obsahem adres:
Blokovane adresy22.0.0.0/8
services/
Slouží pro konfigurační soubory jednotlivých služeb,
můžeme využít stávající služby anebo vytvořit nový název
služby s pravidly. Příklad pro službu SSH vypadá následovně,
vytvořím soubor ssh.xml a do něj zapíši:
SSHSluzba SSH
zones/
Obsahuje konfigurační soubory zón jako například public.xml,
která má přísnější pravidla oproti ostatním. Obsahem takové zóny public pro
službu SSH a lokální adresy definované v souboru whitelist.xml
a blokované adresy zapsané v souboru blacklist.xml je:
PublicZabezpecena pravidla firewallu, pouze vybrana prichozi spojeni jsou prijimana.
Hodící se příkazy
Zobrazí aktuální nastavení firewallu:
firewall-cmd --list-all
Znovunahrání pravidel a firewallu:
firewall-cmd --reload
Nastavovací skript
Pro pohodlné nastavení firewallu jsem vytvořil skript, který
provede patřičná nastavení: