3210
Commentaire: ajout d'une section sur un frontal web
|
3518
précisions
|
Texte supprimé. | Texte ajouté. |
Ligne 2: | Ligne 2: |
||<tablestyle="float: right">[[TableOfContents()]]|| |
|
Ligne 68: | Ligne 70: |
==== Frontal web avec Apache ≥ 2.0 ==== | ==== Frontal web avec Apache ==== |
Ligne 70: | Ligne 72: |
Exemple renvoyant les requêtes vers un serveur virtuel : | /!\ '''Attention''' : il faut utiliser au minimum la version 2.0 de Apache. Il faut au préalable activer le module `proxy` de Apache : {{{ sudo a2enmod proxy sudo apache2ctl graceful }}} Exemple pour renvoyer les requêtes vers un serveur virtuel, à mettre par exemple dans `/etc/apache2/sites-available/default` : |
Ligne 83: | Ligne 93: |
(!) Pour sécuriser au mieux les services web, on pourra utiliser les sites virtuels (''VirtualHost'') de Apache sur le frontal pour renvoyer vers plusieurs serveurs virtuels indépendants. | (!) Pour sécuriser au mieux les services web, on pourra utiliser des sites virtuels (''!VirtualHost'') sur le frontal pour renvoyer vers plusieurs serveurs virtuels indépendants. |
Ce document présente quelques possibilités d'organisation réseau pour des serveurs virtuels OpenVZ sur un serveur [:Debian:].
La méthode « ProgFou »
Principes
- les serveurs virtuels sont une segmentation sécuritaire des services offerts
- cette segmentation ne devrait pas être visible ou gênante pour les utilisateurs
- l'organisation réseau doit être la plus « naturelle » possible (pas de bidouillage infâme)
- mise en réseau autonome (une sorte de DMZ) des serveurs virtuels
Implémentation
utilisation du bloc d'adresses 192.168.127.0/24, choix arbitraire en référence au réseau 127.0.0.0/8
utilisation d'une interface dummy pour la « connexion » du serveur hôte :
sudo sh -c 'echo dummy >> /etc/modules' sudo modprobe dummy sudo sh -c 'cat >> /etc/network/interfaces' << __EOF__ auto dummy0 iface dummy0 inet static address 192.168.127.254 netmask 255.255.255.0 network 192.168.127.0 broadcast 192.168.127.255 __EOF__ sudo ifup dummy0
- deux méthodes possibles d'interaction avec les serveurs virtuels :
- masquage à l'aide de la traduction d'adresses
- utilisation d'un frontal se positionnant en intermédiaire
Masquage des serveurs virtuels via traduction d'adresse
À mettre dans un script lancé au démarrage du serveur hôte :
IPT="/sbin/iptables" IPTN="$IPT -t nat" IF_PUBLIC="eth0" IP_PUBLIC="207.46.232.182" NET_VZ="192.168.127.0/24" IF_VZ="dummy0" IP_VZ="192.168.127.254" IP_VZ_DNS="192.168.127.9" IP_VZ_MYSQL="192.168.127.10" IP_VZ_SMTP="192.168.127.11" IP_VZ_IMAP="192.168.127.11" IP_VZ_WWW="192.168.127.12" # masquage en sortie : $IPTN -A POSTROUTING -s "$NET_VZ" -o "$IF_PUBLIC" -j SNAT --to-source "$IP_PUBLIC" # masquage en entrée : $IPTN -A PREROUTING -d "$IP_PUBLIC" -p udp -m udp --dport 53 -j DNAT --to-destination "$IP_VZ_DNS" $IPTN -A PREROUTING -d "$IP_PUBLIC" -p tcp -m tcp --dport 53 -j DNAT --to-destination "$IP_VZ_DNS" $IPTN -A PREROUTING -d "$IP_PUBLIC" -p tcp -m tcp --dport 3306 -j DNAT --to-destination "$IP_VZ_MYSQL" $IPTN -A PREROUTING -d "$IP_PUBLIC" -p tcp -m multiport --dports 25,465 -j DNAT --to-destination "$IP_VZ_SMTP" $IPTN -A PREROUTING -d "$IP_PUBLIC" -p tcp -m multiport --dports 143,993 -j DNAT --to-destination "$IP_VZ_IMAP" $IPTN -A PREROUTING -d "$IP_PUBLIC" -p tcp -m multiport --dports 80,443 -j DNAT --to-destination "$IP_VZ_WWW"
Installation d'un frontal
...(à compléter)...
Frontal web avec Apache
Attention : il faut utiliser au minimum la version 2.0 de Apache.
Il faut au préalable activer le module proxy de Apache :
sudo a2enmod proxy sudo apache2ctl graceful
Exemple pour renvoyer les requêtes vers un serveur virtuel, à mettre par exemple dans /etc/apache2/sites-available/default :
<IfModule mod_proxy.c> ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://192.168.127.12/moodle ProxyPassReverse / http://192.168.127.12/moodle </IfModule>
Pour sécuriser au mieux les services web, on pourra utiliser des sites virtuels (VirtualHost) sur le frontal pour renvoyer vers plusieurs serveurs virtuels indépendants.
La méthode « Tini »
...(Tini, tu mets quelques mots sur le bridge ?)...