Con este bash script puedes cargar desde un fichero una "whitelist" de IPs, dandoles acceso a el puerto o los puertos que necesites, por ejemplo al puerto de mysql (3306) .

El fichero con las ips tendrá que tenerlas separadas con saltos de línea (\n) y llamarse"whitelist.txt". De esta forma.

1.1.1.1 \n 2.2.2.2 \n ...

 

Para usarlo tan solo debes darle permisos de ejecución

chmod +x iptablesWhiteList.sh

. Y ejecutarlo pasandole el puerto o los puertos separados por coma.

./iptablesWhiteList.sh "21,22"

 

#!/bin/bash
#Usage
#./iptablesChargeWhitelist.sh "21,22"
declare ports=( "$1" )
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 whitelist $ip"
whitelist+=( "$ip" )
else
echo "[-] Wrong ip in list: $ip"
fi
done < whitelist.txt
SAVE_IFS=$IFS
IFS=","
whitelist="${whitelist[*]}"
IFS=$SAVE_IFS
for (( j=0; j<${#ports[@]}; j++ ));do
if (iptables -A INPUT -p tcp --dport ${ports[$j]} -s $whitelist -j ACCEPT); then
echo "[+]Command: iptables -A INPUT -p tcp --dport ${ports[$j]} -s $whitelist -j ACCEPT"
else
echo "[!] Fail command: iptables -A INPUT -p tcp --dport ${ports[$j]} -s $whitelist -j ACCEPT"
fi
if (iptables -A INPUT -p tcp --dport ${ports[$j]} -j DROP); then
echo "[+]Command: iptables -A INPUT -p tcp --dport ${ports[$j]} -j DROP"
else
echo "[!] Fail command: iptables -A INPUT -p tcp --dport ${ports[$j]} -j DROP"
fi
done

 git-source:https://github.com/moikanolaplana/bash_utils/blob/master/iptablesChargeWhitelist.sh

  • No se han encontrado comentarios

Deja tus comentarios

Enviar un comentario como invitado

0 / 300 Restricción de Carateres
El texto debe estar entre 2-300 caracteres
Sus comentarios están sujetos a moderación por un administrador.