Modifications entre les versions 3 et 4
Version 3 à la date du 2007-05-31 00:44:57
Taille: 3210
Commentaire: ajout d'une section sur un frontal web
Version 4 à la date du 2007-05-31 00:56:19
Taille: 3518
Commentaire: 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:].

TableOfContents()

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 ?)...


CatégorieVirtualisation

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