Uma vez que eu configurei o iptables para redirecionar uma porta, como faço para desfazê-lo?

13

Eu tenho lido em muitos sites como usar o iptables para redirecionar uma porta para outra no Linux. Por exemplo, reencaminhamento da porta 80 para 8080 ficaria assim ...

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

Minha preocupação é: e se eu mudar de ideia? Eu não li em nenhum lugar que dá sintaxe para corrigi-lo. Eu suponho que há uma maneira (simples?) De fazê-lo, mas eu sou muito novo no Linux para intuitivamente descobrir como restaurar a porta 80 ao seu comportamento original sem reinstalar o sistema operacional.

    
por Syndog 10.07.2011 / 05:04

4 respostas

6

Você pode usar a opção -D para iptables excluir as regras de suas correntes. Por exemplo

Primeiro liste a cadeia da qual você deseja remover uma regra, use --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

Para excluir a linha 6

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

Se você tem sua configuração do iptables salva em um arquivo, não se esqueça de atualizar o arquivo ( iptables-save , service iptables save etc.)

    
por 10.07.2011 / 11:30
22

Se você está criando scripts, é mais fácil removê-los por definição:

Exemplo:

Para adicionar:

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

Observe o -A ? significa adicionar .

Para remover:

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

Observe o -D ? significa excluir .

    
por 16.08.2012 / 21:32
3

link :

ahem

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. 
    
por 10.07.2011 / 05:06
0

A resposta pelo bithavoc é a correta. Como ainda não tenho pontos suficientes para comentar, adiciono as informações adicionais como uma nova resposta:

Adicione uma nova regra de novo roteamento

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

Listar regras de NAT

$ 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     

A opção -t nat é necessária para poder rotear as regras.

Excluir a regra

$ 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         
    
por 28.06.2017 / 09:32