Resumen y requisitos


Parte del hardening que se debe realizar a un servidor Linux, es la protección del protocolo ssh, el cual nos permite administrar remotamente via consola a nuestro servidor Linux, el puerto por defecto del protocolo ssh es el 22

Para realizar la siguiente actividad debemos considerar los siguiente:

  • Tener credenciales de user root o de un usuario con permisos de sudo

  • IP del Servidor

  • Cliente SSH, puede ser putty, superputty, SecureCRT o el de su preferencia

Desarrollo

Para este ejemplo iniciaremos sesión con el usuario root de nuestro server.


Ahora con la utilidad nano entraremos al fichero sshd_config, esto lo realizaremos con el comando nano /etc/ssh/sshd_config.


Obtendremos una ventana similar a esta.


Lo primero que tenemos indicar es decirle a ssh que el user root no podrá loguear, esto lo encontremos en la línea PermitRootLogin.


Nosotros le diremos que no.


Ahora por defecto ssh trabaja en el puerto 22, eso lo podemos cambiar en la línea Port, recordando que los puertos desde el 1 al 1024 son puerto reservado, desde el 1025 al 49151 podremos usar para cambiar el puerto por default de ssh.


En este ejemplo usaremos el puerto 22222


Lo último por configurar en ssh es decirle que usuarios se podrán loguear, el máximo de sesiones y los máximos de equivocaciones, para esto añadiremos las líneas MaxAuthTries, MaxSessionsy AllowUsers.


Ahora guardaremos los cambios esto lo haremos presionando la tecla CTRL + X, nos mostrará un mensaje al cual le diremos que si (S)




Procedemos a cambiar la clave del root, esto lo realizaremos con el comando passwd root


Nos pedirá la nueva clave y que la volvamos a confirmar.


Para hacer pruebas crearemos un usuario al cual llamaremos testing, esto lo haremos con el comando useradd testing


Le procedemos a dar permisos de sudo, para esto editaremos el fichero sudoers lo cual realizaremos con el comando nano /etc/sudoers.


En esta línea encontraremos los usuarios que tienen permisos privilegiados


Añadiremos la línea teasting ALL=(ALL:ALL) ALL


Guardamos el fichero con CTRL + X, cambiamos la clave al user testing con el comando passwd testing.


Probaremos el inicio de sesión del usuario testing


Usaremos sudo -i, para comprobar que testing tenga permisos de sudo


Ahora reiniciaremos el servicio ssh para que los cambios sean guardados, esto se lo puede hacer de maneras dependiendo de la versión de nuestro OS

  • service ssh restart para versiones antiguas
  • systemctl restart sshd para versiones actuales



Ahora con haciendo uso de nuestro cliente ssh preferido realizaremos las pruebas, para este ejemplo la realizaremos con SuperPutty


Al querer iniciar sesión nos mostrara el primer error, eso saldrá porque cambiamos el puerto ssh, recordando que el puerto por defecto es el 22.


Como configuramos el puerto 22222, debemos decirle a SuperPutty a que puerto deseamos conectarnos usando el protocolo ssh


Nos mostrará una advertencia que corresponde a nuestra llave ssh, a la cual le diremos que Si, esta advertencia solo la mostrará una vez.


Ahora probaremos el inicio de sesión de root, en el cual nos dirá acceso denegado.


Al momento de poner 3 veces la clave nos mostrará un error de autenticación fallida, esto porque configuramos en MaxAuthTries que al 3 intento fallido cierra la conexión.


Ahora realizaremos las mismas pruebas con el usuario testing.



Probaremos fallando 3 veces la clave en el usuario Leonardo, el cual es el único que está autorizado para iniciar sesión por ssh esto se configuro en el AllowUsers


En esta ocasión si ingresaremos el password correcto del user Leonardo


Como nota final, si desde nuestro user queremos iniciar sesión con otro user escribiremos el comando su – user, que para este ejemplo será su – testing, nos pedirá la clave y ya tendremos acceso.