Bloqueo de IP’s “Molestas”
Este sencillo script está probado en CentOS 4.3 y agrega a /etc/hosts.deny todas aquellas IP’s que sobrepasen el límite de reintentos, intentando acceder mediante ssh con usuarios inexistentes o mediante ataques de diccionario. Las IP’s baneadas no pueden volver a conectar por ssh y reciben un “Connection Refused”. También se pueden especificar IP’s en la variable whitelist para evitar banear nuestras propias IP’s mediante ip spoofing.
#!/bin/sh ######################################## # @version 0.1 # @author skarvin # Script de bloqueo a SSH por intentos erroneos ######################################## REINTENTOS=10 count=0 IP="0" IP2="0" whitelist="127.0.0.1,69.69.45.45"; function block_ip (){ if echo $whitelist | grep -v $1 > /dev/null; then if cat /etc/hosts.deny | grep $1 > /dev/null; then echo "$1 ya está baneada" else echo Baneando: $1 echo "sshd: $1" >> /etc/hosts.deny fi fi } #INTENTOS DE ACCESO CON USUARIO #EXISTENTE Y PASSWORD INCORRECTO for i in `cat /var/log/secure* | tr ' ' '#' | grep Failed | grep -v illegal`; do IP=`echo $i | cut -c 40-200 | cut -d "#" -f 6`; if [ "$IP" = "$IP2" ]; then let count++ if [ $count > $REINTENTOS ]; then block_ip $IP count=0 fi else count=0 fi IP2=`echo $i | cut -c 40-200 | cut -d "#" -f 6`; done #INTENTOS DE ACCESO MEDIANTE ATAQUES DE DICCIONARIO for i in `cat /var/log/secure* | tr ' ' '#' | grep Failed | grep illegal`; do IP=`echo $i | cut -c 40-200 | cut -d "#" -f 8`; if [ "$IP" = "$IP2" ]; then let count++ if [ $count > $REINTENTOS ]; then block_ip $IP count=0 fi else count=0 fi IP2=`echo $i | cut -c 40-200 | cut -d "#" -f 8`; done |
8 comentarios:
Buen aporte, ahora mi pregunta es , como o donde agrego estas lineas de comando??
Gracias
Como utilizo este codigo??? donde lo escribo como lo ejecuto help plis
Hola,
El código lo puedes meter en un fichero en /etc/cron.daily o /etc/cron.hourly depende de la periodicidad que quieras ir baneando las IP's, ten en cuenta que está probado para Distros basadas en RedHat por lo que podría no funcionar en otras distribuciones.
Un saludo.
Por cierto acuerdate que el fichero sea ejecutable!!
#chmod +x /etc/cron.daily/banea_ip.sh
Yo no entiendo nada... pero esto hace las tostadas con mantequilla o con mermelada?
FDO: Fandel
Todo depende de donde instales la distribución GNU/Linux que uses. Mi consejo es que utilices una tostadora Moulinex 3.0 o superior. El tema de la mermelada o la mantequilla depende de la versión, la mantequilla está diponible desde la 2.2 para la mermelada has de irte a la 3.0.
Espero que esto te sirva de ayuda y haga más apetitosas tus mañanas.
Pues tengo la version 4.3 del Centos y configure el sysctl.conf para evitar el ping y algunas cosillas mas, la pregunta. Este escript funciona de todas formas sin tomar en cuenta la configuracion de iptables??
Saludos
Steven
Hola,
Es independiente de iptables, puesto que el bloqueo lo hace a nivel de /etc/hosts.deny
Un saludo.
Publicar un comentario