Beginnend mit Red Hat® Enterprise Linux® (RHEL) 7 und CentOS® 7 ist firewalld für die Verwaltung von iptables verfügbar. Daher müssen Sie entweder firewall-cmd
verwenden oder deaktivieren Sie firewalld und aktivieren Sie iptables. Dieser Artikel zeigt Ihnen, wie Sie das klassische iptables-Setup verwenden.
Beenden und maskieren Sie den Firewalld-Dienst
Führen Sie die folgenden Befehle aus, um den Firewalld-Dienst zu stoppen und zu maskieren, den Sie nicht verwenden möchten:
$ systemctl stop firewalld
$ systemctl mask firewalld
Installieren und konfigurieren Sie iptables
Führen Sie die folgenden Schritte aus, um iptables zu installieren und zu konfigurieren:
-
Installieren Sie die
iptables-services
Paket (falls es noch nicht installiert ist), indem Sie den folgenden Befehl ausführen:$ yum install iptables-services
-
Aktivieren Sie den Dienst so, dass er beim Booten gestartet wird, indem Sie die folgenden Befehle ausführen:
$ systemctl enable iptables $ systemctl enable ip6tables
-
Fügen Sie als Nächstes iptables-Regeln hinzu. Sie können dies auf eine der folgenden Arten tun:
-
Über die Befehlszeilenschnittstelle (CLI) durch Ausführen ähnlicher Befehle wie
iptables -I INPUT ...
-
Durch Erstellen oder Bearbeiten Ihrer
/etc/sysconfig/iptables
Datei so aussehen, dass sie ähnlich aussieht wie im folgenden einfachen Beispiel, das die Ports 22 und 80 offen lässt:$ cat /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [214:43782] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -j REJECT --reject-with icmp-port-unreachable COMMIT $cat /etc/sysconfig/ip6tables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [214:43782] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -j REJECT --reject-with icmp6-adm-prohibited COMMIT
-
-
(Optional ) Wenn Sie Ihre Regeln in den
/etc/sysconfig/ip{,6}tables
speichern Dateien müssen Sie außerdem die folgenden Befehle ausführen:$ systemctl restart iptables $ systemctl restart ip6tables
-
Überprüfen Sie als Nächstes, ob der iptables-Dienst aktiv ist, indem Sie die folgenden Befehle ausführen:
$ systemctl status iptables $ systemctl status ip6tables
-
Überprüfen Sie Ihre iptables-Regeln, indem Sie die folgenden Befehle ausführen:
$ iptables -L $ ip6tables -L
-
Überprüfen Sie, ob Ihr Server die von Ihnen geöffneten Ports abhört (22 und 80 im obigen Beispiel), indem Sie den folgenden Befehl ausführen:
$ netstat -plant
-
Fragen Sie das
systemd
ab journal für ein Protokoll der Änderungen, die Sie am iptables-Dienst vorgenommen haben, indem Sie die folgenden Befehle ausführen:$ journalctl -f -u iptables.service $ journalctl -f -u ip6tables.service
-
Starten Sie den Server neu. Die iptables-Regeln sollten gespeichert und automatisch neu geladen werden.