Re: Intento de intrusión
Hola Pablo
Hola Ramiro.
Aquí el consejo de sabios, je,je. Es broma. :-D
Se agradece el email recibido y todos los consejos.
En mi opinión deberías hacer dos cosas:
Asegurar ssh (como ya te han dicho)
y configurar tu firewall para evitar escaneos, bloquear ips, etc.
¡En ello estamos gracias a tu email!
Lo que te está ocurriendo es un ataque por fuerza bruta contra tu servidor
ssh. Aquí tienes información:
http://www.whitedust.net/article/27/Recent%20SSH%20Brute-Force%20Attacks/
Aunque si buscas en google verás que hay información sobre esto.
http://www.google.es/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2005-09,GGGL:es&q=ssh+fuerza+bruta
Efectivamente ese es el ataque. Aunque veo que teniendo buenas claves no
debería haber problema. Sería una verdadera casualidad que adivinase la
clave de un usuario. En ese sistema sólo hay dos usuarios y con buenas
claves.
Para asegurar ssh yo te aconsejo que cambies el puerto de escucha (por defecto
22), deshabilites el acceso a root y uses claves en lugar de password.
Para eso en el archivo /etc/ssh/sshd_config modifica lo siguiente:
Port XX (pones el puerto que quieras)
Voy a hacerte caso y cambiaré el puerto al XX. Claro que si este intruso
hace un escaneo de puertos aparecerá ssh escuchando en XX y no
adelantaré nada. ¿O se me escapa algo?
PermitRootLogin no (para evitar logeos de root)
Acabo de hacer eso ahora miso. Así si quiere ser root al menos tiene que
pasar por ser usuario normal antes... ;-)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PasswordAuthentication no (para deshabilitar el logeo con password)
Esto ya es más sofisticado y me lo voy a leer con calma, pero tiene muy
buena pinta. Lo desconocía completamente.
Creo que no me dejo nada.
Para deshabilitar el logeo de los clientes por medio de una contraseña, debes
crear una clave en cada cliente que accede al servidor y luego copiarla en
este.
Para eso haces en el cliente:
$ssh-keygen -t rsa -b 1024 (creo que es así, mira el man)
Eso te crea un archivo id_rsa.pub (tu clave pública), que debes añadir/copiar
el contenido de este en el path de tu servidor /home/usuario.ssh/know_hosts
Esto lo que hace es que sólo permitirá el acceso por ssh de ese usuario al
equipo que tenga esa clave, sin permitir poner la contraseña a aquellos
equipos que no disponen de esta.
Si creas la clave sin contraseña, podrás entrar directamente, y no es un fallo
de seguridad.
Con todo esto lo que haces e ocultar tu servicio ssh al exterior y evitar que
cualquiera pueda estar probando usuarios y contraseñas, que es lo que te está
ocurriendo.
Respecto al firewall. Siempre es interesante, por no decir imprescindible,
usarlo. Te aconsejo que mires el manual que han puesto, y lo configures para
bloquear las ips que te tocan las narices y bloquees escaneos de redes. Entre
otras cosas, claro.
Respecto a la necesitdad del firewall, me dí cuenta de ello en el
momento que estaba observando el ataque. El servidor ssh está en la
Universidad y estoy entrando desde mi casa. Al hacer cat
/var/log/auth.log aparecían todos los intentos logeados de adivinar la
clave. En ese momento me acordé del único firewall que uso en mi casa:
Firestarter, pero claro, es en modo gráfico. Como no es plan de
habilitar las conexiones X con el servidor ssh y añadir más
inseguridades, creo que ha llegado la hora de aprender iptables a pedal.
En ese momento quería inhabilitar los paquetes procedentes de esa IP y
fastidiar al hombre este pero claro, no tengo ni idea. Si deshabilito
ssh me cierro a mí mismo la posibilidad de entrar hasta el lunes que
vaya por allí y encienda de nuevo la máquina. Me conecté a la IP con un
navegador y era una WEB en chino. ¿Hay alguna manera de echar a este
hombre sin iptables. Me dió miedo matar alguno de los procesos de sshd,
no fuera a ser que me fastidiase a mi mismo.
Yo tengo un script, que encontré hace tiempo, que usa mysql para almacenar
intentos de acceso y luego crear la regla de iptables necesaria para bloquear
esa ip. Si quieres te lo puedo pasar, pero a mi personalmente no me parece
demasiado útil bloquear ips, pues estas en muchos casos son dinámicas.
Gracias, de momento no lo necesito, eso es mucho más sofisticado ;-)
Por último, como dijo nosequien, la mejor defensa es un buen ataque. Usa nmap
para ver los puertos de este individuo y podrás ver que tiene ssh abierto, y
curiosamente no ha aplicado ninguna seguridad. Podrías hacer lo mismo que él
esta haciendo.
Gracias por tu ayuda Pablo.
Que tengas suerte.
Muchas gracias.
Saludos, si tengo alguna duda de iptables ya se donde acudir.
Ramiro.
Reply to: