Iptables'ı bir bağlantı noktasını yeniden yönlendirecek şekilde ayarladıktan sonra, nasıl geri alabilirim?


13

Linux'ta bir bağlantı noktasını diğerine yönlendirmek için iptables'ın nasıl kullanılacağını birçok sitede okudum. Örneğin, 80 ila 8080 numaralı bağlantı noktasını yeniden yönlendirmek şöyle görünecektir ...

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

Endişem, ya fikrimi değiştirirsem? Düzeltmek için sözdizimi veren hiçbir yerde okumadım. Bunu yapmanın (basit?) Bir yol olduğunu varsayıyorum, ancak Linux'ta portu 80'i orijinal davranışına geri yüklemeden sezgisel olarak nasıl geri yükleyeceğimi anlamak için çok yeniyim.

Yanıtlar:


6

Zincirlerinizdeki kuralları silmek için iptables komutunu kullanmak için -D seçeneğini kullanabilirsiniz . Örneğin

İlk önce bir kuralı kaldırmak istediğiniz zinciri listeleyin, --line-numbers kullanın

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

6. satırı silmek için

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

Eğer bir dosyaya kaydedilen iptables yapılandırma (dosyasını güncellemek unutmayın varsa iptables-save, service iptables savevs.)


23

Komut dosyası kullanıyorsanız tanım gereği kaldırmak daha kolaydır:

Misal:

Eklemek:

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

Uyarı -A ? eklemek demektir .

Ayırmak:

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

Uyarı -D ? silme anlamına gelir .


Bu çok faydalı oldu!
MadPhysicist

3

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

hım

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. 

0

Bithavoc'un cevabı doğru. Hala yorum yapmak için yeterli puanım olmadığından, ek bilgileri yeni bir yanıt olarak ekliyorum:

Yeni bir yeniden yönlendirme kuralı ekle

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

NAT Kurallarını Listele

$ 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     

-t natAnahtar kurallarını yönlendirme edebilmek için gereklidir.

Kuralı Sil

$ 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         
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.