En el panorama digital actual, la seguridad de los servidores es una preocupación primordial para organizaciones de todos los tamaños. La creciente sofisticación de las amenazas cibernéticas, que van desde malware y ransomware hasta ataques dirigidos, exige una estrategia de defensa proactiva y en capas para proteger la infraestructura crítica. Las vulnerabilidades de software continúan siendo un vector de ataque principal, lo que subraya la importancia de una gestión de parches oportuna y exhaustiva.
El cumplimiento normativo, como el Estándar de Seguridad de Datos de la Industria de Tarjetas de Pago (PCI DSS), la Ley de Portabilidad y Responsabilidad de Seguros Médicos (HIPAA), la Ley Sarbanes-Oxley (SOX), el Reglamento General de Protección de Datos (GDPR) y la norma ISO 27001, impone requisitos estrictos para la seguridad de los servidores, haciendo del hardening un componente esencial de cualquier programa de seguridad.
Esta guía tiene como objetivo proporcionar una hoja de ruta práctica y detallada para el hardening de servidores que ejecutan los sistemas operativos Windows Server, Linux y FreeBSD. Se cubrirán las particularidades de las distribuciones de Linux más comunes, como Ubuntu, CentOS, Debian y RHEL, así como las diferentes versiones de Windows Server. Además, se explicarán los principios de diseño de una red de servidores segura y se presentarán los conceptos clave de firewalls y alternativas de código abierto. Finalmente, se ofrecerán recomendaciones para la implementación y el mantenimiento continuo de las prácticas de hardening.
¿Qué es el hardening de servidores?
El hardening de servidores o server hardening, es una medida de seguridad cibernética desarrollada para la optimización y fortalecimiento de las operaciones de una empresa en el espacio digital.
Esta medida incrementa los niveles de ciberseguridad empresarial para la prevención de robo de información confidencial mediante ciberataques dirigidos a los servidores u otros equipos informáticos vulnerables.
Dicha práctica de seguridad también es conocida como «endurecimiento» de los servidores. Su función de minimización de vulnerabilidades digitales en los servidores y los sistemas operativos es la principal razón por la cual las empresas aplican esta técnica de ciberseguridad.
Tipos de hardening
El avance de la tecnología facilita la creación de nuevas prácticas y esto ha beneficiado al hardening con la aplicación de múltiples tipos de este. Los tipos fundamentales de hardening son:
- Por ejemplo, activa medidas de seguridad informática si detecta algunas intrusiones de usuarios sin permisos, si el servidor pierde la energía eléctrica o aplica actualizaciones automáticas sin comprometer el trabajo de la red empresarial interna.
- Por ejemplo, la utilización de cortafuegos o firewalls es una de las mejores prácticas digitales para el fortalecimiento de la red. Pero también hay otras prácticas como la administración de contraseñas con altos estándares de seguridad o los parches de seguridad para la limitación del control de acceso remoto a la red.
- De esta forma, disminuyen las vulnerabilidades de seguridad de la infraestructura tecnológica que los ciberdelincuentes podrían aprovechar para el robo de información sensible.
- De esta forma podemos deshabilitar los servicios innecesarios, establecer un adecuado control de acceso de los usuarios a archivos y directorios necesarios para el desarrollo empresarial, y aplicar parches de seguridad para el fortalecimiento del sistema.
- Con su aplicación podemos ejecutar prácticas que garanticen la seguridad de los datos. Por ejemplo, el establecimiento de contraseñas fuertes, la realización de copias de seguridad para la recuperación de información o la gestión detallada de las aplicaciones móviles y los permisos concedidos a estas.
5 ventajas del hardening de servidores:
- Rendimiento optimizado:
- El hardening mejora la eficiencia de los equipos al desactivar funciones innecesarias, eliminar software que ralentiza el sistema y aplicar configuraciones de seguridad óptimas, como firewalls.
- Mayor control del sistema:
- Al optimizar los servidores, se obtiene un control de acceso más estricto, se incrementa el rendimiento general y se gestionan las actualizaciones de forma que fortalezcan la seguridad del sistema.
- Ciberseguridad reforzada:
- Implementar medidas de seguridad reduce las vulnerabilidades del sistema operativo y mejora las políticas de protección de datos, lo que dificulta los ciberataques.
- Protección de la privacidad:
- En un entorno digital donde los datos son cruciales, el hardening protege la información privada, beneficiando tanto a la empresa como a sus empleados. La formación en ciberseguridad es fundamental.
- Vulnerabilidades corregidas:
- Todos los sistemas tienen fallos, y el hardening reduce el riesgo de accesos no autorizados al corregir estas vulnerabilidades. Esto mejora la productividad al mantener los equipos protegidos.
Recomendaciones generales para el Hardening
- Ajustes específicos según el tipo de servidor: cada servidor web, cada aplicación, como Apache, Nginx o IIS, tiene sus propias configuraciones y mejores prácticas. Por eso, al hacer hardening, es esencial conocer las particularidades de cada uno. No es lo mismo proteger un Apache que un Nginx.
- Fortalecimiento del sistema operativo: no basta con asegurar el servidor web o la aplicacion que tengas. También es crucial fortalecer el sistema operativo en el que se ejecuta. Esto implica aplicar parches de seguridad, configurar firewalls y seguir las mejores prácticas específicas para cada sistema operativo. Si descuidas el SO, es como dejar la puerta trasera abierta.
- Gestión de contraseñas y autenticación: aquí no hay que escatimar esfuerzos. Implementa políticas robustas de contraseñas, usa autenticación de dos factores y gestiona las credenciales de manera segura. No queremos que cualquier curioso pueda acceder al servidor.
- Cifrado: asegurar el cifrado de datos tanto en reposo como en tránsito es vital. De esta manera, proteges la información sensible contra miradas indiscretas y ataques maliciosos. Piensa en el cifrado como un candado para tus datos.
- Segmentación de red y aislamiento: implementa una arquitectura de red segura que aísle los servidores web y limite el acceso no autorizado. Es como crear diferentes habitaciones en una casa, donde cada una tiene su cerradura.
- Backups y recuperación ante desastres: no te olvides de los backups, precisamente ayer era el día del backup, Establece políticas de copias de seguridad regulares y planes de recuperación ante desastres. Así, si algo sale mal, puedes volver a la normalidad sin mayores contratiempos.
- Herramientas y automatización: existen muchas herramientas automatizadas que facilitan el proceso de hardening, realizando escaneos de vulnerabilidades y aplicando configuraciones seguras. Pero ojo, no confíes solo en ellas. Combínalas con revisiones manuales y conocimiento experto para estar bien cubierto.
7 pasos para realizar el hardening de servidores
- Identificar los activos importantes
Este primer paso profundizará las prácticas de ciberseguridad existentes, al mismo tiempo que permitirá operaciones más conscientes de los activos prioritarios que debemos resguardar. Sean estos activos físicos (hardware) con conexión a internet o activos digitales. - Evaluar los riesgos inminentes
Debemos realizar evaluaciones exhaustivas para determinar las vulnerabilidades digitales mediante la aplicación de pruebas de penetración. Esto facilitará el diseño de un plan de trabajo que beneficie las operaciones empresariales para prevenir ciberataques.
Por ejemplo, el Protocolo para Sincronización Horaria o Network Time Protocol (NTP) es un protocolo estandarizado para la vinculación horaria de múltiples equipos a través de Internet. Este presenta dos grandes vulnerabilidades que los hackers pueden utilizar para ingresar a nuestros sistemas y modificar archivos o realizar un ataque de denegación de servicios (DoS). - Establecer políticas de seguridad
Las políticas de seguridad empresarial son una de las bases más significativas para el desarrollo de una organización. Estas facilitan la dinámica entre los colaboradores, los usuarios finales de nuestra marca y la empresa. Por lo que deben priorizar la excelencia para la solicitud, gestión y almacenamiento de datos sensibles. - Mantener los equipos actualizados
Las actualizaciones permiten la continua corrección de errores, identificación de nuevas vulnerabilidades y la búsqueda de mejores estrategias para el reforzamiento de la seguridad digital de nuestra empresa.
Y a pesar de que es algo que se puede propiamente administrar, siempre es recomendable la asesoría con expertos en ciberseguridad, que recomienden las actualizaciones pertinentes para el funcionamiento y fortalecimiento del sistema empresarial, tal como nuestro complemento de Apolo: CISO. - Gestionar los accesos
Determinar quiénes son los usuarios finales con los permisos requeridos para la gestión de información confidencial es esencial para el desarrollo operativo de una empresa.
Este hecho facilita la adaptación de las operaciones según la escala de la empresa, en menor o mayor medida. Pues cada uno de los usuarios accederá a información empresarial que debe cuidar con recelo. - Utilizar firewalls
Los firewalls promueven los altos niveles de seguridad al analizar todo el tráfico entrante y saliente de una conexión a Internet desde cualquier dispositivo.
Sin embargo, los cortafuegos son diferentes para cada equipo. Es por eso que al ejecutar el hardening de nuestros servidores, es indispensable conocer cuál es el cortafuegos ideal que fortalecerá el sistema ante un posible ataque digital. - Elaborar un plan de contingencia
Tener un plan de contingencia facilitará la asignación de responsabilidades entre los colaboradores para brindar una respuesta inmediata en caso de que algún hacker dirija un ataque cibernético a nuestra organización.
II. Hardening de Windows Server
El hardening de Windows Server es un proceso crítico para proteger los servidores que ejecutan este sistema operativo de diversas amenazas de seguridad. Implica una serie de configuraciones y mejores prácticas diseñadas para minimizar la superficie de ataque, fortalecer las defensas y garantizar la confidencialidad, integridad y disponibilidad de los datos y servicios.
-
Consideraciones Iniciales y Mejores Prácticas Generales
Antes de comenzar el proceso de hardening, es fundamental establecer un inventario detallado de todos los servidores Windows en la infraestructura.
Esto permite un seguimiento y una gestión adecuados de los activos. Los nuevos servidores deben aislarse del tráfico de red e Internet hasta que estén completamente endurecidos, evitando así la exposición a posibles amenazas durante el proceso de configuración. Asegurar el BIOS o firmware con una contraseña robusta es un paso inicial importante para evitar cambios no autorizados a nivel de firmware. También se recomienda deshabilitar el inicio de sesión administrativo automático en la consola de recuperación para agregar una capa adicional de seguridad al entorno de recuperación. La configuración del orden de arranque de los dispositivos para evitar el inicio desde medios alternativos, como unidades USB o CDs, ayuda a prevenir el arranque no autorizado del sistema.Durante la instalación del sistema operativo, se debe optar por una instalación mínima, seleccionando solo los componentes y roles necesarios para la función prevista del servidor.
Esto reduce la superficie de ataque al eliminar software innecesario que podría contener vulnerabilidades. Después de la instalación, es crucial aplicar inmediatamente las últimas actualizaciones y parches de seguridad proporcionados por Microsoft. Las actualizaciones abordan vulnerabilidades conocidas y mejoran la estabilidad y el rendimiento del sistema. Se recomienda habilitar las notificaciones automáticas de disponibilidad de parches e instalarlos de manera oportuna. Sin embargo, antes de implementar cualquier parche en un entorno de producción, es fundamental realizar pruebas exhaustivas en un entorno de pruebas que refleje la configuración de producción. La implementación incremental del hardening, con pruebas después de cada paso, minimiza el riesgo de interrupciones y facilita la identificación de problemas. -
Configuración y Seguridad de Cuentas de Usuario
La seguridad de las cuentas de usuario es un aspecto fundamental del hardening de Windows Server. Se deben implementar políticas de contraseñas robustas para todas las cuentas de usuario, incluyendo requisitos de longitud mínima (se recomienda al menos 15 caracteres), complejidad (combinación de mayúsculas, minúsculas, números y símbolos), historial de contraseñas (recordar al menos 10 contraseñas anteriores) y vencimiento periódico (considerando las recomendaciones actuales de NIST que priorizan la longitud sobre la complejidad y sugieren cambios solo en caso de sospecha de compromiso).
Se debe considerar el uso de administradores de contraseñas para facilitar la gestión de contraseñas complejas.Para proteger contra ataques de fuerza bruta, se debe configurar una política de bloqueo de cuentas tras un número determinado de intentos fallidos de inicio de sesión.
Las cuentas inactivas y la cuenta de invitado deben deshabilitarse para reducir posibles vectores de ataque. Se recomienda renombrar la cuenta de administrador predeterminada o deshabilitarla por completo, creando una nueva cuenta con un nombre único para la administración del servidor. Es crucial aplicar el principio de mínimo privilegio, otorgando a los usuarios y procesos solo los derechos necesarios para realizar sus tareas. Para las tareas cotidianas, los administradores deben evitar operar bajo la cuenta de administrador, utilizando en su lugar una cuenta de usuario estándar y elevando privilegios solo cuando sea necesario. La separación de cuentas de administrador y usuario reduce el riesgo de comprometer privilegios elevados por error o ataque. -
Configuración de Características y Roles del Servidor
Un paso importante en el hardening de Windows Server es eliminar cualquier característica y rol del servidor que no sea necesario para su función prevista.
Esto reduce la superficie de ataque y simplifica la gestión del servidor. Cuando sea posible, se debe considerar la instalación de la versión Server Core de Windows Server, que proporciona un entorno minimalista sin interfaz gráfica de usuario, lo que reduce significativamente la superficie de ataque. -
Configuración de Aplicaciones y Servicios
De manera similar a las características y roles, se debe minimizar el número de aplicaciones y servicios instalados y en ejecución en el servidor.
Se deben deshabilitar todos los servicios que no sean esenciales para la función del servidor. Se recomienda desinstalar cualquier navegador web adicional que no sea necesario en el servidor. A menos que sean necesarios para software o hardware heredado, se deben deshabilitar NetBIOS sobre TCP/IP y la búsqueda LMHosts. -
Configuración de Red
La configuración adecuada de la red es fundamental para la seguridad del servidor. Se deben configurar las interfaces de red de acuerdo con los requisitos de la red.
Para los servidores de producción, se recomienda asignar direcciones IP estáticas para garantizar la fiabilidad de la conectividad. Se deben configurar al menos dos servidores DNS para proporcionar redundancia en la resolución de nombres. Se deben deshabilitar todos los protocolos de red innecesarios para reducir la exposición a posibles vulnerabilidades. -
Configuración del Firewall de Windows
El Firewall de Windows es un componente esencial de la seguridad de Windows Server y debe habilitarse en todos los perfiles de red (Dominio, Privado y Público).
Cada perfil debe configurarse para bloquear el tráfico entrante de forma predeterminada. Cuando sea necesario permitir el acceso entrante, este debe limitarse a los protocolos, puertos y direcciones IP específicos que sean esenciales para la función del servidor. Solo se deben abrir los puertos de red necesarios, restringiendo o denegando el acceso a todos los demás puertos. También es importante configurar reglas de salida para limitar el tráfico que puede originarse desde el servidor hacia redes externas. Para una configuración más granular, se debe utilizar la consola "Firewall de Windows con seguridad avanzada". La implementación de un modelo de "confianza cero" en la configuración del firewall, bloqueando todo por defecto y permitiendo solo lo necesario, es crucial para una seguridad eficaz. -
Configuración de la Hora del Sistema (NTP)
La configuración precisa de la hora del sistema mediante el Protocolo de Tiempo de Red (NTP) es vital para garantizar la precisión de los registros de eventos y para el correcto funcionamiento de los protocolos de autenticación. Se debe designar un servidor específico como el principal servidor de hora y configurarlo para que se sincronice con una fuente de hora atómica confiable.
Se debe establecer una política que exija que todos los servidores y estaciones de trabajo se sincronicen exclusivamente con ese servidor de hora designado. -
Configuración del Registro de Windows para Seguridad
La configuración adecuada del registro de Windows y el control de los cambios realizados en él también son vitales para la seguridad del servidor. Si el servicio "Registro Remoto" no es necesario, debe deshabilitarse. Si se requiere, se debe controlar estrictamente el acceso a él.
Se deben deshabilitar las configuraciones "NullSessionPipes" y "NullSessionShares" para limitar el acceso anónimo a los recursos de red. Solo se debe permitir que usuarios y administradores autorizados modifiquen las claves y subclaves críticas del registro. -
Implementación de Cifrado
Para mejorar la seguridad del servidor, se recomienda habilitar y configurar el cifrado de unidad BitLocker para la unidad del sistema completa, así como para cualquier unidad de datos adicional.
Para una protección de datos más granular, se puede considerar el uso del Sistema de cifrado de archivos (EFS) para cifrar archivos individuales. Para garantizar la confidencialidad e integridad de los datos a través de la red, se puede implementar IPsec para cifrar el tráfico de red entre servidores. Además, se deben utilizar protocolos seguros como TLS/SSL para todas las comunicaciones web para proteger los datos en tránsito. La implementación de cifrado debe considerar tanto los datos en reposo como en tránsito, utilizando las herramientas y protocolos adecuados para cada caso. -
Gestión de Acceso y Privilegios (Principio de Mínimo Privilegio)
La gestión de acceso y privilegios es un componente crítico del hardening de Windows Server. Se debe aplicar estrictamente el principio de mínimo privilegio, otorgando a los usuarios y procesos solo los derechos necesarios para realizar sus tareas.
Solo se debe permitir el acceso a la red a usuarios autenticados. Se deben configurar los tipos de cifrado permitidos para la autenticación Kerberos. Se debe evitar el almacenamiento de valores hash de LAN Manager. Si no son necesarios, se deben deshabilitar el uso compartido de archivos e impresoras. A menos que sea necesario para la compatibilidad con tecnología antigua, se debe deshabilitar el protocolo NTLMv1. -
Configuración de Acceso Remoto Seguro (RDP)
El Protocolo de Escritorio Remoto (RDP) es un objetivo común para los atacantes, por lo que debe habilitarse solo si es estrictamente necesario.
Si RDP está habilitado, se debe establecer el nivel de cifrado de conexión en alto. Los derechos de acceso remoto deben concederse solo a los usuarios específicos que los requieran. Siempre que sea posible, se debe implementar la autenticación multifactor (MFA) para RDP para agregar una capa adicional de protección. El acceso RDP debe limitarse a direcciones IP o redes específicas. -
Prácticas Generales de Hardening Adicionales
Para mejorar aún más la seguridad, se deben considerar las siguientes prácticas generales de hardening. Deshabilitar el uso de medios extraíbles, como unidades USB, ayuda a mitigar el riesgo de exfiltración de datos e inyección de malware.
Mostrar un aviso legal antes de que el usuario inicie sesión puede disuadir el uso no autorizado. Requerir Ctrl+Alt+Del para el inicio de sesión interactivo y configurar un límite de tiempo para finalizar automáticamente las sesiones inactivas ayuda a proteger contra el acceso no autorizado a estaciones de trabajo desatendidas. Si el servidor tiene suficiente memoria RAM, se puede considerar deshabilitar el archivo de intercambio para mejorar el rendimiento y la seguridad al evitar que los datos confidenciales se escriban en el disco duro. Se debe utilizar una solución de seguridad de endpoints para proteger los servidores contra malware y otras amenazas. La implementación de una solución de prevención de pérdida de datos (DLP) ayuda a proteger la información confidencial contra el acceso y la fuga inadecuados. Finalmente, se debe monitorizar la actividad del servidor para detectar cualquier comportamiento sospechoso que pueda comprometer la seguridad. -
Consideraciones Específicas para Diferentes Versiones de Windows Server (e.g., 2019, 2022)
Microsoft proporciona Security Baselines específicos para cada versión de Windows Server, que ofrecen configuraciones recomendadas para mejorar la seguridad.
Se deben aplicar las Security Baselines correspondientes a la versión del servidor que se está endureciendo. Además, se pueden utilizar los benchmarks del Centro para la Seguridad en Internet (CIS) específicos de la versión para obtener pautas de hardening adicionales. Es importante tener en cuenta las diferencias en las características de seguridad y las opciones de configuración entre las diferentes versiones de Windows Server al implementar el hardening.Tabla 1: Comparativa de las principales características de seguridad y hardening entre Windows Server 2019 y 2022
Característica | Windows Server 2019 | Windows Server 2022 | Notas |
---|---|---|---|
Security Baselines | Disponibles | Actualizadas | Microsoft proporciona baselines específicas para cada versión. |
AppLocker | Soporte | Soporte con actualización para Microsoft Edge | Las baselines de 2022 restringen también Microsoft Edge. |
Script Scanning | Soporte limitado en GPO | Soporte completo en GPO y MDM (obligatorio en baseline) | Paridad entre GPO y MDM. |
Restrict Driver Installations | Requiere configuración manual | Nueva configuración en baseline (SecGuide.admx/l) | Protección contra vulnerabilidades como PrintNightmare. |
TLS 1.3 | Soporte | Soporte | Protocolo de cifrado más reciente y seguro. |
Protección contra ataques de fuerza bruta RDP | Configurable | Mejoras | Protección mejorada contra ataques de fuerza bruta. |
DNS sobre HTTPS (DoH) | Configurable | Soporte nativo | Mayor privacidad y seguridad para las consultas DNS. |
III. Hardening de Linux Server
El hardening de servidores Linux es un proceso esencial para asegurar sistemas operativos basados en el kernel Linux, que son ampliamente utilizados en entornos de servidor. Al igual que con Windows Server, el objetivo es reducir la superficie de ataque, fortalecer la seguridad y proteger los datos y servicios.
-
Consideraciones Iniciales y Mejores Prácticas Generales
Antes de comenzar el proceso de hardening en un servidor Linux, es importante documentar la información del host, como el nombre de la máquina, la dirección IP y la dirección MAC.
Proteger el BIOS con una contraseña es un paso fundamental para evitar modificaciones no autorizadas en la configuración del sistema. Se recomienda cifrar el disco duro para proteger los datos en caso de acceso físico no autorizado. Un esquema de particionamiento de disco adecuado, separando particiones para /, /boot, /home, /tmp y /var, puede mejorar la seguridad y la disponibilidad. Bloquear el directorio de arranque ayuda a prevenir la manipulación del proceso de inicio. Deshabilitar el uso de unidades USB en servidores que no lo requieran puede reducir el riesgo de exfiltración de datos e inyección de malware. Finalmente, se debe aplicar el principio de mínimo privilegio a todas las cuentas de usuario y procesos. La planificación cuidadosa del particionamiento y el cifrado del disco durante la instalación son pasos fundamentales para la seguridad a largo plazo. -
Actualización del Sistema Operativo y Paquetes
Mantener el sistema operativo y todos los paquetes instalados actualizados es crucial para la seguridad de un servidor Linux.
Se deben utilizar los gestores de paquetes proporcionados por la distribución (como apt en Debian/Ubuntu, yum/dnf en CentOS/RHEL y pacman en Arch Linux) para aplicar regularmente las actualizaciones de seguridad. Se debe considerar la posibilidad de habilitar las actualizaciones automáticas, pero solo para los paquetes relacionados con la seguridad, para evitar cambios inesperados en la funcionalidad. Es importante revisar el historial de cambios y las notas de seguridad de las actualizaciones para comprender las vulnerabilidades que se están abordando. -
Gestión de Cuentas de Usuario y Autenticación
Se deben implementar políticas de contraseñas fuertes utilizando el módulo PAM (Pluggable Authentication Modules).
El archivo de configuración /etc/pam.d/common-password se puede modificar para establecer requisitos de longitud mínima (se recomienda al menos 12 caracteres), complejidad (requiriendo una combinación de mayúsculas, minúsculas, números y símbolos), historial de contraseñas y vencimiento periódico. El inicio de sesión directo como usuario root debe deshabilitarse para evitar el acceso no autorizado con privilegios elevados. En su lugar, se debe configurar sudo para permitir que usuarios específicos ejecuten comandos con privilegios de root cuando sea necesario. El acceso a los servidores Linux debe protegerse mediante la autenticación basada en claves SSH, que es más segura que la autenticación por contraseña. Esto implica generar pares de claves SSH (usando ssh-keygen y ssh-copy-id), deshabilitar la autenticación por contraseña en el archivo de configuración /etc/ssh/sshd_config (estableciendo PasswordAuthentication en no), cambiar el puerto SSH predeterminado (22) a un puerto no estándar y permitir el acceso SSH solo a usuarios específicos utilizando la directiva AllowUsers. Para proteger contra ataques de fuerza bruta, se puede utilizar la herramienta Fail2ban para bloquear temporalmente las direcciones IP que realicen demasiados intentos de inicio de sesión fallidos. -
Eliminación de Software y Servicios Innecesarios
Como se mencionó anteriormente, minimizar la cantidad de software y servicios instalados en un servidor Linux reduce su superficie de ataque.
Se deben listar todos los paquetes instalados utilizando el gestor de paquetes y eliminar aquellos que no sean necesarios para la función del servidor. De manera similar, se deben listar todos los servicios en ejecución y deshabilitar aquellos que no sean esenciales. En sistemas que no actúen como servidores de archivos, se deben deshabilitar servicios como inetd y NFS (Network File System). -
Gestión de Puertos Abiertos y Servicios de Red
Es importante identificar todos los puertos abiertos en un servidor Linux utilizando herramientas como netstat y nmap.
Cualquier puerto que no esté asociado a un servicio necesario debe cerrarse para evitar posibles puntos de entrada para atacantes. Para servicios que lo soporten, se pueden utilizar TCP Wrappers (/etc/hosts.allow y /etc/hosts.deny) para restringir el acceso basándose en direcciones IP o nombres de host. -
Configuración del Firewall
La mayoría de las distribuciones de Linux incluyen un firewall (como iptables o firewalld) que debe configurarse para controlar el tráfico de red entrante y saliente.
Se deben configurar reglas básicas para permitir el tráfico esencial, como SSH (en un puerto no estándar), HTTP (puerto 80) y HTTPS (puerto 443). También se pueden configurar reglas más avanzadas para bloquear todo el tráfico por defecto y permitir solo el tráfico necesario basándose en la dirección de origen o destino, o para limitar la velocidad de las conexiones para mitigar ataques de denegación de servicio. En sistemas que utilizan firewalld, se pueden utilizar zonas para gestionar diferentes niveles de confianza para las interfaces de red. Es fundamental guardar la configuración del firewall para que persista después de un reinicio. -
Implementación de SELinux o AppArmor
SELinux (Security-Enhanced Linux) y AppArmor son sistemas de seguridad que proporcionan políticas de seguridad adicionales para el kernel de Linux.
SELinux se utiliza comúnmente en distribuciones como Red Hat, CentOS y Fedora, mientras que AppArmor es más común en sistemas basados en Debian como Ubuntu. Se debe verificar el estado de SELinux utilizando el comando sestatus y configurar el modo (enforcing, permissive o disabled) en el archivo /etc/selinux/config. En distribuciones basadas en Debian, se pueden crear perfiles de AppArmor para restringir las capacidades de las aplicaciones. -
Auditorías de Seguridad
Se deben realizar auditorías de seguridad periódicas en los servidores Linux para identificar posibles vulnerabilidades y garantizar que las configuraciones de seguridad sean efectivas.
Lynis es una herramienta popular para auditar y endurecer sistemas Linux. Se puede instalar utilizando el gestor de paquetes y ejecutar para realizar una exploración del sistema. La herramienta generará un informe con recomendaciones de hardening que deben revisarse e implementarse según sea necesario. -
Copias de Seguridad Seguras
Las copias de seguridad regulares y seguras son esenciales para la recuperación en caso de una intrusión o pérdida de datos.
Se puede utilizar la herramienta Rsync para crear copias de seguridad de los datos. Se recomienda implementar la regla 3-2-1 para la estrategia de copias de seguridad: tener tres copias de los datos, almacenadas en al menos dos tipos de medios diferentes, con una copia almacenada fuera del sitio. Las copias de seguridad deben almacenarse en una ubicación segura y fuera del sitio para protegerlas contra desastres locales o brechas de seguridad. Es importante probar periódicamente el proceso de recuperación de las copias de seguridad para asegurarse de que sean válidas y que los datos se puedan restaurar correctamente cuando sea necesario. -
Consideraciones Específicas para Diferentes Distribuciones (Ubuntu, CentOS, Debian, RHEL)
Cada distribución de Linux tiene sus propias herramientas y prácticas recomendadas para el hardening. En Ubuntu, se puede hacer referencia a la Guía de Seguridad de Ubuntu Pro para obtener pautas específicas.
Para CentOS, se recomienda utilizar los benchmarks CIS para CentOS como base para el hardening. Debian proporciona un manual detallado llamado "Securing Debian" que ofrece una guía completa para endurecer sistemas Debian. Red Hat Enterprise Linux (RHEL) tiene su propia Guía de Endurecimiento de Seguridad que proporciona recomendaciones específicas para asegurar sistemas RHEL.Tabla 2: Comparativa de comandos y herramientas de hardening entre distribuciones de Linux
Tarea | Ubuntu | CentOS | Debian | RHEL |
---|---|---|---|---|
Actualizar sistema | sudo apt update && sudo apt upgrade | sudo yum update && sudo yum upgrade | sudo apt update && sudo apt upgrade | sudo yum update && sudo yum upgrade / sudo dnf update |
Gestionar servicios | `sudo systemctl [start | stop | enable | disable] <servicio>` |
Configurar firewall | `sudo ufw [allow | deny] <puerto>/ sudo iptables...` | `sudo firewall-cmd --[add | remove]-port=<puerto>/<protocolo> --permanent/ sudo iptables...` |
Auditar seguridad | sudo apt install lynis && sudo lynis audit system | sudo yum install lynis && sudo lynis audit system | sudo apt install lynis && sudo lynis audit system | sudo yum install lynis && sudo lynis audit system |
Gestionar SELinux/AppArmor | sudo apt install apparmor && sudo apparmor_status | `sudo yum install selinux-policy-targeted && sudo setenforce [0 | 1]/ sudo sestatus` | sudo apt install apparmor && sudo apparmor_status |
IV. Hardening de FreeBSD Server
FreeBSD es un sistema operativo de tipo UNIX conocido por su fiabilidad y sus robustas características de seguridad. Endurecer un servidor FreeBSD implica una serie de prácticas y configuraciones específicas para fortalecer su postura de seguridad.
-
Consideraciones Iniciales y Mejores Prácticas Específicas para FreeBSD
La filosofía de seguridad de FreeBSD se centra en proporcionar un sistema base seguro con la flexibilidad de endurecerse aún más según las necesidades.
Una mejor práctica inicial es optar por una instalación mínima, seleccionando solo los paquetes esenciales para la función del servidor. Esto reduce la superficie de ataque y simplifica el mantenimiento. Antes de realizar cualquier cambio, es recomendable revisar la política de seguridad de la organización para garantizar el cumplimiento. -
Instalación Mínima de Paquetes
Durante el proceso de instalación de FreeBSD, se debe seleccionar la opción de instalar la cantidad mínima absoluta de paquetes necesarios. Esto reduce la superficie de ataque y simplifica el mantenimiento. Se pueden instalar paquetes adicionales posteriormente según sea necesario.
-
Gestión de Cuentas de Usuario y Autenticación
Se deben implementar políticas de contraseñas robustas utilizando el módulo
pam_passwdqc
en el archivo/etc/login.conf
. Esto permite establecer requisitos de longitud, complejidad y otros criterios para las contraseñas. Se debe deshabilitar el inicio de sesión directo como usuario root editando el archivo/etc/ssh/sshd_config
y estableciendoPermitRootLogin
enno
. Para la elevación de privilegios, se recomienda utilizar las utilidadessudo
odoas
en lugar de compartir la contraseña de root. La autenticación basada en claves SSH debe utilizarse para el acceso remoto, ya que es más segura que la autenticación por contraseña. Para evitar el acceso no autorizado, se pueden bloquear cuentas de usuario utilizando el comandopw lock
o restringir su shell a/usr/sbin/nologin
. -
Protecciones del Sistema de Archivos
FreeBSD permite configurar flags en los archivos para controlar su comportamiento más allá de los permisos tradicionales. Se deben utilizar flags como
nosuid
,noexec
ynodev
en los sistemas de archivos apropiados, configurándolos en el archivo/etc/fstab
. Además, se pueden implementar Listas de Control de Acceso (ACLs) utilizando los comandossetfacl
ygetfacl
para establecer permisos de archivo a un nivel mucho más granular. Para proteger los datos en reposo, se recomienda cifrar las particiones del disco utilizando la utilidad GELI. Si se utiliza el sistema de archivos ZFS, se debe considerar deshabilitar el bit setuid en los datasets que no lo requieran como medida de seguridad adicional. -
Configuración del Firewall
FreeBSD incluye tres soluciones de firewall en su sistema base: PF (Packet Filter), IPFW e IPFILTER. Se recomienda utilizar PF, que se configura mediante el archivo
/etc/pf.conf
y se gestiona con el comandopfctl
. La configuración del firewall debe seguir el principio de bloqueo por defecto, permitiendo solo el tráfico necesario. Se debe asegurar que el firewall esté habilitado en el archivo/etc/rc.conf
. -
Actualizaciones del Sistema Base y de Paquetes
Es crucial mantener actualizado tanto el sistema base de FreeBSD como todos los paquetes instalados. El sistema base se puede actualizar utilizando la utilidad
freebsd-update
, mientras que los paquetes se actualizan conpkg update
ypkg upgrade
. Para supervisar las vulnerabilidades conocidas en los paquetes instalados, se puede utilizar la herramientaportaudit
. -
Deshabilitación de Servicios Innecesarios
Se deben deshabilitar todos los servicios innecesarios para reducir la superficie de ataque. Esto incluye servicios como
inetd
, que se puede deshabilitar en el archivo/etc/rc.conf
. -
Logging y Monitorización
La habilitación de un logging extenso y la monitorización del sistema son fundamentales para detectar anomalías o intrusiones. La configuración del logging se realiza en el archivo
/etc/syslog.conf
, y los logs de autenticación se pueden revisar en/var/log/auth.log
. -
Seguridad de Red
Se debe configurar OpenSSH de forma segura editando el archivo
/etc/ssh/sshd_config
. Las recomendaciones incluyen deshabilitar el login de root (PermitRootLogin no
), utilizar un puerto no estándar, permitir el acceso solo a usuarios específicos (AllowUsers
) y utilizar la autenticación basada en claves SSH. Se puede utilizar OpenSSL para generar y gestionar certificados SSL para servicios que requieran comunicaciones seguras. También se deben considerar las opciones de configuración para Kerberos y TCP Wrappers para un control de acceso más granular. -
Auditoría del Sistema
FreeBSD proporciona varias herramientas para la auditoría del sistema.
mtree
puede utilizarse para verificar la integridad de los archivos del sistema, mientras querkhunter
puede ayudar a detectar rootkits. Lynis también está disponible para FreeBSD y puede realizar auditorías de seguridad exhaustivas.Tabla 3: Comandos esenciales de hardening en FreeBSD
Tarea | Comando |
---|---|
Bloquear usuario | sudo pw lock <usuario> |
Cambiar shell | sudo chsh -s /usr/sbin/nologin <usuario> |
Configurar sudo | sudo pkg install sudo / Editar /usr/local/etc/sudoers con visudo |
Gestionar ACLs | sudo setfacl -m u:<usuario>:<permisos> <archivo> / sudo getfacl <archivo> |
Gestionar flags | sudo chflags <flag> <archivo> |
Actualizar sistema base | sudo freebsd-update fetch / sudo freebsd-update install |
Actualizar paquetes | sudo pkg update / sudo pkg upgrade |
Auditar paquetes por vulnerabilidades | sudo pkg audit -F |
Auditar sistema con Lynis | sudo pkg install lynis / sudo lynis audit system |
Gestionar firewall PF | sudo pfctl -sr / Editar /etc/pf.conf |
Habilitar/Deshabilitar servicio | `sudo service <servicio> [start |
Ver puertos abiertos | sudo sockstat -l |
V. Estructura de una Red de Servidores Segura
La estructura de una red de servidores segura es fundamental para proteger los activos de una organización contra las amenazas cibernéticas. Un diseño de red bien pensado implementa múltiples capas de seguridad y controles para minimizar los riesgos y limitar el impacto de cualquier posible brecha.
-
Principios de Diseño de Red Segura
Varios principios guían el diseño de una red de servidores segura. La defensa en profundidad es una estrategia clave que implica la implementación de múltiples controles de seguridad redundantes. Si una capa de seguridad falla, otras capas están presentes para proporcionar protección.
El principio de mínimo privilegio debe extenderse al diseño de la red, asegurando que los usuarios, dispositivos y servidores tengan solo el acceso necesario para realizar sus funciones. La segmentación y el aislamiento de la red son cruciales para dividir la red en zonas más pequeñas y controladas, lo que limita el movimiento lateral de los atacantes. La redundancia y la alta disponibilidad garantizan que los servicios críticos sigan funcionando incluso en caso de fallos de hardware o software. Una gestión de accesos y una autenticación robusta son esenciales para verificar la identidad de los usuarios y dispositivos antes de conceder acceso a la red. Finalmente, la monitorización y la auditoría continua de la actividad de la red proporcionan visibilidad sobre posibles amenazas y ayudan a detectar y responder a los incidentes de seguridad. -
Segmentación de Red
La segmentación de red es una práctica de seguridad que divide una red en múltiples segmentos o subredes, cada uno actuando como su propia red pequeña.
Esto se puede lograr utilizando Redes de Área Local Virtuales (VLANs) para el aislamiento lógico o mediante la creación de subredes utilizando esquemas de direccionamiento IP. La segmentación de red ofrece varios beneficios para la seguridad. Ayuda a contener las brechas de seguridad, limitando la capacidad de los atacantes para moverse lateralmente a través de la red. Permite la aplicación de políticas de seguridad específicas a diferentes segmentos en función de su función y nivel de sensibilidad. Además, la segmentación de red puede reducir el alcance de la conformidad normativa al aislar los sistemas que manejan datos sensibles. -
Zonas Desmilitarizadas (DMZ)
Una Zona Desmilitarizada (DMZ) es una subred que actúa como una zona de amortiguamiento entre una red interna confiable y una red externa no confiable, como Internet.
El propósito de una DMZ es albergar los servicios de cara al público de una organización (como servidores web, servidores de correo electrónico y servidores DNS) de una manera que estén accesibles desde Internet, pero que estén aislados de la red interna donde se almacenan los activos más sensibles. Una DMZ se implementa típicamente utilizando uno o dos firewalls. El firewall externo protege la DMZ de Internet, mientras que el firewall interno protege la red interna de la DMZ. Se deben aplicar consideraciones de seguridad específicas a los servidores ubicados en la DMZ, como el endurecimiento del sistema operativo, la minimización de los servicios en ejecución y la monitorización estricta del tráfico. -
Consideraciones de Redundancia y Alta Disponibilidad
La redundancia y la alta disponibilidad son aspectos importantes del diseño de una red de servidores segura. La redundancia implica el uso de componentes o sistemas duplicados para proporcionar conmutación por error en caso de fallo.
La alta disponibilidad se refiere a la capacidad de un sistema para permanecer operativo durante un período prolongado, minimizando el tiempo de inactividad. Se pueden implementar diferentes tipos de redundancia, como la redundancia activo-pasivo (donde un servidor activo maneja la carga de trabajo y un servidor pasivo permanece en espera), la redundancia activo-activo (donde múltiples servidores manejan la carga de trabajo simultáneamente) y la redundancia N+1 (donde hay un componente de respaldo adicional para cada N componentes necesarios). La implementación de la redundancia y la alta disponibilidad ayuda a garantizar que los servicios críticos permanezcan accesibles incluso en caso de fallos de hardware o software, contribuyendo a la seguridad general de la red al evitar interrupciones que podrían ser explotadas por atacantes.
VI. Firewalls y Alternativas Open Source
Los firewalls son componentes críticos de la seguridad de los servidores, actuando como una barrera entre una red confiable y redes no confiables, como Internet.
Existen varios tipos de firewalls, incluyendo:
- Firewalls de filtrado de paquetes: Examinan los encabezados de los paquetes de red y toman decisiones de reenvío basadas en la dirección IP de origen y destino, los puertos y los protocolos.
- Firewalls con estado (Stateful Firewalls): Realizan un seguimiento del estado de las conexiones de red activas, lo que les permite tomar decisiones más informadas sobre qué tráfico permitir o denegar.
- Firewalls de capa de aplicación (Application Layer Firewalls o Proxies): Operan en la capa de aplicación del modelo OSI y pueden inspeccionar el contenido del tráfico, lo que les permite bloquear ataques específicos de la aplicación como la inyección SQL y el cross-site scripting (XSS).
Para aquellos que buscan alternativas de código abierto a los firewalls comerciales, existen varias opciones populares y efectivas:
- pfSense: Un firewall de código abierto basado en FreeBSD que ofrece una amplia gama de características, incluyendo firewall con estado, VPN, equilibrio de carga y detección de intrusiones.
- OPNsense: Otro firewall de código abierto basado en FreeBSD, derivado de pfSense, que también proporciona un conjunto completo de características de seguridad de red.
- iptables/nftables: Herramientas de firewall basadas en el kernel de Linux que permiten a los administradores configurar reglas de firewall potentes y flexibles.
nftables es el sucesor de iptables y ofrece un marco más moderno y eficiente para la clasificación y el filtrado de paquetes. - Firewalld: Un firewall de gestión de firewall dinámico con soporte para zonas de red y servicios, utilizado por muchas distribuciones de Linux como CentOS y Fedora.
- VyOS: Un sistema operativo de red de código abierto basado en Linux que puede implementarse como un firewall y enrutador de software, ofreciendo características de nivel empresarial.
Estas alternativas de código abierto proporcionan una funcionalidad robusta y pueden ser una opción rentable para las organizaciones que buscan asegurar sus redes de servidores. La elección del firewall adecuado dependerá de los requisitos específicos de la red, la experiencia del administrador y el presupuesto disponible.
VII. Conclusiones
El hardening de servidores es un proceso multifacético y continuo que es esencial para proteger la infraestructura de TI de las organizaciones en el panorama de amenazas actual. Esta guía ha proporcionado una visión completa de las mejores prácticas para endurecer servidores que ejecutan Windows Server, Linux y FreeBSD, abordando consideraciones iniciales, seguridad de cuentas, configuración de servicios, seguridad de red, firewalls y otras medidas de seguridad importantes.
Para Windows Server, la implementación de políticas de contraseñas robustas, la minimización de roles y servicios, la configuración adecuada del firewall y el uso de cifrado son pasos críticos. La aplicación regular de parches y la comprensión de las diferencias entre las versiones de Windows Server son también fundamentales.
En el caso de Linux, se hace hincapié en la importancia de mantener el sistema y los paquetes actualizados, asegurar el acceso mediante claves SSH, configurar un firewall robusto y utilizar herramientas de auditoría como Lynis. Las consideraciones específicas para diferentes distribuciones, como Ubuntu, CentOS, Debian y RHEL, permiten a los administradores adaptar la guía a su entorno particular.
FreeBSD, con su enfoque en la seguridad desde el diseño, ofrece una serie de herramientas y técnicas específicas para el hardening, incluyendo la gestión de cuentas, la protección del sistema de archivos, la configuración del firewall PF y la auditoría del sistema.
Además de las prácticas específicas del sistema operativo, la estructura de una red de servidores segura desempeña un papel crucial en la protección de los activos. La segmentación de red, el uso de DMZs y la implementación de redundancia y alta disponibilidad son principios de diseño importantes que deben considerarse.
Finalmente, los firewalls, tanto propietarios como de código abierto, son la primera línea de defensa contra el tráfico malicioso. Las alternativas de código abierto como pfSense, OPNsense, iptables/nftables, firewalld y VyOS ofrecen una funcionalidad potente y pueden ser una opción viable para muchas organizaciones.
En última instancia, el endurecimiento eficaz de los servidores requiere un enfoque proactivo y en capas. Las organizaciones deben realizar evaluaciones de riesgos periódicas, mantenerse al tanto de las últimas amenazas y vulnerabilidades, y adaptar sus estrategias de hardening en consecuencia. La seguridad no es un destino, sino un viaje continuo de mejora y adaptación.