Je veux compartimenter différentes applications PHP sur mon serveur web SL6.4 (reconstruction de RHEL 6.4) afin qu'elles ne puissent pas accéder aux données des autres. Il semble que SELinux puisse le faire, mais je ne suis pas sûr des détails. Ma question comporte deux parties :
- Comment SElinux gère-t-il les scripts PHP s'exécutant dans le processus Apache avec mod_php ? Le processus entre-t-il d'une manière ou d'une autre dans le contexte du script lors de l'exécution du script PHP, ou cela fonctionne-t-il uniquement lorsque les scripts sont exécutés hors du processus via CGI ou FastCGI ? S'il effectue une transition vers un contexte de script pour exécuter le script PHP, qu'empêche un bug PHP de déclencher une transition vers le contexte principal httpd ? S'il me faut une méthode de déploiement PHP alternative, il serait bon de le savoir.
- Comment puis-je séparer les scripts/applications afin que, par exemple, TinyTinyRSS ne puisse pas accéder aux éléments appartenant à OpenCloud ? Il semble que je devrais être en mesure de le faire en désactivant
httpd_unified
et en fournissant des ensembles de contextes distinctshttpd_ttrss_*
ethttpd_opencloud_*
, parallèles àhttpd_user_foo
ethttpd_sys_foo
. Il pourrait même me suffire d'utiliser la distinction sys/user sans nouveaux contextes, étant donné le nombre d'applications que je peux utiliser. Mais je n'ai pas trouvé beaucoup de documentation sur les implications exactes de la désactivation dehttpd_unified
, ni sur la manière de configurer différents contextes HTTP. Particulièrement avec des scripts PHP exécutés viamod_php
.
Je suis prêt à créer de nouveaux modules de politique SELinux, mais j'aimerais disposer de documentation indiquant ce que je dois inclure dans la nouvelle politique et comment la faire intégrer harmonieusement avec la politique ciblée SELinux.
Si c'est une cause perdue d'essayer de réaliser cette séparation uniquement avec SELinux et que j'ai besoin de lancer des httpd séparés dans des contextes différents, ou éventuellement même des conteneurs LXC, cela constituerait également une réponse utile.
0 votes
Cela peut dépendre du moyen par lequel vous voulez exécuter PHP, vous avez marqué 'mod-php' mais je voulais juste confirmer que c'est la méthode que vous souhaitez utiliser.
0 votes
@MIfe Je suis actuellement en train d'utiliser mod_php, mais je suis prêt à passer à une méthode de déploiement différente si cela simplifie les choses.