Primeros pasos con SSH

Resultado de imagen

SSH es uno de los protocolos más utilizados para la gestión de nuestros servidores de forma remota. No solo nos va a permitir establecer una conexión segura, sino que también nos permitirá subir archivos a través de SFTP.

Nos va a asegurar confidencialidad (los datos van cifrados), autenticación (ya sea mediante usuario y contraseña o mediante la utilización de llaves) e integridad (si los datos son modificados nos va a permitir detectarlo).

En esta primera entrada voy a intentar aportar unos primeros pasos con este servicio para ayudarnos a mejorar la seguridad de nuestro servidor.

Lo primero de todo es instalarlo en nuestro sistema:

sudo apt-get install openssh-server

Para editar el fichero de configuración utilizaremos el editor que más nos guste en la siguiente ruta:

nano /etc/ssh/sshd_config

Para iniciar, parar, reiniciar y saber el estado del servicio será con los siguientes comandos:

/etc/init.d/ssh start
/etc/init.d/ssh stop
/etc/init.d/ssh restart
/etc/init.d/ssh status

Y para establecer una conexión en nuestro servidor a través de dicho protocolo utilizaremos:

ssh usuario@direccion_ip

Primeros pasos en la configuración

1-Cambiar el puerto de acceso por defecto

Uno de los primeros cambios que debemos realizar en nuestro servidor SSH es el de cambiar el puerto de acceso (por defecto el 22). De esta manera evitaremos que puedan acceder a nuestro servidor en caso de escaneo masivo.
Para ello editaremos el fichero sshd_config donde encontraremos la siguiente linea:

# What ports, IPs and protocols we listen for
Port 22

Únicamente deberemos cambiar el valor numérico para modificar el puerto, asegurándonos de que el puerto que vayamos a introducir no esté siendo utilizado.
Una vez modificado deberemos ejecutar un reinicio del servicio.
A partir de ahora para conectarnos al servidor por SSH deberemos de hacerlo de la siguiente manera:

ssh usuario@direccion_ip -p puerto

 

2-Deshabilitar el acceso mediante el usuario root

Por defecto, los bots que intentan acceder a nuestro sistema realizan un escaneo al puerto 22 e intentan acceder mediante el usuario “root. Para ponérselo un poco más difícil lo más recomendable sería bloquear el acceso mediante ese usuario y crearnos uno sin permisos de administrador. De esta manera también evitaremos ataques por fuerza bruta para intentar adivinar la clave de acceso.
Primero vamos a crear un nuevo usuario en nuestro sistema:

adduser nombre_usuario

A partir de ahora, cada vez que necesitemos ejecutar acciones como root usaremos el siguiente comando:

su root

Y modificaremos la siguiente sentencia en el fichero de configuración de SSH, para que se deshabilite el acceso mediante el usuario root:

PermitRootLogin no

Por último reiniciaremos el servicio y habremos aplicado los cambios.

3-Directivas interesantes del fichero de configuración

A continuación os dejo una lista de opciones de configuración que podreis añadir a vuestro fichero “sshd_config” que nos ayudarán a mejorar la seguridad en nuestro servidor:

  • LoginGraceTime: estableceremos el tiempo que tenemos para introducir la contraseña
  • MaxAuthTries: con esta directiva podremos decirle al servicio el número de intentos que tendremos para acceder.
  • MaxStartups: número máximo de logins simultaneos desde una misma dirección IP.
  • AllowUsers: lista de usuarios que podrán iniciar sesión en nuestro sistema.
  • DenyUsers: lista de usuarios no permitidos para conectarse por SSH.
  • AllowGroups/DenyUsers: misma función que las anteriores pero para aplicarla a grupos.

Hasta aquí la primera entrada del blog. En futuras entradas me gustaría hablar de como configurar una llave SSH y utilizar otros sistemas de autenticación como puede ser Google Authenticator.
Si puedo ayudaros en algo, solo teneis que dejar vuestras preguntas en los comentarios.

Dejar un comentario