Wie mache ich es rückgängig, wenn ich iptables so eingestellt habe, dass ein Port umgeleitet wird?

13

Ich habe auf vielen Websites gelesen, wie man mit iptables einen Port unter Linux auf einen anderen umleitet. Zum Beispiel würde das Umleiten von Port 80 auf 8080 so aussehen ...

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080

Mein Anliegen ist, was ist, wenn ich meine Meinung ändere? Ich habe nirgendwo eine Syntax zur Korrektur gelesen. Ich gehe davon aus, dass es eine (einfache?) Möglichkeit gibt, aber ich bin zu neu in Linux, um intuitiv herauszufinden, wie Port 80 zu seinem ursprünglichen Verhalten wiederhergestellt werden kann, ohne das Betriebssystem neu zu installieren.

Syndog
quelle

Antworten:

6

Sie können die Option -D verwenden iptables Regeln von Ihren Ketten zu löschen. Beispielsweise

Listen Sie zuerst die Kette auf, aus der Sie eine Regel entfernen möchten, und verwenden Sie --line-numbers

sudo iptables -L RH-Firewall-1-INPUT  -n --line-numbers

Chain RH-Firewall-1-INPUT (2 references)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 255
4    ACCEPT     esp  --  0.0.0.0/0            0.0.0.0/0
5    ACCEPT     ah   --  0.0.0.0/0            0.0.0.0/0
6    ACCEPT     udp  --  0.0.0.0/0            224.0.0.251         udp dpt:5353
7    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:631
8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:631
9    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
10   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
11   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Zeile 6 löschen

sudo iptables -D RH-Firewall-1-INPUT 6
sudo iptables -L RH-Firewall-1-INPUT  -n --line-numbers

Chain RH-Firewall-1-INPUT (2 references)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 255
4    ACCEPT     esp  --  0.0.0.0/0            0.0.0.0/0
5    ACCEPT     ah   --  0.0.0.0/0            0.0.0.0/0
6    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:631
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:631
8    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
10   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Wenn Sie Ihre iptables - Konfiguration in einer Datei gespeichert nicht vergessen die Datei zu aktualisieren ( iptables-save, service iptables saveetc.)

Iain
quelle
23

Wenn Sie Skripte erstellen, ist das Entfernen per Definition einfacher:

Beispiel:

Hinzufügen:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080

Beachten Sie die -A ? es bedeutet hinzufügen .

Zu entfernen:

iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080

Beachten Sie die -D ? es bedeutet löschen .

Bithavoc
quelle
Das war sehr nützlich!
MadPhysicist
3

http://linux.die.net/man/8/iptables :

Hm

iptables -L, --list [chain]
    List all rules in the selected chain. If no chain is selected, all chains are listed. As every other iptables command, it applies to the specified table (filter is the default), so NAT rules get listed by

    iptables -t nat -n -L

    Please note that it is often used with the -n option, in order to avoid long reverse DNS lookups. It is legal to specify the -Z (zero) option as well, in which case the chain(s) will be atomically listed and zeroed. The exact output is affected by the other arguments given. The exact rules are suppressed until you use

    iptables -L -v

...

iptables -D, --delete chain rule-specification
iptables -D, --delete chain rulenum
    Delete one or more rules from the selected chain. There are two versions of this command: the rule can be specified as a number in the chain (starting at 1 for the first rule) or a rule to match. 
Hallo71
quelle
0

Die Antwort von Bithavoc ist die richtige. Da ich immer noch nicht genug Punkte habe, um mich dazu zu äußern, füge ich die zusätzlichen Informationen als neue Antwort hinzu:

Fügen Sie eine neue Umleitungsregel hinzu

$ sudo iptables -t nat -D PREROUTING -p tcp --dport 443 -j REDIRECT --to 5671

Liste der NAT-Regeln

$ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:https redir ports 5671

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination     

Der -t natSwitch ist notwendig, um Regeln routen zu können.

Löschen Sie die Regel

$ sudo iptables -t nat -D PREROUTING -p tcp --dport 443 -j REDIRECT --to 5671
[ec2-user@ip-172-31-27-46 ~]$ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
Vaibhaw
quelle