?>/script>'; } ?> Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07) Widgets Magazine

Autor Tema: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)  (Leído 25172 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2247
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #40 en: 31-05-2017, 09:51 (Miércoles) »
Dos sugerencias de mejoras:

  • A medida que se van añadiendo direcciones bloqueadas, la lista se puede hacer muy larga, y eso puede afectar al rendimiento; iptables no trabaja muy bien con grandes cantidades de reglas. Sería interesante reconvertir el script para usar ipsets (https://wiki.openwrt.org/doc/uci/firewall#ip_sets); es una manera de crear una regla "genérica" y después añadirle direcciones, y tiene mejor rendimiento con listas largas. Además, gestiona de manera automática la caducidad del bloqueo.
  • Yo también recibo ataques, y normalmente me llegan varios intentos seguidos desde una misma dirección, y después ya no me vuelve a aparecer esa dirección en los logs. Revisar los mensajes cada 5 minutos tiene el problema de que bloqueas el ataque cuando ya a acabado. Otra mejora que se podría hacer al script es recoger la salida de logread en vivo mediante una pipe, de manera que se bloqueasen las direcciones de manera inmediata.

A ver si encuentro un rato, y me pongo con esto...

No veo claro que con lo de ipsets vaya a haber menos procesamiento. Da lo mismo, ya que todas las reglas que haya en el ipset se deben recorrer, para saber el destino del paquete.
Los ataques los veo repetidos, ya que la siguiente vez, no aparece en los logs como intento de conexión, sino como "Ataque de fuerza bruta", así que las IPs sí se repiten.
Hasta por lo menos 600 reglas, me las está gestionando bien, en un período de 14 días. (CPU buena con 128MB de RAM).
El intervalo de ejecución lo tengo en 10 minutos. En ese intervalo, una IP realiza un ataque de digamos 10 intentos por SSH (distintos passwords dentro de la misma conexión), pero no vuelve a intentarlo hasta pasado más de ese intervalo, y después da igual, porque ya la he cazado...
Lo suyo sería hacer lo del pipe en directo, pero el procesamiento de eso en directo, puede disparar la CPU del router, hasta límites bastante altos.
A ese ritmo, desde luego no averiguan el password ni en varios cientos de lustros. Lo que me preocupa más, es que encuentren algún exploit directo.

xcl2000

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #41 en: 09-06-2017, 14:37 (Viernes) »
El scrip original instalado en Exroot Pulpstone v3.1 OpenWrt Chaos Calmer 15.05.1 r49389....funcionando



eduperez

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #42 en: 07-07-2017, 23:58 (Viernes) »
Que no se diga que soy de los que tiran la piedra y esconden la mano...

  • La ventaja de usar IPSET es que sólo hay que definir una regla, a la que después se van añadiendo direcciones IP. Con eso se consigue que la evaluación de las reglas sea mucho más rápida, y puede tener un efecto significativo en dispositivos con CPU lenta o cuando el número de direcciones crece mucho. Otra de las ventajas de las IPSET es que las direcciones asociadas a una regla caducan de forma automática.
  • Si se hace correctamente, se pueden bloquear los ataques en tiempo real, sin tener que consumir CPU en exceso; es más, se consumirá menos CPU que con el sistema de revisar los logs periódicamente.

Y para muestra, un prototipo de lo que estoy desarrollando.

En "/etc/config/firewall" se definen las siguientes entradas (que deben colocarse antes de todos los "option rule" que abren puertos):
Código: [Seleccionar]
config ipset
option name 'banscan'
option storage 'hash'
option match 'src_ip'
option timeout '86400'

config rule
option name 'banscan'
option src 'wan'
option family 'ipv4'
option ipset 'banscan'
option target 'DROP'

Con esto ya tenemos definido un ipset, donde podremos añadir direcciones IP, y una regla que bloqueará todo el tráfico proveniente de las direcciones que estén en ese ipset; para bloquear una dirección, hay que ejecutar simplemente "ipset add banscan aaa.bbb.ccc.ddd", y le cerraremos todos los puertos durante 24 horas.

Y la manera de revisar los logs de manera continua es mediante el comando "logread -f" y procesando la salida mediante pipes; por ejemplo, estos dos comandos (ninguno de los dos acaba, hay que cortarlos con CTRL+C) espera a la llegada de los dos mensajes más típicos:
Código: [Seleccionar]
logread -f | fgrep "Login attempt for nonexistent user from" | awk '{ print $14 }' | awk '{ print $1 }' FS=":" | xargs -n 1 ipset add banscan
logread -f | fgrep "Max auth tries reached" | awk '{ print $23 }' | awk '{ print $1 }' FS=":" | xargs -n 1 ipset add banscan

Ahora sólo me queda montar un script de arranque y parada, que pueda dejar en "/etc/init.d", que procese otros ataques, que muestre mensajes de depuración, ... en la próxima entrega.
« Última modificación: 08-07-2017, 00:12 (Sábado) por eduperez »

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2247
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #43 en: 08-07-2017, 15:50 (Sábado) »
Que no se diga que soy de los que tiran la piedra y esconden la mano...

  • La ventaja de usar IPSET es que sólo hay que definir una regla, a la que después se van añadiendo direcciones IP. Con eso se consigue que la evaluación de las reglas sea mucho más rápida, y puede tener un efecto significativo en dispositivos con CPU lenta o cuando el número de direcciones crece mucho. Otra de las ventajas de las IPSET es que las direcciones asociadas a una regla caducan de forma automática.
  • Si se hace correctamente, se pueden bloquear los ataques en tiempo real, sin tener que consumir CPU en exceso; es más, se consumirá menos CPU que con el sistema de revisar los logs periódicamente.

Y para muestra, un prototipo de lo que estoy desarrollando.

En "/etc/config/firewall" se definen las siguientes entradas (que deben colocarse antes de todos los "option rule" que abren puertos):
Código: [Seleccionar]
config ipset
option name 'banscan'
option storage 'hash'
option match 'src_ip'
option timeout '86400'

config rule
option name 'banscan'
option src 'wan'
option family 'ipv4'
option ipset 'banscan'
option target 'DROP'

Con esto ya tenemos definido un ipset, donde podremos añadir direcciones IP, y una regla que bloqueará todo el tráfico proveniente de las direcciones que estén en ese ipset; para bloquear una dirección, hay que ejecutar simplemente "ipset add banscan aaa.bbb.ccc.ddd", y le cerraremos todos los puertos durante 24 horas.

Y la manera de revisar los logs de manera continua es mediante el comando "logread -f" y procesando la salida mediante pipes; por ejemplo, estos dos comandos (ninguno de los dos acaba, hay que cortarlos con CTRL+C) espera a la llegada de los dos mensajes más típicos:
Código: [Seleccionar]
logread -f | fgrep "Login attempt for nonexistent user from" | awk '{ print $14 }' | awk '{ print $1 }' FS=":" | xargs -n 1 ipset add banscan
logread -f | fgrep "Max auth tries reached" | awk '{ print $23 }' | awk '{ print $1 }' FS=":" | xargs -n 1 ipset add banscan

Ahora sólo me queda montar un script de arranque y parada, que pueda dejar en "/etc/init.d", que procese otros ataques, que muestre mensajes de depuración, ... en la próxima entrega.

Interesante lo que cuentas, sin duda.
Pero ten en cuenta, que si te equivocas al hacer login a la primera, estarás baneado 24h. Lo suyo sería dejar/contar un número de intentos, antes del baneo.

eduperez

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #44 en: 08-07-2017, 16:37 (Sábado) »
Interesante lo que cuentas, sin duda.
Pero ten en cuenta, que si te equivocas al hacer login a la primera, estarás baneado 24h. Lo suyo sería dejar/contar un número de intentos, antes del baneo.

Pero yo nunca me equivoco! (de contraseña, al entrar por WAN, porque no permito acceso por contraseña, sólo por clave)  :D
Bromas aparte... sí, bloquear al primer intento es bastante radical, sólo lo haría después de haber configurado y probado bien el cliente, y cuando tenga muy claro que no voy a tener el problema que comentas.
« Última modificación: 08-07-2017, 16:38 (Sábado) por eduperez »

xcl2000

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #45 en: 18-07-2017, 20:26 (Martes) »
Yo he instalado el script en LEDE





y funciona...



Saludos  >:(
« Última modificación: 18-07-2017, 20:27 (Martes) por xcl2000 »

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2247
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #46 en: 19-07-2017, 18:15 (Miércoles) »
Yo he instalado el script en LEDE





y funciona...



Saludos  >:(

Me alegra oir que funciona en otros sistemas.
Yo a estas alturas, puedo decir que funciona completamente estable, con un uptime de 60 días, y una media de baneos cada 14 días, de entre 500 y 600. Con un fichero inicial, funciona perfectamente con más de 1000.
Si alguien más quiere ir poniendo su experiencia, es bienvenido.

anonimoD

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #47 en: 20-09-2017, 16:51 (Miércoles) »
He retocado el script unificando las dos búsquedas de fallos de contraseña y usuario haciéndolo además algo más corto. También he incoporporado la búsqueda hacia atrás de un inicio correcto de dicha ip para en ese caso no banear y un listado de lista blanca para omitir baneo. El script tiene algunos casos no controlados que comento en los comentarios y ya venían de base, pero que en vuestro caso que tenéis publicado el puerto ssh publicado con muchos intentos no os afectara, solo a aquellos que tengan pocos accesos y por desconocimiento si hay o no rotado de log.  He eliminado las reglas de log para evitar carga innecesaria y añadido un comentario para que al eliminar la regla nos aseguremos que se elimina una entrada añadida por el script y no otra.

Código: [Seleccionar]
#!/bin/sh
#============================================================================================================
# Descargado de: https://foro.seguridadwireless.net/openwrt/script-baneador-de-direcciones-ip-ssh-para-openwrt/
# Descargado de: https://foro.seguridadwireless.net/openwrt/script-baneador-de-direcciones-ip-ssh-para-openwrt/20/

# Script realizado inicialmente por hardwarer para el foro de seguridadwireless.net
# Este script extrae del log los fallos de autentificacion al servidor SSH (por usuario o contraseña erronea)
# Si los fallos exceden de cierta cantidad banea su IP de origen utilizando el cortafuegos Iptables.
# Tiempo de baneo configurable y tablas de baneo de IP permanentes al reinicio del sistema.
# Probado en OpenWrt 15.05.1 Chaos Chalmer (El original se probo en Openwrt 14.04 Barrier Breaker)

# Modificaciones Tki2000 (2017-05-15)
# Modificaciones David   (2017-09-20)
#
# 1.- El fichero de baneos se escribe /tmp/, del que OpenWRT carga en RAM y asi no machaca la flash del router
# 2.- Si grabamos previamente el fichero de baneos, de la RAM a la flash, lo usará al inicio.
# 3.- Posibilidad de banear manualmente ips, además de las detectadas en el script, durante un tiempo indefinido.
# 4.- Las IPs repetidas, entre ficheros, no se tienen en cuenta nada más que una vez al banear. (2017-05-30)
# 5.- Puede leer el log n lineas hacia atras para ver si esa ip ha tenido un acceso correcto para omitir baneo
# 6.- Se puede anadir ips a una lista blanca para omitir baneo en caso de que tengas dedazos gordos...
# 7.- Se pueden anadir DNS a la lista blanca para omitir baneo (Requiere paquete hostip para resolver los dns)
# 8.- A la hora de quitar los baneos revisa que tenga el comentario para evitar eliminar una regla que no toca
#
#    ======= Por revisar =========
# Revisar si hay rotado de logs y cada cuanto se lanza
# Ojo, puede estar anadiendo y quitando constantemente un baneo si el log no rota, tiene pocas entradas o el tiempo de baneo es corto
# Si cambiamos la cadena de alcance y todavía quedan reglas no seran eliminadas, aunque pase el tiempo de unbaneo. Borrar a mano o reiniciar
# Puede que no te banee por tener un acceso reciente pero que pasadas las lineas de busqueda seleccionadas ya
#  no lea tu acceso y no omita el baneo. Deberia resetear y no buscar fallos hacia atras de un acceso correcto
#
#============================================================================================================
#========================================== OPCIONES ========================================================

# Tiempo de baneo (en segundos). Transcurrido ese tiempo se desactiva el baneo y se quita la IP de la lista.
#ban_time=86400     # Un dia: 24 horas = 86400 segundos
#ban_time=1209600   # Dos semanas: 86400 * 14 = 1209600
ban_time=36000      # 10h por defecto para pruebas

# Definición de las rutas de los ficheros que se usan en el script.
fail2ban_running="/tmp/fail2ban.run"             # Para saber que si ha ejecutado al menos una vez (para carga inicial)
banfile="/tmp/banned.ips"                        # Fichero de baneos. Almacezar siempre en /tmp/ para asegurar que se escribe en RAM
banfile_stored="/etc/fail2ban/banned.ips"        # Fichero que podemos dejar grabado en la flash para volver a comenzar los baneos donde los dejamos.
                                                 # Previamente, antes de reiniciar el router debemos grabar el fichero de la memoria, a la flash.
banfile_static="/etc/fail2ban/banned_static.ips" # Para añadir manualmente ips que queramos banear desde el principio y de manera indefinida. El formato es de una IP por línea.

# Whitelist a omitir en el baneo
MyIPs=$(ifconfig | grep "inet addr" | awk '{ print $2}' | cut -d ":" -f 2 | xargs)     # Todas las ips locales del router (LAN,WAN,local y VPN levantadas)
WhitelistIPs="192.168.1.100"                                                           # Ips que omitiran al baneo. Para mas de una anadir con un espacio
WhitelistDNS="tralala.ddns.algo tarari.no-ip.org"                                      # DNS que omitiran al baneo. Requiere hostip para resolver los DNS
WhitelistIPs="$MyIPs $WhitelistIPs $(for DNS in $WhitelistDNS; do hostip $DNS; done | xargs)" # Suma todas las ips de lista blanca e ips de DNS

TriggerBan=5            # Cuantos fallos de contrasena o usuario inexistente  ha de encontrar en el log para banear a la ip
LinesToFindAcces=1000   # Cuantos eventos revisa atras en el log para ver si hay un acceso correcto de esa ip. Si lo hay no la baneara. 0 para infinito
Comentario="BRUTEBAN"   # Comentario que ira asociado a la regla para distinguirla

# Funcionamiento en internet, red local o ambas. Descomentar la opcion deseada.
#alcance="input_rule"        # Ambas redes
#alcance="input_lan_rule"    # Solo red local
alcance="input_wan_rule"     # Solo internet    # Por defecto y para hacer pruebas con mejor seguridad desde lan

#=============================================================================================================
#======================================    CRONIFICAR    =====================================================
# Copiar en /etc/fail2ban/fail2ban_openwrt.sh y dar permisos d ejecución: chmod +x /etc/fail2ban/fail2ban_openwrt.sh
# */10 * * * *  /etc/fail2ban/fail2ban_openwrt.sh


#=============================================================================================================
#===================================== COMPROBACION INICIAL ==================================================

# Comprobamos si acabamos de iniciar el router y en ese caso preelaboramos el fichero de baneos
# Modificación : Si tenemos un fichero grabado previo, lo usamos.
# Modificación : Si tenemos un fichero de ips para banear estático, preelaboramos el fichero de baneos.

if [ ! -f $fail2ban_running ]; then
   touch $fail2ban_running
  
   if [ -f $banfile_static ]; then
      [ -f $banfile ] && rm $banfile

      for x in `cat $banfile_static | awk '{print $1}' FS=":"`; do
         echo 2100000000:$x >> $banfile
      done
   fi
  
   if [ -f $banfile_stored ]; then
      for l in `cat $banfile_stored | awk '{print $2}' FS=":"`; do
         exists=`cat $banfile | grep $l | wc -l`
         if [ "$exists" -lt 1 ]; then
            fecha_actual=`date +%s`
            unban_date=`expr $fecha_actual + $ban_time`
            echo "$unban_date:$l" >> $banfile
         fi
      done
   fi

   # Si es la primera vez que lanzamos el script, debemos crear el fichero donde se guardan
   # las ips baneadas, si no lo hemos creado ya, en los procedimientos anteriores
   [ ! -f $banfile ] && touch $banfile
  
   for x in `cat $banfile | awk '{print $2}' FS=":"`; do
        echo "Anade Baneo:   iptables -I $alcance 1 -s $x -j DROP -m comment --comment "${Comentario}"
        #iptables -I $alcance 1 -s $x -j DROP -m comment --comment "${Comentario}" #:${fecha_actual}:${unban_date}"
   done
fi

#================================================================================================
#====================== BANEO INTENTOS USUARIOS NO VALIDOS Y MAL PASSWORD =======================

fecha_actual=`date +%s`
unban_date=`expr $fecha_actual + $ban_time`

# Entraran al for aquellas ips que hayan excedido mas del numero $Trigger los fallos de contrasena y usuario"
for badip in `logread | grep -e 'Login attempt for nonexistent user' -e 'Bad password' | cut -d':' -f 4 | cut -d ' ' -f 8 | uniq -c -f 7 | awk '{ if ( $1 > $TriggerBan ) print $2}'`; do
    # Si la direccion IP no esta en la lista de baneados, ni en la de recientes accesos correctos ni en la lista blanca, la anadimos a iptables
    if ! [ "$(grep $badip $banfile)" ] && ! [ "$(logread -l $LinesToFindAcces -e 'Password auth succeeded' | cut -d ':' -f 4 | cut -d ' ' -f 8 | grep $badip )" ] && ! [[ "$WhitelistIPs" == *"$badip"* ]] ; then
        iptables -I $alcance 1 -s $badip -j DROP -m comment --comment "${Comentario}" #:${fecha_actual}:${unban_date}"

        # Anadimos la IP al archivo de baneados "$banfile" y la hora a la que terminara el baneo de esa IP en formato epoch (segundos desde 01-01-1970)
        echo "$unban_date:$badip" >> $banfile;
   fi
done

#================================================================================================
#======================== BORRADO DE BANEO TRANSCURRIDO EL TIEMPO ASIGNADO ======================

# Comprueba si alguno de los registros del fichero $banfile tiene una fecha anterior a la actual. En caso afirmativo borra las reglas de iptables y los registros del log.
fecha_actual=`date +%s`
for z in `cat $banfile`; do
   unban_time=`echo $z | awk -F ":" '{print $1}'`
   unban_ip=`echo $z | awk -F ":" '{print $2}'`
   if [ "$unban_time" -lt "$fecha_actual" ]; then
      sed -i '/'$unban_ip'/d' $banfile
      unban_rule=`iptables -L $alcance -n --line-numbers | grep "${Comentario}" | grep -m 1 $unban_ip|awk '{print $1}'`
      iptables -D $alcance $unban_rule -m comment --comment "${Comentario}"
   fi
done


« Última modificación: 20-09-2017, 17:37 (Miércoles) por anonimoD »

anonimoD

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #48 en: 21-09-2017, 20:06 (Jueves) »
Todos los que utilicen estos scripts basándose en logread deben tener en cuenta que logd no registra excesivas lineas. Por lo que si los fallos de acceso están un poco separados en el tiempo, no los detectara. También he visto que se comporta mal cuando se llena el buffer, no registrando nuevos eventos. La información del comportamiento del log es algo escasa y la he sacado de aquí: https://wiki.openwrt.org/doc/howto/log.essentials  ¿Alguien darme alguna referencia con info más detallada?

Esto deben tenerlo presente aquellos que tengan excesivos intentos de acceso, ya que probablemente el log no los esté registrando todos y por ende no estarán baneando a ips que estarán muy activas intentando "juanquearles"...  

Se pueden ampliar el buffer del sistema de log en la sección "config system" del fichero /etc/config/system. Por ejemplo:  option log_buffer_size 1024  
Con esto el log me permite unas 4500 lineas y me ocupa en memoria algo menos de 2MB
Se puede hacer que el log sea mayor o que escriba un fichero (En RAM de /tmp/ o en un disco externo, revisar wiki)

A tener en cuenta que un log muy grande de muchos Megas, hará que recorrer el log sea costoso y por ende lanzar el script también lo será.

Edito: No entiendo, he probado con 512 y me ocupa unos Ks menos en memoria a la vez que me están entrando unas 10800 de lineas ¿?
          Quizá una explicación es que el máximo son 999 y al poner 4 cifras no funcione del todo bien.
          Por defecto si no pones nada se carga con 16 y ocupa menos de 1MB (el demonio + registros)
          Con 256 y 512 parece rotan bien ante nuevos eventos cuando están llenos. Entran unas 5000 lineas con 256 y 10000 con 512.
          La diferencia de memoria entre 256 y 512 es mínima.
        
« Última modificación: 21-09-2017, 20:49 (Jueves) por anonimoD »

jaraneda

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #49 en: 22-09-2017, 21:58 (Viernes) »
instalado en un TP-Link TL-WR1043N/ND v2 con LEDE Reboot 17.01.1 y funcionando

anonimoD

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #50 en: 23-09-2017, 18:08 (Sábado) »
instalado en un TP-Link TL-WR1043N/ND v2 con LEDE Reboot 17.01.1 y funcionando

Es que es bastante standard, no debería dar problemas. Gracias por confirmarlo. Ten presente lo que comento del log, por defecto no se cuantas lineas registra LEDE. Puedes verlo con: ps | grep logd   Si ves que después de -S tiene menos de 128, yo ampliaría el tamaño del buffer a 256 o 512. Apenas aumenta medio MB de RAM así que no es problema.  Para hacerlo ve a /etc/config/system y dentro del tabulado config system añade: option log_buffer_size 512

Estoy pensando en añadir una opción para que registre en el log cuando banea o desbanea una ip. Es muy sencillo, de hecho, mientras hago la comida lo hago y lo subo.


anonimoD

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #51 en: 23-09-2017, 18:44 (Sábado) »
Actualizado. Revisad las opciones que os deja escoger (limite de baneos, log, whitelist, etc...) y sobretodo aumentad el tamaño del buffer del log, esta comentado en el script.

Código: [Seleccionar]
#!/bin/sh
#============================================================================================================
# Descargado de: https://foro.seguridadwireless.net/openwrt/script-baneador-de-direcciones-ip-ssh-para-openwrt/
# Descargado de: https://foro.seguridadwireless.net/openwrt/script-baneador-de-direcciones-ip-ssh-para-openwrt/20/
# Descargado de: https://foro.seguridadwireless.net/openwrt/script-baneador-de-direcciones-ip-ssh-para-openwrt/40/

# Script realizado inicialmente por hardwarer para el foro de seguridadwireless.net
# Este script lee del log los fallos de autentificacion SSH (por usuario o contraseña erronea)
# Si los fallos exceden de cierta cantidad, banea su IP de origen utilizando iptables
# Tiempo de baneo configurable y tablas de baneo de IP permanentes al reinicio del sistema.
# Probado en OpenWrt 15.05.1 Chaos Chalmer y LEDE 17.01 (El original se probo en Openwrt 14.04 Barrier Breaker)

# Modificaciones Tki2000 (2017-05-15)
# Modificaciones David   (2017-09-20) (Retocadas las funciones originales + puntos 5, 6, 7 y 8)
# Modificaciones David   (2017-09-23) (9)
# Modificaciones David   (2017-09-30) (10 + correccion de errores + cambio nombres de variables para legibilidad y asemeje a fail2ban original
#
# 1.-  El fichero de baneos se escribe /tmp/, del que OpenWRT carga en RAM y asi no machaca la flash del router
# 2.-  Si grabamos previamente el fichero de baneos, de la RAM a la flash, lo usará al inicio.
# 3.-  Posibilidad de banear manualmente ips, además de las detectadas en el script, durante un tiempo indefinido.
# 4.-  Las IPs repetidas, entre ficheros, no se tienen en cuenta nada más que una vez al banear. (2017-05-30)
# 5.-  Puede leer el log n lineas hacia atras para ver si esa ip ha tenido un acceso correcto y omitir su baneo
# 6.-  Se puede anadir ips a una lista blanca para omitir baneo en caso de que tengas dedazos gordos.
# 7.-  Se pueden anadir DNS a la lista blanca para omitir baneo (Requiere paquete hostip para resolver los dns)
# 8.-  A la hora de quitar los baneos, revisa que tenga el comentario para evitar eliminar una regla que no toca
# 9.-  Opcion a registrar en el log los baneos y unbaneos
# 10.- Modo Debug en el que no aplica las reglas del firewall, en su lugar imprime lo que haria (tampoco escribira la accion en el log)
#
#    ======= A tener en cuenta =========
# Puede estar anadiendo y quitando constantemente un baneo si el log no rota, tiene un buffer pequeno o el tiempo de baneo es corto (amplia buffer, abajo detallo)
# Por defecto el log registra solo unas 340 lineas y perderias accesos no autorizados al rotar el log. Anade en la seccion "config system" del fichero /etc/config/system
#  option log_buffer_size 256  # Por defecto toma 16 y con 256 amplia a unas 5000 lineas y 512 unas 10.000 (no poner mas de 999 ya que se comporta erroneo)
# Si cambiamos el ambito de bloqueo(chain) y todavía quedan reglas andidas, no seran eliminadas, aunque pase el tiempo de unbaneo. Borrar a mano o reiniciar
# Puede que no te banee por tener un acceso reciente pero que pasadas las lineas de busqueda seleccionadas ya no lea tu acceso y no omita el baneo.
#    Lo ideal seria resetear y no buscar fallos hacia atras después de un acceso correcto de esa ip (pendiente por hacer, pero asi ya me funciona bien)
#
#============================================================================================================
#========================================== OPCIONES ========================================================

# Tiempo de baneo (en segundos). Transcurrido ese tiempo se desactiva el baneo y se quita la IP de la lista.
ban_time=36000      # 36000 = 10h, por defecto para pruebas       # 86400 = Un dia = 24 horas    # Dos semanas = 86400 * 14 = 1209600

# Definicion de las rutas de los ficheros que se usan en el script.
file_running="/tmp/fail2ban.run"                 # Para saber si se ha ejecutado al menos una vez (para carga inicial). Almacenar en /tmp/
file_banapplied="/tmp/banned.ips"                # Fichero de baneos. Almacezar siempre en /tmp/ para asegurar que se escribe en RAM
file_banstored="/etc/fail2ban/banned.ips"        # Es el fichero banapplied que podemos guardar a flash antes de reiniciar para volver a comenzar los baneos donde los dejamos
file_banstatic="/etc/fail2ban/banned_static.ips" # Para anadir manualmente ips que queramos banear desde el principio y de manera indefinida (Una IP o CIDR por línea)

# Whitelist de ips a omitir en el baneo
MyIPs=$(ifconfig | grep "inet addr" | awk '{ print $2}' | cut -d ":" -f 2 | xargs)     # Tomara todas las ips locales del router (LAN,WAN,local y VPN levantadas)
WhitelistIPs="192.168.1.111 192.168.1.111"                                             # Anade Ips que omitira al baneo. Para mas de una, anadir con un espacio
WhitelistDNS="oficina1.tudnsdeofi.com myhomeip.tudnsdcasa.com"                         # Anade DNS que omitira al baneo. Requiere hostip para resolver los DNS
WhitelistIPs="$MyIPs $WhitelistIPs $(for DNS in $WhitelistDNS; do hostip $DNS; done | xargs)" # Sumara todas las ips de lista blanca e ips de DNS de arriba

maxtretry=4              # Cuantos fallos de contrasena o usuario inexistente ha de encontrar en el log para banear a la ip
LinesToFindAcces=2000    # Cuantos eventos revisa atras en el log para ver si hay un acceso correcto de esa ip. Si lo hay, no la baneara. 0 para infinito
Comentario="BRUTEBAN"    # Comentario que ira asociado a la regla anadida a iptables para distinguirla
WriteLogWithAction=1     # 1 para escribir en el log cuando banea o unbanea una ip. Cualquier otra cosa para omitir. (Con Debug activo no escribira en log)
WriteLogTag="f2b_action" # Tag al escriir en log el baneo o unbaneo (si lo has activado con WriteLogWithAction=1)
Debug="False" # Con "True" no aplica ni quita las reglas en iptables. En su lugar imprime lo que haria sin aplicarlas en el sistema. Cualquier otra cosa para normal

# Ambito/cadena de iptables donde se aplicaran los baneos.  Local="input_lan_rule"  internet="input_wan_rule"  Ambas="input_rule"
chain="input_wan_rule"   # Local="input_lan_rule"  internet="input_wan_rule"  Ambas="input_rule"  # Por defecto deja "input_wan_rule" para hacer pruebas con seguridad desde lan

#=============================================================================================================
#======================================    CRONIFICAR    =====================================================
# Copiar en /etc/fail2ban/fail2ban_openwrt.sh y dar permisos d ejecución: chmod +x /etc/fail2ban/fail2ban_openwrt.sh
# Para que se lance cada 10 minutos copia la tercera linea de abano editando con "crontab -e" o en luci "Sheluded Tasks"
# */10 * * * *  /etc/fail2ban/fail2ban_openwrt.sh >> /dev/null 2>&1

#=============================================================================================================
#=====================================    Codigo generico   ==================================================
fecha_actual=`date +%s`
unban_date=`expr $fecha_actual + $ban_time`

#=============================================================================================================
#===================================== COMPROBACION INICIAL ==================================================

# Comprobamos si acabamos de iniciar el router y en ese caso preelaboramos el fichero de baneos
# Modificación : Si tenemos un fichero grabado previo, lo usamos.
# Modificación : Si tenemos un fichero de ips para banear estático, preelaboramos el fichero de baneos.

if [ ! -f $file_running ]; then
   touch $file_running
  
   if [ -f $file_banstatic ]; then
      [ -f $file_banapplied ] && rm $file_banapplied

      for x in `cat $file_banstatic | awk '{print $1}' FS=":"`; do
         echo 2100000000:$x >> $file_banapplied
      done
   fi
  
   if [ -f $file_banstored ]; then
      for l in `cat $file_banstored | awk '{print $2}' FS=":"`; do
         exists=`cat $banfile | grep $l | wc -l`
         if [ "$exists" -lt 1 ]; then
            echo "$unban_date:$l" >> $file_banapplied
         fi
      done
   fi

   # Si es la primera vez que lanzamos el script, debemos crear el fichero donde se guardan
   # las ips baneadas, si no lo hemos creado ya, en los procedimientos anteriores
   [ ! -f $file_banapplied ] && touch $file_banapplied
  
   for x in `cat $file_banapplied | awk '{print $2}' FS=":"`; do
if [ "$Debug" == "True" ];then
echo "Anade Baneo:   iptables -I $chain 1 -s $x -j DROP -m comment --comment \"${Comentario}\""
        else
iptables -I $chain 1 -s $x -j DROP -m comment --comment "${Comentario}" #:${fecha_actual}:${unban_date}"
[[ "$WriteLogWithAction" == "1" ]] && logger -t tag "$WriteLogTag" "Recuperado baneo en inicio a ip ${x}"
fi
   done
fi

#================================================================================================
#====================== BANEO INTENTOS USUARIOS NO VALIDOS Y MAL PASSWORD =======================

# Entraran al for aquellas ips que hayan excedido mas del numero $Trigger los fallos de contrasena y usuario"
for badip in `logread | grep -e 'Login attempt for nonexistent user' -e 'Bad password' | cut -d':' -f 4 | cut -d ' ' -f 8 | uniq -c -f 7 | awk '{ if ( $1 > '$maxtretry' ) print $2}'`; do
    # Si la direccion IP no esta en la lista de baneados, ni en la de recientes accesos correctos ni en la lista blanca, la anadimos a iptables
    # if ! [ "$(grep $badip $file_banapplied)" ] && ! [ "$(logread -l $LinesToFindAcces -e 'Password auth succeeded' | cut -d ':' -f 4 | cut -d ' ' -f 8 | grep $badip)" ] && ! [[ "$WhitelistIPs" == *"$badip"* ]] ; then      # La consola de openwrt es ash y no soporta el like con [[ "algo" == *"algo"* ]] cambiada por linea de abajo
    if ! [ "$(grep $badip $file_banapplied)" ] && ! [ "$(logread -l $LinesToFindAcces -e 'Password auth succeeded' | cut -d ':' -f 4 | cut -d ' ' -f 8 | grep $badip)" ] && ! $(echo "$WhitelistIPs" | grep -q "badip") ; then
        if [ "$Debug" == "True" ];then
echo "Anade Baneo:   iptables -I $chain 1 -s $badip -j DROP -m comment --comment \"${Comentario}\""
        else
iptables -I $chain 1 -s $badip -j DROP -m comment --comment "${Comentario}" #:${fecha_actual}:${unban_date}"
[[ "$WriteLogWithAction" == "1" ]] && logger -t tag "$WriteLogTag" "Baneo a ip ${badip}"

# Anadimos la IP al archivo de baneados "$file_banapplied" y la hora a la que terminara el baneo de esa IP en formato epoch (segundos desde 01-01-1970)
echo "$unban_date:$badip" >> $file_banapplied;
fi
   fi
done

#================================================================================================
#======================== BORRADO DE BANEO TRANSCURRIDO EL TIEMPO ASIGNADO ======================

# Comprueba si alguno de los registros del fichero $file_banapplied tiene una fecha anterior a la actual. En caso afirmativo borra las reglas de iptables
for z in `cat $file_banapplied`; do
unban_time=`echo $z | awk -F ":" '{print $1}'`
unban_ip=`echo $z | awk -F ":" '{print $2}'`
if [ "$unban_time" -lt "$fecha_actual" ]; then
sed -i '/'$unban_ip'/d' $file_banapplied
unban_rule=`iptables -L $chain -n --line-numbers | grep "${Comentario}" | grep -m 1 $unban_ip|awk '{print $1}'`
      
if [ "$Debug" == "True" ];then
echo "Anade Baneo:  iptables -D $chain $unban_rule -m comment --comment \"${Comentario}\""
else
iptables -D $chain $unban_rule -m comment --comment "${Comentario}"
[[ "$WriteLogWithAction" == "1" ]] && logger -t tag "$WriteLogTag" "Unbaneo a ip ${z}"
fi
fi
done
« Última modificación: 30-09-2017, 20:10 (Sábado) por anonimoD »

jaraneda

  • Visitante
Re: Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #52 en: 23-09-2017, 22:00 (Sábado) »
Actualizado. Revisad las opciones que os deja escoger (limite de baneos, log, whitelist, etc...) y sobretodo aumentad el tamaño del buffer del log, esta comentado en el script.

Código: [Seleccionar]
#!/bin/sh
# Descargado de https://foro.seguridadwireless.net/openwrt/script-baneador-de-direcciones-ip-ssh-para-openwrt/msg359325/#msg359325

# Script realizado inicialmente por hardwarer para el foro de seguridadwireless.net
# Este script extrae del log los fallos de autentificacion al servidor SSH (por usuario o contraseña erronea)
# Si los fallos exceden de cierta cantidad banea su IP de origen utilizando el cortafuegos Iptables.
# Tiempo de baneo configurable y tablas de baneo de IP permanentes al reinicio del sistema.
# Probado en OpenWrt 15.05.1 Chaos Chalmer y LEDE 17.01 (El original se probo en Openwrt 14.04 Barrier Breaker)

# Modificaciones Tki2000 (2017-05-15)
# Modificaciones David   (2017-09-20)
# Modificaciones David   (2017-09-23)
#
# 1.- El fichero de baneos se escribe /tmp/, del que OpenWRT carga en RAM y asi no machaca la flash del router
# 2.- Si grabamos previamente el fichero de baneos, de la RAM a la flash, lo usará al inicio.
# 3.- Posibilidad de banear manualmente ips, además de las detectadas en el script, durante un tiempo indefinido.
# 4.- Las IPs repetidas, entre ficheros, no se tienen en cuenta nada más que una vez al banear. (2017-05-30)
# 5.- Puede leer el log n lineas hacia atras para ver si esa ip ha tenido un acceso correcto para omitir baneo
# 6.- Se puede anadir ips a una lista blanca para omitir baneo en caso de que tengas dedazos gordos...
# 7.- Se pueden anadir DNS a la lista blanca para omitir baneo (Requiere paquete hostip para resolver los dns)
# 8.- A la hora de quitar los baneos revisa que tenga el comentario para evitar eliminar una regla que no toca
# 9.- Opcion a registrar en el log los baneos y unbaneos
#
#    ======= A tener en cuenta =========
# Puede estar anadiendo y quitando constantemente un baneo si el log no rota, tiene un buffer pequeno o el tiempo de baneo es corto (amplia buffer, abajo detallo)
# Por defecto el log registra solo unas 340 lineas y perderias accesos no autorizados al rotar el log. Anade en la seccion "config system" del fichero /etc/config/system
#  option log_buffer_size 512  # Por defecto toma 16 y con 256 amplia a unas 5000 lineas y 512 unas 10.000 (no poner mas de 999 ya que se comporta erroneo)
# Si cambiamos la cadena de alcance y todavía quedan reglas andidas, no seran eliminadas, aunque pase el tiempo de unbaneo. Borrar a mano o reiniciar
# Puede que no te banee por tener un acceso reciente pero que pasadas las lineas de busqueda seleccionadas ya no lea tu acceso y no omita el baneo.
#    Lo ideal seria resetear y no buscar fallos hacia atras después de un acceso correcto de esa ip (pendiente por hacer, pero asi ya me funciona bien)
#
#============================================================================================================
#========================================== OPCIONES ========================================================

# Tiempo de baneo (en segundos). Transcurrido ese tiempo se desactiva el baneo y se quita la IP de la lista.
ban_time=36000      # 36000 = 10h, por defecto para pruebas       # 86400 = Un dia = 24 horas    # Dos semanas = 86400 * 14 = 1209600

# Definicion de las rutas de los ficheros que se usan en el script.
fail2ban_running="/tmp/fail2ban.run"             # Para saber si se ejecutado al menos una vez (para carga inicial)
banfile="/tmp/banned.ips"                        # Fichero de baneos. Almacezar siempre en /tmp/ para asegurar que se escribe en RAM
banfile_stored="/etc/fail2ban/banned.ips"        # Fichero que podemos dejar grabado en la flash para volver a comenzar los baneos donde los dejamos.
                                                 # Previamente, antes de reiniciar el router debemos grabar el fichero de la memoria, a la flash.
banfile_static="/etc/fail2ban/banned_static.ips" # Para añadir manualmente ips que queramos banear desde el principio y de manera indefinida. El formato es de una IP por línea.

# Whitelist de ips a omitir en el baneo
MyIPs=$(ifconfig | grep "inet addr" | awk '{ print $2}' | cut -d ":" -f 2 | xargs)     # Todas las ips locales del router (LAN,WAN,local y VPN levantadas)
WhitelistIPs="192.168.1.1"                                                             # Ips que omitiran al baneo. Para mas de una anadir con un espacio
WhitelistDNS="entrada.dnsdinamica.ext otraentrada.no-ip.org"                           # DNS que omitiran al baneo. Requiere hostip para resolver los DNS
WhitelistIPs="$MyIPs $WhitelistIPs $(for DNS in $WhitelistDNS; do hostip $DNS; done | xargs)" # Suma todas las ips de lista blanca e ips de DNS

TriggerBan=4             # Cuantos fallos de contrasena o usuario inexistente ha de encontrar en el log para banear a la ip
LinesToFindAcces=1000    # Cuantos eventos revisa atras en el log para ver si hay un acceso correcto de esa ip. Si lo hay no la baneara. 0 para infinito
Comentario="BRUTEBAN"    # Comentario que ira asociado a la regla anadida a iptables para distinguirla
WriteLogWithAction=0     # 1 para escribir en el log cuando banea o unbanea una ip. Cualquier otra cosa para omitir.
WriteLogTag="f2b_action" # Tag al escriir en log el baneo o unbaneo (si lo has activado con WriteLogWithAction=1)

# Ambito donde se aplicaran los baneos.  En internet, red local o ambas. Descomentar la opcion deseada.
#alcance="input_rule"        # Ambas redes
#alcance="input_lan_rule"    # Solo red local
alcance="input_wan_rule"     # Solo internet    # Por defecto y para hacer pruebas con mejor seguridad desde lan

#=============================================================================================================
#======================================    CRONIFICAR    =====================================================
# Copiar en /etc/fail2ban/fail2ban_openwrt.sh y dar permisos d ejecución: chmod +x /etc/fail2ban/fail2ban_openwrt.sh
# */10 * * * *  /etc/fail2ban/fail2ban_openwrt.sh >> /dev/null 2>&1

#=============================================================================================================
#=====================================    Codigo generico   ==================================================
fecha_actual=`date +%s`
unban_date=`expr $fecha_actual + $ban_time`

#=============================================================================================================
#===================================== COMPROBACION INICIAL ==================================================

# Comprobamos si acabamos de iniciar el router y en ese caso preelaboramos el fichero de baneos
# Modificación : Si tenemos un fichero grabado previo, lo usamos.
# Modificación : Si tenemos un fichero de ips para banear estático, preelaboramos el fichero de baneos.

if [ ! -f $fail2ban_running ]; then
   touch $fail2ban_running
  
   if [ -f $banfile_static ]; then
      [ -f $banfile ] && rm $banfile

      for x in `cat $banfile_static | awk '{print $1}' FS=":"`; do
         echo 2100000000:$x >> $banfile
      done
   fi
  
   if [ -f $banfile_stored ]; then
      for l in `cat $banfile_stored | awk '{print $2}' FS=":"`; do
         exists=`cat $banfile | grep $l | wc -l`
         if [ "$exists" -lt 1 ]; then
            echo "$unban_date:$l" >> $banfile
         fi
      done
   fi

   # Si es la primera vez que lanzamos el script, debemos crear el fichero donde se guardan
   # las ips baneadas, si no lo hemos creado ya, en los procedimientos anteriores
   [ ! -f $banfile ] && touch $banfile
  
   for x in `cat $banfile | awk '{print $2}' FS=":"`; do
        echo "Anade Baneo:   iptables -I $alcance 1 -s $x -j DROP -m comment --comment "${Comentario}"
        iptables -I $alcance 1 -s $x -j DROP -m comment --comment "${Comentario}" #:${fecha_actual}:${unban_date}"
        [[ "$WriteLogWithAction" == "1" ]] && logger -t tag "$WriteLogTag" "Recuperado baneo en inicio a ip ${x}"
   done
fi

#================================================================================================
#====================== BANEO INTENTOS USUARIOS NO VALIDOS Y MAL PASSWORD =======================

# Entraran al for aquellas ips que hayan excedido mas del numero $Trigger los fallos de contrasena y usuario"
for badip in `logread | grep -e 'Login attempt for nonexistent user' -e 'Bad password' | cut -d':' -f 4 | cut -d ' ' -f 8 | uniq -c -f 7 | awk '{ if ( $1 > $TriggerBan ) print $2}'`; do
    # Si la direccion IP no esta en la lista de baneados, ni en la de recientes accesos correctos ni en la lista blanca, la anadimos a iptables
    if ! [ "$(grep $badip $banfile)" ] && ! [ "$(logread -l $LinesToFindAcces -e 'Password auth succeeded' | cut -d ':' -f 4 | cut -d ' ' -f 8 | grep $badip )" ] && ! [[ "$WhitelistIPs" == *"$badip"* ]] ; then
        iptables -I $alcance 1 -s $badip -j DROP -m comment --comment "${Comentario}" #:${fecha_actual}:${unban_date}"
        [[ "$WriteLogWithAction" == "1" ]] && logger -t tag "$WriteLogTag" "Baneo a ip ${badip}"

        # Anadimos la IP al archivo de baneados "$banfile" y la hora a la que terminara el baneo de esa IP en formato epoch (segundos desde 01-01-1970)
        echo "$unban_date:$badip" >> $banfile;
   fi
done

#================================================================================================
#======================== BORRADO DE BANEO TRANSCURRIDO EL TIEMPO ASIGNADO ======================

# Comprueba si alguno de los registros del fichero $banfile tiene una fecha anterior a la actual. En caso afirmativo borra las reglas de iptables
for z in `cat $banfile`; do
   unban_time=`echo $z | awk -F ":" '{print $1}'`
   unban_ip=`echo $z | awk -F ":" '{print $2}'`
   if [ "$unban_time" -lt "$fecha_actual" ]; then
      sed -i '/'$unban_ip'/d' $banfile
      unban_rule=`iptables -L $alcance -n --line-numbers | grep "${Comentario}" | grep -m 1 $unban_ip|awk '{print $1}'`
      iptables -D $alcance $unban_rule -m comment --comment "${Comentario}"
      [[ "$WriteLogWithAction" == "1" ]] && logger -t tag "$WriteLogTag" "Unbaneo a ip ${z}"
   fi
done
ire probando las actualizaciones y comento, gracias camaradas

Enviado desde mi ONE A2005 mediante Tapatalk


jaraneda

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #53 en: 25-09-2017, 17:09 (Lunes) »
consulta, debo instalarlo de nuevo o solo cambiando el script funcionaria? solo lo cambie
si debe instalarse se hace de la misma manera o de otra forma?
lo consulto porque no me muestra ninguna info en el firewall por luci y anteriormente lo hacia.

 Saludos y gracias.

pd: lo instale normamente pero agregue el nuevo script, revisare su comportamiento en el transcurso del dia y comento.
« Última modificación: 25-09-2017, 17:56 (Lunes) por jaraneda »

anonimoD

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #54 en: 26-09-2017, 17:14 (Martes) »
consulta, debo instalarlo de nuevo o solo cambiando el script funcionaria? solo lo cambie
si debe instalarse se hace de la misma manera o de otra forma?
lo consulto porque no me muestra ninguna info en el firewall por luci y anteriormente lo hacia.

 Saludos y gracias.

pd: lo instale normamente pero agregue el nuevo script, revisare su comportamiento en el transcurso del dia y comento.



El script que he retocado se basa en el de TKI2000, el cual es para que lo insertéis a vuestro gusto en el cron. Cron es el programador de tareas de linux y se puede retocar con crontab -e o bien desde luci, en la seccion Sheluded Tasks. Meter un instalador y servicio me parece innecesario y verlo ahí no quiere decir que este funcionando, si sabes que tienes accesos no autorizados los mejor que puedes hacer para asegurarte es con una ip local hacer varios accesos fallidos y ver que te añade una regla de baneo en el firewall (recuerda que se ejecuta cada x minutos, por lo que hasta que no el toque ejecutarse no te baneará).  Dentro del script hay anotaciones sobre ello y otras opciones que puedes configurar, como por ejemplo añadir un nombre dns o ips a una lista de whitelist para que no te la baneé, tiempo de baneo, modificar la cantidad de intentos fallidos sobre la que aplicará el baneo, y recuerda que por defecto los logs son pequeños, si no los amplias da igual que script utilices, pues en el log se estarán perdiendo registros. Dentro del script también lo comento.

jaraneda

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #55 en: 26-09-2017, 18:32 (Martes) »
estoy haciendo pruebas, esta super bien documentado en el propio script.
se agradece

Enviado desde mi ONE A2005 mediante Tapatalk


anonimoD

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #56 en: 26-09-2017, 20:07 (Martes) »
estoy haciendo pruebas, esta super bien documentado en el propio script.
se agradece

Enviado desde mi ONE A2005 mediante Tapatalk



De nada, lo ideal es que siempre quede mínimamente explicado, no solo para terceras partes, también para uno mismo si lo retoma al cabo de unos años.

Un saludo,
David.

anonimoD

  • Visitante
Re: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
« Respuesta #57 en: 30-09-2017, 20:04 (Sábado) »
estoy haciendo pruebas, esta super bien documentado en el propio script.
se agradece

Enviado desde mi ONE A2005 mediante Tapatalk


A todo el que haya utilizado mi último script, hay dos fallos. Por favor, copiadlo de nuevo. Ya he editado mi comentario, por lo que podéis tomarlo de el. El nuevo es el que tiene modificaciones del día (2017-09-30)

@Jaraneda copia de nuevo el script. Tenía dos fallos por que el termimal de openwrt(ash) no soportaba correctamente una función que si me iba en bash, por ejemplo las whitelist no se aplicaban bien. Ya lo he corregido en mi comentario de arriba donde pegué el código. También cambié más cosas para que sea algo más comprensible y homogéneo además de añadir algo más de instrucciones.
Edita por favor el comentario donde me respondes al código y elimina la parte del código que aparece en tu respuesta para que solo quede el correcto. Gracias y disculpa!