SSH

El servicio SSH es uno de los más fundamentales e importantes que debemos proteger con una mayor seguridad en nuestro servidor.

Es una puerta que abre el control total y por ende no debemos dejar las configuraciones predeterminadas puesto que se lanzan una gran cantidad de ataques por hora tratando de accesar a ese servicio.

Cambiar el puerto SSH

Para empezar, debemos recordar que el puerto predeterminado del servidor SSH es el 22.

Por lo que el primer paso será cambiar el puerto para que por más que intenten hacer ataques a nuestro servidor por el puerto 22, no tengan éxito.

Nos conectamos a nuestro servidor para poder configurar al servidor SSH que va a utilizar otro puerto.

ssh [email protected]
nano /etc/ssh/sshd_config

Y descomentamos donde la parte de #Port 22

Y colocamos el nuevo puerto en su lugar.

Por ejemplo

Port 1234

Después, ejecutamos el siguiente comando, donde PORT es nuestro nuevo puerto.

semanage port -a -t ssh_port_t -p tcp PORT

Cerramos la conexión con el comando exit.

Ahora debemos indicar que el nuevo puerto debe estar abierto, desde nuestro firewall. Si usamos CSF, ya sabemos en donde abrir el puerto puesto que lo vimos en un tutorial anterior.

Abrir el puerto SSH

Nos dirigimos a la sección “Allow incoming TCP ports” y “Allow outgoing TCP ports” y quitamos el 22 y agregamos el puerto que queramos que sea el nuevo para SSH.

No debemos elegir entre 1 y 1024 ya que están reservados, y debemos tener mucho cuidado de no elegir alguno otro que ya esté en uso o sea de uso muy conocido.

Por ejemplo 8080 y 8008 son normalmente usados como puertos alternos para Apache, 3306 para MySQL, etc.

Guardamos los cambios en el Firewall y reiniciamos el servidor SSH.

Desde WHM es Reinicie los servicios -> Servidor SSH.

Para poder verificar que quedó correctamente configurado intentaremos conectarnos con el nuevo puerto.

Ejemplo con el puerto 1234. IP será la IP de tu servidor.

ssh [email protected] -p 1234

Agregar nuestra clave pública al servidor

Podemos crear una llave con la cual podamos iniciar entrar al servidor sin la necesidad de colocar la clave root.

Ésta llave debe tener contraseña, de lo contrario, cualquier persona podría entrar, y si lo combinamos con que nadie pueda entrar por SSH utilizando la contraseña root, sino con llave, entonces estamos dándole una mayor y mejor seguridad a nuestro servidor.

Si no tienes una llave criptográfica creada, vamos a ver los pasos en Linux.

ssh-keygen

Nos preguntará qué nombre tendrá la llave. Es mejor dejar le nombre predeterminado (Darle enter) o tendremos que indicar el nombre de la llave siempre que queramos conectarnos.

Después nos preguntará por una contraseña. Lo mejor es poner una contraseña segura que contenga letras mayúsculas, minúsculas, números y símbolos.

Después de ello se generará nuestra llave, y ahora debemos utilizar la clave pública para agregarla al servidor en WHM.

Nos dirigimos a Centro de seguridad -> Administrar claves SSH de raíz

Y damos clic en “Import key”.

En la parte donde nos indican que elijamos un nombre, colocaremos alguno que indique que se trata de la llave de nuestro dispositivo.

Por ejemplo, puedes agregar las claves públicas de tu computadora de escritorio, tu portátil, tu móvil, computadora de trabajo, tableta, etc. Entonces le daremos un nombre que nos haga identificar a qué dispositivo pertenece.

De ahí nos dirigimos hasta la parte donde nos indica que peguemos la clave pública.

Para obtenerla podemos extraerla desde donde se guardó.

En linux sería ejecutar en la consola el siguiente comando.

cat ~/.ssh/id_rsa.pub

Lo copiamos y pegamos en la parte que se indicó.

Damos clic en Import Key y después en Return to SSH manager.

Una vez que realizamos los pasos podremos ver nuestra llave listada, y debemos dar clic en Manage Authorization para poder habilitar la llave.

Una vez que la autoricemos entonces podremos hacer una prueba de conexión y ya no nos preguntará la contraseña de la cuenta root, sino la contraseña de la llave criptográfica que dimos de alta.

Hay que tener en cuenta que sólo podremos hacer la conexión con la llave en el dispositivo donde generamos dicha llave.

Si intentamos entrar desde otro dispositivo entonces no podremos utilizar la llave dada de alta en el primero.

Por lo que si queremos accesar desde varios dispositivos, entonces será necesario generar y agregar las llaves de cada uno.

Autorización con contraseña

Como mencionábamos líneas arriba, podemos indicar al servidor que no permita accesar con la clave root, sino con la clave de nuestra llave criptográfica.

De esta manera aunque tuvieran la contraseña root, no podrían iniciar sesión mediante SSH.

Para poder utilizar esta mejora de seguridad, debemos ir a:

Centro de seguridad -> Ajustar la autorización con contraseña de SSH

Y si está habilitado el inicio de sesión con contraseña, damos clic en el botón “Disable Password Auth”.

Y listo. Sólo las personas que conozcan el puerto SSH, tengan una llave digital dada de alta en el servidor y autorizados podrán entrar al servidor.

Gracias a todos estos pasos dotamos de más seguridad al servidor y nos ahorraremos recursos y muchos, muchos correos de notificación de intentos de intrusión por el puerto 22.

Categorías: tutoriales

angelinux

Desarrollador de páginas web desde el año 2000 y con experiencia en programación de sistemas para empresas desde el 2008; cofundador de CONSoluciones; autor del blog de software libre “Angelinux-slack”; docente en maestría en UPAV y fundador de la distribución Linux Falco que está en desarrollo para la Universidad Veracruzana. Además, ponente, organizador de congreso, laborista social, impartidor de cursos de programación y servidores Linux, webmaster, y ex invitado en programa de televisión.

Deja un comentario