Projet

Général

Profil

ReverseProxyWildcard » Historique » Version 3

« Précédent - Version 3/5 (diff) - Version actuelle
Fabien Dupont, 23/04/2013 23:55


Reverse Proxy à Wildcard

Principe

Le principe de cette manip' est de créer un proxy pour accéder aux antennes Wifi de façon sécurisée.


                +--------+--------->[antenne1]
 +--------+     | apache |--------->[antenne2]
 | client |---->|  (h2)  |--------->[antenne3]
 +--------+     |        |--------->[antenne4]
                +--------+--------->[antenne5]

Explication :

Configuration du DNS

Le DNS doit être avoir un wildcard pour que toutes les requêtes vers un sous-domaine de tsf.tetaneutral.net doivent pointer vers le serveur web, ici c'est h2.

Dans bind, pour la zone tetaneutral.net, il faut ajouter :

*.tsf                       IN  CNAME h2

Vérification :

palomino# host pouetpouetpouet.tsf.tetaneutral.net
pouetpouetpouet.tsf.tetaneutral.net is an alias for h2.tetaneutral.net.
h2.tetaneutral.net has address 91.224.149.152
h2.tetaneutral.net has IPv6 address 2a01:6600:8081:9800::1

Configuration côté apache

En fait, apache n'est pas configuré qu'en mode proxy il doit réécrire les requêtes vers les adresses IP déduites de l'URL.

Par exemple, une requête vers http://42.tsf.tetaneutral.net/ sera réécrite en http://172.31.31.42/ puis « reverse proxyfiée ».

Un nouveau VirtualHost doit être ajouté à Apache. Il doit avoit pour nom (ServerName) un nom défini (ex: 1.tsf.tetaneutral.net) mais il peut avoir un alias acceptant des aliases (*.tsf.tetaneutral.net).

# cat /etc/apache2/sites-available/tsf.tetaneutral.net 
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName 1.tsf.tetaneutral.net
    ServerAlias *.tsf.tetaneutral.net

    <Location />
        AuthType Digest
        AuthName "ttnn" 
        AuthBasicProvider file
        AuthUserFile /etc/apache2/.htdigest
        Require valid-user
    </Location>

    ProxyRequests off
    <Proxy *>
        Order deny,allow
        Allow From all
    </Proxy>

    RewriteEngine on

    RewriteCond %{http_host}/%{request_uri} ^([0-9]+)\.tsf\.tetaneutral\.net/(.*)$
    RewriteRule (.*)    http://172.31.31.%1/%2 [p]

    CustomLog /var/log/apache2/tsf.tetaneutral.net-access.log combined
</VirtualHost>
# ln -sv /etc/apache2/site-available/tsf.tetaneutral.net /etc/apache2/site-enabled/
# /etc/init.d/apache2 reload

L'authentification est gérée dans le fichier /etc/apache2/.htdigest.

Pour ajouter un utilisateur :

# htdigest /etc/apache2/.htdigest ttnn nomutilisateur

Pour créer ce fichier, la première fois, il faut ajouter un paramètre -c.