Apache
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)