Comment empêcher Apache de s'exécuter en tant que root?

8

Nouveau sur le tas, petit endroit et les trucs de sécurité viennent d'atterrir sur mon bureau. J'ai été embauché pour être développeur front-end. Heureux d'apprendre de nouvelles choses, mais je n'ai jamais eu à faire de truc d'administrateur système auparavant.

J'ai commencé à creuser et il semble que Apache, le site et tout fonctionnent sur root. Il n'y a pas d'autres groupes ou utilisateurs. ACK!

Quelles mesures dois-je prendre pour changer cela? Je sais que c'est un gros non-non ...

Points bonus si quelqu'un peut me signaler un bon tutoriel de base 101 sur la sécurité apache / php.

r00tAcc3ss
la source

Réponses:

12

Il est inhabituel que Apache fonctionne comme rootdans n'importe quelle configuration de stock. Comment avez-vous déterminé qu'Apache s'exécute en tant que root? Notez qu'Apache doit démarrer en tant que root pour se lier aux ports privilégiés, mais perd généralement ses privilèges plus tard.

Vous pouvez rechercher dans votre configuration Apache (souvent dans /etc/httpdou /etc/apache2, selon votre distribution) les directives Useret Group(documentées ici ). Ces deux directives contrôlent sous quel ID utilisateur Apache s'exécute.

Il est également inhabituel de trouver un système qui n'a "aucun autre groupe ou utilisateur". Que faire getent passwdet getent groupmontrer? N'y a-t-il vraiment pas d'autres utilisateurs ou groupes que root? La plupart des distributions sont livrés avec un apacheou www-datautilisateur ou somesuch et une configuration correspondante qui se déroulera Apache de cet utilisateur.

Il existe une variété de guides d'introduction à la configuration et à la sécurité d'Apache. Une simple recherche Google donne de nombreux résultats probables. Le Guide de déploiement RedHat / CentOS est un bon point de départ (si vous êtes sur un système RedHat / CentOS).

larsks
la source
Merci, oui, il ne fonctionnait pas sur root, mais il semble que tout le reste a été fait en utilisant root. tous les dossiers, fichiers, etc. Je devrai trouver comment changer cela.
r00tAcc3ss
Enfin ... pas forcément. Vous ne voulez pas que les fichiers appartiennent au même utilisateur que le processus Apache en cours d'exécution. Idéalement, un compromis sur le serveur Web ne permettra pas à un attaquant de modifier votre configuration Apache ou votre contenu Web.
larsks
0

Vous pouvez exécuter Apache en tant que n'importe quel utilisateur avec des numéros de port supérieurs au numéro de port privilégié 1024+. Utilisez ensuite la redirection de port pour transférer le trafic des ports 80 et 443 vers vos ports spécifiques.

Chase T.
la source