IPSets mit firewalld
Mo, 20. Februar 2023, Lioh Möller
Die IPSet Funktionalität von firewalld erlaubt die Zusammenfassung von Netzwerken zur einfachen Konfiguration.
Dazu wird zunächst ein neues IPset angelegt:
firewall-cmd --permanent --new-ipset=my-clients --type=hash:net
Dieses kann man sich daraufhin anzeigen lassen:
firewall-cmd --get-ipsets
firewall-cmd --info-ipset=my-clients
Zum jetzigen Zeitpunkt enthält das IPset noch keine Netzwerkdefinitionen. Wie folgt können Subnetze hinzugefügt werden:
firewall-cmd --permanent --ipset=my-clients --add-entry=192.168.100.0/24
firewall-cmd --permanent --ipset=my-clients --add-entry=192.168.120.0/24
firewall-cmd --permanent --ipset=my-clients --add-entry=192.168.121.0/26
Den Inhalt des erstellten und definierten IPSets kann man sich nun ausgeben lassen:
firewall-cmd --permanent --ipset=my-clients --get-entries
IPsets können an unterschiedlichen Stellen zum Einsatz kommen, beispielsweise bei der Verwendung von Rich-Rules:
firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset=my-clients port port=12345 protocol=tcp accept'
firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset=my-clients service name=ssh accept'
Nach den Änderungen müssen diese angewendet werden:
firewall-cmd --reload
Abschliessend lassen sich die zuvor erstellten Regeln ausgeben:
firewall-cmd --list-all