Red Hat / Servidor Web Enjaulado Chroot
Enviado por crn42 • 9 de Mayo de 2013 • Síntesis • 867 Palabras (4 Páginas) • 463 Visitas
Red Hat / Servidor Web Enjaulado Chroot
¿Qué es el concepto de chroot?
Digamos que con chroot limitamos el acceso al sistema de ficheros del servicio Apache.
Consiste en crear una nueva estructura de directorios,
Un entorno chroot en un Sistema Linux/Unix, es una operación que cambia el directorio raíz de ciertas aplicaciones, haciendo que estas no puedan acceder a la información que está fuera de ese entorno. Esto es lo que se denomina jaula.
Gracias a esto si el servicio se viera comprometido, estaría cerrado en una jaula y no afectaría al sistema operativo principal.
Crear un directorio donde vamos a enjaular apache de la siguiente manera:
# J=/httpdjail
# mkdir $J
Instalar Apache, PHP y MySQL
En nuestro sistema Red Hat
Vamos a al menú Aplicaciones > agregar /quitar software
En la pestana navegar seleccionamos Servidores
> Selecciona
• Base de datos Mysql
• Servidor Web
Ahora vamos a la pestaña Buscar y escribimos httpd >buscar
Seleccionamos el paquete Httpd-devel
Httpd-devel: es para compilar o desarrollar módulos adicionales para Apache.
Instalamos los servicios > Aplicar.
Ahora, crear los directorios necesarios dentro de httpjail:
# mkdir -p $J/var/run
# chown -R root.root $J/var/run
# mkdir -p $J/home/httpd
# mkdir -p $J/var/www/html
# mkdir -p $J/tmp
# chmod 1777 $J/tmp
# mkdir -p $J/var/lib/php/session
# chown root.apache $J/var/lib/php/session
• $ J /var/run/ Almacenará httpd.pid, es el archivo en el que el servidor graba su ID de proceso.
• $J/var/www/html/ Almacenara nuestros archivos HTML de la pagina web.
Ahora vamos a instalar mod_root
mod_chroot hace correr Apache en un entorno chroot seguro
Descargamos mod_chroot usando el comando wget:
# cd /opt/
# wget http://core.segfault.pl/~hobbit/mod_chroot/dist/mod_chroot-0.5.tar.gz
Descomprimimos:
# tar -zxvf mod_chroot-0.5.tar.gz
Compilar e instalar mod_chroot usando apxs, escriba:
# cd mod_chroot-0.5
# apxs -cia mod_chroot.c
Configurar Apache mod_chroot
Abrir / etc / httpd / conf / httpd.conf archivo, escriba:
# C=/etc/httpd/conf/httpd.conf
# nano $C
Establecer directiva PidFile camino en el que el servidor debe registrar su número de identificación del proceso cuando se inicia.
Buscar la línea que dice lo siguiente:
PidFile run/httpd.pid
Vamos a remplazar esta línea por:
Pidfile /var/run/httpd.pid
Luego indicamos donde vamos a hacer el chroot (el directorio)
A continuación añadimos la Directiva CHROOTDIR, escriba:
ChrootDir /httpdjail
Buscar la línea que diga lo siguiente:
ServerRoot "/etc/httpd"
Agregar las siguientes líneas:
LockFile /var/run/httpd.lock
CoreDumpDirectory /var/run
ScoreBoardFile /var/run/httpd.scoreboard
Guardamos y cerramos el archivo de configuración de Apache.
Deshabilitar SELinux para Apache
Es necesario desactivar SELinux para Apache, escriba:
# setsebool httpd_disable_trans 1
Ahora vamos a configurar el demonio de Apache que es httpd
En la ruta /etc/init.d/httpd
# nano /etc/init.d/httpd
Buscamos la línea
# Start httpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}
• Ahora agregamos la siguiente línea
Root = / httpdjail
Como en la siguiente imagen.
Ahora Buscar la línea stop ()
...