jueves, 13 de octubre de 2016

Construir Qubes-Os desde cero

Definición:

Qubes OS es una distribución de linux cuya característica principal radica en que separa la ejecución de sus componentes, servicios y también las aplicaciones en máquinas virtuales.

Ofrece seguridad a sus usuarios pasando por un mecanismo que separa y mantiene aislados a varios dominios o “zonas de seguridad” (es decir, uno para el visor de imágenes y otro para el navegador web, etc.).

Con Qubes OS, si llegas a ser blanco de un ataque malicioso, el atacante no podrá apoderarse de tu ordenador. Este proyecto se encuentra ya en su versión 3.0, que está basado en la capa Hypervisor Abstraction Layer y utiliza la tecnología de virtualización Xen 4.4.


Qubes OS equivale a un hipervisor del tipo 1, también denominado nativo, unhosted o bare metal (sobre el metal desnudo), es software que se ejecuta directamente sobre el hardware, para ofrecer la funcionalidad descrita.

Creando Qubes-Os

Existe un sistema de construcción totalmente automatizado para Qubes, que descarga, construye  y empaqueta todos los componentes de Qubes, y finalmente crea un .ISO de instalación lista para su uso.

Para usarlo es necesario utilizar una distribución basada en paquetes rpm (En este caso se usará Fedora 24 Workstation), y también es necesario instalar los siguientes paquetes:


     git
     createrepo
     rpm-build
     make
     wget
     rpmdevtools
     python-sh
     dilog
     rpm-sign
■ sudo dnf update
■ sudo yum install git createrepo rpm-build make wget rpmdevtools python-sh dialog rpm-sign

El sistema de construcción crea ambientes de construcción en entornos enjaulados y por lo tanto no se necesitan otros paquetes en el host. Todos los archivos creados por el sistema de construcción se encuentran dentro del directorio qubes-constructor. La construcción completa requiere 25 GB aproximadamente de espacio libre, así que tenlo en cuenta a la hora de decidir dónde colocar este directorio. 

El sistema de construcción se configura a través del archivo builder.conf - se debe copiar el builder.conf.default adjunto, y modificarlo según sea necesario, por ejemplo:

■ cp example-configs/qubes-os-master.conf builder.conf
# Editar el archivo builder.conf y seleccionar las siguientes variables:
NO_SIGN=1


Un requisito adicional útil es que 'sudo root' trabaje sin ningún tipo de símbolo, que es por defecto en la mayoría de distribuciones (por ejemplo, 'sudo bash' le trae el intérprete de comandos sin pedir ninguna contraseña). Esto es importante ya que el constructor tiene que cambiar a root y luego de vuelta al usuario varias veces durante el proceso de construcción.

Además, si la construcción con la firma habilitada (por lo NO_SIGN no se ha establecido), se debe ajustar en el archivo ~ /.rpmmacro para que apunte a la clave GPG utiliza para firmar el paquete, por ejemplo:


%_signature gpg
%_gpg_path /home/user/.gnupg
%_gpg_name AC1BF9B3  # <-- Key ID used for signing
También se recomienda utilizar una contraseña vacía para la clave privada utilizada para firmar. Contrariamente a la creencia popular, esto no afecta a su clave de seguridad o las fuentes - si alguien ve comprometido su sistema, entonces el juego ha terminado, si se utiliza la frase de contraseña adicional para la clave o no.

Por lo tanto, para construir Qubes se podría hacer:


# Import the Qubes master key
gpg --recv-keys 0xDDFA1A3E36879494

# Verify its fingerprint, set as 'trusted'.
# This is described here:
# https://www.qubes-os.org/doc/VerifyingSignatures

wget https://keys.qubes-os.org/keys/qubes-developers-keys.asc
gpg --import qubes-developers-keys.asc

git clone git://github.com/QubesOS/qubes-builder.git qubes-builder
cd qubes-builder

# Verify its integrity:
git tag -v `git describe`

cp example-configs/qubes-os-master.conf builder.conf
# edit the builder.conf file and set the following variables:
# NO_SIGN="1"

# Download all components:

make get-sources

# And now to build all Qubes rpms (this will take a few hours):

make install-deps
make qubes
# ... and then to build the ISO

make iso
Y esto debe producir una nueva ISO.
También es posible construir componente seleccionado por separado. P.ej. para compilar única interfaz gráfica de usuario agente de virtualización / daemon: 

■ make gui-daemon

QubesOs-Builder

Github
Previous Post
Next Post

post written by:

0 comentarios: