
Ich suche nach einem Äquivalent für ufw default deny
Firewalld. Die Idee ist, dass ich, nachdem ich mich per SSH bei meinem neuen Server angemeldet habe, alle eingehenden Verbindungen blockieren möchte, damit ich Zeit habe, das System zu aktualisieren und zu sichern. Ich verwende CentOS7 mit Firewalld.
Antwort1
Es scheint darausServerfehler-Beitragdass die Begrenzung des Verkehrs auf dieser höheren Ebeneerfordert "reiche" Regeln.
So implementieren Sie eine umfangreiche Regel, die auf die Standardzone angewendet wird und den gesamten IPv4-Verkehr löscht:
firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
--add-rich-rule='rule family=ipv4 source address=0.0.0.0/0 drop'
Dies emuliert das ufw default deny
Verhalten. Um stattdessen eine ICMP-Ablehnungsnachricht zu senden, ändern Sie in drop
. reject
Die obige Regel ist spezifisch für IPv4. Für IPv6 verwenden Sie:
firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
--add-rich-rule='rule family=ipv6 source address=::/0 drop'
Bei näherer Untersuchung wird ein Eintrag zu iptables hinzugefügt, dernachdie „Akzeptieren Sie VERWANDTE und HERGESTELLTE“ Verbindungen, damit Ihre bestehende SSH-Sitzung nicht unterbrochen wird. Bei meinen Tests sieht die resultierende „Kette“ von iptables so aus (für eine Standardzone von „public“):
INPUT -> INPUT_ZONES -> IN_public -> IN_public_deny
Wenn Sie im Rahmen der Updates einen Neustart erwarten, fügen Sie das --permanent
Flag hinzu.
Wenn Sie im Rahmen der Aktualisierungen keinen Neustart erwarten, können Sie das --timeout
Flag verwenden, das Werte wie 5s
, 10m
, oder 15h
für „5 Sekunden“, „10 Minuten“ bzw. „15 Stunden“ akzeptiert. Eine solche Regel wird nach diesem Timeout-Zeitraum gelöscht.
Wenn Sie die hinzugefügte Regel entfernen möchten, führen Sie einfach dasselbe firewall-cmd
wie zuvor aus, ersetzen Sie jedoch --add-rich-rule
durch --remove-rich-rule
; für ein IPv4-Beispiel:
firewall-cmd --zone=$(firewall-cmd --get-default-zone) \
--remove-rich-rule='rule family=ipv4 source address=0.0.0.0/0 accept'
Referenz:http://www.firewalld.org/documentation/man-pages/firewalld.richlanguage.html