Mejores prácticas: configuración de usuario, carpeta y derechos de archivo para servidores web * nix

0

¿Qué derechos de carpeta y archivo sugiere para un servidor web nix * de máxima seguridad? Publicaciones me gusta esto y this realmente no están respondiendo esto.

Historia larga

Esto puede sonar trivial, pero no lo es, cuando comienzo a considerar todo lo relacionado con los derechos de archivo, como usuarios y procesos. La premisa para esta configuración, que considero una configuración predeterminada, es: no se ejecuta en un host compartido, donde no hay forma de configurar cosas como usuarios, procesos, etc.

Configuración del sistema

Entonces, imagine una configuración de servidor web común para un servidor que ejecuta más de una página:

  • HTTP / S es servido por nginx o apache
  • PHP es servido por php-fpm
  • El servidor FTP está instalado para permitir la edición remota

Configuración de usuario

HTTP se ejecuta con un usuario global, digamos www-data . PHP se está ejecutando con varios procesos, cada host virtual tiene su propia instancia, ejecutándose bajo usuarios separados, digamos que se nombran después del esquema: example_com-php Y hay un servidor FTP que permite a los usuarios decir: example_com-ftp para acceder a sus raíces de documentos particulares.

Configuración de carpeta

Cada host virtual tiene su propia estructura de carpetas, por supuesto, como esta:

  • / var / www / example_com / htdocs
  • / var / www / foobar_org / htdocs

Para bloquear a cada usuario en su propia raíz de documento, usaría chroot y / o PHP open_basedir .

Derechos de carpeta: preguntas reales

Desde mi punto de vista, así es como se vería:

chown -R example_com-ftp:www-data /var/www/example_com/
find /var/www/example_com/htdocs -type f -exec chmod 640 -- {} +
find /var/www/example_com/htdocs -type d -exec chmod 750 -- {} +

But :

  • ¿Debo manejar archivos dinámicos y estáticos estrictamente diferentes? Como: denegar el acceso para procesos PHP a CSS, HTML, ... y de otra forma, ¿negar el acceso del servidor web a archivos php?
  • ¿Debo separar php-user de www-data -group?
  • ¿Tiene sentido incluso tener un usuario para cada proceso de PHP o también sería seguro, ejecutar php-fpm con un usuario global, por ejemplo? php-data , porque estoy usando chroot o open_basedir ?
pregunta n.r. 03.12.2018 - 11:56
fuente

0 respuestas

Lea otras preguntas en las etiquetas