Demande #3145
ouvertFaut-il renforcer l'isolation des applications PHP sur la VM lamp ?
0%
Description
Actuellement, sur la VM lamp, il n'y a pas de restriction d'accès entre application PHP installée.
C'est à dire que le code PHP d'une application peut accéder aux fichiers d'une autre application, et même de tout le système.
Exemple : https://date.chapril.org/test.php (qui accède à un fichier dans paste.chapril.org).
D'expérience, il est d'usage d'utiliser la directive open_basedir pour augmenter la sécurité : http://php.net/manual/fr/ini.core.php#ini.open-basedir
De son côté, Didier remonte que la procédure d'installation de paste.chapril.org cite PHP-FPM : https://php-fpm.org/
Pour information : https://paste.chapril.org/phpinfo.php
Question : quel niveau d'isolation voulons-nous ?
1) par défaut : on a confiance dans le code et ce n'est pas grave ;
2) open_basedir : c'est le minimum chez les professionnels ;
3) php-fpm : le maximum est le mieux.
Je suis d'avis d'appliquer open_basedir.
Votre avis ?
Mis à jour par Didier Clermonté il y a plus de 6 ans
open_basedir actif pour date et paste
Mis à jour par Denis Dordoigne il y a plus de 6 ans
Voici ce que je vois habituellement chez mes clients :
- aucune isolation particulière en général
- pour les services accédant à des données sensibles (données personnelles, données de santé, etc.), une machine séparée par service
Chez infini on héberge tous les services de type frama sur les mêmes machines sans isolation particulière, mais on pourrait probablement faire mieux.
Mis à jour par François Poulain il y a plus de 6 ans
Je partage l'avis de Edouard.On peut mettre un gloubi boulga de php sur lamp là où ce n'est pas critique, mais les applications qui présentent de la criticité doivent être isolées.
Mis à jour par Christian P. Momon il y a environ 5 ans
- Projet changé de Chapril à Infra Chapril
Mis à jour par pitchum . il y a presque 4 ans
- un compte unix dédié
- une config php-fpm dédiée
- un compte MySQL ou postgreSQL dédié
Il me semble que ça suffit pour isoler les applis les unes des autres même si elles tournent sur la même VM.
Par exemple, j'ai documenté comment j'ai procédé pour déployer Movim chez Parinux : https://wiki.parinux.org/si/movim#installation