"A questão é: como posso listar os endereços IP bloqueados?"
Crie uma cadeia BANNED:
iptables -N BANNED
iptables -F BANNED
Crie uma cadeia de registro:
iptables -N BANNEDLOG
iptables -F BANNEDLOG
iptables -A BANNEDLOG -j LOG --log-prefix "BANNED:" --log-level 6
iptables -A BANNEDLOG -j DROP
Adicione o salto à cadeia proibida na cadeia INPUT antes da maioria das outras regras
...
iptables -A INPUT -j BANNED
...
Agora adicione ipaddresses à cadeia banida:
flock -w 5 /var/lock/iptables -c 'iptables -A BANNED -s 140.130.20.202/32 -i eth0 -m comment --comment "2012-03-19 23:49:33 accesslog" -j BANNEDLOG'
etc...
Você também pode usá-lo como um banco de dados com as opções de comentário, para que você possa saber quando e por que etc.
O flock é importante quando o iptables é freqüentemente atualizado por muitos processos - parece que o iptables não tem nenhum bloqueio embutido nele.
Para ver os endereços e regras proibidos na cadeia proibida:
iptables -S BANNED
Para visualizar endereços de IP exclusivos apenas classificados:
iptables -S BANNED | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -u
Eu tenho um número de daemons em execução nos meus servidores checando os arquivos syslog e weblogs, então, se alguma coisa desagradável está sendo tentada por qualquer pessoa, o endereço deles é automaticamente banido por alguns dias, dependendo do tipo e gravidade e do número de ataques anteriores . A informação é registrada em um banco de dados mysql e expirada periodicamente. Os endereços também são distribuídos para todas as outras máquinas no cluster através da replicação do mysql, assim eles também são protegidos e mantidos em sincronia.
Meu software também procura o proprietário da rede e envia uma reclamação ao ISP.
Após 10 anos de trabalho, espero disponibilizá-lo para que todos possam usar em breve.
Atualmente tenho cerca de 1,5 milhão de históricos de endereços IP e centenas de milhares de e-mails e ataques ssh relatados, ajudando a limpar a rede. Se mais o usasse, espero que tenha mais impacto.