Introducción
¡Qué buen servidor Linux tienes! Sería una lástima que le pasara algo. Puede que funcione de inmediato, pero antes de ponerlo en producción, hay 10 pasos que debes seguir para asegurarte de que tu configuración sea segura. Los detalles de estos pasos pueden variar según la distribución, pero el concepto se aplica a cualquier distribución de Linux. Al seguir estos pasos en servidores nuevos, puedes asegurarte de que cuenten con al menos una protección básica contra los ciberataques más comunes.
1 – Configuración del usuario
Lo primero que deberá hacer, si aún no está configurado en su sistema operativo, es cambiar la contraseña de root. Esto debería ser obvio, pero puede pasar desapercibido durante una configuración típica de servidor. La contraseña debe tener al menos 8 caracteres y combinar mayúsculas y minúsculas, números y símbolos. Además, si va a usar cuentas locales, debe configurar una política de contraseñas que especifique la antigüedad, el bloqueo, el historial y los requisitos de complejidad. En la mayoría de los casos, debería deshabilitar por completo el usuario root y crear cuentas no root con acceso a sudo para quienes necesiten privilegios elevados.
2 – Configuración de red
Una de las configuraciones más básicas que debe realizar es habilitar la conectividad de red asignando una dirección IP y un nombre de host al servidor. En la mayoría de los servidores, conviene usar una IP estática para que los clientes siempre puedan encontrar el recurso en la misma dirección. Si su red usa VLAN, considere el grado de aislamiento de la sección del servidor y dónde sería mejor ubicarla. Si no usa IPv6, desactívelo. Configure el nombre de host, el dominio y la información del servidor DNS. Se deben usar dos o más servidores DNS para la redundancia, y debe probar nslookup para asegurarse de que la resolución de nombres funcione correctamente.
3 – Gestión de paquetes
Probablemente esté configurando su nuevo servidor para un propósito específico, así que instale los paquetes que necesite si no forman parte de la distribución que utiliza. Estos pueden ser paquetes de utilidades como PHP, MongoDB, ngnix o paquetes de soporte como pear. Asimismo, debe eliminar cualquier paquete adicional instalado en su sistema para minimizar el consumo de espacio del servidor. Todo esto debe hacerse a través de la solución de gestión de paquetes de su distribución, como Yum o apt, para facilitar la gestión en el futuro.
4 – Actualizar la instalación y configuración
Una vez que tenga los paquetes correctos instalados en su servidor, asegúrese de que todo esté actualizado. No solo los paquetes instalados, sino también los del kernel y los paquetes predeterminados. A menos que necesite una versión específica, siempre debe usar la última versión de producción para mantener su sistema seguro. Normalmente, su solución de gestión de paquetes le proporcionará la última versión compatible. También debería configurar actualizaciones automáticas en su herramienta de gestión de paquetes si esto funciona para los servicios que aloja en este servidor.
5 – Configuración de NTP
Configure su servidor para sincronizar su hora con los servidores NTP. Esto puede hacerse si su entorno cuenta con servidores NTP internos o servidores de hora externos accesibles para cualquier persona. Es importante evitar la desviación horaria, es decir, que el reloj del servidor se desvíe de la hora real. Esto puede causar muchos problemas, incluyendo problemas de autenticación, donde la desviación horaria entre el servidor y la infraestructura de autenticación se mide antes de conceder el acceso. Esto debería ser sencillo, pero una infraestructura fiable es fundamental.
6 – Cortafuegos e iptables
Dependiendo de tu distribución, las tablas pueden estar completamente bloqueadas y te pedirán que abras lo que necesites. Sin embargo, independientemente de la configuración predeterminada, siempre deberías revisarla y asegurarte de que esté configurada correctamente. Recuerda usar siempre el principio de mínimo privilegio y abrir solo los puertos necesarios para los servicios de ese servidor. Si tu servidor está protegido por un firewall dedicado, asegúrate de denegar todo excepto lo necesario. Si tu iptables o firewall son restrictivos por defecto, ¡no olvides abrir lo necesario para que tu servidor funcione!
7 – Protección de SSH
SSH es el principal método de acceso remoto para las distribuciones de Linux y, por lo tanto, debe estar debidamente protegido. Debe desactivar la capacidad del usuario root para acceder remotamente a SSH, incluso si ha desactivado la cuenta, para que, si el usuario root está habilitado en el servidor por algún motivo, no pueda ser explotado remotamente. También puede restringir SSH a rangos de IP específicos si tiene un conjunto fijo de IP de cliente que se conectan. Opcionalmente, puede cambiar el puerto SSH predeterminado para ofuscarlo, pero, sinceramente, un simple escaneo revelará el nuevo puerto abierto a cualquiera que desee encontrarlo. Finalmente, puede desactivar la autenticación con contraseña por completo y usar la autenticación basada en certificados para reducir aún más las posibilidades de que se explote SSH.
8 – Configuración del demonio
Has limpiado tus paquetes, pero también es importante configurar los programas correctos para que se inicien automáticamente al reiniciar. Asegúrate de apagar cualquier daemon que no necesites. Una de las claves para un servidor seguro es reducir la huella activa al máximo, de modo que las únicas áreas de ataque disponibles sean las requeridas por las aplicaciones. Una vez hecho esto, los servicios restantes deben reforzarse al máximo para garantizar su resiliencia.
9 – SELinux y mayor endurecimiento
Si alguna vez ha usado una distribución de Red Hat, quizás esté familiarizado con SELinux, una herramienta de refuerzo del kernel que protege el sistema de diversas operaciones. SELinux es excelente para proteger contra el uso y acceso no autorizados a los recursos del sistema. También es excelente para dañar aplicaciones, así que asegúrese de probar su configuración con SELinux habilitado y use los registros para asegurarse de que no se bloquee nada legítimo. Además, debería investigar sobre el refuerzo de aplicaciones como MySQL o Apache, ya que cada una tiene sus propias prácticas recomendadas.
10 – Iniciar sesión
Finalmente, debe asegurarse de que el nivel de registro necesario esté habilitado y de que disponga de recursos suficientes. Con el tiempo, tendrá que solucionar los problemas de este servidor, así que hágase un favor ahora y cree la estructura de registro necesaria para resolverlos rápidamente. La mayoría del software tiene registros configurables, pero deberá probar y equivocarse para encontrar el equilibrio adecuado entre información insuficiente y insuficiente. Existen diversas herramientas de registro de terceros que pueden ayudarle con todo, desde la agregación hasta la visualización, pero primero debe considerar las necesidades de cada entorno. Luego, podrá encontrar las herramientas que le ayudarán a completarlas.
Resultado
Cada uno de estos pasos puede llevar tiempo, especialmente la primera vez. Sin embargo, al crear una rutina inicial de configuración del servidor, puede garantizar la resiliencia de las nuevas máquinas en su entorno. No completar alguno de estos pasos puede tener consecuencias muy graves si su servidor se convierte en blanco de un ataque. Seguirlos no garantiza la seguridad (las filtraciones de datos ocurren), pero sí dificulta considerablemente que los atacantes las superen, y requiere cierta habilidad para superarlas.









