Apache

De knowledge
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:

$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
HEAD / HTTP/1.0
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
Connection closed by foreign host.

Ceci est un grand risque car le hacker potentiel connait déja 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".

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)