Problem: iptables wird nach dem Neustart des Servers auf die Standardeinstellungen zurückgesetzt.
Ich versuche so eine Regel zu setzen:
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
danach mache ich:
service iptables save
und es schreibt so etwas zurück
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
und danach rannte ich einfach (dies wurde einmal gemacht):
chkconfig iptables on
(Ich habe gelesen, dass dies getan werden muss, um die Einstellungen nach dem Neustart wiederherzustellen)
Danach starte ich neu und führe den folgenden Befehl aus:
systemctl list-unit-files | grep iptables
und ich sehe, dass iptables.service aktiviert ist, aber die Regel (um Port 3000 zu öffnen) funktioniert nicht mehr.
Wie behalte ich diese Einstellungen bei?
Antworten:
CentOS 7 verwendet jetzt FirewallD !
Beispiel:
Regeln neu laden:
quelle
--zone=trusted
) mit firewalld-cmd , aber es funktioniert nicht (es funktioniert in--zone=public
) Doing so mit iptablessudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8180 ; sudo /sbin/iptables -t nat -I OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8180
Werken (aber jederfirewalld --reload
verliert rückgängig macht diese)Deaktivieren Sie die Firewall mit dem folgenden Befehl:
Dann installiere iptables-service mit folgendem Befehl:
Dann aktiviere iptables als Dienste:
Jetzt können Sie Ihre iptable-Regeln mit folgendem Befehl speichern:
quelle
Unter CentOS 7 Minimal müssen Sie möglicherweise das
iptables-services
Paket installieren (danke an @RichieACC für den Vorschlag ):Aktivieren Sie dann den Dienst mit
systemd
:Führen Sie das Initscript aus, um Ihre Firewall-Regeln zu speichern:
quelle
Vielleicht wäre ein solches Skript für irgendjemanden hilfreich gewesen?
Beachten Sie, dass Sie alle aktuell konfigurierten Daten verlieren, da die Firewall entfernt und alle aktuellen Regeln in der INPUT-Tabelle gelöscht werden :
Ich vermute, Sie möchten dasselbe, falls Ihr System (jetzt oder zu einem späteren Zeitpunkt) über IPv6-Datenverkehr erreicht werden kann:
quelle
Sie können die Datei / etc / sysconfig / iptables direkt ändern. Laden Sie den iptables-Dienst neu, um die Regeln aus dieser Datei neu zu laden. Wie Sie bereits erfahren haben, ist firewalld das neue Standard-Firewall-System für Centos, und dies ist eine gute Gelegenheit, den Umgang damit zu erlernen.
quelle
/etc/sysconfig/iptables
existiert auch für mich nicht. Existiert/etc/sysconfig/iptables-config
jedoch. Es enthält jedoch keine Firewalls-Regeln wie in deriptables
vorherigen Datei.