O problema é que você não pode se referir a vários intervalos IP em uma única regra iptables, mas usar várias regras indiretamente leva a uma disjunção (OR lógica): conexões serão registradas se corresponderem à primeira ou à segunda regra.
O que você quer, é um comportamento conjuntivo (AND lógico): novas conexões saindo de 10.51.0.0/16
, E também de 192.168.0.0/16
precisam ser registradas.
É por isso que você não consegue encontrar aquela solução simples que deseja. Não há.
Mas você pode resolver isso apenas de uma maneira um pouco mais complexa. Você pode criar uma nova cadeia:
iptables -N logger
iptables -A INPUT -j logger
iptables -A logger -s 192.168.0.0/16 -j RETURN
iptables -A logger -s 10.51.0.0/16 -j RETURN
iptables -A logger -j LOG
O que esses comandos fazem:
- eles criam uma nova tabela, chamada
logger
. - Nós configuramos o iptables para cada conexão para testar sua tabela também.
- essa tabela registra se os pacotes são originários de suas redes confiáveis (
192.168.0.0/16
e10.51.0.0/16
). Se sim, tudo correrá normalmente (oRETURN
target retorna o controle para a tabela de origem). - Se não, a conexão é registrada (e, como estamos no final da tabela, o controle também retorna à origem).
Como um efeito colateral, você pode usar essa nova tabela posteriormente para outras tarefas também - por exemplo, REJEITAR pacotes ou qualquer outra finalidade. Na minha opinião o melhor é se vermos o iptables como se fosse algum tipo de linguagem de programação simples.