meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
linux:chroot [252013/12/ 22:28] lclinux:chroot [182023/01/ 13:10] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 +{{tag> chroot }}
 +====== Chroot ======
 +El chroot permite ejecutar procesos con la raíz del sistema cambiada. De manera que es posible usar diferentes instalaciones dentro de una misma . 
 +
 +Se gana cierto de nivel de seguridad, ya que los procesos dentro del chroot no ven nada fuera de él
 +
 +  * chroot ./ cambia la raíz de ejecución, para salir exit o ctrl+ d
 +  * para poder ver otros directorios desde el fuera del chroot ejecutamos mount –o bind /dev/ dev/
 +  * Si queremos dejarlo fijo editamos el fichero etc/fstab y añadimos
 +<file>/dev/ /home/copia_seg/grecasadocu/dev/ auto bind 0 0</file>
 +  * Para ver los procesos que se están ejecutando en el chroot:
 +<code> fuser –v /home/copia_Seg/grecasadocu/dev/grecasadocu</code>
 +  * Si al arrancar los servicios no dice ok en la parte derecha, es que estamos arrancado los servicios dentro del chroot
 +===== Montar directorios de fuera =====
 + 
 +Algunos programas, como apache, necesitan ciertos directorios del sistema para poder arrancar. Los principales son /proc y /dev. Para hacer que esos directorios se vean dentro del chroot se puede usar bind.
 + 
 +==== Para montarlo manualmente ====
 +
 +  * mount -o bind /dev /directorio/chroot/dev 
 +  * mount -o bind /proc /directorio/chroot/proc 
 +
 +Para dejarlo permanente (es decir, que se monte él solo cuando la máquina reinicia) hay que meter las líneas en el /etc/fstab 
 +<file>/proc    /directorio/chroot/proc   none    bind    0    0 
 +/dev     /directorio/chroot/dev    none    bind    0    0</file>
 +
 +===== Arrancar procesos dentro del chroot =====
 +Para entrar en el chroot con una shell normal, basta poner 
 +<code>    chroot /directorio/chroot</code>
 +
 +Si queremos arrancar algún proceso dentro del chroot, sin tener que entrar en él (útil para scripts), hay que añadir la orden a ejecutar al final de la orden anterior 
 +<code>    chroot /directorio/chroot orden_a_ejectucar argumentos</code>
 +Por ejemplo
 +<code>
 +   chroot /directorio/chroot /etc/init.d/apache2 start
 +   chroot /directorio/chroot /etc/init.d/postgresql start
 +   chroot /directorio/chroot /etc/init.d/samba start</code>
 +
 +==== Servicios  ====
 +
 +Hay que tener en cuenta que si hay otro postgres o apache ejecutándose en la misma máquina hay que asegurarse de que no se pisan los puertos de escucha. 
 +Para arrancar cualquiera de los servicios 
 +<code>
 +   chroot /directorio/chroot /etc/init.d/apache2 start
 +   chroot /directorio/chroot /etc/init.d/postgresql start
 +chroot /directorio/chroot /etc/init.d/samba start
 +</code>
 +
 +=== Arranque automático ===
 +Si sólo hacemos esto, no se arrancarán ellos solos cada vez que se reinicie la máquina. 
 +Para conseguir que se arranquen automáticamente hay que: 
 +hacer dos scripts (uno para cada servicio) y añadirlos al /etc/init.d/ 
 +
 +Por ejemplo
 +Los scripts serían /etc/init.d/apache_chroot y /etc/init.d/postgresql_chroot. 
 +apache_chroot 
 +<file>
 +   #!/bin/sh
 +   chroot /directorio/chroot /etc/init.d/apache2 $*
 +postgresql_chroot </file>
 +<file>   #!/bin/sh
 +   chroot /directorio/chroot /etc/init.d/postgresql $*
 +samba_chroot </file>
 +<file>   #!/bin/sh
 +   chroot /directorio/chroot /etc/init.d/samba $*</file>
 +   
 +Lo único que hacen estos scripts es pasarle la orden que le manda el sistema (que puede ser start, stop, restart, etc) al servicio dentro del chroot. 
 +Una vez que están creados hay que darles permiso de ejecución (chmod +x) y luego añadirlos al sistema de arranque con update-rc.d 
 +<code>   # update-rc.d apache_chroot defaults</code>
 +<code>   # update-rc.d postgresql_chroot defaults
 +   # update-rc.d samba_chroot defaults</code>
 +
 +
 +===== JAILKIT =====
 +Existe otra forma de hacer un chroot con el paquete jailki
 +
 +http://redes-privadas-virtuales.blogspot.com/2010/02/enjaular-usuarios-chroot-por-sshsftpscp.html
 +
 +===== Referencias =====
 +Referencia http://administradores.educarex.es/wiki/index.php/Creaci%C3%B3n_de_un_Entorno_chroot