Cifrar el directorio home en GhostBSD gracias a OpenZFS
La única pega gorda que encuentro a GhostBSD es el hecho de que no se puede cifrar todo el disco duro en el proceso de instalación, lo que es una pega importante de cara a la seguridad. Esto es algo que está en el roadmap, pero no es posible de momento.
Existe una alternativa que se puede hacer tras la instalación, que consiste en crear un usuario con su directorio home cifrado. Como GhostBSD usa OpenZFS como sistema de ficheros por defecto esto es una tarea sencilla que viene integrada "casi" de fábrica. Y digo "casi" porque hay que hacer una configuración previa.
Configuración previa
Para este ejemplo voy a asumir que el pool se llama zroot y que home está por lo tanto en zroot/home
Debemos editar tres ficheros y añadir la siguiente configuración a cada uno de ellos:
/etc/pam.d/login:
# auth auth sufficient pam_self.so no_warn auth optional pam_zfs_key.so homes=zroot/home # Añadimos esta línea en este sitio auth include system ... # session session optional pam_zfs_key.so homes=zroot/home # y añadimos esta línea session include system ...
/etc/pam.d/passwd:
password optional pam_zfs_key.so homes=zroot/home
/usr/local/etc/pam.d/lightdm: (esto es para que funcione al hacer login desde la pantalla de X11)
# auth auth sufficient pam_self.so no_warn auth optional pam_zfs_key.so homes=zroot/home # Añadimos esta línea en este sitio auth include system ... # session session optional pam_zfs_key.so homes=zroot/home # y añadimos esta línea session include system ...
Creación del usuario
A continuación creamos el usuario mediante adduser e indicaremos que queremos introducir nosotros la contraseña y que queremos cifrar el dataset. Es IMPORTANTÍSIMO poner la misma contraseña al usuario y al cifrado del disco porque así funcionará automáticamente al hacer login.
Hay que tener en cuenta que si cambiamos la contraseña al usuario tendremos que cambiarsela también al cifrado del dataset.
Y esto es todo. No tiene nada más que configurar.
Inconvenientes
El mayor que he leído es relativo a la configuración de la WiFi, ya que las contraseñas de las WiFis a las que nos conectamos se guardan en claro en el dataser zroot/ con lo que no estará cifrado en el caso de que "los tipos malos" se hagan con vuestro ordenador. Como alternativas, se puede cifrar con age y tener un script que lo desencripte al hacer login con el usuario correcto.
La menor es que tendréis dos usuarios en vuestro sistema, el que habéis usado en la instalación y el nuevo que habéis dado de alta. En el roadmap también está la posibilidad de cifrar el dataset del usuario durante la instalación.
Y ahora sí, esto es todo.