Eu fiz um script muito simples (echo no início, executa comandos, echos no final) para adicionar aproximadamente 7300 regras ao iptables bloqueando grande parte da China e da Rússia, no entanto, é possível adicionar aproximadamente 400 regras antes de dar o seguinte erro cada tentativa subsequente de adicionar uma regra a essa cadeia:
iptables: Unknown error 18446744073709551615
Eu até tentei adicionar regras manualmente depois e ele não me deixa adicioná-las (dá o mesmo erro).
O comando para adicionar cada regra é assim:
/sbin/iptables -A sshguard -s x.x.x.0/x -j DROP
sshguard
é uma cadeia que criei para uso com o daemon sshguard , e eu queria adicionar as regras lá, então eu não estava está muddying a cadeia INPUT
. As faixas de IP que estou fornecendo não são responsáveis por isso, pois eu forneci intervalos válidos para teste e eles são atendidos com o mesmo erro. Liberar a cadeia de regras e adicionar os trabalhos individuais, mas novamente, não depois de ~ 400 entradas.
Eu fiz um pouco de googling antes, mas os outros que têm esse problema não parecem estar tendo pelos mesmos motivos que eu.
Existe algum tipo de limite de regras por cadeia com o iptables? Além disso, essa é a maneira correta de bloquear essas faixas (erros à parte)?
# iptables -V
iptables v1.3.5
# cat /etc/issue
CentOS release 5.8 (Final)
# uname -a
Linux domain.com 2.6.18-028stab101.1 #1 SMP Sun Jun 24 19:50:48 MSD 2012 x86_64 x86_64 x86_64 GNU/Linux
Editar: Para esclarecer, o script bash está executando cada comando iptables individualmente, não fazendo um loop através de um arquivo ou lista de IPs.
Além disso, meu objetivo de bloquear esses intervalos é preventivo. Estou tentando limitar a quantidade de bots que capturam, rastreiam ou tentam criar contas de spam em alguns de meus sites. Eu já estou usando sshguard para bloquear tentativas de força bruta no meu servidor, mas isso não ajuda com os outros bots, obviamente.