> Il me semble qu'Apache déconseille l'utilisation de suexec.
QUOI !?!?
Extrait de la doc (http://httpd.apache.org/docs/suexec.html(...)) :
-------------------
Used properly, this feature can reduce considerably the security risks involved with allowing users to develop and run private CGI or SSI programs. However, if suEXEC is improperly configured, it can cause any number of problems and possibly create new holes in your computer's security. If you aren't familiar with managing setuid root programs and the security issues they present, we highly recommend that you not consider using suEXEC.
--------------------
En gros c'est du bon matos mais mal configuré çà peut être une merde.
> Pour PHP il vaut mieux utiliser les protections fournies avec (safe_mode, open_basedir)
Le problème est que ces protections son assez facilement contournables dans certain cas.
Exemple :
Je veux permettre à l'internaute d'uploader des .tgz et de les désarchiver.
Je met le fichier untargz.sh dans l'arborescence du site :
çà marche même avec safe_mode et open_basedir. C'est tant mieux vu l'énoncé du problème.
Maintenant j'autorise mon client a modifier les scripts php de son site (bref il devient le développeur du site). Le client, ou un cracker qui a eu connaissance du mot de passe du compte ftp qui permet de modifier le site, met dans le untargz.sh "rm -r -f /". çà marche toujours très bien.
Si j'utilise suexec les dégats seront limités au compte du site. Si je n'utilise pas suexec (donc j'ai le même compte pour tous les sites hébergés puisque qu'apache ne change pas de compte) ben je peux detruire tous les sites !
L'autre avantage d'utiliser suexec est la possibilité de mettre des quotas par site (chaque site ayant son compte Unix). Ainsi si un site peut-être modifié par un client via ftp, il ne peut pas saturer les disques (ce qui serait dramatique pour le bon fonctionnement du serveur).
Le seul problème de ce type de solution est que les fichiers servies par apache doivent être lisible par apache (lecture pour le compte apache). Donc les fichiers des sites web (qui ont chaqu'un un compte spécifique) doivent être en lecture pour tout le monde (ou au moins pour le groupe apache, mais dans ce cas, mes comptes font aussi parti du groupe apache). Donc dans mon cas d'utilisation de suexec il y a possibilité de lire tous les fichiers des autres sites (mais pas de les modifiers).
La bonne solution serait peut-être d'utiliser les ACL . Mais là j'y connais pas grand chose...
[^] # Re: Un nouveau serveur DNS libre : PowerDNS
Posté par matiasf . En réponse à la dépêche Un nouveau serveur DNS libre : PowerDNS. Évalué à 0.
QUOI !?!?
Extrait de la doc (http://httpd.apache.org/docs/suexec.html(...)) :
-------------------
Used properly, this feature can reduce considerably the security risks involved with allowing users to develop and run private CGI or SSI programs. However, if suEXEC is improperly configured, it can cause any number of problems and possibly create new holes in your computer's security. If you aren't familiar with managing setuid root programs and the security issues they present, we highly recommend that you not consider using suEXEC.
--------------------
En gros c'est du bon matos mais mal configuré çà peut être une merde.
> Pour PHP il vaut mieux utiliser les protections fournies avec (safe_mode, open_basedir)
Le problème est que ces protections son assez facilement contournables dans certain cas.
Exemple :
Je veux permettre à l'internaute d'uploader des .tgz et de les désarchiver.
Je met le fichier untargz.sh dans l'arborescence du site :
#!/bin/bash
cat 1ドル | gzip -d | tar xf -
puis je l'exécute avec php avec :
exec("scripts/untargz.sh /tmp/upload.tgz" , $output, $ret) ;
çà marche même avec safe_mode et open_basedir. C'est tant mieux vu l'énoncé du problème.
Maintenant j'autorise mon client a modifier les scripts php de son site (bref il devient le développeur du site). Le client, ou un cracker qui a eu connaissance du mot de passe du compte ftp qui permet de modifier le site, met dans le untargz.sh "rm -r -f /". çà marche toujours très bien.
Si j'utilise suexec les dégats seront limités au compte du site. Si je n'utilise pas suexec (donc j'ai le même compte pour tous les sites hébergés puisque qu'apache ne change pas de compte) ben je peux detruire tous les sites !
L'autre avantage d'utiliser suexec est la possibilité de mettre des quotas par site (chaque site ayant son compte Unix). Ainsi si un site peut-être modifié par un client via ftp, il ne peut pas saturer les disques (ce qui serait dramatique pour le bon fonctionnement du serveur).
Le seul problème de ce type de solution est que les fichiers servies par apache doivent être lisible par apache (lecture pour le compte apache). Donc les fichiers des sites web (qui ont chaqu'un un compte spécifique) doivent être en lecture pour tout le monde (ou au moins pour le groupe apache, mais dans ce cas, mes comptes font aussi parti du groupe apache). Donc dans mon cas d'utilisation de suexec il y a possibilité de lire tous les fichiers des autres sites (mais pas de les modifiers).
La bonne solution serait peut-être d'utiliser les ACL . Mais là j'y connais pas grand chose...