Mejores prácticas de servidor web: estructura de directorios y seguridad

15

Me gustaría utilizar el servidor Ubuntu como servidor web, pero quiero asegurarme de seguir las mejores prácticas para configurar las cosas. Quiero asegurarme de configurar el directorio en la mejor ubicación y entender cómo configurar la seguridad adecuada en esa carpeta. Me gustaría poder enviar FTP al servidor e insertar archivos en las carpetas web, por lo que me gustaría entender cómo asegurarme de que mi usuario de PureFTPd pueda manipular archivos / directorios dentro de las carpetas web.

JPrescottSanders
fuente
Encontré esta respuesta en serverfault.com, y la encontré muy útil. Muchos de los comentarios son buenos datos para tratar este tema.
MystaMax

Respuestas:

5

Lo que hice en mi servidor para que mi usuario pudiera hacer cosas directamente /var/wwwes:

sudo chgrp -R www-data /var/www
sudo usermod -aG www-data $(whoami)
sudo chmod -R 775 /var/www/*
sudo chmod 2775 /var/www

Esto colocará a su usuario en un grupo que tiene la propiedad del grupo en / var / www y todos sus directorios secundarios, configurará todo en / var / www recursivamente para permitir el acceso de escritura de su grupo y establecerá el bit setgid en el directorio / var / www para que todos los archivos creados más tarde en / var / www mantengan la misma propiedad del grupo en lugar de tener el grupo configurado en el grupo primario del creador.

maco
fuente
Este sería un buen método, pero solo si crea un grupo diferente a partir del www-datacual el servidor web ya se ejecuta. Como resultado, cualquier compromiso de los scripts del servidor web significa que los archivos debajo /var/wwwpodrían modificarse. Simplemente cambie www-dataa algo como web-users(y cree ese grupo primero, con sudo addgroup web-users).
Kees Cook
2

Esta es una pregunta muy general.

Obviamente, no desea ejecutar su servidor web como root. Sin embargo, la instalación de Ubuntu ya lo hace de la manera correcta.

Además, en el sitio web de apache hay algunos consejos sobre cómo configurar correctamente su directorio .

En lo que respecta a ftp. Desea asegurarse de utilizar un servidor ftp seguro que no envíe sus nombres de usuario y contraseñas en texto plano a través de la red. Las páginas de ayuda de Ubuntu tienen un tutorial sobre cómo configurar dicho servidor ftp .

txwikinger
fuente
Aprecio la información, me doy cuenta de que es general, esperaba que pudiera haber una opinión bastante general sobre las mejores prácticas para configurar las cosas.
JPrescottSanders
0

Cuando solo tengo un servidor Ubuntu, con varios usuarios que usan el servidor como servidor web, elimino el /var/wwwdirectorio porque, para mí, /var/wwwes donde colocas los archivos web a nivel mundial. Actualizo el /etc/skeldirectorio y agrego una carpeta publicy privatecon un enlace simbólico www -> publicy actualizo todos mis hosts virtuales DocumentRoots para señalar /home/<user>/public.

No veo /var/wwwcomo el lugar para colocar múltiples carpetas y archivos a nivel de usuario. ¡Para eso /home/está diseñado el directorio! Mantiene las rutas y las estructuras de directorios limpias.

Marco Ceppi
fuente