03 agosto 2011

The Halls of Mandos es, en el mundo ficticio de J.R.R. Tolkien, el lugar al que los espíritus de elfos fallecidos van a ser juzgados, y posiblemente reencarnados.

Y de aquí viene el nombre de Mandos, un programa cuya función es hacer algo parecido.

Cifrar el sistema de ficheros de nuestro servidor puede darnos ventajas muy interesantes de cara a posibles intrusiones físicas, robos, sustracciones, e incluso fugas de datos gracias a recuperación de información tras desechar el hardware del mismo.

Pero claro, ¿y si se cae el servidor?, ¿y si queremos reiniciarlo?

Tendríamos que estar presencialmente allí para introducir la contraseña que descifre el disco duro en el arranque. Si además tenemos cientos de servidores, ésto es absolutamente inviable.

Mandos permite hacer ésto de una forma automática, desatendida, segura y escalable.

Nuestro servidor, que para entendernos lo llamaremos servidor esclavo, tendrá el sistema de ficheros raiz cifrado.

La clave de cifrado está almacenada en otro ordenador, al que llamaremos servidor de Mandos, y que podrá almacenar claves de varios servidores esclavos cifrados.

La clave no estará almacenada en texto claro en el servidor de Mandos, estará cifrada con OpenPGP. Para descifrar la clave, es necesaria la otra clave, con la que está cifrada, y que está en cada servidor esclavo.

Por lo tanto, en el momento del arranque de nuestros servidores cifrados (esclavos), estos pedirán al servidor Mandos los datos con los que están cifrados (una clave única para cada uno), descifrarán está información con su propia clave, y con ello descifrarán su sistema de ficheros para poder seguir con el arranque.


Todo el intercambio de datos está cifrado mediante TLS (SSL).

Alguien podría pensar, ¿y qué pasa si alguien roba un servidor esclavo y extrae la clave para acceder a la información del servidor Mandos, que le podría permitir descifrar todo el sistema de ficheros del servidor esclavo?

Para evitar ésto, podemos configurar el servidor Mandos para que no envíe nunca más la información de descifrado de un ordenador si éste ha estado offline por X tiempo. Con ésto a un atacante no le daría tiempo a desconectar el servidor, extraer la clave y pedir la información.

El timeout es configurable, y evidentemente deberá ser menor cuanto mayor sea el grado de paranoia.

Si confiamos en los algoritmos de cifrado, a priori éste es el único aspecto débil de Mandos, por lo que habría que buscar un punto entre fiabilidad y seguridad.

Por cierto, Mandos ya está disponible en los repositorios de Ubuntu desde Karmic y en Debian desde el lanzamiento de "squeeze" en Febrero de 2011.

4 comments :

Txalin dijo...

Por tener un poco mas de fiabilidad, y de paso rizar el rizo, se me ocurre (veo que se puede hacer segun el readme) montar dos servidores maestros de Mandos en alta disponibilidad activo-activo. Asi si uno palma el otro sigue vivo y no se pierde el servicio. Y ya por terminar de liarla, que un maestro A sea esclavo del Maestro B, y el Maestro B esclavo del A. Asi, en caso de reinicio de cualquire maestro este levantaria automaticamente.

Por otra parte veo un poco.... digamos bestia el cifrar el contenido con un software automatico. Hasta donde he leido no he visto ningun recovery mode que te permita recuperar un sistema de ficheros si el software casca, y eso personalmente lo veo demasiado arriesgado.

lector en la sombra dijo...

Siempre estan bien conocer estas opciones. Sin embargo el inconveniente
que veo al sistema de cifrado en general para servidores, obviando si la
clave es más o menos débil o el algoritmo es hackeado, es:



OK, tengo mi servidor/es con xTB de disco cifrado, cada uno con una
clave muy chula y diferente de muchos caracteres. Si deseo cambiar esta
clave, ya sea porque me han robado el server mandos o porque hace mucho
tiempo que no la actualizo o porque se ha ido mi sysadmin a otra
empresa, ¿cómo lo gestiono?



No me suena ningún sistema automàtico que re-cifre todo con la nueva clave, ¿conocéis alguno?



Montarlo todo en otra partición de igual tamaño cifrada con otra clay pasarlo no es una opción viable :)



Saludos y enhorabuena por el post.

BooT Loos dijo...

A mi me preocupa mas el tema del rendimiento, Cuánto afecta?

Si te rompes la cabeza para "tunear" el apache para que tu página se sirva cuánto antes y luego le metes ésto...

Klondike dijo...

Nosotros estamos desarrollando un sistema parecido basado en ssh lo que permitiría entre otras cosas poder tener un rescue shell, Pero aún queda por hacer.