Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
21-08-2017, 04:36 (Lunes)
Inicio Ayuda Reglas Buscar Ingresar Registrarse
Noticias:
Liberada wifislax64-1.1 version final para descargar

Videos Downloader




+  Seguridad Wireless - Wifi
|-+  Equipos y materiales
| |-+  Puntos de acceso, routers, switchs y bridges
| | |-+  Openwrt & LEDE (Moderadores: jar229, Noltari, Pteridium, Tki2000)
| | | |-+  Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: 1 2 [3] Ir Abajo Imprimir
Autor Tema: Script Banear direcciones IP contra ataques SSH (Openwrt BB 14.07)  (Leído 10616 veces)
Tki2000
Moderador
*
Desconectado Desconectado

Mensajes: 1704


Ver Perfil
« Respuesta #40 : 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.
En línea

No habrás entendido algo, hasta que seas capaz de explicárselo a tu abuela...
Hacemos pantallas con píxeles casi invisibles, para luego ampliar la letra porque no la vemos... Bonita paradoja...
Creamos analfabetos tecnológicos con una velocidad pasmosa. Todo el mundo "maneja" tecnología, casi nadie sabe lo que tiene entre las manos, pero todo el mundo opina.
El analfabetismo, antes, pasaba desapercibido. Ahora, se transmite por Internet y las redes sociales.
xcl2000
**
Desconectado Desconectado

Mensajes: 3


Ver Perfil
« Respuesta #41 : 09-06-2017, 14:37 (Viernes) »

El scrip original instalado en Exroot Pulpstone v3.1 OpenWrt Chaos Calmer 15.05.1 r49389....funcionando


En línea
eduperez
*****
Desconectado Desconectado

Mensajes: 168


Ver Perfil
« Respuesta #42 : 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:
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:
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 » En línea
Tki2000
Moderador
*
Desconectado Desconectado

Mensajes: 1704


Ver Perfil
« Respuesta #43 : 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:
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:
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.
En línea

No habrás entendido algo, hasta que seas capaz de explicárselo a tu abuela...
Hacemos pantallas con píxeles casi invisibles, para luego ampliar la letra porque no la vemos... Bonita paradoja...
Creamos analfabetos tecnológicos con una velocidad pasmosa. Todo el mundo "maneja" tecnología, casi nadie sabe lo que tiene entre las manos, pero todo el mundo opina.
El analfabetismo, antes, pasaba desapercibido. Ahora, se transmite por Internet y las redes sociales.
eduperez
*****
Desconectado Desconectado

Mensajes: 168


Ver Perfil
« Respuesta #44 : 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)  Cheesy
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 » En línea
xcl2000
**
Desconectado Desconectado

Mensajes: 3


Ver Perfil
« Respuesta #45 : 18-07-2017, 20:26 (Martes) »

Yo he instalado el script en LEDE





y funciona...



Saludos  Angry
« Última modificación: 18-07-2017, 20:27 (Martes) por xcl2000 » En línea
Tki2000
Moderador
*
Desconectado Desconectado

Mensajes: 1704


Ver Perfil
« Respuesta #46 : 19-07-2017, 18:15 (Mi?rcoles) »

Yo he instalado el script en LEDE





y funciona...



Saludos  Angry

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.
En línea

No habrás entendido algo, hasta que seas capaz de explicárselo a tu abuela...
Hacemos pantallas con píxeles casi invisibles, para luego ampliar la letra porque no la vemos... Bonita paradoja...
Creamos analfabetos tecnológicos con una velocidad pasmosa. Todo el mundo "maneja" tecnología, casi nadie sabe lo que tiene entre las manos, pero todo el mundo opina.
El analfabetismo, antes, pasaba desapercibido. Ahora, se transmite por Internet y las redes sociales.
Páginas: 1 2 [3] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Las cookies de este sitio web se usan para personalizar el contenido y los anuncios, ofrecer funciones de redes sociales y analizar el tráfico. Además, compartimos información sobre el uso que haga del sitio web con nuestros partners de redes sociales, publicidad y análisis web, quienes pueden combinarla con otra información que les haya proporcionado o que hayan recopilado a partir del uso que haya hecho de sus servicios
Si continúa navegando consideramos que acepta su uso. OK Más información | Y más
Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines
SMFAds for Free Forums