Un servidor te ofrece muchas posibilidades interesantes. Sin embargo, cuando compras un servidor con acceso root, también eres responsable de la seguridad del mismo. La responsabilidad recae sobre todas las acciones realizadas por el servidor. Por esta razón es muy importante que protejas tu servidor lo antes posible y aumentes el nivel de seguridad contra ciberataques con el fin de reducir la superficie expuesta.

Esta serie de artículos ofrece algunas recomendaciones y enumera medidas de seguridad importantes para elevar el nivel de seguridad de tu servidor Linux.

A continuación se listan las recomendaciones generales de seguridad más importantes y algunos consejos para configurar y manejar tsu servidor Linux de forma segura.

Atención

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

Instala parches de seguridad y actualizaciones cada cierto tiempo

Normalmente, las vulnerabilidades conocidas se cierran rápidamente con la ayuda de actualizaciones. Sin embargo, esto solo funciona si instalas con cierta frecuencia los parches de seguridad y las actualizaciones para el sistema operativo y los programas instalados. Actualiza también cualquier plug-in adicional que tengas instalado.

Casi todos los sistemas operativos ofrecen la opción de descargar e instalar automáticamente actualizaciones de seguridad importantes en segundo plano. Para conocer y descargar nuevos paquetes de software disponibles diariamente, puedes utilizar scripts específicos como apt-listchanges o apticron. Con el paquete de actualizaciones desatendidas de Ubuntu o el programa Yum-cron de CentOS 7 puedes instalar los parches de seguridad para tu sistema operativo automáticamente.

Si lo consideras necesario, puedes probar los parches de seguridad y las actualizaciones de tus aplicaciones y plug-ins antes de la instalación para ver cuáles serían los posibles efectos en tu entorno específico antes de instalarlos en el servidor. Ten en cuenta, sin embargo, que necesitas un segundo servidor para dicha prueba.

Utiliza la autenticación de clave pública en lugar de la autenticación de contraseña

El protocolo de red SSH soporta diferentes variantes para el acceso al servidor. Además de la conocida autenticación clásica (con nombre de usuario y contraseña), también puedes utilizar la autenticación por clave pública. Esta utiliza una clave privada y una clave pública para la autenticación de los usuarios. Si lo deseas, también puedes proteger la clave pública con una contraseña.

Para configurar la autenticación de clave pública, dicha clave debe almacenarse en tu servidor. La clave privada se almacena localmente en tu ordenador.

Si utilizas este tipo de autenticación, puedes acceder al servidor utilizando únicamente la clave pública, sin tener que introducir una contraseña. Si has protegido la clave pública con una contraseña, puede que tengas que introducirla. Para aumentar aún más el nivel de seguridad, también puedes desactivar la autenticación por contraseña SSH. En este caso, la autenticación con contraseña solo es posible si accedes al servidor utilizando la consola KVM (para servidores cloud o virtuales) o la consola VNC (para servidores dedicados).

 

Nota

Al crear un Servidor Cloud, puedes guardar la clave pública en el Panel Cloud y asignarla al servidor mientras realizas la configuración inicial. La clave pública se asocia automáticamente al archivo /root/.ssh/authorized_keys durante la creación del servidor.

Para aumentar aún más el nivel de seguridad, también puedes desactivar la autenticación por contraseña SSH. Así solo es posible acceder al servidor mediante la autenticación por clave pública. En este caso, la autenticación con contraseña solo es posible si inicias sesión en el servidor utilizando la consola KVM (servidores cloud y virtuales) o la consola VNC (servidores dedicados).

Utiliza siempre contraseñas seguras

Las contraseñas débiles facilitan a los posibles atacantes el acceso a tu servidor. En caso de ataque, el atacante podría usar tu servidor para actividades maliciosas, usar los recursos de tu servidor, o posiblemente tomar el control del servidor y bloquearlo.

Por lo tanto, siempre debes utilizar contraseñas seguras y complejas, y cambiarlas regularmente. Ten en cuenta los siguientes criterios para crear una contraseña sólida y segura:

  • Utiliza una contraseña distinta para cada servicio y para cada base de datos que se ejecute en el servidor.

  • Utiliza una contraseña que no esté en los diccionarios.

  • Utiliza siempre una contraseña que difiera significativamente de las contraseñas anteriores.

  • No utilices ningún dato de tu entorno personal, como cumpleaños, nombres, etc.

  • No utilices una contraseña que contenga el nombre de usuario o el nombre de la empresa.

  • No compartas tu contraseña con terceros.

  • Combina diferentes tipos de caracteres, como letras, números y caracteres especiales.


Una contraseña segura contiene:

  • Mín. 8 caracteres

  • Letras mayúsculas y minúsculas: a-z, A-Z

  • Números del 0-9

  • Caracteres especiales

Establece una rutina para las copias de seguridad

La pérdida de datos puede provocar graves daños, además de costosos. Por esta razón, debes establecer lo antes posible una rutina adecuada para realizar copias de seguridad. Establecer una estrategia de copias de seguridad es una cuestión técnicamente muy compleja, ya que hay que tener en cuenta muchos factores. Algunos de los factores más importantes son, por ejemplo:

  • Determinar la situación de riesgo: depende de la finalidad del servidor y de su dependencia con respecto a la base de datos.

  • Clasificar los datos: ¿qué tipo de datos se quieren almacenar? ¿Quieres realizar una copia de seguridad de los datos relevantes para el sistema o de los datos personales?

  • Disponer de datos: ¿qué aplicaciones dependen de los datos y en qué forma? ¿Pueden funcionar las aplicaciones también sin los datos que quieres almacenar?


Además, debes considerar las siguientes cuestiones antes de desarrollar tu rutina:

  • ¿Qué pérdida de datos es aceptable?

  • ¿Cuánto tiempo se tardaría en reconstruir los datos?

  • ¿Cómo de grande es el volumen de datos y cómo evolucionará?

  • ¿Cómo se debe realizar una copia de seguridad de los datos?

  • ¿Existen plazos para la eliminación y el almacenamiento de datos?

  • ¿Son confidenciales los datos? ¿Se requiere una protección especial para acceder a estos? ¿Existen requisitos legales?

  • ¿Cuándo se puede crear la copia de seguridad sin perjudicar a otros procesos?

  • ¿Cuánto tiempo debes almacenar las copias de seguridad?


Otro punto importante que debes considerar al establecer tu rutina es el tipo de copia de seguridad que quieres realizar. Se hace una distinción básica entre los siguientes tipos de copias de seguridad:

Copia de seguridad completa

Una copia de seguridad completa contiene todos los datos seleccionados para la copia de seguridad.

Copia de seguridad diferencial

Una copia de seguridad diferencial realiza una copia de seguridad de todos los archivos que han sido modificados o añadidos desde la última copia de seguridad completa. Los cambios se realizan siempre en relación con la copia de seguridad completa. Las copias de seguridad diferenciales aumentan día a día hasta que se vuelve a realizar una copia de seguridad completa. Sin embargo, requieren menos espacio en disco que una copia de seguridad completa y pueden realizarse más rápido.

Para recuperar datos de una copia de seguridad diferencial, también debes tener acceso a la última copia de seguridad completa. Cada copia de seguridad diferencial se puede modificar independientemente del resto.


Copia de seguridad incremental

Las copias de seguridad incrementales ahorran mucho espacio y se pueden realizar rápidamente.

Con una copia de seguridad incremental, solo se realiza una copia de seguridad de los datos que se han creado o modificado desde la última copia de seguridad. No importa si se trata de una copia de seguridad completa o incremental.

Por lo tanto, para restaurar una copia de seguridad incremental, también debes tener acceso a otras copias de seguridad realizadas previamente, ya que las copias de seguridad son interdependientes. Si eliminas una de las copias de seguridad incrementales anteriores o una copia de seguridad completa, no podrás restaurar todo el paquete.

Además de desarrollar una rutina adecuada para las copias de seguridad y de crear copias de seguridad con regularidad, también debes asegurarte de comprobar con regularidad si las copias de seguridad se pueden recuperar.

Asegúrate de que los servicios locales escuchen solo al localhost

No todos los servicios son accesibles a través de la red o de Internet. Por lo tanto, asegúrate de que los servicios locales escuchen al localhost. Por ejemplo, si estás ejecutando una instancia local de MySQL en tu servidor web, la base de datos solo debería escuchar al localhost. Lo mismo se aplica a los programas y aplicaciones que sometes a comprobación. Configura su aplicación para que se conecten al localhost.

Utiliza VPN para acceder a tu servidor

Si has adquirido un Servidor Cloud, puedes utilizar VPN para establecer una conexión segura entre tu ordenador local y tu servidor (cifrado con SSL).

Nota

Por razones técnicas, solo se puede establecer una única conexión a tus Servidores Cloud a través de VPN. Si deseas establecer varias conexiones VPN al mismo tiempo, debes configurar una conexión VPN para cada ordenador local.

Puedes crear la conexión VPN de forma cómoda y sencilla a través del Panel Cloud en el área Red > VPN.

Para utilizar VPN, debes instalar y configurar el software OpenVPN en el ordenador local.

Más información sobre el uso de VPN se puede encontrar aquí:

Crear VPN

Instalar y configurar OpenVPN

Establecer una conexión segura con OpenVPN (Windows)

Restringe el acceso al servidor

Para aumentar la seguridad del servidor, permite el acceso al mismo solo a aquellos usuarios que necesiten trabajar con él.

Instala solo las aplicaciones necesarias

Instala las aplicaciones que realmente necesitas. Cuantas más aplicaciones instales en el servidor, mayor será el riesgo de vulnerabilidades.

Nota

Si es posible, instala únicamente aplicaciones procedentes de fuentes oficiales. Las aplicaciones de fuentes no oficiales pueden contener malware o virus.

Abre solo los puertos que realmente necesites

Los puertos abiertos no plantean un riesgo de seguridad en particular a menos que las aplicaciones que responden tengan vulnerabilidades que los atacantes puedan explotar. A medida que aumenta el número de aplicaciones, este peligro potencial crece.

Monitorea tu servidor

La monitorización es una herramienta importante para aumentar la seguridad de los servidores. Solo mediante la supervisión del servidor se puede detectar a tiempo un fallo del servidor o un fallo de sus componentes o aplicaciones. Esta estrategia también es válida para combatir ciertos tipos de ciberataques. Si atacan tu servidor, una respuesta rápida es esencial para detener el ataque y minimizar el daño causado.

Revisa tu servidor regularmente para detectar malware y virus

Aunque Linux suele estar menos afectado por el malware y los virus que Windows, no es inmune contra los programas maliciosos. Para los sistemas Linux, hay varios escáneres de virus y programas maliciosos que puedes utilizar para comprobar regularmente la integridad de tus servidores.

Algunos de los programas más conocidos son Linux Malware Detect, Rootkit Hunter y ClamAV.

Nota

Asegúrate de que las firmas de antivirus y antimalware se actualicen regularmente.

Más artículos sobre este tema

El segundo artículo de esta serie se puede encontrar aquí: Información importante sobre la seguridad de tu servidor Linux (Parte 2 de 2)