Iptables nachladen


29

Ich habe Änderungen an der iptables-Konfigurationsdatei /etc/iptables/filterin Ubuntu vorgenommen und möchte sie neu laden. Ich habe die Manpage gelesen und auch gegoogelt, aber keine Informationen gefunden. Jede Hilfe wird geschätzt.


Sie haben vor dem Posten dieser Frage weder Informationen zu der von Ihnen verwendeten Ubuntu-Version bereitgestellt noch das Web gründlich durchsucht.

Antworten:


28

Der einfachste Weg ist ein Neustart (auch wenn unten nicht funktioniert, starten Sie neu, prüfen Sie, ob die Änderung vorgenommen wurde).

Zweitens ist es am einfachsten, die Daemons mit iptables-Konfigurationen neu zu starten (google: restart daemon ubuntu).

Beispiele (abhängig von Ihrer Konfiguration):

/etc/init.d/iptables restart  

/etc/init.d/networking restart  

/etc/init.d/firewall restart

5
Es gibt keine Datei mit dem Namen /etc/init.d/iptables

1
Welches Netzwerk ist in /etc/init.d vorhanden? versuche das neu zu starten.

2
/etc/init.d/networking restart?

1
Dead Link ist tot.
Dustin Graham

@DustinGraham danke, der defekte Link wurde entfernt.
Juha

37

Normalerweise befinden sich Ihre Firewall-Regeln in der Konfigurationsdatei /etc/iptables.firewall.rules

Um die in Ihrer Datei definierten Regeln zu aktivieren, müssen Sie diese an senden iptables-restore(Sie können eine andere Datei verwenden, wenn Sie möchten):

sudo iptables-restore < /etc/iptables.firewall.rules

Und Sie können überprüfen, ob sie aktiviert sind mit:

sudo iptables -L

Wenn Sie bei jedem Neustart des Computers dieselben Regeln aktivieren möchten, erstellen Sie diese Datei:

sudo nano /etc/network/if-pre-up.d/firewall

Mit diesem Inhalt:

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.firewall.rules

Und gib ihm die Erlaubnis zur Hinrichtung:

sudo chmod +x /etc/network/if-pre-up.d/firewall

Hoffe es hilft dir =)

Beispieldatei für /etc/iptables.firewall.rules:

*filter

#  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections
#
#  The -dport number should be the same port number you set in sshd_config
#
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT

4
Auf Ubuntu 14.10 Ich habe keine , /etc/iptables.firewall.rulesaber sudo iptables-restore < /etc/iptables/rules.v4für mich gearbeitet.
Timbo

4

Wenn Sie Ihre Regeln ausgeführt haben, werden sie bereits ausgeführt und es ist kein erneutes Laden erforderlich. Für den Fall, dass Sie eine Konfigurationsdatei haben, diese aber noch nicht am besten ausgeführt wurde, verwenden Sie iptables-apply(eine iptables-Erweiterung).

iptables-apply -t 60 your_rules_file

Dadurch werden die Regeln 60 Sekunden lang angewendet (standardmäßig 10) und zurückgesetzt, wenn Sie sie nicht bestätigen. Dies erspart Ihnen den Fall, dass Sie aufgrund der Regeln aus dem System geworfen werden (z. B. wenn Sie mit ssh arbeiten).

Sie können Folgendes als Ersatz verwenden:

iptables-restore < your_rules_file; sleep 60; iptables-restore < clean_rules

Nein, ein erneutes Laden ist für die Auflösung des DDNS-Hosts unbedingt erforderlich. Wenn sich die IP eines referenzierten Hosts ändert, muss iptables neu geladen werden. Idealerweise tun Sie dies alle 30 Minuten von cron aus. Es ist nicht bequem, alle 30 Minuten neu zu starten.
McKenzm


0

Nachdem ich ein wenig gegoogelt hatte, fand ich dies, um iptables neu zu starten. . . sudo /etc/init.d/firewall restart


3
Es gibt keine Datei mit dem Namen /etc/init.d/firewall

0

Wenn Sie IPtables neu laden möchten, um die soeben vorgenommenen Änderungen zu überprüfen. Sie können Apache auch über die folgenden Befehlszeilen neu starten:

/etc/init.d/apache2 stop

/etc/init.d/apache2 start

Diese Befehle können je nach Ubuntu-Version und eventuell zuvor vorgenommenen Änderungen variieren.

Hoffe das hilft.

Pierre

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.