Black-list por puerto y ips con iptables


Icono de bash script

Con este script podemos cargar una lista de ips separadas por saltos de línea desde el fichero blacklist.txt. Las ips que se añadan directamente pasarán a estar en la lista para que no se acepte ninguna conexión desde ellas.

#!/bin/bash
while read ip
do 

    if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] ; then
        echo "[+] Add ip to blacklist $ip"
        blacklist+=( "$ip" )
    else
        echo "[-] Wrong ip in list: $ip"
    fi

done < blacklist.txt

SAVE_IFS=$IFS
IFS=","
blacklist="${blacklist[*]}"
IFS=$SAVE_IFS

echo "[+]Command: iptables -A INPUT -s $blacklist -j DROP"

if (iptables -A INPUT -s $blacklist -j DROP); then
    echo "[+] Done ..."
else
    echo "[!] Fail command!"
fi