Eu sei que o peformance é melhor que o iptables sozinho, mas como é parte do kernel, não consegui monitorar a utilização da CPU.
Se eles são endereços IP únicos, primeiro baixe o cidrmerge e a lista será um pouco mais curta.
Eu recomendo iptables com ipset. Usar o iptables por si só irá matar o desempenho. Cada grupo pode manipular 65535 entradas.
ipset create ban1 hash:net
ipset create ban2 hash:net
ipset create ban3 hash:net
ipset create ban4 hash:net
ipset create ban5 hash:net
ipset create ban6 hash:net
ipset create ban7 hash:net
salva toda a configuração, incluindo a lista de bloqueio no arquivo de texto
ipset save > config.txt
restaura a configuração do arquivo
restauração de ipset
iptables -A INPUT -m set -j DROP --match-set ban1 src
iptables -A INPUT -m set -j DROP --match-set ban2 src
iptables -A INPUT -m set -j DROP --match-set ban3 src
iptables -A INPUT -m set -j DROP --match-set ban4 src
iptables -A INPUT -m set -j DROP --match-set ban5 src
iptables -A INPUT -m set -j DROP --match-set ban6 src
iptables -A INPUT -m set -j DROP --match-set ban7 src
**Current list:set is not working properly or you could do this
ipset create banned list:set
ipset add banned ban1
ipset add banned ban2
ipset add banned ban3
ipset add banned ban4
ipset add banned ban5
ipset add banned ban6
ipset add banned ban7
iptables -A INPUT -m set -j DROP --match-set banned src
** end use this when they fix it**
você pode criar um script preenchendo a lista Você terá que dividir a lista em grupos de 65535.
cat badip1.txt |xargs -n1 ipset add ban1
cat badip2.txt |xargs -n1 ipset add ban2
finalmente salve a configuração (acima)