Seguridad

Proteger su servidor

Veintiuna prácticas para proteger un servidor: conexión SSH, claves, certificados SSL, gestión de usuarios, contraseñas, cortafuegos y copias de seguridad.

· 14 min de lectura · nivel intermedio

Los piratas están siempre al acecho de las vulnerabilidades de los servidores. Por tanto, es responsabilidad suya asegurarse de que sus datos están seguros y protegidos.

Minimice los riesgos y tenga la seguridad de que sus datos están protegidos en servidores seguros aplicando nuestros consejos de seguridad y nuestras mejores prácticas.

Illustration 1 — Sécuriser votre serveur

Conectividad del servidor

1. Establecer y utilizar una conexión segura

Al conectarse a un servidor remoto, es esencial establecer un canal de comunicación seguro.

La utilización del protocolo SSH ( Secure Shell ) es la mejor manera de establecer una conexión protegida. A diferencia de Telnet, que se utilizaba anteriormente, el acceso SSH cifra todos los datos transmitidos en el intercambio.

Debe instalar el demonio SSH y disponer de un cliente SSH con el que emite órdenes y gestiona los servidores para obtener un acceso remoto mediante el protocolo SSH.

De forma predeterminada, SSH utiliza el puerto 22 . Todo el mundo, incluidos los hackers, lo sabe. La mayoría de la gente no configura este detalle aparentemente insignificante. Sin embargo, cambiar el número de puerto es una manera sencilla de reducir las posibilidades de que unos piratas informáticos ataquen su servidor. Por consiguiente, la mejor práctica para SSH consiste en utilizar números de puerto comprendidos entre 1024 y 32 ​​767.


2. Utilice la autenticación mediante claves SSH

En lugar de una contraseña, puede autenticar un servidor SSH mediante un par de claves SSH, una mejor alternativa a las conexiones tradicionales. Las claves contienen muchos más bits que una contraseña y no son fáciles de piratear por la mayoría de los ordenadores modernos. El popular cifrado RSA de 2048 bits equivale a una contraseña de 617 cifras.

El par de claves se compone de una clave pública y una clave privada.

La clave pública tiene varias copias, una de las cuales permanece en el servidor, mientras que otras se comparten con los usuarios. Cualquier persona que disponga de la clave pública tiene la capacidad de cifrar los datos, mientras que solo el usuario que dispone de la clave privada correspondiente puede leer esos datos. La clave privada no se comparte con nadie y debe estar protegida. Al establecer una conexión, el servidor solicita la prueba de que el usuario posee la clave privada, antes de autorizar un acceso privilegiado.


3. Protocolo de transferencia de archivos seguro

Para transferir archivos hacia y desde un servidor sin riesgo de que unos piratas informáticos comprometan o roben datos, es esencial utilizar el protocolo FTPS (File Transfer Protocol Secure) . Cifra los archivos de datos y sus datos de autenticación.

FTPS utiliza a la vez un canal de órdenes y un canal de datos, y el usuario puede cifrar ambos. Tenga presente que solo protege los archivos durante la transferencia. En cuanto llegan al servidor, los datos dejan de estar cifrados. Por esta razón, cifrar los archivos antes de enviarlos añade otra capa de seguridad.


4. Certificados Secure Sockets Layer

Proteja sus zonas de administración web y sus formularios con Secure Socket Layer (SSL), que protege la información transmitida entre dos sistemas a través de Internet. SSL puede utilizarse tanto en la comunicación servidor-cliente como servidor-servidor.

El programa mezcla los datos para que la información sensible (como los nombres, identificadores, números de tarjeta de crédito y otros datos personales) no sea robada en tránsito. Los sitios web que tienen el certificado SSL llevan HTTPS en la URL, lo que indica que son seguros.

El certificado no solo cifra los datos, sino que también se utiliza para la autenticación de los usuarios. Por consiguiente, gestionar los certificados de sus servidores ayuda a establecer la autoridad de los usuarios. Los administradores pueden configurar los servidores para que se comuniquen con una autoridad centralizada y con cualquier otro certificado que dicha autoridad firme.


5. Utilice redes privadas y VPN

Otra manera de garantizar una comunicación segura consiste en utilizar redes privadas y virtuales (VPN) y programas como OpenVPN. A diferencia de las redes abiertas, que son accesibles al mundo exterior y por tanto sensibles a los ataques de usuarios malintencionados, las redes privadas y virtuales limitan el acceso a determinados usuarios.

Las redes privadas utilizan una dirección IP privada para establecer canales de comunicación aislados entre los servidores del mismo rango. Esto permite que varios servidores de la misma cuenta intercambien información y datos sin quedar expuestos a un espacio público.

Cuando desee conectarse a un servidor remoto como si lo hiciera localmente a través de una red privada, utilice una VPN. Permite una conexión totalmente segura y privada y puede abarcar varios servidores remotos. Para que los servidores se comuniquen bajo la misma VPN, deben compartir datos de seguridad y de configuración.


Gestión de los usuarios del servidor

6. Vigilar los intentos de conexión

La utilización de un programa de prevención de intrusiones para vigilar los intentos de conexión es una manera de proteger su servidor frente a los ataques de fuerza bruta. Estos ataques automatizados utilizan un método de ensayo y error, probando todas las combinaciones posibles de letras y de cifras para acceder al sistema.

Un programa de prevención de intrusiones supervisa todos los archivos de registro y detecta los intentos de conexión sospechosos. Si el número de intentos supera la norma definida, el programa de prevención de intrusiones bloquea la dirección IP durante un periodo determinado o incluso indefinidamente.

7. Gestionar los usuarios

Cada servidor tiene un usuario root que puede ejecutar cualquier orden. Debido a la potencia de que dispone, root puede ser muy peligroso para su servidor si cae en malas manos. Es habitual desactivar por completo la conexión root en SSH.

Dado que el usuario root tiene más poder, los piratas concentran su atención en intentar descifrar la contraseña de ese usuario específico. Si decide desactivar por completo este usuario, colocará a los atacantes en una desventaja significativa y salvará su servidor de amenazas potenciales.

Para asegurarse de que terceros no hacen un uso abusivo de los privilegios de root, puede crear una cuenta de usuario limitada. Esta cuenta no tiene los mismos derechos que root, pero sigue siendo capaz de realizar tareas administrativas mediante las órdenes sudo.

Por consiguiente, puede administrar la mayoría de las tareas como cuenta de usuario limitada y utilizar la cuenta root únicamente cuando sea necesario.


Seguridad de la contraseña del servidor

8. Establecer los requisitos de seguridad de la contraseña

Lo primero que hay que hacer es definir los requisitos y las reglas de contraseña que deben seguir todos los miembros del servidor.

No autorice las contraseñas vacías o predeterminadas. Aplique una longitud y una complejidad mínimas de contraseña. Tenga una política de bloqueo. No almacene las contraseñas utilizando un cifrado reversible. Fuerce la caducidad de la sesión en caso de inactividad y active la autenticación de dos factores.

9. Definir la política de caducidad de la contraseña

La definición de una fecha de caducidad para una contraseña es otra práctica habitual al definir los requisitos para los usuarios. Según el nivel de seguridad requerido, una contraseña puede durar algunas semanas o algunos meses.


10. Utilizar frases secretas para las contraseñas del servidor

Existen varias razones por las que la utilización de una frase secreta (llamada también frase de paso) en lugar de una contraseña puede contribuir a mejorar la seguridad del servidor. La principal diferencia entre ambas es que una frase secreta es más larga y contiene espacios entre las palabras. Por consiguiente, se trata a menudo de una frase, pero no es forzosamente una frase.

Por ejemplo, una frase de paso de contraseña puede ser: J'm! la sécuQdc'estb1fait.

El ejemplo dado es más largo que una contraseña habitual y contiene letras mayúsculas y minúsculas, cifras y caracteres únicos.

Además, es mucho más fácil recordar una frase secreta que una cadena de letras aleatorias. Por último, como aquí se compone de 26 caracteres, es más difícil de descifrar.


11. Lo que no hay que hacer con las contraseñas

Si desea mantener un servidor seguro, debe evitar determinadas cosas en lo que respecta a las contraseñas. En primer lugar, preste atención al lugar donde almacena las contraseñas. No las escriba en trozos de papel ni las esconda en la oficina.

Por lo general, se aconseja no utilizar datos personales como su cumpleaños, su ciudad natal, los nombres de animales de compañía y otros elementos que pueden acercar al usuario a la contraseña. Estos son extremadamente fáciles de adivinar, en particular por personas que le conocen personalmente.

Las contraseñas que solo contienen palabras sencillas del diccionario también son fáciles de descifrar, en particular mediante ataques de diccionario (fuerza bruta). Consciente del mismo riesgo, intente evitar repetir secuencias de caracteres dentro de la misma contraseña.

Por último, no utilice la misma contraseña para varias cuentas. Al reciclar las contraseñas, se expone a riesgos importantes. Si un pirata consigue acceder a una sola cuenta, todas las demás cuentas con la misma contraseña pueden estar en peligro. Intente utilizar una contraseña diferente para cada cuenta por separado y llévelas anotadas con un gestor de contraseñas como nuestra solución AwPasswords o el muy conocido KeePass.


Otras buenas prácticas para proteger un servidor

12. Actualizar y renovar con regularidad

La actualización periódica de un servidor es una etapa crucial para protegerlo de los piratas. Los programas obsoletos ya han sido explorados en busca de sus puntos débiles, lo que deja a los piratas la posibilidad de aprovecharlos y dañar su sistema. Si lo mantiene todo actualizado, se asegura de que está listo para protegerse en primera línea de defensa.

Las actualizaciones automáticas son una manera de garantizar que no se olvide ninguna actualización. Sin embargo, autorizar al sistema a realizar tales cambios por sí mismo puede ser arriesgado. Antes de actualizar su entorno de producción, se recomienda examinar el comportamiento de la actualización en un entorno de prueba.

Asegúrese de actualizar con regularidad el panel de control del servidor. También debe actualizar con regularidad los sistemas de gestión de contenido, si utiliza alguno, así como todos los complementos que pueda tener. Cada nueva versión incluye correcciones de seguridad para resolver los problemas de seguridad conocidos.


13. Suprimir o desactivar todos los servicios innecesarios

Aumente la seguridad del servidor reduciendo el llamado vector de ataque.

Este término de ciberseguridad se refiere a la instalación y al mantenimiento únicamente de los requisitos mínimos necesarios para mantener sus servicios en funcionamiento. Active solamente los puertos de red utilizados por el sistema operativo y los componentes instalados. Cuanto menos tenga en el sistema, mejor.

Un servidor con sistema operativo Windows solo debe tener los componentes del sistema operativo requeridos. Un servidor con sistema operativo Linux debe tener una instalación mínima con únicamente los paquetes realmente necesarios instalados.

Como la mayoría de las distribuciones Linux escuchan las conexiones entrantes en Internet, debe configurar un cortafuegos para autorizar únicamente determinados puertos y rechazar todas las demás comunicaciones innecesarias.

Compruebe las dependencias antes de instalar el programa en su sistema para asegurarse de que no añade nada que no necesite. Además, compruebe qué dependencias se han iniciado automáticamente en su sistema y si las desea.


14. Ocultar la información del servidor

Intente proporcionar la menor información posible sobre la infraestructura subyacente. Cuanto menos se sepa sobre el servidor, mejor.

También es sensato ocultar los números de versión de todos los programas que haya instalado en el servidor. A menudo revelan, de forma predeterminada, la fecha de salida exacta, lo que puede ayudar a los piratas informáticos a buscar debilidades. Por lo general, es sencillo suprimir esta información eliminándola de la cabecera HTTP de su mensaje de bienvenida.


15. Utilizar sistemas de detección de intrusiones

Para detectar cualquier actividad no autorizada, utilice un sistema de detección de intrusiones (IDS) , como Sophos, que vigila los procesos en ejecución en su servidor. Puede configurarlo para comprobar las operaciones diarias, ejecutar análisis automatizados periódicos o decidir ejecutar el IDS manualmente.


16. Auditoría de archivos

La auditoría de archivos es otra buena manera de descubrir las modificaciones no deseadas en su sistema.

Mantiene un registro de todas las características de su sistema cuando está en un buen estado «sano» y lo compara con el estado actual. Al comparar una junto a otra las dos versiones del mismo sistema, puede detectar todas las incoherencias y seguir su origen.

17. Auditoría de servicios

La auditoría de servicios explora los servicios ejecutados en el servidor, sus protocolos y los puertos por los que se comunican. Ser consciente de estas particularidades permite gestionar las superficies de ataque potenciales del sistema.


18. Configurar y gestionar un cortafuegos

Proteja su servidor controlando y restringiendo el acceso a su sistema.

La utilización de CSF (ConfigServer y Firewall) es esencial para reforzar la seguridad de su servidor. Solo autoriza determinadas conexiones vitales, y bloquea el acceso a otros servicios.

Configure un cortafuegos durante la configuración inicial del servidor o cuando modifique los servicios propuestos por el servidor. De forma predeterminada, un servidor típico ejecuta distintos servicios, en particular servicios públicos, privados e internos.

  • Los servicios públicos los gestionan generalmente servidores web que deben autorizar el acceso a un sitio web. Todo el mundo puede acceder a estos servicios, a menudo de manera anónima, por Internet.
  • Los servicios privados se utilizan para tratar un panel de control de base de datos, por ejemplo. En este caso, un cierto número de personas seleccionadas necesitan acceder al mismo punto. Tienen cuentas autorizadas con privilegios especiales dentro del servidor.
  • Los servicios internos son los que nunca deberían quedar expuestos a Internet ni al mundo exterior. Solo son accesibles desde el servidor y solo aceptan conexiones locales.

La función del cortafuegos es autorizar, restringir y filtrar el acceso en función del servicio para el que el usuario está autorizado. Configure el cortafuegos para restringir todos los servicios salvo los obligatorios para su servidor.


19. Haga copias de seguridad de su servidor

Aunque las etapas mencionadas anteriormente están concebidas para proteger los datos de su servidor, es crucial disponer de una copia de seguridad del sistema por si surge un problema.

Almacene las copias de seguridad cifradas de sus datos críticos fuera del emplazamiento o utilice una solución en la nube.

Tanto si tiene tareas de copia de seguridad automatizadas como si las ejecuta manualmente, asegúrese de convertir en rutina esta medida de precaución. También debe probar las copias de seguridad, realizando pruebas de restauración completas. Esto debería incluir «comprobaciones de coherencia» en las que los administradores o incluso los usuarios finales verifican que la recuperación de los datos es coherente.


20. Crear entornos multiservidor

El aislamiento es uno de los mejores tipos de protección de servidor que puede tener.

Una separación completa requeriría disponer de servidores bare-metal dedicados que no compartan ningún componente con otros servidores. Aunque es lo más fácil de gestionar y ofrece la mayor seguridad, es también lo más caro.

El hecho de tener entornos de ejecución aislados en un centro de datos permite la llamada separación de tareas (SoD) y la configuración del servidor en función de las funciones que este desempeña.

La separación de los servidores de base de datos y de los servidores de aplicaciones web es una práctica de seguridad estándar. Los entornos de ejecución separados son especialmente ventajosos para las empresas de mayor tamaño que no pueden permitirse ningún fallo de seguridad.

Los servidores de base de datos independientes protegen la información sensible y los archivos de sistema frente a los piratas informáticos que consiguen acceder a las cuentas administrativas. Además, el aislamiento permite a los administradores de sistemas configurar por separado la seguridad de la aplicación web y minimizar la superficie de ataque definiendo cortafuegos de aplicación web.


21. Crear entornos virtuales aislados

Si no puede permitirse o no necesita un aislamiento completo con componentes de servidor dedicados, también puede optar por aislar los entornos de ejecución.

Esto le ayuda a resolver los problemas de seguridad que puedan surgir, y garantiza así que los demás datos no queden comprometidos. Puede elegir entre contenedores o la virtualización de VM, que son mucho más fáciles de configurar.

Otra opción para los entornos virtualizados en un sistema operativo UNIX consiste en crear prisiones chroot. Chroot separa un proceso del directorio raíz del sistema operativo central y solo le permite acceder a los archivos de su árbol de directorios. Sin embargo, no es un aislamiento completo y solo debería practicarse junto con otras medidas de seguridad.


Conclusión: protección de su servidor

Después de leer este artículo y de seguir las recomendaciones de seguridad, debería tener más confianza en la seguridad de su servidor.

Numerosas medidas de seguridad deben aplicarse durante la configuración inicial del servidor, mientras que otras deben formar parte de un mantenimiento continuo o periódico. Si la vigilancia de su servidor no está automatizada, asegúrese de concebir y de seguir controles de seguridad planificados.

#seguridad

Ahora, ¡manos a la obra!