Un cliente me pidió que le crease unas máquinas GNU/Linux con varios programas para la monitorización y el análisis del tráfico de red. La idea era repartir varias máquinas por distintos puntos de su extensa red y vigilar durante un tiempo ese segmento.
El cliente tan solo quería varias máquinas con GNU/Linux y algunos programas instalados, que se administrasen remotamente por SSH y enviaran a un servidor splunk central las alertas de Snort. Pero a mí me pareció una ocasión ideal para explotar la flexibilidad de GNU/Linux y las cosas chulas que se pueden hacer de una forma sencilla, así que me planteé los siguientes puntos que debería cubrir la solución:
- Los usuarios no deben conocer la contraseña de administrador
- Debe ser factible la gestión de los programas que se instalen (esto requiere privilegios de administrador)
- Permitir su uso por usuarios con conocimiento cero de GNU/Linux (esto quiere decir que hay que evitar la SHELL)
- Si llega a manos de un usuario con conocimientos, no quiero que desmonte el chiringuito. Hay que limitar el acceso
- Los datos deben estar cifrados en el disco, ya que pueden contener datos sensibles y se van a mover por la geografía estatal
- Se deben poder configurar las tarjetas de red
Para cubrir estos requisitos hay que:
- Proteger la BIOS y el gestor de aranque (Grub) por contraseña
- Cifrar la mayor parte del disco duro
- Modificar el inicio para que init no lance el proceso login
- Crear una interfaz de uso sencillo y que no permita el acceso a la SHELL
Esto en la práctica implica transformar un GNU/Linux en una caja «tonta» que muestre un menú con las distintas acciones que se le permite realizar al usuario al arrancar la máquina, es decir en el TTy1. Además decidí mostrar el log de Snort en el TTy2.
A continuación muestro la documentación entregada al cliente en la que se explica con detalle la arquitectura. La documentación incluye, en el Anexo, un script que automatiza el proceso de configuración una vez instalado GNU/Linux.