InicioLinuxScript BASH para ayudar a nuestro firewall a cubrir ataques

Script BASH para ayudar a nuestro firewall a cubrir ataques

Linux8/19/2010
A continuación les voy a dejar un script que restringe el acceso de IPS (Las bloquea) a su servidor cuando su servidor este recibiendo un ataque. Este script solo se debe ejecutar en el momento en que detecten que el servidor este siendo atacado, su función como lo indica el titulo es ayudar al firewall a bloquear las IPS atacantes para poder restablecer el servicio más rápidamente.
Una indicación mas, el script cuenta con dos partes:

1) blockIP.sh
2) ataques-reading.sh

blockIP.sh: es el script que bloquea a las ips.
ataques-reading.sh: es el script que chequea las conexiones en el momento del ataque y las identifica como atacantes o no.

Lo único que tienen que hacer es subir los scripts a la carpeta root y luego asignarle los permisos.

1) Chmod 777 blockIP.sh
2) Chmod 777 ataques-reading.sh

En el momento del ataque entrar por consola, a la carpeta root donde están plantados los scripts y ejecutar:

./ataques-reading.sh

Y del resto del trabajo se encargan los scripts.

Por otra parte pueden usar el script blockIP.sh para filtrar ips individuales:

./blockIP.sh LAIP
./blockIP.sh 192.168.1.3

Si ustedes son administradores de sistemas y tienen colaboradores que no tienen demasiada noción en el área pueden instalar el script blockIP.sh para facilitarle la tarea, ya que muchas veces es necesario bloquear alguna que otra ip.

blockIP.sh
------------------------------------------------------------------------------------------------
Código:
#!/bin/bash

if [ $# -eq 0 ] ; then
echo -e " Uso: $0 IPs_a_bloquearn"
exit 1
fi

while [ $# -ne 0 ] ; do
if [ "$1" == "127.0.0.1" -o "`echo $1 | cut -d'.' -f 1-3`" == "170.210.136" -o "`echo $1 | cut -d'.' -f 1-3`" == "170.210.156" ] ; then
echo " No se bloquea $1!!!"
else
IP="$1"
echo -n "Bloqueando $IP..."
iptables -I INPUT -s $IP -j DROP
echo -en "nRegistrando $IP..."
echo "$IP" >> /root/blockIP.rules
echo
fi
shift
done

exit 0
------------------------------------------------------------------------------------------------

ataques-reading.sh
------------------------------------------------------------------------------------------------

Código:
#!/bin/bash

cd /root
CONTADOR=0

while true ; do
[ "$1" == "-d" ] && echo -e "nEntro al whilen"
for IP in $(netstat -napt | grep -E "SYN_RECV|_WAIT" | sort -n -k 5 | awk '{print $5}' | cut -d':' -f 1 | sort -u | grep -vE "170.210.15[2-6]|127.0.0.1|170.210.156" ; do
CANT=$(netstat -napt | grep "$IP" | wc -l)
[ "$1" == "-d" ] && echo "Entro al for - $IP - $CANT"
if [ $CANT -gt 15 ] ; then
(iptables -nL | grep -qw $IP) && continue
CONTADOR=$[CONTADOR+1]
echo "$IP: $CANT conexiones - CONTADOR: $CONTADOR"
/root/blockIP.sh $IP
/etc/init.d/apache2 restart 2>/dev/null
/etc/init.d/postgres restart 2>/dev/null
if [ $CONTADOR -eq 20 ] ; then
CONTADOR=0
fi
echo
fi
done
sleep 5
done

exit
------------------------------------------------------------------------------------------------

PD: TIENEN QUE MODIFICAR EL SCRIP por ejemplo 170.210.156 es la IP de salida del servidor en donde esta.

/etc/init.d/apache2 restart 2>/dev/null
/etc/init.d/postgres restart 2>/dev/null

yo reinicio apache y la base de datos, ustedes pueden modificar.

blockIP.rules (pueden sacarlo o dejarlo, allí van quedando las ips que se filtran)
Datos archivados del Taringa! original
20puntos
1,231visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
4visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

s
sadamssh🇦🇷
Usuario
Puntos0
Posts18
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.