Archivo etiqueta drop.lasso

Shell Script para incluir/actualizar “drop.lasso” de Spamhaus usando iptables en Gentoo Linux

Este es un pequeño Shell Script para añadir y actualizar rangos de IPs de la lista drop.lasso de Spamhaus.org y que ha determinado como principales emisores de SPAM en Internet.

# declaramos las variables que vamos a usar.
IPTABLES="/sbin/iptables"
SPAM_URL_spamhaus="http://www.spamhaus.org/drop/drop.lasso"
SPAM_FILE_TMP="/home/backup/scripts/spamhaus.ips"
SPAM_TABLE_spamhaus="Spamhaus"
SPAM_IPS=$(cat $SPAM_FILE_TMP | grep -iE "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | awk -F\; '{ print $1 }')

# borramos el fichero de ips anterior si existe.
rm -f $SPAM_FILE_TMP
# descargamos la ultima actualización realizada por spamhaus.org.
# -q no muestra ningún log de registro | -c para continuar la descarga si se cortara.
wget -qc $SPAM_URL_spamhaus -O $SPAM_FILE_TMP

# creamos las lista de ips.
$IPTABLES -n -L INPUT | grep -q "$SPAM_TABLE_spamhaus"

if [ $? -eq 0 ] ; then
   # borramos todas las reglas que contiene la cadena spamhaus.
   $IPTABLES -F $SPAM_TABLE_spamhaus
else
   # crea una nueva cadena llamada spamhaus si no existe.
   $IPTABLES -N $SPAM_TABLE_spamhaus
   # añade la regla spamhaus para todo el tráfico entrante.
   $IPTABLES -A INPUT -j $SPAM_TABLE_spamhaus
fi
   # con RETURN salta el objetivo si existe.
   $IPTABLES -A $SPAM_TABLE_spamhaus -j RETURN

# recorremos la lista de IPs para ir incluyéndolas una por una a iptables.
for IP in $SPAM_IPS
do
    # inserta una nueva regla a la cadena con la opciones especificadas.
    # -p all (bloquea el trafico recibido a través de los protocolos icmp, tcp, udp)
    # -s ip (ip origen del paquete)
    # -j DROP (elimina el paquete recibido)
    $IPTABLES -I $SPAM_TABLE_spamhaus -p all -s $IP -j DROP
done

“El Shell Script ha sido probado correctamente en Gentoo y Fedora Core 5″

Como veis es bastante sencillo y probablemente mejorable … luego solo tendríamos que añadirlo a nuestro crontab para que se ejecute periódicamente.
Descargar el ejemplo.

, , , , , , ,

No hay Comentarios