ReverseProxyWildcard » Historique » Version 3
Fabien Dupont, 23/04/2013 23:55
1 | 1 | Fabien Dupont | h1. Reverse Proxy à Wildcard |
---|---|---|---|
2 | 1 | Fabien Dupont | |
3 | 1 | Fabien Dupont | h2. Principe |
4 | 1 | Fabien Dupont | |
5 | 1 | Fabien Dupont | Le principe de cette manip' est de créer un proxy pour accéder aux antennes Wifi de façon sécurisée. |
6 | 1 | Fabien Dupont | |
7 | 1 | Fabien Dupont | <pre> |
8 | 1 | Fabien Dupont | |
9 | 1 | Fabien Dupont | +--------+--------->[antenne1] |
10 | 1 | Fabien Dupont | +--------+ | apache |--------->[antenne2] |
11 | 1 | Fabien Dupont | | client |---->| (h2) |--------->[antenne3] |
12 | 1 | Fabien Dupont | +--------+ | |--------->[antenne4] |
13 | 1 | Fabien Dupont | +--------+--------->[antenne5] |
14 | 1 | Fabien Dupont | |
15 | 1 | Fabien Dupont | </pre> |
16 | 1 | Fabien Dupont | |
17 | 2 | Fabien Dupont | Explication : |
18 | 2 | Fabien Dupont | |
19 | 2 | Fabien Dupont | * Une requête arrive vers http://unchiffre.tsf.tetaneutral.net/quelquechose |
20 | 2 | Fabien Dupont | * Apache vérifie une authentification de type digest |
21 | 2 | Fabien Dupont | * Elle est réécrite en http://172.31.31.unchiffre/quelquechose |
22 | 2 | Fabien Dupont | * Apache interroge http://172.31.31.unchiffre/quelquechose puis sert le résultat au client au tranvers du reverse proxy (<Proxy *>) |
23 | 2 | Fabien Dupont | |
24 | 1 | Fabien Dupont | h2. Configuration du DNS |
25 | 1 | Fabien Dupont | |
26 | 1 | Fabien Dupont | 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. |
27 | 1 | Fabien Dupont | |
28 | 1 | Fabien Dupont | Dans bind, pour la zone tetaneutral.net, il faut ajouter : |
29 | 1 | Fabien Dupont | |
30 | 1 | Fabien Dupont | <pre> |
31 | 1 | Fabien Dupont | *.tsf IN CNAME h2 |
32 | 1 | Fabien Dupont | </pre> |
33 | 1 | Fabien Dupont | |
34 | 1 | Fabien Dupont | Vérification : |
35 | 1 | Fabien Dupont | |
36 | 1 | Fabien Dupont | <pre> |
37 | 1 | Fabien Dupont | palomino# host pouetpouetpouet.tsf.tetaneutral.net |
38 | 1 | Fabien Dupont | pouetpouetpouet.tsf.tetaneutral.net is an alias for h2.tetaneutral.net. |
39 | 1 | Fabien Dupont | h2.tetaneutral.net has address 91.224.149.152 |
40 | 1 | Fabien Dupont | h2.tetaneutral.net has IPv6 address 2a01:6600:8081:9800::1 |
41 | 1 | Fabien Dupont | </pre> |
42 | 1 | Fabien Dupont | |
43 | 1 | Fabien Dupont | h2. Configuration côté apache |
44 | 1 | Fabien Dupont | |
45 | 2 | Fabien Dupont | 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. |
46 | 1 | Fabien Dupont | |
47 | 2 | Fabien Dupont | Par exemple, une requête vers http://42.tsf.tetaneutral.net/ sera réécrite en http://172.31.31.42/ puis « reverse proxyfiée ». |
48 | 2 | Fabien Dupont | |
49 | 2 | Fabien Dupont | 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). |
50 | 2 | Fabien Dupont | |
51 | 2 | Fabien Dupont | <pre> |
52 | 2 | Fabien Dupont | # cat /etc/apache2/sites-available/tsf.tetaneutral.net |
53 | 2 | Fabien Dupont | <VirtualHost *:80> |
54 | 2 | Fabien Dupont | ServerAdmin webmaster@localhost |
55 | 2 | Fabien Dupont | ServerName 1.tsf.tetaneutral.net |
56 | 2 | Fabien Dupont | ServerAlias *.tsf.tetaneutral.net |
57 | 2 | Fabien Dupont | |
58 | 2 | Fabien Dupont | <Location /> |
59 | 2 | Fabien Dupont | AuthType Digest |
60 | 2 | Fabien Dupont | AuthName "ttnn" |
61 | 2 | Fabien Dupont | AuthBasicProvider file |
62 | 2 | Fabien Dupont | AuthUserFile /etc/apache2/.htdigest |
63 | 2 | Fabien Dupont | Require valid-user |
64 | 2 | Fabien Dupont | </Location> |
65 | 2 | Fabien Dupont | |
66 | 2 | Fabien Dupont | ProxyRequests off |
67 | 2 | Fabien Dupont | <Proxy *> |
68 | 2 | Fabien Dupont | Order deny,allow |
69 | 2 | Fabien Dupont | Allow From all |
70 | 2 | Fabien Dupont | </Proxy> |
71 | 2 | Fabien Dupont | |
72 | 2 | Fabien Dupont | RewriteEngine on |
73 | 2 | Fabien Dupont | |
74 | 2 | Fabien Dupont | RewriteCond %{http_host}/%{request_uri} ^([0-9]+)\.tsf\.tetaneutral\.net/(.*)$ |
75 | 2 | Fabien Dupont | RewriteRule (.*) http://172.31.31.%1/%2 [p] |
76 | 2 | Fabien Dupont | |
77 | 2 | Fabien Dupont | CustomLog /var/log/apache2/tsf.tetaneutral.net-access.log combined |
78 | 2 | Fabien Dupont | </VirtualHost> |
79 | 2 | Fabien Dupont | # ln -sv /etc/apache2/site-available/tsf.tetaneutral.net /etc/apache2/site-enabled/ |
80 | 2 | Fabien Dupont | # /etc/init.d/apache2 reload |
81 | 2 | Fabien Dupont | </pre> |
82 | 2 | Fabien Dupont | |
83 | 3 | Fabien Dupont | L'authentification est gérée dans le fichier /etc/apache2/.htdigest. |
84 | 3 | Fabien Dupont | |
85 | 3 | Fabien Dupont | Pour ajouter un utilisateur : |
86 | 3 | Fabien Dupont | |
87 | 3 | Fabien Dupont | <pre> |
88 | 3 | Fabien Dupont | # htdigest /etc/apache2/.htdigest ttnn nomutilisateur |
89 | 3 | Fabien Dupont | </pre> |
90 | 3 | Fabien Dupont | |
91 | 3 | Fabien Dupont | Pour créer ce fichier, la première fois, il faut ajouter un paramètre -c. |