Como resolver conflitos em regras de iptable

0

No Ubuntu 12.04 e acima, não há regras de iptable definidas por padrão. Eu adicionei a seguinte regra e ela funciona bem: (Atualização)

iptables -A INPUT -p tcp -j QUEUE -m string --string xyz --algo bm

Agora, no fedora 15 e acima, existem algumas regras predefinidas por padrão. A saída do iptables -L é:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Agora, quando eu adiciono minha regra ao iptables, isso não funciona. Para fazer isso funcionar, eu tenho que limpar o iptables toda vez antes de adicionar minha regra, o que é indesejável. Então, se alguém puder resolver o conflito entre as regras acima e minha regra, ou se houver um método alternativo para garantir que tal conflito não apareça em qualquer caso, eu ficaria profundamente grato.

    
por adnan kamili 09.12.2012 / 13:50

1 resposta

1

Seu comando tem -D , que é usado para excluir uma regra, então estou assumindo que é um erro de digitação. Eu também estou supondo que você quis dizer que você está usando o comando append ( -A ) para adicionar a regra à cadeia ( INPUT ). Se esse for o caso, a nova regra aparecerá no final da cadeia, após o REJECT all , ele nunca será atingido. Tente executar:

iptables -I INPUT 1 -p tcp -j QUEUE -m string --string xyz --algo bm

Isso inserirá a regra antes de qualquer outra regra na corrente INPUT , fazendo com que ela seja atingida primeiro.

HTH

    
por 09.12.2012 / 14:18