elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Seguridad (Moderador: r32)
| | |-+  Script BASH para ayudar a nuestro firewall a cubrir ataques DDOS
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Script BASH para ayudar a nuestro firewall a cubrir ataques DDOS  (Leído 2,773 veces)
Sadam.sh
Wiki

Desconectado Desconectado

Mensajes: 15


#!/bin/bash


Ver Perfil WWW
Script BASH para ayudar a nuestro firewall a cubrir ataques DDOS
« en: 19 Agosto 2010, 16:42 pm »

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_bloquear\n"
    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 while\n"
    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)


En línea

Last resort.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines