Protección contra ssh bruteforcing en servidores Linux

Uthark

Lanero Reconocido
11 Sep 2004
2,822
Muchachos cordial saludo a todos.

Verán, tengo un problemita de seguridad en mi servidor Debian 4.0, y es que estoy siendo víctima de intentos de penetración por SSH, es decir, mi syslog me reporta más de 10.000 intentos de conexión durante los últimos 7 días, similares a éstos:

Sep 18 10:12:51 vps sshd[8119]: Invalid user h from 80.45.95.185

Leyendo en internet veo que hay aplicaciones como sshguard y bfd, que lo que hacen es examinar el syslog y en base a reglas establecidas, crean reglas de firewall para frenar los intentos de conexión...

El problema? que ninguna es efectiva según parece... sshguard bloquea siempre y cuando los intentos sean seguidos, es decir, que se usen los 3 intentos que hay cuando uno intenta por ejemplo:


Pero los atacantes como que usan varios sockets y eso no resultó efectivo. El BFD no lo pude configurar, o eso parece porque al ejecutarlo mediante ./bfd -s , no sucede nada, ni se bloquean los intentos.

Mi pregunta a los LANeros: Cómo harían ustedes para bloquear estos intentos de conexión?
 
Segun la linea que pone del log, estan intentando entrar con el usuario "h", ese usuario existe en el sistema? Si no existe, porque se preocupa?

Algunas formas de proteccion:

- Si usa pam puede instalar pam_abl

- BlockHosts tiene modulos para integrarse con OpenSSH, ProFTPD y svftpd

- DenyHosts

Y hay muchas mas opciones.
 
pues.. yo utilizo algo un poco menos sofisticado....

yo cierro, por iptables los inputs al puerto que utilizo para SSH (que para cada servidor utilizo uno distinto), luego en la configuración del openssh-server, le digo que solo puede ingresar un solo usuario desde una sola dirección ip

Vendría a ser algo asi:

iptables:
Código:
iptables -I INPUT -s dir_ip -p tcp -m tcp --dport 22 -j ACCEPT

ssh
Código:
allowusers soporte@201.232.85.102 soporte@172.20.2.*
 
le estan consumiendo mucho, eso si es raro, yo nunca he notado siquiera un consumo ni medio significativo
 
Uthark dijo:
Aunque me preocupa el uso de CPU por parte del sshd y del syslog.... :(

Eso no consume nada de CPU, antes que CPU consumiria ancho de banda, pero el ssh no permite que lo bombardeen con intentos uno tras de otro, hay tiempos de espera precisamente para evitar eso. Y el consumo del log tampoco lo veo grave, los logs se truncan solos si el sistema esta bien configurado.
 
Krieg dijo:
Eso no consume nada de CPU, antes que CPU consumiria ancho de banda, pero el ssh no permite que lo bombardeen con intentos uno tras de otro, hay tiempos de espera precisamente para evitar eso. Y el consumo del log tampoco lo veo grave, los logs se truncan solos si el sistema esta bien configurado.

Claro, entre intento e intento hay como 3 segundos, sin embargo que pasa si el atacante intenta varios logins al mismo tiempo??
Sep 15 14:01:18 vps sshd[28577]: Invalid user dazzy from 200.93.131.142
Sep 15 14:01:18 vps sshd[28579]: Invalid user login from 200.93.131.142
Sep 15 14:01:19 vps sshd[28600]: Invalid user eatshitanddie from 200.93.131.142
Sep 15 14:01:19 vps sshd[28602]: Invalid user dazzy from 200.93.131.142
Sep 15 14:01:19 vps sshd[28603]: Invalid user login from 200.93.131.142
Sep 15 14:01:20 vps sshd[28613]: Invalid user elstan from 200.93.131.142
Sep 15 14:01:20 vps sshd[28622]: Invalid user dazzy from 200.93.131.142
Sep 15 14:01:20 vps sshd[28623]: Invalid user login from 200.93.131.142
Sep 15 14:01:21 vps sshd[28635]: Invalid user katarzyna.becker from 200.93.131.142
Sep 15 14:01:21 vps sshd[28637]: Invalid user dazzy from 200.93.131.142
Sep 15 14:01:21 vps sshd[28638]: Invalid user login from 200.93.131.142
Sep 15 14:01:22 vps sshd[28654]: Invalid user kasia from 200.93.131.142
Sep 15 14:01:22 vps sshd[28657]: Invalid user dazzy from 200.93.131.142
Sep 15 14:01:22 vps sshd[28658]: Invalid user login from 200.93.131.142
Sep 15 14:01:23 vps sshd[29720]: Invalid user karina from 200.93.131.142
Sep 15 14:01:23 vps sshd[29724]: Invalid user dazzy from 200.93.131.142
Sep 15 14:01:24 vps sshd[29737]: Invalid user kateczyk from 200.93.131.142
Sep 15 14:01:24 vps sshd[29739]: Invalid user dazzy from 200.93.131.142
Sep 15 14:01:25 vps sshd[29758]: Invalid user konrad from 200.93.131.142
Sep 15 14:01:25 vps sshd[29760]: Invalid user dazzy from 200.93.131.142

Por ejemplo miren los intervalos de tiempo entre los ataques... son casi 2 o 3 por segundo.
 
pues entonces muy fácil...

si quiere terminar con ese ataque en particular, tiene dos opciones..

1a - mueva el puerto del ssh a otro "no standar"
2a - Bloqueele el INPUT a esa dirección IP:
Código:
iptables -I INPUT -p tcp -s 200.93.131.142 -j DROP
 
Tampoco que sea demasiada carga, yo tengo dos maquinitas que reciben cientos de esas cosas y el ssh aparece con 0 de cpu.
 
Chiche-0_o dijo:
pues entonces muy fácil...

si quiere terminar con ese ataque en particular, tiene dos opciones..

1a - mueva el puerto del ssh a otro "no standar"
2a - Bloqueele el INPUT a esa dirección IP:
Código:
iptables -I INPUT -p tcp -s 200.93.131.142 -j DROP
Pues sí, esa es la solución perfecta, pero es manual!! yo lo que necesito es que estas reglas se creen automáticamente para cuando uno no esté ahí al frente.

Pero bueno, si Uds. dicen que no hay problema por el lado de la seguridad y de los recursos... pues bueno, vamos a dejarlo asi, aunque si me interesaria alguna protección como el pam_abl que dice el maestro Krieg.
 
Uthark dijo:
Pues sí, esa es la solución perfecta, pero es manual!! yo lo que necesito es que estas reglas se creen automáticamente para cuando uno no esté ahí al frente.

Pero bueno, si Uds. dicen que no hay problema por el lado de la seguridad y de los recursos... pues bueno, vamos a dejarlo asi, aunque si me interesaria alguna protección como el pam_abl que dice el maestro Krieg.
Pues la solución te la dí en mi primer post :S
 
Puedes instalar algo como el Portsentry o el CPF es un Straight-forward SPI iptables firewall script. Lo puedes conseguir aqui http://www.configserver.com/cp/csf.html es para Cpanelpero tambien para Linux generico, te protege el puerto SSH con Login Failure Daemon, limitando el numero de conexiones por tiempo y por IP, ademas se puede integrar con Webmin por que trae el modulo de configuracion. Ademas tiene esta aplicacion Block traffic on the DShield Block List and the Spamhaus DROP List que te protege contra los segmentos de red de Internet que se encuentren bloqueados por este tipo de practicas. EN fin que mas se puede pedir es facil de Instalr y lo tienes corriendo en unos 5 minutos. Y como te decian antes en el Foro cambia el puerto SSH a otro, esto no evita los ataques pero ..... por lo menos tienen que buscar donde esta el puerto.

El portsentry tambien bloquea las IP atacantes pòr el tiempo que Tu le indiques ademas de proteger otros puertos. Este tambien tiene un modulo para WebMin y me parece my facil de Instalar y configurar.

Y lo mas importante estas dos aplicaciones lo Hacen de forma AUTOMATICA, sin necesidad de Tu estar en frente del PC.
CARLOS GARCIA
 

Los últimos temas