Mostrando entradas con la etiqueta Sh. Mostrar todas las entradas
Mostrando entradas con la etiqueta Sh. Mostrar todas las entradas

Controlar la cantidad de peticiones de una IP hacia el puerto 80

d
Visto en soyadmin
#!/bin/sh
# Comando que realiza el reastreo
nroconn=`netstat -nap |grep “:80″ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n | awk ‘{print $1}’ | tail -1`

# Comando que nos devolverá la ip
ip=`netstat -nap |grep “:80″ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n | awk ‘{print $2}’ | tail -1`

# Limite a superar para informar, esto se puede variar según las necesidades de cada server
limite=100
if [ $nroconn -gt $limite ]; then
mensaje=”Atencion! la IP $ip tiene $nroconn conexiones activas”

# Realizamos el whois sobre la IP
infor=`whois $ip | grep country`
whois=`whois $ip`

# Generamos el correo
mailto=”"
cc_to=”"
bcc_to=”"
while read direccion mode
do
if [ -z "$direccion" -o "${direccion:0:1}" = "#" ] ; then continue; fi
if [ "x$mode" = "xcc" -o "x$mode" = "xCC" ] ; then
cc_to=${cc_to:+${cc_to},}$direccion
else
if [ "x$mode" = "xbcc" -o "x$mode" = "xBCC" ] ; then
bcc_to=${bcc_to:+${bcc_to},}$direccion
else
mailto=${mailto:+${mailto},}$direccion
fi
fi

# Llamamos al archivo donde guardamos las direcciones de correo
done <~/emails
mailto=${mailto:-operator}
cc_to=${cc_to:+"-c $cc_to"}
bcc_to=${bcc_to:+"-b $bcc_to"}
mail ${cc_to} ${bcc_to} -s "Alerta OJO Muchas conexiones SERVER: (nombre de servidor)" ${mailto} >&2 <<-EOM
$mensaje
Dicha IP es de: $infor
WHOIS de $ip
$whois
EOM
fi
Leer más...