VirtualisationService » Historique » Version 8
Fabien Dupont, 24/09/2013 21:54
1 | 1 | Laurent GUERBY | {{>toc}} |
---|---|---|---|
2 | 1 | Laurent GUERBY | |
3 | 1 | Laurent GUERBY | h1. VirtualisationService |
4 | 1 | Laurent GUERBY | |
5 | 1 | Laurent GUERBY | h2. Objet |
6 | 1 | Laurent GUERBY | |
7 | 1 | Laurent GUERBY | Dans l'environnement tetaneutral.net un adhérent a le choix d'utiliser plusieurs IPv4 publiques et un bridge avec son interface pour virtualiser mais ceci consomme plusieurs IPv4 publiques. |
8 | 1 | Laurent GUERBY | |
9 | 1 | Laurent GUERBY | Une alternative est de n'utiliser qu'une IPv4 publique et de creer des VMs sur un bridge interne (qui n'a pas l'interface de sortie comme port) avec des IPv4 privées et de se servir de l'hote pour router les requetes de service suivant les ports. Par exemple |
10 | 1 | Laurent GUERBY | |
11 | 1 | Laurent GUERBY | - tcp/2222 => ssh host |
12 | 1 | Laurent GUERBY | - tcp/2223 => ssh VM1 |
13 | 1 | Laurent GUERBY | - tcp/2224 => ssh VM2 |
14 | 1 | Laurent GUERBY | - tcp/2225 => ssh VM3 |
15 | 8 | Fabien Dupont | - tcp/80 => reverse proxy (nginx, apache, varnish, ...) sur host pour redispatch par domaine sur VM1+VM2 |
16 | 8 | Fabien Dupont | - tcp/443 => idem (ouais mais faut gérer le SSL alors !?) |
17 | 1 | Laurent GUERBY | - udp/1194 => serveur openvpn sur VM3 |
18 | 1 | Laurent GUERBY | |
19 | 1 | Laurent GUERBY | En IPv6 il n'y a pas de probleme car l'adhérent a un /56 donc pas de limite aux IPs de service, il suffit de demander l'activation du routage IPv6 coté tetaneutral.net |
20 | 1 | Laurent GUERBY | |
21 | 3 | Raphaël Durand | h2. Solutions |
22 | 3 | Raphaël Durand | |
23 | 1 | Laurent GUERBY | Solarus : - Pour mutualiser une IPv4 sur HTTP on peut mettre en place un proxy nginx. J'en ai déjà un en place sur mon serveur. Je peux le prêter ou en faire un tuto pour en monter un. |
24 | 1 | Laurent GUERBY | - Pour le reste des flux, je conseille de monter un NAT/PAT et configurer les redirections de port entrants. On peut faire ça avec IPtables sous Linux ou BSD. On peut utiliser une machine virtuelle ou un OpenWRT si on veut le faire sur une machine séparée. |
25 | 8 | Fabien Dupont | |
26 | 8 | Fabien Dupont | Fab : |
27 | 8 | Fabien Dupont | - En cas de reverse proxy HTTP, faut gérer le SSL pour le HTTPS...galère, galère |
28 | 8 | Fabien Dupont | - On peut déjà migrer tous les services internes à TTNN sur des IP RFC 1918, quitte à superviser les VM/machines via un rebond SSH (possible dans cmk) ou qu'en IPv6 (possible aussi) |
29 | 8 | Fabien Dupont | - Pour tout ce qui est serveur de mail, on peut proposer un MTA qui accepte tous les domaines des MTA hébergés sur les VMs et qui redispatche (une sorte de reverse proxy mail, en fait) |
30 | 8 | Fabien Dupont | - Pour certaines VMs/machines qui n'hébergent pas de services ouverts ont peut sensibiliser les adhérents à l'IPv6 only (c'est ce que je fait sur ma VM) |
31 | 3 | Raphaël Durand | |
32 | 1 | Laurent GUERBY | h2. Liens |
33 | 1 | Laurent GUERBY | |
34 | 1 | Laurent GUERBY | TODO |
35 | 1 | Laurent GUERBY | |
36 | 5 | Raphaël Durand | h2. Configuration d'un reverse proxy nginx |
37 | 5 | Raphaël Durand | |
38 | 6 | Raphaël Durand | Ci-dessous voici une conf typique pour mettre en place un reverse-proxy nginx afin de partager une IP publique pour plusieurs serveurs. |
39 | 5 | Raphaël Durand | Le systeme fonctionne par Virtual Host (comme sous Apache) |
40 | 5 | Raphaël Durand | |
41 | 5 | Raphaël Durand | Pour chaque Virtual Host, il faut créer un fichier de ce type dans /etc/nginx/sites-enabled |
42 | 5 | Raphaël Durand | |
43 | 5 | Raphaël Durand | <pre> |
44 | 5 | Raphaël Durand | server { |
45 | 5 | Raphaël Durand | listen 80; |
46 | 7 | Raphaël Durand | server_name *.exemple.tld; |
47 | 5 | Raphaël Durand | location / { |
48 | 5 | Raphaël Durand | proxy_pass http://10.255.254.1; |
49 | 5 | Raphaël Durand | } |
50 | 5 | Raphaël Durand | } |
51 | 5 | Raphaël Durand | server { |
52 | 5 | Raphaël Durand | listen 443; |
53 | 7 | Raphaël Durand | server_name *.exemple.tld; |
54 | 5 | Raphaël Durand | ssl on; |
55 | 5 | Raphaël Durand | ssl_certificate certificat_ssl.crt; |
56 | 5 | Raphaël Durand | ssl_certificate_key certificat_ssl.crt; |
57 | 5 | Raphaël Durand | location / { |
58 | 5 | Raphaël Durand | proxy_pass https://10.255.254.1; |
59 | 5 | Raphaël Durand | } |
60 | 5 | Raphaël Durand | } |
61 | 5 | Raphaël Durand | </pre> |
62 | 6 | Raphaël Durand | Les champs à remplir sont 'server_name' avec le domaine du virtual host et 'proxy_pass' avec l'IP privée du serveur. |
63 | 5 | Raphaël Durand | Le deuxième bloc servira uniquement si vous voulez faire du HTTPS, il vous restera alors à renseigner les emplacements des certificats. |
64 | 5 | Raphaël Durand | |
65 | 5 | Raphaël Durand | Cette méthode présente un inconvénient c'est que l'IP des visiteurs n'est pas directement visible,ce qui peut être gênant pour les blogs et les système de commentaires. |
66 | 5 | Raphaël Durand | |
67 | 1 | Laurent GUERBY | h2. Documentation |
68 | 1 | Laurent GUERBY | |
69 | 1 | Laurent GUERBY | TODO |
70 | 1 | Laurent GUERBY | nginx |
71 | 1 | Laurent GUERBY | apache |
72 | 4 | Laurent GUERBY | varnish |
73 | 1 | Laurent GUERBY | iptables |
74 | 1 | Laurent GUERBY | shorewall |
75 | 1 | Laurent GUERBY | netcat |
76 | 2 | Laurent GUERBY | |
77 | 2 | Laurent GUERBY | h2. Bénévoles |
78 | 2 | Laurent GUERBY | |
79 | 2 | Laurent GUERBY | TODO toulibre ou capitole du libre |