Modifications entre les versions 2 et 3
Version 2 à la date du 2007-05-31 00:34:33
Taille: 2663
Commentaire: autres exemples NAT
Version 3 à la date du 2007-05-31 00:44:57
Taille: 3210
Commentaire: ajout d'une section sur un frontal web
Texte supprimé. Texte ajouté.
Ligne 68: Ligne 68:
==== Frontal web avec Apache ≥ 2.0 ====

Exemple renvoyant les requêtes vers un serveur virtuel :
{{{
  <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 les sites virtuels (''VirtualHost'') de Apache 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 ≥ 2.0

Exemple renvoyant les requêtes vers un serveur virtuel :

  <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 les sites virtuels (VirtualHost) de Apache sur le frontal pour renvoyer vers plusieurs serveurs virtuels indépendants.

La méthode « Tini »

...(Tini, tu mets quelques mots sur le bridge ?)...


CatégorieVirtualisation

OpenVZ/OrganisationRéseau (dernière édition le 2018-01-19 17:16:04 par MoussaNombre)