Apache

De knowledge
Révision datée du 28 février 2025 à 19:32 par Jpinon (discussion | contributions) (→‎Supprimer les "banner" Apache)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Sécuriser

Supprimer les "banner" Apache

Lors d'une requete apache le comportement par défaut est de donner toutes les infos au client:

$ curl -I http://127.0.0.1
HTTP/1.1 200 OK
Date: Sat, 02 Jun 2001 13:11:40 GMT
Server: Apache/1.3.14 (Unix)  (Red-Hat/Linux) PHP/4.0.3pl1 mod_perl/1.24
Connection: close
Content-Type: text/html

Ceci est un grand risque car le hacker potentiel connait déjà le type et la version du serveur. Il n'a plus a essayer les vulnérabilités connues de cette version.

Sécurisation

Retirer ces infos aussi bien lors de requetes HEAD que des GET ou POST en erreur 404 est facile grâce qux directives:

ServerSignature Off
ServerTokens Prod

La première évite l'affichage de la version dans les pages d'erreurs alors que la seconde retire ces valeurs du 'header".

Attention dans les installations d'Apache bien fichues (debian, ubuntu...) il y a un fichier de conf spécifique pour la sécu :

/etc/apache2/conf-available/security.conf

Sur mon Raspberry PI par exemple.

Reverse-Proxy

Introduction

Le but de cette manip est de créer sur le serveur "pserver" un reverse proxy sers une URL donnée.

En résumé en entrant l'URL

 http://pserver/rrr

On est redirigé vers un autre serveur (http://test.com)

Le serveur se charge de la traduction en ligne des URL. Ce mécanisme est principalement utilisé pour "isoler" un serveur web du reste d'internet.

Le client se connecte a un serveur (dans la DMZ) qui lui est visible du reste du réseau. Ce serveur "forwarde" les requêtes a un serveur (dans le LAN).

Cela isole l'ordinateur du reste de l'Internet.

Installation & Configuration

Installation

Le module proxy_http doit être installé. (il l'est par défaut avec apache 2 sur ma distrib ubuntu 9).

Pour l'activer il faut créer un lien dans le repêrtoire /etc/apache2/mods-enabled vers le fichier :

 /etc/apache2/mods-available/proxy_http.load

En ensuite redémarrer apache

 sudo /etc/init.d/apache2 restart

Configuration

I faut éditer le fichier httpd.com ou, si l'installation de apache est propre, comme dans le cas de ubuntu, il faut jouer avec les répertoires /etc/apache/sites-available et /etc/apache/sites-enabled

le contenu à ajouter est

ProxyRequests Off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass /rrr http://test.com
ProxyPassReverse /rrr http://test.com

ATTENTION: Ne pas oublier le : ProxyRequests Off sinon le serveur deviens proxy public !

Ajoutez le dans httpd.conf ou :

  • Créer un fichier ppp-proxy dans /etc/apache/sites-available contenant le texte ci-dessus.
  • Créer un lien dans /etc/apache/sites-enabled vers ../sites-available/ppp-proxy appele 001-ppp

En ensuite redémarrer apache

 sudo /etc/init.d/apache2 restart

Test

Ouvrir un navigateur et tester l'URL http://pserver/rrr qui doit afficher le contenu de http://test.com (sans changer l'URL dans la barre d'adresse)