¿Qué derechos de acceso se deben elegir para doku wiki?

3

Actualmente estoy realizando mis primeras experiencias con un CMS llamado "DokuWiki" ( Link ). Este CMS solo necesita PHP y escribe la información en archivos (parece ser / dokuwiki / data / pages).

En este momento le di a toda la carpeta y carpetas Dokuwiki + los archivos de derechos 777. Soy el propietario de los archivos / carpetas.

¿Qué derechos de acceso se deben otorgar a la carpeta? ¿Debo cambiar el propietario (por ejemplo, a www-data)?

¿Conoce algún ataque basado en muchos derechos para carpetas / archivos? Solo podía imaginar un ataque que use una vulnerabilidad de PHP para obtener acceso al sistema de archivos y luego use los derechos para hacer daño.

editar: acabo de encontrar instalar: permisos . ¿Mi suposición es correcta, que el siguiente conjunto de permisos es el mínimo que DokuWiki necesita para ejecutar?

$ sudo chown www-data -R /var/www/wiki
$ sudo chmod 400 /var/www/wiki -R
$ sudo chmod 600 /var/www/wiki/data -R
$ sudo chmod 600 /var/www/lib -R
$ sudo chmod 600 /var/www/conf -R
$ sudo chmod 700 /var/www/wiki/data /var/www/wiki/data/tmp /var/www/wiki/lib var/www/wiki/lib/plugins /var/www/wiki/conf
    
pregunta Martin Thoma 12.07.2011 - 13:47
fuente

2 respuestas

6

Generalmente, las mejores prácticas para los permisos de sitios web son otorgar al usuario web, en su caso www-data , lectura, pero no escritura, acceso a los archivos de datos. Es decir, algo similar a:

chown root:www-data -R /var/www/html
find /var/www/html -type d -exec chmod 750 {} \;
find /var/www/html -type f -exec chmod 640 {} \;

El objetivo es permitir que la aplicación del servidor web lea los archivos, pero no pueda escribir en ninguna parte. De esa manera, si el servicio web en sí se ve comprometido, hemos limitado la capacidad de un usuario malintencionado para eliminar archivos arbitrarios. (Lea sobre chroot como corolario, pero está fuera del alcance de esta respuesta).

Las Wikis, por su naturaleza, deben violar esta práctica para que funcionen correctamente. Sin embargo, la clave es entender exactamente qué partes del software wiki necesitan privilegios más altos. Para decidir realmente, tienes una opción:

  1. Use la interfaz web solo para crear / editar páginas.
  2. Use la interfaz web para crear / editar páginas, así como para administrar configuraciones.

Opción 1
Esto configurará todos los permisos de nivel de archivo de modo que los usuarios puedan editar / crear páginas, pero requerirán que administre las configuraciones manualmente. Si usted (o quien administra el wiki) se siente cómodo con la sintaxis de PHP, y no le importa trabajar en los archivos de configuración, entonces esta es probablemente su mejor apuesta. Por lo tanto, su conjunto de permisos debe verse como:

chown root:www-data -R /var/www/wiki  
chmod 750 /var/www/wiki -R
chmod 770 /var/www/wiki/data -R
chmod 750 /var/www/lib -R
chmod 750 /var/www/conf -R
find /var/www -type f -exec chmod -x {} \;

Entonces, lo que hemos hecho aquí es la lectura / escritura de la raíz y los datos de www, solo en todos los archivos wiki. Luego, se le otorga a www-data los derechos adicionales para escribir en la sección de datos del usuario.

Opción 2
Si también desea administrar las configuraciones a través de la interfaz web, use la misma configuración que la anterior, excepto cambiar la línea 5 por:

chmod 770 /var/www/conf -R

Descargo de responsabilidad: nunca he ejecutado la configuración de DokuWiki de esta manera, pero no veo ninguna razón por la que no funcione. Pruébalo primero, ¿eh?

    
respondido por el Scott Pack 12.07.2011 - 16:55
fuente
2

No conozco a Dokuwiki en absoluto, y la mejor idea es establecer permisos muy bajos y luego tener que actualizarlos. Pero ... no estoy seguro de por qué necesita leer & escribir en la biblioteca y conf directorios y archivos? Creo que sería preferible leer solo en las bibliotecas y también en los archivos de configuración. La herramienta no debería cambiar su propia configuración ...

    
respondido por el bethlakshmi 12.07.2011 - 16:20
fuente

Lea otras preguntas en las etiquetas