LinuxParty
NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
¿Cómo puedo tener un servidor web mediante el comando chroot para aislar el sistema de archivos? ¿Cómo se utiliza un chroot para recuperar la contraseña o reparar un entorno Linux / Unix dañado?
Cada proceso / sistema en Linux y sistemas tipo Unix tiene directorio de trabajo actual llamado directorio raíz. Puede cambiar el directorio raíz a través de un comando llamado chroot, lo que cambia el directorio raíz para ambos procesos en ejecución actual y sus descendientes.
Un proceso/comando que se ejecuta en un entorno tan modificado no puede acceder a los archivos fuera del directorio raíz. Este entorno modificado se conoce comúnmente como "directorio encarcelado" o "jaula chroot". Sólo un proceso y el usuario privilegiado "root" puede usar el comando chroot. Esto es útil para:
- La separación de privilegios de proceso sin privilegios, como servidor web o un servidor DNS.
- La creación de un entorno de prueba.
- Ejecutar programas antiguos o ABI programas en compatibilidad sin que se caiga aplicación o sistema.
- La recuperación del sistema.
- Vuelva a instalar el gestor de arranque como GRUB o LILO.
- Recuperar la contraseña - Cambiar una contraseña olvidada y más.
Propósito
El comando chroot cambia sus directorios actuales y de raíz para el directorio proporcionado para luego ejecutar comandos, si se incluye, o una copia interactiva de la shell de registro del usuario. Tenga en cuenta que no todas las aplicaciones se pueden chrootear.
Sintaxis
La sintaxis básica es la siguiente:
chroot /path/to/new/root command
o
chroot /path/to/new/root /path/to/server
o
chroot [options] /path/to/new/root /path/to/server
Ejemplos del comando chroot
En este ejemplo, construiremos una mini-cárcel para el propósito de prueba con bash y el comando ls solamente. En primer lugar, establecer la ubicación "cárcel" con el comando mkdir:
$ J=$HOME/jail
Crear directorios dentro $J:
$ mkdir -p $J $ mkdir -p $J/{bin,lib64,lib} $ cd $J
Copiar /bin/bash and /bin/ls dentro de $J/bin/ utilizando el comando cp:
$ cp -v /bin/{bash,ls} $J/bin
El comando copy requiere las bibliotecas (librerías) en $J. Use ldd para compartir las dependencias de las librerías para bash.
$ ldd /bin/bash
Ejemplo de salida:
linux-vdso.so.1 => (0x00007fff8d987000) libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00000032f7a00000) libdl.so.2 => /lib64/libdl.so.2 (0x00000032f6e00000) libc.so.6 => /lib64/libc.so.6 (0x00000032f7200000) /lib64/ld-linux-x86-64.so.2 (0x00000032f6a00000)
Copias las librerías en $J dará las siguientes salidas:
$ cp -v /lib64/libtinfo.so.5 /lib64/libdl.so.2 /lib64/libc.so.6 /lib64/ld-linux-x86-64.so.2 $J/lib64/
Ejemplo de salida:
`/lib64/libtinfo.so.5' -> `/home/vivek/jail/lib64/libtinfo.so.5' `/lib64/libdl.so.2' -> `/home/vivek/jail/lib64/libdl.so.2' `/lib64/libc.so.6' -> `/home/vivek/jail/lib64/libc.so.6' `/lib64/ld-linux-x86-64.so.2' -> `/home/vivek/jail/lib64/ld-linux-x86-64.so.2'
Copiar en las librerías que "ls" requere en $J. Use el comando ldd para mostrar las librerías compartidas que requieren:
linux-vdso.so.1 => (0x00007fff68dff000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00000032f8a00000) librt.so.1 => /lib64/librt.so.1 (0x00000032f7a00000) libcap.so.2 => /lib64/libcap.so.2 (0x00000032fda00000) libacl.so.1 => /lib64/libacl.so.1 (0x00000032fbe00000) libc.so.6 => /lib64/libc.so.6 (0x00000032f7200000) libdl.so.2 => /lib64/libdl.so.2 (0x00000032f6e00000) /lib64/ld-linux-x86-64.so.2 (0x00000032f6a00000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00000032f7600000) libattr.so.1 => /lib64/libattr.so.1 (0x00000032f9600000)
Puede copiar las librerías una a una o intente hacer un bucle shell bash de la siguiente manera:
list="$(ldd /bin/ls | egrep -o '/lib.*\.[0-9]')" for i in $list; do cp -v "$i" "${J}${i}"; done
Ejemplo de salida:
`/lib64/libselinux.so.1' -> `/home/vivek/jail/lib64/libselinux.so.1' `/lib64/librt.so.1' -> `/home/vivek/jail/lib64/librt.so.1' `/lib64/libcap.so.2' -> `/home/vivek/jail/lib64/libcap.so.2' `/lib64/libacl.so.1' -> `/home/vivek/jail/lib64/libacl.so.1' `/lib64/libc.so.6' -> `/home/vivek/jail/lib64/libc.so.6' `/lib64/libdl.so.2' -> `/home/vivek/jail/lib64/libdl.so.2' `/lib64/ld-linux-x86-64.so.2' -> `/home/vivek/jail/lib64/ld-linux-x86-64.so.2' `/lib64/libpthread.so.0' -> `/home/vivek/jail/lib64/libpthread.so.0' `/lib64/libattr.so.1' -> `/home/vivek/jail/lib64/libattr.so.1'
Por último, hacer chroot en su nueva cárcel:
$ sudo chroot $J /bin/bash
Un chrooted bash y aplicación ls está bloqueado dentro de un directorio particular llamado $HOME/$J y es imposible trastear fuera del arbol de directorios, y ver su directorio "/" (raíz). Este es un gran impulso a la seguridad si lo configura correctamente.
[Continuará en una Segunda parte]

-
Documentación
- ¿Hallaron el Arca de Noé? Un Enigmático Descubrimiento en Turquía Reaviva el Debate Científico
- Lo que se esconde debajo: dentro de los templos mayas de Copán
- Los alemanes denuncian la influencia del inglés mientras el "apóstrofe del idiota" obtiene la aprobación oficial
- Explora la Historia Hispánica con este Mapa Interactivo de la Real Academia de Historia
- ¿CÓMO SE INVENTÓ LA RUEDA?
- ¿Estamos en el 'Antropoceno', la era humana? Los científicos dicen: no
- Quemadores de Hidrógeno Verde para una Producción de Asfalto Sostenible
- Jericó: Un Viaje a Través de los Milenios en la Ciudad más Antigua del Mundo
- La Generación Z recurre a los libros y bibliotecas físicos
- El Trágico Declive de la Biblioteca de Alejandría: Una Epopeya Perdida en Llamas
- Los Neandertales fueron los primeros homínidos en controlar el fuego, y no los sapiens, sugiere un estudio
- Un grupo de Hóminidos Eurosiáticos podrían poner en duda todo lo que sebe sobre el del Homo Sapiens, hasta la fecha
- Descubre la Iglesia de San Antonio de los Alemanes: Un Tesoro Arquitectónico en el Corazón de Madrid
- La Asombrosa Reconstrucción de una Mujer Prehistórica Después de 4 Mil Años
- Descubren nuevo fósil de hace 8.7 millones de años en Turquía que desafía la historia sobre el origen de la humanidad
Comentarios