Estou usando o ipset 6.23-2 no Debian Jessie. Eu criei um hash: net set para e uma regra iptables para eliminar todo o tráfego de endereços no conjunto.
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- anywhere anywhere match-set Example-Set src
Eu usei a opção 'nomatch' para adicionar a rede dos meus servidores internos a ela. Eu assumi que funcionaria como uma exclusão, então é basicamente à prova de idiotas e eu não me isolo acidentalmente dos meus servidores (ou de um dos meus colegas).
Name: Example-Set
Type: hash:net
Revision: 6
Header: family inet hashsize 1024 maxelem 65536 comment
Size in memory: 3424
References: 1
Members:
10.50.7.0/24 nomatch comment "# 2017-09-14"
No entanto, ainda corresponde quando adiciono um IP específico, como dentro da sub-rede, por ex. 10.50.7.30 para o conjunto e descarta todo o tráfego daquele ip.
Name: Example-Set
Type: hash:net
Revision: 7
Header: family inet hashsize 1024 maxelem 65536 comment
Size in memory: 3424
References: 1
Members:
10.50.7.0/24 nomatch comment "# 2017-09-14"
10.50.7.21 comment "# 2017-09-14"
Eu suponho que estou errado sobre a maneira como o 'nomatch' funciona?
Isso só funciona para excluir sub-redes menores de uma maior?
Existe alguma maneira de resolver isso sem criar conjuntos adicionais?