Proteger el acceso por SSH

Noviembre 2016




¿Qué es SSH?


SSH es un protocolo que permite la comunicación segura entre dos sistemas mediante claves privadas y claves públicas. Usualmente es utilizado para la gestión de servidores bajo Linux. Este protocolo ha sido desarrollado para reemplazar a Telnet, actualmente se encuentra en su segunda versión.

El problema


A menudo, cuando un servidor es atacado es porque el administrador del sistema ha dejado el puerto 22 para ssh, no ha desactivado el usuario root y su contraseña era una palabra del diccionario.

La solución


Nota: las siguientes operaciones han sido realizadas bajo Linux Debian 5

Durante la instalación del servidor, ssh es configurado en el puerto 22, es decir el puerto por defecto y solo existe un usuario en la maquina, el root. Este usuario tiene todos los poderes y esto es muy peligroso!
Vamos a solucionar este problema, cambiando el puerto ssh y prohibiendo la conexión como root.

Para comenzar, conéctate como root

Creación de un nuevo usuario


Escribe el comando de abajo, reemplazando tunombre por el nombre del nuevo usuario.
adduser tunombre


En seguida, se te pedirá tu contraseña, no elijas una contraseña del diccionario, elije más bien una cadena de caracteres que no signifique nada.
Se te pedirá que ingreses alguna información (opcional)
Full Name [] = Tu nombre y apellido
Room Number [] = Numero de tu oficina
Work Phone [] = El teléfono de tu oficina
Home Phone [] = El teléfono de casa
Other [] = Otros

El nuevo usuario ha sido creado, pero aun el acceso al servidor es cosa fácil para los hackers.

Cambiar el puerto por defecto


El puerto SSH por defecto es el 22, el problema es que todos los hackers lo primero que hacen es intentar acceder al servidor por este puerto. Para cambiarlo, abre con tu editor favorito (en mi caso nano) el archivo de configuración de ssh (en Debian es /etc/ssh/sshd_config).
Una vez en el archivo, ve a la línea puerto 22 y cambia el 22 por cualquier otro número. No salgas del archivo, lo utilizaremos en la siguiente etapa.

Desactivar el acceso como root


Siempre en el archivo de configuración de SSH, busca la línea PermitRootLogin on y cambia el on por off.

Número de conexiones no autenticadas en el servidor


Esta etapa no es obligatoria pero es importante.
En el archivo de configuración de ssh, busca la línea que comienza con MaxStartups, si no la encuentras, agrégala. Esta opción permite definir el número de intentos de conexiones no autenticadas por ip antes de bloquear el ip.
Un ejemplo:
MaxStartups 5:15:20


El 5 corresponde al número máximo de intentos antes de bloquear la conexión
El 15 corresponde al porcentaje de posibilidades antes de realizar un nuevo intento
El 20 corresponde al número de conexiones máxima

Para que los cambios surjan efecto, debes reiniciar el servidor SSH o todo el servidor. En la próxima conexión al servidor habrá que utilizar el nuevo puerto y el nuevo usuario.
Si deseas utilizar los privilegios de usuario root, utiliza el comando su

Consulta también :
El documento «Proteger el acceso por SSH» de CCM (es.ccm.net) se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo siempre y cuando respetes las condiciones de dicha licencia y des crédito a CCM.