Correspondência com regras iptables contendo timestamp

0

Estou instalando regras de iptable com um valor de registro de data e hora:

$ iptables -A INPUT -i eth0 -s 10.0.0.3 -m comment --comment "Timestamp='date +%Y/%m/%d-%H:%M:%S'" -j DROP

que resulta na seguinte regra de iptable:

$ iptables -A INPUT -i eth0 -s 10.0.0.3 -m comment --comment "Timestamp=2018/02/26-22:34:15" -j DROP

agora não consigo encontrar uma maneira de testar as regras existentes:

$ iptables -C INPUT -i eth0 -s 10.0.0.3 -j DROP

Eu tentei usar o comando cut e com o egrep, mas nada parece funcionar para mim.

$ iptables -S INPUT | cut  -d' ' --complement -s -f7-10

Como devo testar em regras existentes do iptables contendo um valor de timestamp?

    
por Sadia Bashir 01.03.2018 / 16:45

1 resposta

1

A função -C só funciona com correspondências exatas em relação às regras.

Ou seja, se a regra que adicionei for iptables -A INPUT -i eth0 -p tcp --dport 22 -m comment "DropSSH" -j DROP , iptables -C INPUT -i eth0 -p tcp --dport 22 -m comment "DropSSH" -j DROP será igual e -C não será eliminado. No entanto, não existe uma correspondência exata para iptables -C INPUT -i eth0 -p tcp --dport 22 -j DROP , por isso não irá falhar.

A única maneira de realmente ver se uma especificação como a que você está procurando existe e levando em conta que as correspondências parciais de regras seriam parciais em grep de filtragem.

Tal que:

iptables -S INPUT | grep -i '-p tcp' | grep -i '--dport 22' | grep -i '-j DROP'

provavelmente corresponderia a qualquer regra que permitisse a porta 22 sobre TCP. No entanto, como você pode ver, isso não é trivial e pode causar problemas. cut dos dados também não ajuda muito. A parte complicada disso é que você precisa dividir o que está procurando em bits individuais para fazer o grep .

A outra alternativa para adicionar os carimbos de data / hora nos comentários é controlar as regras iptables da versão para que, toda vez que você atualizar e salvar as regras, atualize cópias controladas da versão dos conjuntos de regras com revisões individuais para que você possa ver o que foi alterado em excesso. E por não ter timestamps nos comentários, você pode usar corretamente -C e, se precisar ver quem fez uma alteração, poderá voltar aos dados de controle de versão para ver quem fez a alteração quando .

    
por 01.03.2018 / 21:48