Pasando el módulo TPM a una máquina virtual usando Linux Virtual Machine Manager (virt-manager)

Pasando el módulo TPM a una máquina virtual usando Linux Virtual Machine Manager (virt-manager)

Hola a todos,

Hoy, veremos cómo pasar el módulo TPM (Trusted Platform Module) de nuestra máquina a una máquina virtual de QEMU/KVM usando la herramienta Virtual Machine Manager de Linux. También modificaremos un archivo de configuración de AppArmor para permitir acceso a este módulo. Esto aplica mayormente si queremos usar Windows 11 como una máquina virtual, a menos que uses un método para parchear una imagen ISO de Windows 11 para poder instalarlo.

Una vez Windows 11 esté instalado, el módulo TPM no es requerido, pero estos pasos harán que aparezca en la máquina virtual de todas formas, ofreciendo mejor seguridad al sistema.

Añadiendo el módulo TPM a nuestra máquina virtual

Comenzaremos lanzando la herramienta Virtual Machine Manager:

Linux Virtual Machine Manager Interface

Ahí, haremos doble click a nuestra máquina virtual. Esto abrirá la consola. Luego, haremos click en el menú «View» y seleccionaremos «Details», lo cual nos permitirá configurar la máquina virtual:

00 - QEMU-KVM Windows 11 Machine Details

Haz click en «Add Hardware» y selecciona «TPM» en la lista que se muestra:

00 - Adding TPM module 1

Cambiaremos el tipo («Type») a «Passthrough». En «Device Path» (localización del dispositivo), escribiremos «/dev/tpm0». Esta es la localización que generalmente se encuentra el módulo TPM en linux. Luego, haz click en «Finish» para añadir este dispositivo a la máquina:

00 - Adding TPM Module 2

Editando el archivo libvirt-qemu de AppArmor para permitir acceso al TPM

Si intentamos encender nuestra máquina virtual, probablemente te encuentres con este mensaje:

01 - TPM Passthrough not working

Primero, verifica que el TPM esté activado en el BIOS de tu PC. Si lo está, entonces tenemos que actualizar el archivo libvirt-qemu de AppArmor para permitir que QEMU/KVM pueda acceder este dispositivo. Para esto, abriremos una ventana del terminal y editaremos el archivo /etc/apparmor.d/abstractions/libvirt-qemu. Usaré nano para editarlo:

02 - Modify apparmor libvirt.conf

Ve a la parte donde se menciona swtpm (TPM emulado):

03 - Area to type TPM access in the apparmor libvirt-qemu file

Y escribe lo siguiente. Puedes añadir una línea de comentario para identificar esta nueva sección:

# TPM Passthrough
/dev/tmp0 rw,
04 - TPM Passthrough line in apparmor libvirt-qemu file

Guarda el archivo presionando CTRL + O seguido por «Enter»

Sal de nano presionando CTRL + X. Luego, reiniciaremos el servicio de AppArmor con:

sudo service apparmor restart
07 - Restarting apparmor service

Ahora, trataremos de encender nuestra máquina virtual.

Puede ser que se te presente este otro problema:

08 - Machine still fails to boot with TPM

En este caso, una solución es cambiar el modelo del TPM («Model») de CRB a TIS:

09 - Change TPM model to TIS

Ahora, enciende tu máquina virtual otra vez y deberías tener el módulo TPM dentro del mismo:

10 - TPM in Device Manager