Question Gestion d'Apache pour compenser le masquage de sécurité de WebDAV


Lorsqu'un utilisateur crée un fichier via WebDAV, le fichier appartient par défaut à l'utilisateur et au groupe exécutant le processus Apache, avec un umask de 022.

Malheureusement, cela empêche les utilisateurs non privilégiés d'écrire dans les fichiers par d'autres moyens sans appartenir au groupe sous lequel Apache est exécuté (ce qui me semble être une très mauvaise idée).

Ma solution actuelle est de définir umask 000 dans les envvars d’Apache et supprimez toutes les autorisations mondiales du répertoire webdav parent pour l’utilisateur. Donc, si le partage WebDAV est /home/foo/www, puis / home / toto / www appartient à www-data:foo avec les autorisations de 770. Cela éloigne plus ou moins les autres utilisateurs non privilégiés, mais c'est au mieux une hokey et au pire une catastrophe en matière de sécurité.

D'après mes recherches et mes recherches sur mod_dav et Apache, je ne trouve pas de solution raisonnable si ce n'est un travail cron qui renverse toutes les autorisations (je préfère ne pas avoir la charge et la complexité accrue sur le serveur). SuExec ne fonctionnera pas non plus, car les opérations WebDAV ne seront pas exécutées sous un utilisateur différent.

Des idées à ce sujet? Je vous remercie.


5
2017-12-12 01:44


origine


Ma pensée est que Apache ne fait pas vraiment très bien en tant que serveur WebDAV. Je souhaite vraiment qu'il y ait quelque chose de mieux, mais je ne l'ai pas trouvé. - Zoredache
De même, Zoredache. J'ai cherché, mais je n'ai rien trouvé de vraiment satisfaisant. Ce serait bien s'il y avait un serveur WebDAV solide qui fonctionnait de manière isolée et qui pouvait exécuter MPM-style ou accorder des autorisations correctes (ou au moins les laisser tranquille). EDIT: Il y avait un MPM Apache il y a plusieurs lunes, mais aucun développement n'a eu lieu dans ce domaine depuis longtemps. Au moins, je pourrais créer les instances Apache en tant qu'utilisateur et utiliser mod_dav sous chaque enfant. - Tohuw
Je préférerais également un vrai serveur de fichiers WebDAV, mais il existe une solution. Voir ma réponse ici: serverfault.com/a/457299/50950 - aef


Réponses:


J'ai contourné le manque de capacités de commutation utilisateur d'Apache en utilisant Posix ACL. Celles-ci vous permettent d'ajouter plus d'entrées de groupes et d'utilisateurs sur chaque fichier, ainsi que de définir des autorisations par défaut pour les répertoires automatiquement ajoutés à chaque fichier créé.

Si je comprends bien et que vous utilisez Linux, vous pouvez activer Posix ACL dont vous avez besoin pour remonter votre système de fichiers avec le acl option. Ensuite, vous pouvez utiliser setfacl et getfacl pour gérer des autorisations supplémentaires. Sur les systèmes basés sur Debian, ces outils se trouvent dans le paquet acl. Vous pouvez en savoir plus sur Posix ACL dans man acl et man setfacl. Les ACL Posix sont également disponibles sur certains systèmes BSD et MacOS, mais je ne les ai jamais utilisés là-bas.

Par exemple, vous pouvez configurer un dossier dans quel groupe fileserver a toujours accès en lecture et en écriture à tous les fichiers dans:

setfacl -Rm default:group:fileserver:rw,group:fileserver:rx /srv/fileserver

Cela se traduirait par getfacl /srv/fileserver signaler quelque chose comme ceci:

# file: /srv/fileserver
# owner: aef
# group: aef
user::rwx
group::rwx
group:fileserver:r-x
mask::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:fileserver:rw-
default:mask::rwx
default:other::r-x

Un avertissement cependant: vous aurez probablement besoin de temps pour vous habituer aux ACL Posix, elles ajoutent un peu plus de complexité, même si cela ne semble pas être le cas au début.


4
2017-12-12 03:47



Merci aef! Cela semble très prometteur et je vais essayer cela dès que je le pourrai. Je vais réserver en indiquant la réponse dans l'attente, mais je vais essayer de le faire au cours des prochains jours. Je vous remercie. - Tohuw