Como transportar uma cadeia de uma cadeia para outra no iptables?

1

Aqui está o que eu gostaria de fazer.

No meu arquivo de regras (que eu uso com iptables-restore ) eu tenho (com limites removidos):

-4 -A LOGDROP -j LOG --log-prefix "ipt:4:drop "
-6 -A LOGDROP -j LOG --log-prefix "ipt:6:drop "
   -A LOGDROP -j DROP

E eu não quero me repetir no final de cada cadeia. Então, seria incrível se nas outras cadeias eu estivesse pulando de eu já pudesse definir strings de forma que eu pudesse montá-las na minha corrente LOGDROP no log-prefix .

Existe uma maneira de realizar isso?

    
por 0xC0000022L 04.01.2015 / 15:37

1 resposta

1

Boa ideia. Isso significaria criar uma variável e adicioná-la a todos os pacotes. Não tenho conhecimento de nenhuma possibilidade como essa. Mas toda a esperança não está perdida: pode haver uma maneira de conseguir algo semelhante.

Você pode usar o alvo MARK:

iptables -A INPUT -j MARK --set-mark 123

O Netfilter associa um campo de 32 bits a cada pacote. E seu valor será registrado com o alvo LOG. Então você poderia grep seus logs para a string MARK=0x7b (7B = 123). Se você quiser mais correspondência contra essa marca nas regras do iptbles, você pode fazê-lo com a correspondência mark .

Portanto, não é tão bom quanto uma string, mas pode satisfazer suas necessidades?

EDITAR: Você também pode definir / desmarcar apenas um ou mais bits específicos com --and-mark , --or-mark ou --xor-mark , ou com --set-mark val/mask , o que lhe dará algumas possibilidades de marcar pacotes, o equivalente a concatenar cadeias.

O documento está na página do netfilter na parte inferior, para os alvos, (só para ser preciso, a extensão de correspondência (-m) tem o mesmo nome e está documentada na mesma página)

    
por 10.01.2015 / 00:46