Com iptables é possível negar vários intervalos de IP em uma única regra?

0

Eu quero registrar todos os estrangeiros, não os nossos blocos de IP, conexões com uma porta. Para um único intervalo, a regra se parece com:

-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 ideia é não registrar conexões na porta 8443 se elas forem provenientes de 10.20.0.0/16 ou 10.30.0.0/16 . Eu estou atacando o problema com a lógica errada para o iptables? Isso é possível com o iptables?

Por favor, note que estes são apenas intervalos IP de amostra não aqueles que eu quero parar de escrever entradas de log.

    
por Darryl Baker 17.04.2018 / 16:56

1 resposta

0

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 criar / restaurar 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
    
por 17.04.2018 / 17:06