Servir a un sitio local de depuración de apache desde el directorio de inicio requiere 755 permisos en el árbol de directorios, ¿es seguro en una computadora portátil de un solo usuario?

1

Tengo algunas aplicaciones web simples implementadas en proveedores externos. Para las pruebas y la depuración, ejecuto instancias locales (bajo demanda, no todo el tiempo) en localhost: 80 usando apache.

Estos están alojados directamente desde mi Código / carpetas ya que es donde estoy haciendo las ediciones. Anteriormente, esas carpetas estaban en un árbol de directorios separado (/home/data/...../Code) pero debido a una reorganización de la estructura de directorios, estoy moviendo la carpeta de Código a mi propia carpeta de inicio (~ /..../ Código). Por supuesto, esto significa que apache no permitirá que se cargue a menos que cambie los permisos en ~ a 755 desde 700.

Mi computadora portátil es de un solo usuario, y el acceso remoto (por lo que puedo decir) solo se permite a través de sshd (solo con clave, no se permiten inicios de sesión con contraseña) y los sitios alojados en apache (ya que también pruebo cómo funciona la página aparecerá en mi teléfono inteligente a veces). ¿Estoy aumentando mi perfil de riesgo al otorgar 755 permisos a ~? Estoy especialmente preocupado por ~ / .ssh y directorios sensibles similares, pero aquellos que ya niegan el permiso de lectura a cualquiera que no sea mi propio usuario.

    
pregunta Ng Oon-Ee 18.10.2017 - 02:00
fuente

3 respuestas

0

Debería poder establecer los permisos en su directorio de inicio en algo así como 0701 y luego configurar el grupo en el directorio que desea que Apache pueda ver en 750 con la configuración del grupo de ese directorio para el grupo del usuario que Apache se está ejecutando como.

Así que algo como esto:

chmod o+x ~/
chmod -R g+rx ~/directoryWhereFilesAre/
chgrp -R www-data ~/directoryWhereFilesAre/

Donde 'www-data' es el nombre del grupo predeterminado de su usuario de Apache y 'directoryWhereFilesAre' es el directorio principal donde guarda los archivos a los que desea acceder mediante Apache.

Esto deja su directorio de inicio abierto a cualquier usuario que pueda acceder a su directorio de inicio, pero ya deben saber el nombre y la ubicación de un archivo / directorio Y tener permiso de lectura en ese archivo / directorio para acceder. Probablemente esto sea seguro en un sistema de un solo usuario, pero solo usted puede decidirlo en función de su disposición a aceptar ese riesgo.

    
respondido por el RichardNixon 18.10.2017 - 18:58
fuente
0

755 suele ser el permiso predeterminado para los directorios de inicio, pero si lo desea, podría limitarlo al directorio de Código y utilizar setfacl para limitarlo solo al usuario de apache:

# Set exec on parent directories
setfacl -m u:www-data:x ~
setfacl -m u:www-data:x ~/foo
setfacl -m u:www-data:x ~/foo/bar
# Recursively set default acl
setfacl -R -d -m u:www-data:rX ~/foo/bar/Code
# Recursively set acl for existing files
setfacl -R -m u:www-data:rX ~/foo/bar/Code

(apoyos a RichardNixon para recordarme que los directorios principales necesitarán permiso exec)

Tenga en cuenta que su usuario de apache podría ser www-data , httpd , apache , o algo más dependiendo de su distro.

    
respondido por el AndrolGenhald 18.10.2017 - 15:29
fuente
0

Sinceramente, dudo que "Apache ... requiera 755 permisos", es más probable que el servidor web requiera poder leer el contenido que se espera que sirva. La forma en que proporciona esa capacidad es una pregunta muy diferente a lo que pidió.

El servidor web requiere este permiso independientemente de dónde se implementen los archivos.

Hay 2 cuestiones que deben abordarse:

Si bien puede ser la única persona que debería implementar archivos en su computadora portátil, los permisos apropiados son parte del artefacto, por lo tanto, el mecanismo que elija para aprovisionar esos permisos debería abarcar la mayor cantidad de espacio de implementación posible. una secuencia de comandos de corrección (con configuración de host) que se ejecuta después de implementar el contenido, o una definición estática que podría otorgar acceso de escritura a un grupo nombrado, con setgid bit establecido en los directorios.

El otro problema es que puede crear inadvertidamente archivos nuevos que son expuestos por el servidor web. Esto se mitiga al garantizar que el servidor web esté configurado para leer solo de directorios específicamente diseñados para este propósito. Si debe tener esos archivos dentro de su directorio de inicio (en lugar de tener un enlace simbólico dentro de su directorio de inicio a la raíz del documento real), use mod_userdir y ~ / public_html, use un enlace simbólico desde dentro de la raíz de documentos hacia el directorio de contenido junto con las opciones + followlinks, o agregue un alias para el directorio. Aunque personalmente me inclino por mantener el contenido editable en su directorio de inicio, actualizarlo en un sistema de control de versión local y desplegarlo desde allí en la raíz del documento cuando desee ejecutarlo.

Si está configurando el bit ejecutable en los archivos de contenido, está debilitando la seguridad de su sistema, esto solo es necesario para los directorios.

    
respondido por el symcbean 16.02.2018 - 02:41
fuente

Lea otras preguntas en las etiquetas