En esta serie de dos artículos mencionamos importantes recomendaciones y medidas para aumentar el nivel de seguridad de tu servidor Linux.

Este artículo en concreto se centra en las recomendaciones de seguridad específicas para configurar de forma segura tu servidor Linux y garantizar su funcionamiento adecuado.

Atención

Estas recomendaciones de seguridad solo se aplican a los servidores con acceso root.

Desactiva el inicio de sesión mediante SSH

Por defecto, el usuario root  es el primer usuario que se crea en cada sistema Linux. El usuario root posee los mayores derechos y te da acceso a todos los comandos y archivos y tiene derechos de lectura, escritura y ejecución. Si esta cuenta de usuario se utiliza de forma incorrecta o inapropiada, puede tener un impacto muy grave en tu servidor. Por lo tanto, debes utilizar este usuario únicamente para configurar el servidor después de que se haya creado.

Este usuario, al ser el primero que se crea, suele ser el objetivo de los ataques. Por esta razón, se recomienda configurar otra cuenta de usuario y luego desactivar el inicio de sesión mediante SSH. Cuando configures la cuenta de usuario, asegúrate de que puedes obtener los derechos de usuario root introduciendo el comando sudo. Si no, puedes desactivar la autenticación de contraseña para el usuario root en el archivo /etc/ssh/sshd/sshd_config usando la entrada PermitRootLogin prohibit-password. En este caso, el usuario root solo puede conectarse al servidor utilizando la autenticación de clave pública SSH.

Encontrarás más información al respecto en el siguiente artículo: Desactivar el acceso al servidor root mediante SSH

Cambia el puerto SSH

Por defecto, el puerto 22 se utiliza para establecer una conexión SSH. Este puerto se asocia automáticamente al instalar el sistema operativo.

Para reducir el número de ataques de fuerza bruta, puedes configurar otro puerto para el acceso SSH.

Atención

Antes de cambiar el puerto, asegúrate de que las aplicaciones y servicios instalados en el servidor se pueden configurar sin el puerto 22. De lo contrario, un cambio  del puerto predeterminado, puede causar el cese de estas aplicaciones y servicios.

Encontrarás más información en el siguiente artículo: Cambiar el puerto SSH predeterminado

Configura una notificación por e-mail para informar sobre conexiones SSH

Para supervisar las actividades remotas, configura una notificación de advertencia por e-mail para informar de los accesos al servidor mediante SSH. Esta notificación te ayuda a determinar si se está produciendo un acceso no autorizado al servidor. Todo lo que se necesita es un script Shell que envíe automáticamente un e-mail de notificación a tu dirección de e-mail por cada conexión remota que consiga acceder a tu servidor.

Nota

Si un usuario establece una conexión SSH mediante programas que no establecen una conexión completa, como WinSCP, el script no enviará un e-mail de advertencia.

Protege el acceso SSH contra ataques de fuerza bruta con Fail2ban

Fail2Ban es un software que analiza archivos de acceso como /var/log/pwdfail o /var/log/apache/error_log y bloquea temporalmente las direcciones IP con repetidos intentos de acceso fallidos. Esto te permite detectar y defenderte de los ataques de fuerza bruta.

Puedes descargar Fail2Ban aquí.

Instala un sistema de detección de intrusos

Un sistema de detección de intrusos es un sistema con el que se pueden detectar ataques a servidores o redes en una fase temprana. Los sistemas de detección de intrusos más conocidos son Tripwire, Aide y Psad.

Comprueba los puertos abiertos en tu servidor con Nmap

Nmap es un software de código abierto que te permite realizar comprobaciones de seguridad. Con este software de código abierto, puedes determinar qué hosts están disponibles en la red. Además, puedes utilizar Nmap para identificar los puertos abiertos de un host e identificar los servicios que responden a los puertos abiertos.

Puedes encontrar más información al respecto en la siguiente página: Nmap

Consulta las guías de diferentes proveedores para reforzar la seguridad de tu sistema operativo

Haz un seguimiento de procesos sospechosos

Si sospechas que han hackeado tu servidor a pesar de todas las medidas de seguridad, deberías comprobar los procesos que están activos. Para comprobar si existen procesos sospechosos en tu servidor, sigue los siguientes pasos:


Ubuntu

  • Inicia sesión en el servidor como administrador.

  • Para mostrar la lista de procesos en ejecución, introduce el siguiente comando:

    root@localhost:~# ps aux


    También puedes redirigir los procesos en ejecución a un archivo utilizando el siguiente comando:

    ps:aux > procesos.txt
    less procesos.txt

CentOS 7

  • Inicia sesión en el servidor como administrador.

  • Para mostrar la lista de procesos en ejecución, introduce el siguiente comando:

    root@localhost:~# ps aux

    Alternativamente, puedes redirigir los procesos en ejecución a un archivo utilizando el siguiente comando:

    ps:aux > procesos.txt
    less procesos.txt

Presta atención a los programas en directorios inusuales. Ejemplos :

/usr/local/bin
/var/www/tmp
/tmp

Si ves un proceso que no consigues identificar, te recomendamos que primero busques si el proceso se está ejecutando de forma predeterminada en tu sistema operativo o en una aplicación instalada.

Analiza también tu servidor en busca de malware y virus mediante un escáner de malware y un programa antivirus.

Consejos de seguridad para aplicaciones y bases de datos

Protege o cambia el nombre de los subdirectorios de aplicaciones

Los hackers a menudo buscan ciertos subdirectorios de aplicaciones, como /phpmyadmin, y prueban todos los agujeros de seguridad para conseguir penetrarlos. Si no puedes proteger estos subdirectorios, debes renombrarlos.

Si no necesitas estas aplicaciones, desinstálalas por razones de seguridad.

Realiza copias de seguridad de tus bases de datos

Si estás utilizando una base de datos como MySQL o MariaDB, asegúrate de hacer una copia de seguridad de las mismas. A continuación se enumeran algunas medidas de seguridad importantes:

  • Asegúrate de que el usuario root local debe autenticarse.

  • Utiliza los algoritmos de hash más potentes disponibles para la autenticación.

  • Asegúrate de que tu estrategia de copias de seguridad esté correctamente implementada y comprueba si puedes recuperar la base de datos. Puede ser que una copia de seguridad normal no sea suficiente. Por eso es mejor que exportes la base de datos con herramientas como mysqldump o pg_dump.

Más artículos sobre este tema

Puedes encontrar el primer artículo de esta serie en el siguiente enlace: Información importante sobre la seguridad de tu servidor Linux (Parte 1de 2)