Abbiamo visto come installare e configurare un firewall iptables su server ubuntu linux, vediamo adesso come aggiungere una blacklist di indirizzi IP.

Su internet possiamo trovare varie fonti che detengono liste di IP bannati, ma nel nostro caso vogliamo bannare solo una serie di ip conosciuti perchè utilizzati per attaccare determinati servizi Es. ssh, apache.

In questo modo se non gestiamo un server di posta possiamo limitare il numero di regole da aggiungere al nostro firewall. Infatti la maggior parte degli indirizzi IP bannati sono conosciuti per azioni di spam.

Blocklist.de è una buona fonte e fornisce liste di IP bannati suddivisi per servizio.

http://www.blocklist.de/lists/

Come possiamo vedere il file relativo alla porta 25 (server mail smtp) è quello più fornito.

Vediamo come integrare tali liste per aggiungerle nuove regole di DROP al nostro firewall

creiamo un nuovo script vi /etc/init.d/firewall-blacklist

 

#! /bin/sh
### BEGIN INIT INFO
# Provides: scriptname
# Required−Start: $remote_fs $syslog
# Required−Stop: $remote_fs $syslog
# Default−Start: 2 3 4 5
# Default−Stop: 0 1 6
# Short−Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
start(){
echo "start"
BLACKLIST=/usr/local/etc/blacklist.txt
BLOCKLIST_URL=http://www.blocklist.de/lists/22.txt
wget $BLOCKLIST_URL −O $BLACKLIST
if [ $? −eq 0 ]
then
for x in `grep −v ^# $BLACKLIST | awk '{print $1}'`; do
echo "Denying $x..."
/sbin/iptables −D INPUT −t filter −s $x −j DROP
/sbin/iptables −A INPUT −t filter −s $x −j DROP
done
else
echo "$BLOCKLIST_URL ERROR"
fi
}

stop(){
echo "stop"
#/sbin/iptables −F INPUT
}

restart(){
stop
sleep 5
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: firewall {start|stop|restart}"
exit 1
esac

exit 0



 
utilizzando

/etc/init.d/firewall-blacklist start

verrà scaricato il file degli indirizzi IP ed inseriti nelle rule di iptables se non già presenti.

inseriamolo adesso sulla crontab per aggiornare la lista degli ip regolarmente

crontab -e

0 2 * * * (/etc/init.d/firewall-blacklist start)

Share →

3 Responses to IP Blacklist per iptables

  1. Mario scrive:

    Salve,

    ho installato lo script allo startup del sistema, ma quando faccio il reboot a volte sembra che ci metta molto a tornare online.
    Se disabilito lo script non accade, cosa potrebbe essere?

Rispondi a Mario Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *