Création de la première machine virtuelle
Architecture
Je propose de mettre en oeuvre l'architecture suivante :
On retrouve ce que j'ai cité précédemment. J'ai donc plusieurs sous-réseaux définis et j'ai une passerelle par DMZ. Ma machine physique ne possèdera pas d'adresse IP du côté Internet.
Étapes de création de la machine virtuelle
Les principales étapes sont les suivantes :
- création d'un volume logique
- création du système de fichiers
- copie de l'arborescence système vers le nouveau système de fichiers
- paramétrage des fichiers de configuration propre à la machine virtuelle
- configuration du fichier de la machine virtuelle
- démarrage de la machine virtuelle
- connexion au domaine pour finalisation du paramétrage
- Création du système de fichiers de la machine virtuelle
Nous allons créer la machine virtuelle «pare-feu» pour commencer. C'est la plus complexe car elle possède pas mal d'interfaces.
# lvcreate -L 500M -n vmdiskfw vg # mkfs -t ext3 /dev/vg/vmdiskfw # mount /dev/vg/vmdiskfw /mnt # mount -o loop /iso/replicable.iso /media/iso # cp -ax /media/iso/* /mnt # sync # cd /mnt/etc # echo "domfw" > hostname |
Ensuite, on édite le fichier "hosts" pour assigner le nom "domfw" à l'adresse 127.0.0.1.
Puis on édite le fichier "/etc/network/interfaces" pour y mettre les informations suivantes :
Interface | Adresse ip | Masque réseau | |
br_outside | eth0 | DHCP | |
br_inside | eth1 | Static 192.168.100.254 | 255.255.255.0 |
br_pub | eth2 | Static 172.16.50.254 | 255.255.255.0 |
br_priv | eth3 | Static 172.16.100.254 | 255.255.255.0 |
br_exploit | eth4 | Static 172.16.150.254 | 255.255.255.0 |
La route par défaut est donnée lors de l'attribution DHCP.
Dans le fichier interfaces, on doit ajouter le paramétrage pour l'ensemble des interfaces :
auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 192.168.100.254 netmask 255.255.255.0 auto eth2 iface eth2 inet static address 172.16.50.254 auto eth3 iface eth3 inet static address 172.16.100.254 netmask 255.255.255.0 auto eth4 iface eth4 inet static address 172.16.150.254 netmask 255.255.255.0 |
A noter que pour être sûr que les interfaces sont bien connectées sur les bons ponts, privé, public, etc, je me réfère au mac-address que j'attribue dans le fichier de configuration ci-après avec un “ifconfig”.
# umount /mnt |
Configuration du domaine
name = "dom_fw" kernel = "/boot/vmlinuz-2.6.32-5-xen-amd64" ramdisk = "/boot/initrd.img-2.6.32-5-xen-amd64" root = "/dev/xvda1 ro" disk = ['phy:/dev/vg/vmdiskfw,xvda1,w'] memory = 96 vif=[ 'mac=00:16:3e:70:01:02, bridge=br_outside' , 'mac=00:16:3e:70:01:03, bridge=br_inside' , 'mac=00:16:3e:70:01:04, bridge=br_pub' , 'mac=00:16:3e:70:01:05, bridge=br_priv', ] |
L'un des changements que j'ai pu voir, c'est que l'on n'a pas "hda" mais "xvda"... donc attention à ne pas se tromper.
On démarre le domaine puis on s'y connecte :
# xm create dom_fw # xm console dom_fw Login : root Mot de passe : ########### |
Conclusion
Voilà notre première machine “devrait être” opérationnelle. Pour rendre aussi disponible, au cas où, mon Dom0, j'ai ajouté ceci dans mon rc.local :
ifconfig br_inside 192.168.100.1 netmask 255.255.255.0 |
Ainsi mon Dom0 est accessible via l'adresse 192.168.100.1.
Vous devriez pouvoir vous connecter en SSH sur l'un ou l'autre. Si vous vous connectez sur Dom0, vous pouvez ensuite passer sur dom_fw en tapant :
# xm console dom_fw |