
Estoy alojando varios sitios web en un VPS y quiero hacer chroot en cada sitio web, por ejemplo. /chroot/sitio web1 /chroot/sitio web2
Estoy usando makejail, que es una herramienta de alto nivel, para crear cárceles y copiar bibliotecas y dependencias. Pan comido.
Cada sitio web necesitará nginx, php y mysql. Para php estoy usando php5-fpm que en realidad admite chroot por configuración, sin embargo no estoy usando esto (¿tal vez debería?)
Mi pregunta es cuál de los tres siguientes enfoques es mejor:
1) Cada sitio web tendrá su propia instancia separada de nginx, php y mysql. La desventaja es que cada servidor web + php tiene que escuchar en un puerto diferente. También necesito un servidor web nginx "maestro" frente a ellos, proxy inverso a los servidores chroot detrás de él. Probablemente el más seguro, pero también el más avanzado.
2) No hago ninguna cárcel chroot manualmente. Configuré un servidor web nginx, que envía solicitudes de php a php-fpm, en diferentes puertos. Puedo tener múltiples configuraciones de php-fpm, cada una con su propia carpeta chroot. Esto es bastante manejable; sin embargo, solo se hará chroot en php. No el servidor web real. ¿Es esto lo suficientemente seguro? Además, probé esta opción y parece que necesitaré usar TCP en lugar de sockets para conectarme a MySQL.
3) Dime tú ;)
Soy bastante nuevo en el encarcelamiento de chroot, así que corríjanme si me equivoco en mis suposiciones. He estado leyendo todos los tutoriales que pude encontrar, sin embargo, encuentro muy escaso el mercado de guías chroot. ¡Cualquier ayuda o aporte muy apreciado!
Respuesta1
Terminé usando la opción número 2. Si uso TCP (127.0.0.1) en lugar de sockets (localhost), la mayoría de las cosas funcionan de inmediato.
Hay algunas cosas que hay que cuidar: sendmail y servicios externos. Para sendmail puedes usar mini_sendmail. Bastante fácil de configurar si usas makejail (paquete Debian/Ubuntu) y sigues este tutorial: http://www.cyberciti.biz/tips/howto-setup-sendmail-php-mail-chrooted-apache-lighttpd.html