Buenas prácticas para mejorar la seguridad en los servidores con Rocky Linux

5min

Dentro de las distribuciones nuevas de Linux que están alcanzando una popularidad relevante de manera rápida destaca Rocky Linux. Está basada en Red Hat, por lo que disfruta de todas las ventajas de esta distribución empresarial, pero guiada por la comunidad. En este post vamos a ver una serie de buenas prácticas para mejorar la seguridad de servidores con Rocky Linux.

Aunque sea una distribución reciente ya puedes usar Rocky Linux en todos los productos de servidores de Arsys.  Todos los pasos de este artículo los hemos realizado con una instalación limpia de Rocky Linux 8. Y recientemente explicamos la elación entre Red Hat y Rocky Linux.

Índice

Usar llaves SSH

Es siempre recomendable el acceso mediante llaves SSH. En el panel de Cloudbuilder Next para Servidores Cloud es posible crear llaves SSH y asociarlas a los nuevos servidores, a golpe de clic. Para ello tenemos que abrir el panel de configuraciones avanzadas, al crear el servidor.

Usar llaves SSH

Aquí seleccionamos la llave en el desplegable. Si no tienes llaves creadas puedes hacerlas cómodamente desde la sección Seguridad > Clave SSH.

No obstante, si por cualquier motivo tienes que hacer este proceso manualmente, tenemos un post donde puedes aprender a crear y usar llaves SSH. Simplemente tendrás que asegurarte de subir por scp la llave pública, a la ruta /root/.ssh/authorized_keys. O simplemente copiar el texto de la llave y ponerlo en una línea independiente dentro del archivo /root/.ssh/authorized_keys.

Desactivar login con clave

Una vez creada la llave SSH y configurada en el servidor, puedes desactivar el login mediante clave. De hecho es una buena práctica que tus servidores no permitan conexiones mediante clave, y mucho menos para el usuario root.

Para ello, vamos a editar el texto de configuración del servicio SSH, dentro del servidor Rocky Linux con este comando.

sudo vi /etc/ssh/sshd_config

Rocky no tiene instalado Nano por defecto, pero podrías instalarlo con el comando

yum install nano

El editor Nano es mucho más fácil de utilizar porque no tiene modo comando como Vi, por lo que muchas personas lo prefieren.

En este archivo debemos localizar la línea donde aparece PasswordAuthentication y poner el valor no. Realizaremos la misma configuración ChallengeResponseAuthentication.

PasswordAuthentication no
ChallengeResponseAuthentication no

Luego reiniciamos el servidor de SSH.

Antes de realizar este paso es muy importante que nos hayamos certificado que se puede acceder mediante la llave ssh.

sudo systemctl restart sshd

Si esto no funciona y todavía permite el login con password, en algunas configuraciones del archivo sshd_config es posible que sea también necesario cambiar a «no» el valor de la configuración UsePam.

UsePAM no

Crear un usuario con permisos de administrador

Otra buena práctica en Rocky Linux y por supuesto en otras distribuciones consiste en crear un usuario con permisos de superadministrador, de modo que podamos usarlo en lugar de root para hacer inicio de sesión con SSH.

adduser arsys_user

Por supuesto, se sustituye «arsys_user» por el nombre de usuario que se desee. Luego se introduce una nueva clave:

passwd arsys_user

Luego asignamos este usuario al grupo de los que tendrán permisos de superadministrador, de modo que pueda usar el comando su o sudo.

usermod -aG wheel arsys_user

Ahora vamos a proporcionar una llave pública para este usuario, dado que no se permite realizar inicio de sesión ssh mediante contraseña. Para ello el proceso consiste en copiar la llave pública en una ruta como /home/arsys_user/.ssh/authorized_keys. Por supuesto la ruta correcta depende del nombre del usuario que hayas creado.

Solo ten en cuenta de unos detalles y recomendaciones:

  • La llave puede ser perfectamente distinta de la que se ha configurado para el usuario root. De hecho sería recomendable que fuera distinta, ya que así si se compromete la llave solo será la de un usuario determinado.
  • El archivo de texto authorized_keys debe tener una llave por línea. Puedes tener varias llaves, pero asegúrate de configurar una por línea.
  • El permiso de la carpeta /home/arsys_user/.ssh debe de ser 600, igual que el archivo de texto authorized_keys.
  • El propietario de la carpeta .ssh y del archivo authorized_keys debe de ser el propio usuario que hemos creado.

Puedes conseguir estos permisos y propietarios con los comandos siguientes, que lanzamos desde la carpeta home del usuario /home/arsys:_user;

chmod 600 .ssh
chown -r arsys_user:arsys_user .ssh

Los mismos propietarios y permisos los configuraremos para el archivo de texto authorized_keys que contiene las llaves ssh autorizadas.

Desactivar el login con el usuario Root

Finalmente, si lo deseas, puedes mejorar todavía más la seguridad desactivando el login con el usuario root, ya que en principio no lo vamos a necesitar más, dado que el usuario que tenemos en estos momentos ya es capaz de convertirse en superusuario con el comando:

sudo su

El proceso para realizar este paso lo tienes en el post: Cómo desactivar el login root de los servidores que administramos.

Otras recomendaciones de buenas prácticas

Hace poco publicamos un post sobre Buenas prácticas en Debian  y Ubuntu, donde explicamos otra serie de recomendaciones a tener en cuenta en la administración de servidores. Merece la pena leerlas también pues la mayoría de consejos los podemos aplicar también a servidores Rocky Linux.

Fernán García de Zúñiga

Productos relacionados: