
Quero registrar todas as conexões estrangeiras, não nossos blocos IP, em uma porta. Para um único intervalo, a regra é semelhante a:
-A INPUT ! -s 10.20.0.0/16 -p tcp -m tcp --dport 8443 -m state --state NEW -j LOG --log-level 1 --log-prefix "New 8443 Connection"
Logicamente, a idéia é não registrar conexões na porta 8443
se elas vierem de 10.20.0.0/16
ou 10.30.0.0/16
. Estou atacando o problema com a lógica errada para o iptables? Isso é possível com o iptables?
Observe que esses são apenas exemplos de intervalos de IP, não aqueles para os quais desejo parar de escrever entradas de log.
Responder1
Você pode usar um ipset:
-A INPUT -p tcp -m tcp --dport 8443 -m set ! --match-set OUR_IP4 src -j LOG
Observe que o ipset deve ser mantido usando uma ferramenta separada (incluindo criação/restauração na inicialização).
Você pode usar uma subcadeia:
-A INPUT -p tcp -m tcp --dport 8443 -j FOOSERVICE
-N FOOSERVICE
-A FOOSERVICE -s 10.20.0.0/16 -j RETURN
-A FOOSERVICE -s 10.30.0.0/16 -j RETURN
-A FOOSERVICE -j LOG --log-prefix "New connection to foo: "
-A FOOSERVICE -j RETURN
# optional; subchains always return at the end