Bonjour,
Je suis en train de configurer un serveur web qui tourne en tant que www-data/www-data.
Différents utilisateurs gèreront différents sites web dans leurs homes respectives (situées sous /home/www/), certains via ftp, d'autres via ssh. Aucun utilisateur ne doit accéder aux fichiers d'un autre.
Je pensais mettre en place la configuration suivante :
- mettre en place un sticky bit sur /home/www/ pour forcer le groupe à www-data
- changer l'umask en 037 / 027 pour se protéger des autres utilisateurs
Premier problème :
Le sticky bit s'enlève très facilement, il suffit que l'utilisateur fasse une mauvais manipulation avec son logiciel ftp pour enlever le sticky bit. Du coup, le serveur web ne pourra plus lire ses fichiers...
Connaissez-vous un moyen d'empêcher le retrait du sticky bit ?
Pour y remédier, je pensais enlever les sticky bits et simplement ajouter www-data dans le groupe de chaque utilisateur. Cela fonctionne, mais niveau sécurité ça me dérange qu'apache ait accès à tous les fichiers de tous les utilisateurs...
Voyez-vous une autre solution ?
Second problème :
Les utilisateurs perdent le contrôle des fichiers créés par apache, et sont ensuite obligés de passer par des scripts pour manipuler ces fichiers. J'ai pensé un instant ajouter les utilisateurs au groupe www-data mais, cela leur donnerait accès aux fichiers des autres utilisateurs...
Y a t-il un moyen de forcer apache à créer les fichiers avec le même user que son dossier parent ?
Merci pour vos suggestions...
# Tu travailles chez free ??
Posté par blobmaster . Évalué à 1.
# Suexec ?
Posté par Raphaël G. (site web personnel) . Évalué à 0.
Après une autre solution est de mettre des acl dans ton arborescence, mais prépare toi a mettre quelques scripts dans un cron, parce que pas mal d'opération simple les font sauter...
# NFS?
Posté par Patrick Trauquesègues . Évalué à 1.
Ca implique un montage par utilisateur, et un service NFS...
# chroot ?
Posté par Anthony Levaufre (site web personnel) . Évalué à 3.
Mettons pour l'utilisateur toto, il faut qu'il reste dans /home/www/toto.
Pour l'accès ftp, pas de problème, avec proftpd et cette directive :
(le groupe ftpuser est le groupe dans lequel on place les utilisateurs du ftp)
# chroot for all users of the group ftpuser
DefaultRoot ~ ftpuser
Et toto ne pourra jamais remonter au dessus de /home/www/toto qu'il verra comme étant la racine dans son client ftp.
Pour l'accès ssh, c'est un peu plus compliqué. L'idée est de chrooter l'utilisateur au moment de sa connexion ssh.
Et comme je ne l'ai jamais mis en place, je préfère te renvoyer vers le FM de Debian :
http://www.debian.org/doc/manuals/securing-debian-howto/ap-c(...)
Bon courage !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.