https://www.oracle.com/technical-resources/articles/solaris/how-to-manage-zfs-encryption.html
ZFS Datasets Encriptados
Resultado de shell que muestra la lista de conjuntos de datos
$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
zroot 14.1G 420G 96K /zroot
zroot/ROOT 12.1G 420G 96K none
zroot/ROOT/13.1-RELEASE-p2_2022-10-19_233328 8K 420G 2.63G /
zroot/ROOT/13.1-RELEASE_2022-10-19_232051 8K 420G 1.33G /
zroot/ROOT/default 12.1G 420G 11.4G /
zroot/encrypt 96K 30.0G 96K /zroot/encrypt
zroot/tmp 288K 420G 152K /tmp
zroot/usr 1.97G 420G 96K /usr
zroot/usr/home 350M 420G 308M /usr/home
zroot/usr/ports 912M 420G 912M /usr/ports
zroot/usr/src 759M 420G 759M /usr/src
zroot/var 1.16M 420G 96K /var
zroot/var/audit 96K 420G 96K /var/audit
zroot/var/crash 96K 420G 96K /var/crash
zroot/var/log 592K 420G 384K /var/log
zroot/var/mail 200K 420G 144K /var/mail
zroot/var/tmp
104K 420G 96K /var/tmp
Listar snapshots
$ zfs list -t snapshot
NAME USED AVAIL REFER MOUNTPOINT
zroot@baseMateKdeInstall 0B - 96K -
zroot/ROOT@baseMateKdeInstall 0B - 96K -
zroot/ROOT/13.1-RELEASE-p2_2022-10-19_233328@baseMateKdeInstall 0B - 2.63G -
zroot/ROOT/13.1-RELEASE_2022-10-19_232051@baseMateKdeInstall 0B - 1.33G -
zroot/ROOT/default@2022-10-19-23:20:51-0 77.8M - 1.33G -
zroot/ROOT/default@2022-10-19-23:33:28-0 34.2M - 2.63G -
zroot/ROOT/default@baseMateKdeInstall 533M - 11.9G -
zroot/tmp@baseMateKdeInstall 136K - 168K -
zroot/usr@baseMateKdeInstall 0B - 96K -
zroot/usr/home@baseMateKdeInstall 41.3M - 224M -
zroot/usr/ports@baseMateKdeInstall 8K - 912M -
zroot/usr/src@baseMateKdeInstall 8K - 759M -
zroot/var@baseMateKdeInstall 0B - 96K -
zroot/var/audit@baseMateKdeInstall 0B - 96K -
zroot/var/crash@baseMateKdeInstall 0B - 96K -
zroot/var/log@baseMateKdeInstall 208K - 336K -
zroot/var/mail@baseMateKdeInstall 56K - 144K -
zroot/var/tmp@baseMateKdeInstall 8K - 96K -
Creación y uso de conjuntos de datos cifrados, ejemplo simple de habilitación del cifrado.
Administrar claves de cifrado localmente. Si no especifica ninguna política de administración de claves, ZFS solicitará interactivamente una frase de contraseña. Esto probablemente no es ideal en la mayoría de las implementaciones de centros de datos, por lo que en su lugar necesitamos obtener la clave a través de medios no interactivos desde otro lugar. La clave de ajuste puede ser una frase de contraseña o una clave AES sin procesar. El método no interactivo más simple es almacenar la clave de ajuste o frase de contraseña en un archivo y decirle a ZFS qué archivo buscar para esa clave. Si utiliza este método, se supone que el otro sistema de archivos es suficientemente seguro por otros medios, como estar en un disco extraíble. La clave de ajuste solo es necesaria en el momento en que el sistema de archivos ZFS se monta inicialmente después del arranque del sistema, por lo que los medios extraíbles se pueden quitar más tarde si es necesario.
$ zfs create -o encryption=on -o keylocation=prompt -o \
keyformat=passphrase zroot/encrypt
Enter new passphrase:
Re-enter new passphrase:
Zfs Listar el dataset zroot/encrypt
$ zfs list zroot/encrypt
NAME USED AVAIL REFER MOUNTPOINT
zroot/encrypt 200K 420G 200K /zroot/encrypt
Crear un archivo dentro del dataset
$ touch /zroot/encrypt/supersecret
Zfs creación del conjunto de datos con una cuota
$ zfs set quota=30g zroot/encrypt
Zfs obtener encryption
$ zfs get encryption zroot/encrypt
NAME PROPERTY VALUE SOURCE
zroot/encrypt encryption aes-256-gcm -
Zfs desmontar dataset
$ zfs unmount zroot/encrypt
Zfs descargar llave
$ zfs unload-key -r zroot/encrypt
1 / 1 key(s) successfully unloaded
No se monta directamente
$ zfs mount zroot/encrypt
cannot mount 'zroot/encrypt': encryption key not loaded
Zfs obtener estado actual de la llave
$ zfs get keystatus zroot/encrypt
NAME PROPERTY VALUE SOURCE
zroot/encrypt keystatus unavailable -
Zfs cargar llave
$ zfs load-key -r zroot/encrypt
Enter passphrase for 'zroot/encrypt':
1 / 1 key(s) successfully loaded
$ zfs mount -a
Zfs comprobar accesibilidad
$ ls /zroot/encrypt
supersecret
$ Zfs listar
$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
zroot 14.1G 420G 104K /zroot
zroot/ROOT 12.1G 420G 96K none
zroot/ROOT/13.1-RELEASE-p2_2022-10-19_233328 8K 420G 2.63G /
zroot/ROOT/13.1-RELEASE_2022-10-19_232051 8K 420G 1.33G /
zroot/ROOT/default 12.1G 420G 11.4G /
zroot/encrypt 200K 30.0G 200K /zroot/encrypt
zroot/tmp 288K 420G 152K /tmp
zroot/usr 1.98G 420G 96K /usr
zroot/usr/home 359M 420G 315M /usr/home
zroot/usr/ports 912M 420G 912M /usr/ports
zroot/usr/src 759M 420G 759M /usr/src
zroot/var 1.16M 420G 96K /var
zroot/var/audit 96K 420G 96K /var/audit
zroot/var/crash 96K 420G 96K /var/crash
zroot/var/log 592K 420G 384K /var/log
zroot/var/mail 200K 420G 144K /var/mail
zroot/var/tmp 104K 420G 96K /var/tmp
Zfs desmontar, listar, keystatus, load-key, mount, unmount.
$ zfs unmount zroot/encrypt
$ zfs unload-key -r zroot/encrypt
1 / 1 key(s) successfully unloaded
$ ls /zroot/encrypt
$ zfs get keystatus zroot/encrypt
NAME PROPERTY VALUE SOURCE
zroot/encrypt keystatus unavailable -
$ zfs load-key -r zroot/encrypt
Enter passphrase for 'zroot/encrypt':
1 / 1 key(s) successfully loaded
$ zfs get keystatus zroot/encrypt
NAME PROPERTY VALUE SOURCE
zroot/encrypt keystatus available -
$ zfs mount -a
$ ls /zroot/encrypt
supersecret
$ zfs unmount zroot/encrypt
$ zfs unload-key -r zroot/encrypt
1 / 1 key(s) successfully unloaded
$ ls /zroot/encrypt
$ zfs allow -u carlos keychange zroot/encrypt
El ejemplo anterior permite al usuario carlos cambiar el valor de la clave de ajuste para el conjunto de datos y sus elementos secundarios, pero no cambiar la propiedad keysource. En este caso que el usuario carlos no puede montar el conjunto de datos ZFS después del arranque ni puede forzar la descarga del conjunto de datos y su clave. El usuario raíz (y el propio arranque del sistema) tiene todas las delegaciones de ZFS.
Si fuera un disco externo tendríamos que importar el zpool después de un reinicio. Por ejemplo, previamente hemos creado un zpool de nombre cifrado y un conjunto de datos llamado encrypt.
# zfs import -l cifrado/encrypt
Enter passphrase for 'cifrado/encrypt':
1 / 1 keys successfully loaded
FreeBSD es genial!.
No hay comentarios:
Publicar un comentario