[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Dúvida para limpar algumas regras de iptables



Em 31-10-2016 14:54, Henrique Fagundes escreveu:
Prezados Colegas,

Primeiramente saudações pinguianas para todos.

Estou com uma dificuldade em relação a remoção de algumas regras via script.

No meu cenário, eu tenho três links e algumas (na verdade muitas) regras de marcação de pacotes, TIPO, assim:

iptables -t mangle -A PREROUTING -s 192.168.0.3 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -s 192.168.0.4 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -s 192.168.0.5 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -s 192.168.0.6 -j MARK --set-mark 1

iptables -t mangle -A PREROUTING -s 192.168.0.7 -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -s 192.168.0.8 -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -s 192.168.0.9 -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -s 192.168.0.10 -j MARK --set-mark 2

iptables -t mangle -A PREROUTING -s 192.168.0.11 -j MARK --set-mark 3
iptables -t mangle -A PREROUTING -s 192.168.0.12 -j MARK --set-mark 3
iptables -t mangle -A PREROUTING -s 192.168.0.13 -j MARK --set-mark 3
iptables -t mangle -A PREROUTING -s 192.168.0.14 -j MARK --set-mark 3

Bom... Eu sei se eu rodar um "iptables -F -t mangle" eu limpo toda a tabela mangle.

Mas e seu quiser limpar apenas as regras de marcação para saída pelo link 2? Como ficaria o comando de iptables?

Preciso descobrir como fazer isso, pois sempre que um link cai e meu failover troca o gateway padrão, ele precisará excluir as marcações de pacotes para o link que caiu.

Se alguém puder ajudar, ficarei muito grato.

Olá!

Existem várias forma de fazer isso, mas com um sistema já com as regra prontas, usaria para selecionar determinadas regras "iptables-save -t <chain>" com "grep <expressão para selecionar>", aí substituiria o "-A" por "-D" e executaria cada linha resultante, no seu caso ficaria:

iptables-save -t mangle |\
grep 'set-xmark 0x2/' |\
sed 's/^-A/iptables -t mangle -D/' |\
while read linha; do
$linha
done


--

[]'s

Junior Polegato


Reply to: