3 votes

CPanel - Comment empêcher Apache de fonctionner en tant qu'utilisateur root ?

<?php echo `whoami`; ?>

Il s'agit donc d'un retour "à la racine" et je ne sais pas comment l'empêcher. J'utilise WebHost Manager / CPanel qui est censé créer plusieurs utilisateurs/vhosts et faire en sorte qu'Apache génère son processus en tant qu'utilisateur/groupe. Ce n'est pas le cas.

Si je me connecte à WHM et que j'ouvre la section Configuration PHP et SuExec, mes paramètres sont les suivants :

Default PHP Version (.php files)    5
PHP 5 Handler                       cgi
PHP 4 Handler                       none

Apache suEXEC                       on

Qu'est-ce qui ne va pas ? Comment puis-je faire en sorte qu'Apache s'exécute sous le bon utilisateur plutôt que sous l'utilisateur root ?

5voto

alexgolec Points 109

Si vous souhaitez que chaque site fonctionne en tant que son propre utilisateur, le paramètre correct du gestionnaire PHP 5 est "suPHP" plutôt que "CGI". Une fois que vous aurez modifié ce paramètre, vous devriez voir que votre whoami rapporte les utilisateurs individuels.

Notez que vous devrez peut-être lancer EasyApache et sélectionner "Mod SuPHP" au cours de ce processus pour recompiler Apache / PHP afin que cette option soit disponible en premier. Cela se fait sous :

Main >> Logiciels >> EasyApache (Apache Update) ou en ligne de commande /scripts/easyapache

4voto

Brad Points 3206

Apache lui-même tourne probablement sous l'utilisateur apache, mais grâce à SuExec, les scripts qui appartiennent à root s'exécutent en tant que root. C'est pourquoi votre fichier whoami renvoie à l'utilisateur root.

Si vous changez le propriétaire des fichiers de la racine de votre document pour "apache" ou "www-data" (quel que soit celui utilisé par votre serveur), cette même commande renverra le nouveau propriétaire du fichier.

Il est probablement utile de s'assurer que tous vos scripts PHP sont chmod 555 et les répertoires n'appartiennent pas au même utilisateur que les fichiers. Cela permettra à CGI d'exécuter les scripts mais signifiera que si une faille est trouvée dans l'un des scripts PHP, il ne pourra pas se modifier ou modifier les autres scripts et il ne pourra pas créer un nouveau scripts dans l'un des répertoires. Il y a encore beaucoup de choses qu'un attaquant pourrait faire s'il trouvait une faille dans un scripts PHP, mais tout ce que vous pouvez faire pour leur rendre la tâche plus difficile en vaut la peine.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X