Esta es una guía que he desarrollado para un cliente, por lo tanto hay aspectos que se adaptan a sus necesidades (como iptables). Pero ha grandes rasgos puede ser utilizada en cualquier ámbito. También he desarrollado un script modular que automatiza todo el proceso, para más información ir a este post: Script modular para el bastionado de GNU/Linux
1. Principios genéricos
A la hora de instalar, configurar y administrar un servidor, se debe:
- Cifrar todos los datos que se transmiten a través de la red, son particularmente importante los datos relativos a nombres de usuario y contraseñas
- Minimizar la cantidad de programas y servicios instalados y en ejecución para minimizar el riesgo potencial ante vulnerabilidades
- Utilizar medidas de seguridad adicionales como: SELinux, IPtables, Apparmor
- Auditar los elementos críticos y/o de mayor riesgo de cada servidor
- Minimizar la instalación de varios servicios en un mismo servidor, para reducir el riesgo de que un servicio comprometido afecte a otros servicios
- Realizar un buen seguimiento de las cuentas de usuario, crear una política de contraseñas sólida y forzar su uso así como eliminar las cuentas de usuarios innecesarias o que ya no se utilicen
- Revisar los logs de sistema y de aplicación de manera rutinaria. Enviar los logs a un servidor de logs
- Evitar el inicio de sesión con el usuario root. Los administradores deben usar el comando sudo para ejecutar comandos como root. Utilizar el comando visudo para editar el archivo /etc/sudoers, este comando comprueba la sintaxis del archivo antes de guardarlo
- Utilizar la metodología del menor privilegio en todos los ámbitos