Bonjour, aujourd'hui je viens m'inscrire sur ce forum pour essayer de me débloquer d'un problème qui me bloque depuis quelques jours et qui me prend vraiment la tête...

J'aimerais mettre 3 sites de client a moi sur une même machine linux, pour le moment j'utilise apache avec php5 fpm. Au début pour gérer la sécurité j'avais essayé le chroot de fpm jusqu'au moment où je me rend compte que php n'a même plus accès a ses librairies et aux dns. J'utilise un utilisateur linux pour chaque site via les pool fpm.
Je passe mes journées a fouiller internet pour trouver une solution pour sécuriser au mieux les sites. J'ai pensé a faire des containers Docker mais le kernel openvz utilisé pour mon vps ne me le permet pas... Je cherche donc désespérément une solution pour isoler les sites.

J'ai l'impression que la simplte utilisation de plusieurs user linux n'est pas assez suffisante car avec les functions php on peut trop se balader dans l'arborescence de linux. J'ai donc en premier temps bloquer certaines funcitons php et mis en place l'option open_basedir mais d'après ce que j'ai pu lire, certaines functions php ne prennent pas en compte l'open_basedir..
Je voudrais que les sites soit isoler dans un répertoire en ayant juste accès à son répertoire parent. Chaque site aura un fichier de log dans son répertoire parent.
Du genre :

/home
    -> /site1
        ->/www
        ->/subdomain
    -> /site2
        ->/www
        ->/subdomain
    -> /site3
        ->/www
        ->/subdomain

Je n'arrive donc pas àfaire en sorte qu'aucune function php ne puisse remonter au-dessus de son dossier parent (Ex: une function php executé sur un fichié php situé dans www de site1 ne peut que se balader dans site1 et ses sous répertoires.

Si quelqu'un à une proposition j'en serais très heureux d'avoir son avis !

Merci d'avance pour vos réponses !

4 réponses


Bonsoir et bienvenue.
Je ne réponds pas à ton problème, mais tu devrais plutôt déplacer ton sujet dans le forum Linux en éditant ton sujet.
En effet le forum PHP concerne du code PHP et non pour ce qui concerne spécifiquement le serveur, et en ayant ton sujet dans le forum adéquat, tu auras plus de chance d'avoir des réponses.

erickfro
Auteur

Fait ! Désolé, je te remercie !

Salut, tu peux utiliser 2 extensions apache pour régler ton problème : suExec et suPHP. Tu trouveras ici, un tuto qui t'explique mieux en détail comment ces deux extensions fonctionnent et comment les mettre en place !

erickfro
Auteur

Merci beaucoup pour ta réponse, si j'ai bien compris je fais la même chose avec php-fpm car j'ai une pool par site et chaque pool utilise un utilisateur linux different. Les utilisateurs ne peuvent pas rentrer ni lire les fichiers/dossiers des autres site, y a-t-il quelque chose a faire en plus pour sécurisé les utilisateurs utilisé pour php-fpm ? Les functions php exec etc... sont bloqué. Avec les functions permetant de lire et d'écrire dans des fichiers sont-ils des problèmes de sécurité pour le système linux ?