lundi 17 mai 2010

Installation de Xen + domU (lenny)

Pour installer Xen (l'hyperviseur), sous Debian Lenny il suffit de faire :

# apt-get install linux-image-2.6.26-2-xen-686 xen-tools

Laisser le système résoudre les dépendances pour vous, à la fin de la procédure, redémarrer la machine sur le nouveau noyau Xen (par défaut)

Vous êtes maintenant prêt à créer un nouveau domU (machine virtuelle), le dom0 étant la machine hôte.

Pour créer un domU, il faudra utiliser par exemple ce script :

-- début du script --

#!/bin/sh

# Vars
export http_proxy="http://192.168.1.1:3128" #si vous passez par un proxy
export ftp_proxy="http://192.168.1.1:3128" #si vous passez par un proxy
distrib=lenny
hostname=my-domU
ip=192.168.1.10
mask=255.255.255.0
gw=192.168.1.254
disk_size=5Gb
kernel_version=`uname -r`
memory=512Mb
swap=$memory
mirror=http://ftp.fr.debian.org/debian/

# commande xen-tools
xen-create-image --verbose --hostname=$hostname --size=$disk_size --swap=${swap} --ide \
--ip=$ip --netmask=$mask --gateway=$gw --force --role=udev \
--dir=/home/xen --memory=${memory} --arch=i386 --kernel=/boot/vmlinuz-${kernel_version} \
--initrd=/boot/initrd.img-${kernel_version} --install-method=debootstrap --dist=${distrib} \
--mirror=$mirror --passwd

-- fin du script --

RQ : l'interrupteur "role" est très important et vous permettra de vous connecter directement en SSH sur votre nouveau domU fraichement créé.

RQ2 : Pour pouvoir directement vous connecter en console sur votre domU, il faut (sous lenny) au préalable installer le paquet "udev"
# mount -o loop /home/xen/domains/my-domU/disk.img /mnt/loop
# chroot /mnt/loop
# apt-get install udev
# exit

Pour gérer votre domU :

Démarrage,
# xm create my-domU.cfg

Se connecter en console,
# xm console my-domU

Arrêter son domU,
# xm shutdown my-domU

-- Squeeze --

# xm info
WARNING! Can't find hypervisor information in sysfs!
Error: Unable to connect to xend: No such file or directory. Is xend running

[solution]
# mv /etc/grub.d/10_linux /etc/grub.d/50_linux
# update-grub2

Méthode de création rapide d'un domU :

# export http_proxy="http://myproxy.com:myport"
# vi /etc/xen-tools/xen-tools.conf (il faut adapter les réglages du domU)
# xen-create-image --hostname=mynewdom --ip=mynewIP --passwd

-- Voir aussi --

mardi 11 mai 2010

Configuration OpenVPN pfSense (v1.2.3) site à site

Schéma de configuration du réseau utilisé :


Image tirée de ce livre

-- Configuration pfSense (v1.2.3) Site A (Serveur) --

Protocol : UDP
Local port : 1194 (par exemple)
Address pool : 172.31.55.0/30
Remote network : 10.0.10.0/24
Cryptography : BF-CBC (128-bit)
Authentication method : Shared key
Shared key : "le_contenu_du_fichier_secret.key"
Description : OpenVPN_serveur

Le reste des options est par défaut et en majeure partie à "blank"

Puis ajouter une règle Firewall sur le WAN,

Proto : UDP
Source : 4.3.2.1
Port : *
Destination : 1.2.3.4
Port : 1194
Gateway : *
Schedule : ---
Description : OpenVPN

-- Configuration pfSense (v1.2.3) Site B (Client) --

Protocol : UDP
Server address : 1.2.3.4
Server port : 1194 (par exemple)
Interface IP : 172.31.55.0/30
Remote network : 192.168.1.0/24
Cryptography : BF-CBC (128-bit)
Authentication method : Shared key
Shared key :
"le_contenu_du_fichier_secret.key"
Description : OpenVPN_client

Le reste des options est par défaut et en majeure partie à "blank"

-- Génération de la clef partagée --

Sur une distribution de votre choix (debian par exemple), installer le paquet "openvpn" (apt-get install openvpn), puis :
# openvpn --genkey --secret secret.key

Copier ensuite le contenu du fichier "secret.key" dans le champ "Shared key" (la clef générée sur ma distro est une clef 2048 bits)

A ce stade tout est opérationnel, les machines du LAN 10.0.10.1 peuvent désormais atteindre les machines du LAN 192.168.1.1, tester avec une commande ping par exemple.

RQ : Il est aussi possible d'utiliser une PKI pour crypter le tunnel, et aller un peu plus loin.