En este tutorial nos ocuparemos específicamente del entorno Debian Chroot. Ejecutar un sistema Linux dentro de un entorno chroot le permite al administrador del sistema disminuir el impacto en un servidor de producción cuando el servidor se ve comprometido.
Cambiar raíz cambiará el directorio raíz a todos los procesos actualmente en ejecución y sus hijos a una cárcel chroot. La prueba de varias instalaciones de paquetes y la configuración del servidor en un entorno chroot puede ser otra forma práctica de utilizar una cárcel chroot.
En este tutorial, cubriremos las instrucciones paso a paso para configurar chroot en Debian Linux. Las instrucciones también funcionarán para otros sistemas basados en Debian.
En este tutorial aprenderás:
- Cómo instalar Debootstrap
- Cómo configurar chroot en Debian Linux
- Cómo usar SSH en chroot jail
Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | Debian Linux |
Software | arranque |
Otro | Acceso privilegiado a su sistema Linux como root o a través de sudo comando. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Instalar la correa de arranque
Lo primero que deberemos hacer es instalar el debootstrap paquete en Debian. Este software nos permitirá crear un entorno chroot. Use el siguiente comando para instalar el paquete con el administrador de paquetes de Debian.
$ sudo apt update
$ sudo apt install debootstrap
Instalar entorno chroot
Ahora es el momento de instalar el entorno chroot. Siga los pasos a continuación para configurarlo.
- Primero, cree un directorio donde le gustaría que residiera el entorno chroot. Lo mantendremos simple e iremos con
/mnt/chroot
en este tutorial.$ sudo mkdir -p /mnt/chroot
- Una vez que su nuevo directorio chroot esté listo, usaremos debootstrap para instalar nuevos archivos del sistema Debian dentro del entorno chroot. La instalación puede tardar algún tiempo, ya que debootstrap tendrá que descargar e instalar los paquetes principales.
$ sudo debootstrap stable /mnt/chroot http://deb.debian.org/debian/
Verá una gran cantidad de resultados en su terminal, pero debería terminar con el texto "I:El sistema base se instaló correctamente", lo que significa que ha finalizado.
- Por último, conecte su sistema host proc con el entorno chroot montándolo dentro del directorio chroot. Esto permite que chroot acceda al hardware de su sistema host.
$ sudo mount -t proc proc /mnt/chroot/proc
$ sudo mount -t devpts devpts /mnt/chroot/dev/pts
Configuración de Chroot Debian
Ahora, estamos listos para iniciar sesión en chroot y realizar una configuración básica. Para evitar confusiones entre el host y el entorno chroot, podemos cambiar la variable PS1 de root a un indicador de shell a chroot#
. Este paso es opcional pero recomendado.
- Primero, inicie sesión en chroot.
$ sudo chroot /mnt/chroot /bin/bash --login
- Ejecute el siguiente comando de Linux para cambiar permanentemente el indicador de shell de root y salir.
# echo 'PS1="chroot:\w# "' >> ~/.bashrc
# exit
- La próxima vez que ingrese al entorno chroot, tendrá un nuevo indicador de shell.
# chroot /mnt/chroot /bin/bash --login
- A continuación, instalaremos y reconfiguraremos los locales.
chroot:/# apt install locales
- Ahora vuelva a configurar sus locales y seleccione los suyos en el menú.
chroot:/# dpkg-reconfigure locales
Instalar el demonio ssh de chroot
Ahora estamos listos para instalar cualquier servicio dentro del entorno chroot. Comencemos con ssh ya que esto nos permitirá iniciar sesión en chroot usando una conexión ssh desde LAN o WAN.
- Instala el servidor SSH con el siguiente comando.
chroot:/# apt install ssh
- Configure el servicio ssh en chroot para escuchar en un puerto diferente al 22, ya que lo más probable es que ya esté ocupado por su sistema host.
chroot:/# nano /etc/ssh/sshd_config
- Y cambie la línea
#Port 22
, al mismo tiempo que agrega una línea para agregar inicios de sesión raíz remotos:Port 2222
PermitRootLogin yes
- Reinicie el servicio SSH para que los cambios surtan efecto.
chroot:/# /etc/init.d/ssh restart
Restarting OpenBSD Secure Shell server: sshd.
- Finalmente, cambie la contraseña de su usuario raíz chroot:
chroot:/# passwd
Iniciar sesión de forma remota en chroot
Si todo salió bien, ahora deberíamos poder iniciar sesión en el nuevo entorno chroot usando ssh:
$ ssh root@localhost -p 2222
Ajuste fino de chroot
El demonio chroot ssh no se iniciará automáticamente cuando encienda su sistema operativo host. Por lo tanto, cree un script de shell simple para realizar esa tarea:
#!/bin/bash
mount -t devpts devpts /mnt/chroot/dev/pts
mount -t proc proc /mnt/chroot/proc
chroot /mnt/chroot /etc/init.d/ssh start
Y como último paso, haga un enlace simbólico a /etc/rc2.d/
:
# ln -s /etc/init.d/chroot.sh /etc/rc2.d/S98chroot
Ahora debería tener un entorno chroot completamente funcional. Siéntase libre de explorar e instalar servicios adicionales.
Pensamientos finales
En este tutorial, vimos cómo instalar un entorno de Debian chroot. También aprendimos cómo iniciar sesión en el entorno chroot a través de SSH, lo que facilita su administración e instalación de paquetes para realizar pruebas. Tener un entorno chroot es una excelente manera de probar el software y mantenerlo separado de su sistema operativo host.