"La domanda è: come posso elencare gli indirizzi IP bloccati?"
Crea una catena BANNED:
iptables -N BANNED
iptables -F BANNED
Creare una catena di registrazione:
iptables -N BANNEDLOG
iptables -F BANNEDLOG
iptables -A BANNEDLOG -j LOG --log-prefix "BANNED:" --log-level 6
iptables -A BANNEDLOG -j DROP
Aggiungi il salto alla catena vietata nella catena INPUT prima della maggior parte delle altre regole
...
iptables -A INPUT -j BANNED
...
Ora aggiungi ipaddresses alla catena vietata:
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...
Puoi anche usarlo come un database con le opzioni di commento, così puoi sapere quando e perché ecc. Flock è importante quando iptables viene aggiornato frequentemente da molti processi - sembra che iptables non abbia alcun blocco incorporato.
Per visualizzare gli indirizzi e le regole vietati nella catena vietata:
iptables -S BANNED
Per visualizzare solo gli indirizzi IP unici ordinati:
iptables -S BANNED | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -u
Ho un certo numero di demoni in esecuzione sui miei server che controllano i file syslog e i weblog, quindi se qualcosa di brutto viene tentato da qualcuno, il loro indirizzo viene automaticamente bandito per alcuni giorni, a seconda del tipo e della gravità e del numero di attacchi precedenti. Le informazioni vengono registrate in un database mysql e scadute periodicamente. Gli indirizzi sono inoltre distribuiti su ogni altra macchina del cluster tramite la replica mysql, quindi sono anche protetti e sincronizzati. Il mio software cerca anche il proprietario della rete e invia un reclamo all'ISP.
Dopo 10 anni di lavoro, spero di renderlo presto disponibile per tutti. Al momento ho circa 1,5 milioni di storie di indirizzi IP e centinaia di migliaia di attacchi di posta e ssh segnalati, che aiutano a pulire la rete. Se più lo usasse, spero che avrebbe un impatto maggiore.
iptables -L INPUT -v -nmostra tutto l'ip bloccato