Para uma quantidade tão grande de IPs, você deve usar o módulo ipsets . ipset cria conjuntos de dados nos quais o iptables pode reagir, ele pode lidar facilmente com 10s de 1000s de entradas .
Verifique se você tem o repo EPEL ativado e instale o ipset por meio de:
yum install ipset
Um exemplo:
ipset -N blockedip iphash
cria um conjunto chamado 'blockedip' no formato 'iphash' (existem diferentes formatos, este é apenas para IPs).
com ipset -A você pode adicionar dados (neste caso, IPs) ao conjunto de dados:
ipset -A blockedip 192.168.1.1
ipset -A blockedip 192.168.1.2
e assim por diante ...
Ou para criar em lote sem precisar executar uma invocação de ipset
para cada endereço IP, supondo que você big-file.list
seja uma lista de endereços IPv4, um por linha:
ipset -N blockedip iphash
sed 's/^/add blockedip /' < big-file.list | ipsec restore
Com o seguinte comando iptables você pode dizer ao kernel para descartar todos os pacotes vindos de qualquer uma das fontes deste conjunto:
iptables -A INPUT -m set --set blockedip src -j DROP