
Estou procurando um método sólido para bloquear tráfego TCP/IP indesejado.
Na minha máquina Linux, iptables e ipset parecem oferecer uma ótima maneira de fazer isso.
Até agora eu fiz isso:
ipset create ipsok hash:net maxelem (result of wc -l for my cidr list in a file)
ipset add <network address>
E certifique-se de que este seja o único ipset usando:
service ipset status
Isso mostra apenas ipset ipsok com o número correto de entradas. Também certifiquei-me de que o ipset seja usado após uma reinicialização. Então adiciono o ipset às regras do iptables:
iptables -I INPUT -m set --match-set ipsok src -j ACCEPT
Para testar se isso funciona, deixei o TOR me fornecer um endereço IP e verifiquei isso com:
ipset test ipsok <tor ip address>
Isso me diz que o endereço éNÃOno conjunto ipsok.
Quando direciono o navegador tor para minha máquina a conexão é feita. Isso está correto? Achei que a conexão iria falhar porque o endereço IP não foi encontrado no ipset.
O que preciso fazer para que o iptables (e o ipset) bloqueiem o tráfegoNÃOvindo de algum endereço de rede no ipset ipsok?
Responder1
A política padrão do Iptables é ACCEPT
. Portanto, ao adicionar IPs à sua lista, você os ACEITA apenas duas vezes.
Você iptables -L
deve mostrar isso - ou seja, as únicas regras serão as regras ACEITAR.
Mude o padrão para DROP e adicione seus itens para ACCEPT.
Tente isto antes da regra do conjunto de correspondência:
iptables -P INPUT DROP
Tenha cuidado: não faça isso remotamente ou você provavelmente ficará do lado de fora.