Forum Linux.debian/ubuntu Permissions avancées pour serveur web multiusers

Posté par  .
Étiquettes : aucune
0
4
fév.
2006
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  . Évalué à 1.

    je -->[ ]
  • # Suexec ?

    Posté par  (site Web personnel) . Évalué à 0.

    Ne peux-tu pas faire tourner apache en mode suexec, ainsi il tourne avec l'utilisateur propriétaire du script (php ou autre).

    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  . Évalué à 1.

    Ce comportement peut être obtenu en précisant les permissions dans le fichier /etc/exports.
    Ca implique un montage par utilisateur, et un service NFS...
  • # chroot ?

    Posté par  (site Web personnel) . Évalué à 3.

    Pour ma part, j'aurais essayé de bloquer mes utilisateur dans leur homes puisque tu dis qu'ils en ont un chacun dans /home/www.
    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 à ceux qui les ont postés. Nous n’en sommes pas responsables.