LINUX

Cómo configurar el entorno Chroot en Ubuntu 14.04

Hay muchos casos en los que es posible que desee aislar determinadas aplicaciones, usuarios o entornos dentro de un sistema Linux. Los diferentes sistemas operativos tienen diferentes métodos para lograr el aislamiento, y en Linux, una forma clásica es a través de un chroot ambiente.

En esta guía, le mostraremos paso a paso cómo configurar un entorno aislado utilizando chroot para crear una barrera entre su sistema operativo habitual y un entorno contenido. Esto es principalmente útil para realizar pruebas. Le enseñaremos los pasos en una instancia de VPS de Ubuntu 14.04.

La mayoría de los administradores de sistemas se beneficiarán de saber cómo lograr un entorno chroot rápido y fácil y es una habilidad valiosa.

El entorno chroot

Un entorno chroot es una llamada al sistema operativo que cambiará la ubicación raíz temporalmente a una nueva carpeta. Normalmente, la concepción del sistema operativo del directorio raíz es la raíz real ubicada en «/«. Sin embargo, con chroot, puede especificar otro directorio para que sirva como directorio de nivel superior durante la duración de un chroot.

Cualquier aplicación que se ejecute desde el chroot no podrá ver el resto del sistema operativo en principio.

Ventajas del entorno Chroot

Test applications without the risk of compromising the entire host system.

-  From the security point of view, whatever happens in the chroot environment won't affect the host system (not even under root user).

-  A different operating system running in the same hardware.

Por ejemplo, le permite crear, instalar y probar software en un entorno que está separado de su sistema operativo normal. También podría utilizarse como método de ejecutar aplicaciones de 32 bits en un entorno de 64 bitst.

Pero si bien los entornos chroot ciertamente harán un trabajo adicional para un usuario sin privilegios, deben considerarse una característica de refuerzo en lugar de una característica de seguridad, lo que significa que intentan reducir la cantidad de vectores de ataque en lugar de crear una solución completa. Si necesita un aislamiento total, considere una solución más completa, como contenedores Linux, Docker, vservers, etc.

Debootstrap y Schroot

Los paquetes necesarios para configurar el entorno chroot son debootstrap y schroot, que están disponibles en el repositorio de ubuntu. El comando schroot se utiliza para configurar el entorno chroot.

Debootstrap le permite instalar una nueva copia nueva de cualquier sistema Debian (o basado en Debian) desde un repositorio en un directorio con todos los comandos básicos y binarios necesarios para ejecutar una instancia básica del sistema operativo.

los schroot permite el acceso a chroots para usuarios normales usando el mismo mecanismo, pero con verificación de permisos y permitiendo una configuración automatizada adicional del entorno chroot, como montar sistemas de archivos adicionales y otras tareas de configuración.

Estos son los pasos para implementar esta funcionalidad en Ubuntu 14.04 LTS:

1. Instalación de los paquetes

En primer lugar, instalaremos debootstrap y schroot en nuestro host Ubuntu 14.04 LTS.

$ sudo apt-get install debootstrap 
$ sudo apt-get install schroot

2. Configuración de Schroot

Ahora que tenemos las herramientas adecuadas, solo necesitamos especificar un directorio que queremos usar como nuestro entorno chroot. Crearemos un directorio llamado linoxide en nuestro directorio raíz para configurar chroot allí:

sudo mkdir /linoxide

Tenemos que configurar schroot para que se adapte a nuestras necesidades en el archivo de configuración. Modificaremos el schroot archivo de configuración con la información que necesitamos para configurar.

sudo nano /etc/schroot/schroot.conf

Actualmente estamos en un sistema Ubuntu 14.04 LTS (Trusty Tahr), pero digamos que queremos probar algunos paquetes disponibles en Ubuntu 13.10, cuyo nombre en código es «Saucy Salamander». Podemos hacer eso creando una entrada que se vea así:

[saucy]
description=Ubuntu Saucy
location=/linoxide
priority=3
users=arun
root-groups=root

schroot-config

Modifique los valores de los parámetros de configuración en el ejemplo anterior para que se ajusten a su sistema:

3. Instalación de Ubuntu de 32 bits con debootstrap

Debootstrap descarga e instala un sistema operativo mínimo dentro de su entorno chroot. Puede instalar cualquier distribución basada en Debian de su elección, siempre que tenga un repositorio disponible.

Arriba, colocamos el entorno chroot en el directorio / linóxido y este es el directorio raíz del entorno chroot. Entonces necesitaremos ejecutar debootstrap dentro de ese directorio que ya hemos creado:

cd /linoxide
sudo debootstrap --variant=buildd --arch amd64 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/ sudo chroot /linoxide /debootstrap/debootstrap --second-stage

Puede reemplazar amd64 en –arch como i386 u otro sistema operativo de bits que desee configurar disponible en el repositorio. Puede reemplazar el espejo http://archive.ubuntu.com/ubuntu/ anterior como el más cercano, puede obtener el más cercano del oficial Página espejo de Ubuntu.

Nota: Deberá agregar –foreign por encima del comando de tercera línea si elige configurar i386 bit OS choot en su Host Ubuntu de 64 bits como:

sudo debootstrap --variant=buildd --foreign --arch i386 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/

Se necesita algo de tiempo (dependiendo de su ancho de banda) para descargar, instalar y configurar el sistema completo. Se necesitan unos 500 MB para una instalación mínima.

4. Finalización del entorno chroot

Una vez instalado el sistema, necesitaremos realizar algunas configuraciones finales para asegurarnos de que el sistema funcione correctamente. Primero, queremos asegurarnos de que nuestro anfitrión fstab es consciente de algunos pseudo-sistemas en nuestro huésped.

 sudo nano /etc/fstab

Agregue las siguientes líneas como estas al final de su fstab:

proc /linoxide/proc proc defaults 0 0
sysfs /linoxide/sys sysfs defaults 0 0

Guarde y cierre el archivo.

Ahora, necesitaremos montar estos sistemas de archivos dentro de nuestro invitado:

$ sudo mount proc /linoxide/proc -t proc
$ sudo mount sysfs /linoxide/sys -t sysfs

También queremos copiar nuestro /etc/hosts archivo para que tengamos acceso a la información de red correcta:

$ sudo cp /etc/hosts /linoxide/etc/hosts

Por último, puede enumerar los entornos chroot disponibles mediante el comando schroot.

$ schroot -l

Podemos ingresar al entorno chroot a través de un comando como este:

$ sudo chroot /linoxide/ /bin/bash
You can test the chroot environment by checking the version of distributions installed.
# lsb_release -a
# uname -a

Para finalizar este tutorial, para ejecutar una aplicación gráfica desde el chroot, debe exportar la variable de entorno DISPLAY.

$ DISPLAY=:0.0 ./apps

Aquí, hemos instalado con éxito Chrooted Ubuntu 13.10 (Saucy Salamander) en su host Ubuntu 14.04 LTS (Trusty Tahr).
Puede salir del entorno chroot con éxito ejecutando los siguientes comandos:

# exit

Luego, necesitamos desmontar nuestros sistemas de archivos proc y sys:

$ sudo umount /test/proc
$ sudo umount /test/sys

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar