Basisprincipes van firewalld
Kort antwoord
Firewalld is de standaardfirewall op actuele distributies uit de RHEL-familie (RHEL, CentOS Stream, Rocky Linux, AlmaLinux), en is ook te installeren op andere distributies. Regels worden beheerd via zones in plaats van via één platte regellijst. Gebruik firewall-cmd met --permanent om wijzigingen een reboot te laten overleven.
Basiscommando's
De service starten en inschakelen
sudo systemctl start firewalld
sudo systemctl enable firewalldStatus controleren
sudo firewall-cmd --state
sudo systemctl status firewalldAlle zones weergeven
Firewalld werkt met vooraf gedefinieerde zones, elk met een eigen set regels. De zone public is de standaard, en SSH is daar standaard op toegestaan.
sudo firewall-cmd --list-all-zonesDe configuratie van de actieve zone bekijken
sudo firewall-cmd --zone=public --list-allServices toestaan
Servicedefinities staan in /usr/lib/firewalld/services (vooraf geconfigureerd) en /etc/firewalld/services (aangepast). Voeg altijd --permanent toe zodat de regel een reboot overleeft, en herlaad daarna.
Beschikbare services weergeven
sudo firewall-cmd --get-servicesEen service toevoegen
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=mysql --permanent
sudo firewall-cmd --reloadEen service verwijderen
sudo firewall-cmd --zone=public --remove-service=mysql --permanent
sudo firewall-cmd --reloadJe verbinding beveiligen
Controleer of SSH is toegestaan
SSH is standaard toegestaan op de public zone. Is het verwijderd? Voeg het dan opnieuw toe:
sudo firewall-cmd --zone=public --add-service=ssh --permanent
sudo firewall-cmd --reloadSSH beperken tot een bekend IP-adres
Je adres als source toevoegen aan de zone public beperkt niets, want de public zone accepteert al verkeer van elk ander adres via de interface. Wil je SSH tot één adres beperken, haal de ssh-service dan uit de public zone en sta die toe met een rich rule.
sudo firewall-cmd --permanent --zone=public --remove-service=ssh
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=JOUW.IP.ADRES/32 service name=ssh accept'
sudo firewall-cmd --reloadHoud je huidige SSH-sessie open terwijl je dit test. Open een tweede sessie vanaf het toegestane adres en controleer of die verbinding maakt voordat je de eerste sluit. Sluit je jezelf buiten, dan heb je consoletoegang tot de server nodig om de wijziging terug te draaien.