• Situation actuelle: Machine virtuelle openvz hébergé par Proxmox. Serveur proftpd mis en place et je voulais « surveiller » les identifications & co avec Fail2ban. Aucun problème pour la surveillance des logs de ssh ou d’Apache. Toutes fois, littéralement impossible de surveiller les logs de proftpd.
  • J’ai trouvé un message d’erreur dans la liste des règles iptables:
    iptables -L...
    fail2ban-proftpd tcp -- anywhere anywhere FATAL: Could not load /lib/modules/2.6.32-4-pve/modules.dep: No such file or directory
    ...

    Bizarre. Liste des modules:
    ls /lib/modules... nada

    Okkk :D Aucun module.
  • Après une rapide recherche, pour la surveillance des logs de proftpd, les modules suivants sont nécessaires:
    iptable_filter
    ipt_length
    ipt_limit
    iptable_mangle
    ipt_REJECT
  • Et pour charger ces modules, bas au final c’est pas bien compliqué, il suffit de le faire à partir de l’hôte:
    vzctl stop ID_VM (arrêt de la machine virtuelle)
    vzctl set ID_VM --iptables iptable_filter --iptables ipt_length --iptables ipt_limit --iptables iptable_mangle --iptables ipt_REJECT --save
    vzctl start ID_VM

=)

Sources:

OpenVZ-Users-Guide.pdf (page 70)

, , ,

I] Proxmox VE 1.9

Ça y est, dernière maj se basant sur Lenny pour Proxmox VE: la 1.9.
Pour new iso et update: wiki proxmox
Cette update supporte OpenVZ et KVM =).

II] Xorg pour une VM KVM

Les machines virtuelles KVM dispose d’une carte vidéo qui par défaut est normalement une Cirrus Logic GD5446:
$ lspci |grep VGA
00:02.0 VGA compatible controller: Cirrus Logic GD 5446

Après avoir installé xorg en bonne et du forme, voici un exemple de xorg.conf qui fonctionne plus que convenablement avec cette carte:
cat /etc/X11/xorg.confSection "InputDevice"
    Identifier "Generic Keyboard"
    Driver "kbd"
    Option "XkbRules" "xorg"
    Option "XkbModel" "pc105"
    Option "XkbLayout" "fr"
    Option "XkbVariant" "latin9"
    Option "XkbOptions" "lv3:ralt_switch"
EndSection

Section "InputDevice"
    Identifier "Configured Mouse"
    Driver "mouse"
EndSection

Section "Device"
    Identifier "Configured Video Device"
EndSection

Section "Monitor"
    Identifier "Configured Monitor"
    HorizSync 30 - 90
    VertRefresh 50 - 160
EndSection

Section "Screen"
    Identifier "Default Screen"
    Monitor "Configured Monitor"
    DefaultDepth 24
    Subsection "Display"
    Depth 24
    Modes "1024x768" "800x600"
    EndSubSection
EndSection

Bon c’est pas ce que je trouve le plus utile pour une vm distante, mais ça peut toujours dépanner =)

Sources:

L’excellente doc sur la virtualisation de inetdoc.net

Dans le but d’héberger prochainement un serveur mail Zimbra, j’ai opté pour un serveur dédié chez ovh (super plan mini reloaded) avec Proxmox VE en guise d’hyperviseur de vm. Je vais donc tenter de résumer chaque étape, partant de l’achat du serveur jusqu’à la création d’une vm.

1) Mise en place du serveur dédié avec Proxmox:

Après avoir commandé puis payé le serveur, il s’est écoulé a peu près 4h avant que je reçoive le mail m’indiquant que tout était en place, log, lien, toussa toussa. Pour un début, plutôt content.

Viens ensuite de la première connection au serveur. Changement de mot de passe root bien sur en premier lieu. Puis une petite installation de quelques paquets supplémentaires:
root@mysrv ~# aptitude install zsh screen axel vim-full apt-show-versions most htop

1.1 Cluster?

Dans l’optique d’une future location supplémentaire d’un autre serveur dédié, je vais faire de ce premier serveur un membre du cluster en tant que maitre.

État du cluster:
root@mysrv ~# pveca -l
Créer un nouveau cluster avec la machine locale en maitre:
root@mysrv ~# pveca -c
root@mysrv ~# pveca -l

Si j’avais voulu ajouter la machine a un cluster existant:
root@mysrv ~# pveca -a -h ADRESSE_IP_MAITRE
But du cluster? Migrer des vm locales à froid. Pour migrer les vm à chaud, il faut les stocker sur un volume distant (disque ISCSI), je ne sais pas encore si ça peut fonctionner avec un volume NFS.

1.2 Image iso:

Il va me falloir quelques images iso pour installer mes futures vm, donc je lance en vrac quelques téléchargements (debian, ubuntu, …) et là ça me plait encore un peu plus :p Entre 10000 et 11000KB/S, pas mal pas mal \o/ (pour infos … lol). Il faut stocker les images iso dans /var/lib/vz/template/iso pour qu’elles soient visibles depuis la web gui.

2) Création de machine virtuelle:

2.0 Pré-requis:

Le serveur dédié ne possède qu’une ip publique, cependant, avec OVH on a le droit à 3 IP Failover qui pourront nous servir pour accéder directement aux vms depuis l’extérieur. Commencer par aller sur le manager d’ovh: https://www.ovh.com/managerv3/.

Création d’une IP FailOver:

Sélectionner le bon serveur dédié dans le menu déroulant en haut. Puis aller sur Services > IP FailOver > Ajouter une Fail-Over. Il faudra ensuite choisir un réseau parmis ceux proposés (celui qui vous plaît ^^) puis l’ip sur ce réseau.

Attribuer l’ip FailOver à une adresse MAC virtuelle:

Aller sur Services > Mac >Virtuelle pour VPS > Attribuer une Mac Virtuelle à une adresse Ip. Choisir une adresse ip parmi les IP FailOver créées. Nommer la machine qui utilisera cette adresse Mac. Après validation, on obtient un tableau résumant les correspondances adresses MAC / adresses Ip, bien noter l’adresse mac à utiliser.

OpenVZ ou KVM?

Proxmox gère les deux, c’est toute fois mieux de savoir lequel utilisé avant la création.

D’après les quelques recherches effectuées (pas forcément fraiches), OpenVZ semble avoir de meilleures performances mais impossibilités d’exécuter autre chose que du GNU/Linux (pas forcément dérangeant). KVM a une meilleure isolation entre les VM au niveau réseau et les performances semble s’améliorer grâce au support de VIRTIO (disque et réseau). Les infos n’étant pas très fraîche, la balance a pu pencher d’un côté ou de l’autre. Je n’ai pas réussi à trouver de comparatif, donc en attendant que je fasse mon propre comparatif, je vais utiliser celui que je connais: KVM.

2.1 Création de machine virtuelle:

Il faut se rendre sur la page https://IP_SERVEUR ou https://xxxxxx.ovh.net

Options:

Si ça n’a pas déjà été fait à partir de ssh, changer le mot de passe de l’admin dans Configuration > Système > Administrateur.

Pour modifier la langue de l’interface, aller dans Configuration > Système > Options.

Création de la vm:

Aller sur Gestionnaire de VM > Machines virtuelles > Créer.

Le wiki de proxmox recommande les paramètres suivants:

Configuration:

  • Type: sélectionner « Fully virtualized (KVM) »
  • Emplacement de l’ISO: laisser « local (dir) » à moins de posséder un stockage nfs pour les images iso.
  • Média d’installation: sélectionner une image ISO téléchargée précédemment
  • Disk Storage: laisser « local (dir) » à moins de stocker les vm sur un nas ou autre
  • Espace Disque: Espace disque en GB alloué à la vm
  • Nom: donner un nom unique à la vm
  • Mémoire: spécifier la mémoire (ram) à attribuer, en MB, à la vm
  • VMID: laisser le numéro généré ou en mettre un supérieur ou égal à 10
  • Nœud du cluster: si un cluster avec plusieurs nœuds est déjà en place, sélectionner celui sur lequel sera stocké la vm.
  • Démarrer au boot: cocher pour que la vm démarre en même temps que le serveur Proxmox VE.
  • Format de l’image: raw semble avoir de meilleures performances tandis que qcow2 offre des outils intéressants (« copy on write », snapshot, …)
  • Type de disque: VIRTIO. Pour une vm windows il faudra utiliser des drivers supplémentaires lors de son installation. Sinon utiliser IDE pour window$.
  • Type d’invité (guest): type d’OS installé (windows, kernel Linux, …)
  • CPU Sockets: nombre de cpu attribué

Réseau:

  • Bridge: vmbr0
  • Carte réseau: VIRTIO (pour un système windows, il faudra utiliser ces drivers, fournis par Redhat, pour que la carte fonctionne).
  • Adresse MAC: l’adresse virtuelle créée précédemment au 2.0.

Puis cliquer sur « Create », au bout de quelques secondes, il sera indiqué « VM created ». Il suffit ensuite d’aller sur « Lister » pour obtenir l’ensemble des vm disponibles.

2.2 Lancer/configurer sa VM:

Une fois sur la liste des vm, cliquer sur la vm à lancer. On est à présent sur sa page de configuration (mémoire, cpu, ajout de matériel, …). Cliquer sur « Démarrage » pour lancer la vm puis sur « Open VNC console » une fois que ça sera apparu. Une nouvelle fenêtre s’ouvrira offrant un accès graphique à notre nouvelle vm.

La machine devrait donc démarrer sur l’image iso de votre distrib préférée. Son installation reste standart hormis pour un point: le réseau. En effet, il va falloir lui appliquer l’ip FailOver que l’on a récupéré précédemment. On se retrouve donc avec une configuration qui ressemble à ça:

  • Adresse ip: Adresse IP FailOver
  • Netmask: 255.255.255.255
  • Broadcast: Adresse IP FailOver
  • Passerelle/Gateway: IP Serveur Dédié.254 (remplacer le dernier nombre de l’adresse par 254)
  • DNS: OpenDNS ou le DNS du serveur dédié

La fin de l’installation reste classique. Une fois le système installé, il est possible de se reporter à cette doc pour le réseau.

2.3 Accès VNC à la VM:

Pour ouvrir une fenêtre vnc sur une vm à partir de Mozilla Firefox/Iceweasel Linux, j’ai du ajouter un lien vers le plugin jre:
root@mypc ~# mkdir -p ~/.mozilla/plugins
root@mypc ~# locate libnpjp2.so
root@mypc ~# ln -s /usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/

Pour chromium-browser:
root@mypc ~# cd /usr/lib/chromium/plugins
root@mypc ~# ln -s /usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/i386/libnpjp2.so

voila =)

Je vais m’arrêter là pour ce premier article sur Proxmox. Je vais tenter de mettre au propre des comparatifs OpenVZ/KVM, qcow2/raw, l’installation de zimbra sur ce proxmox, … Au plaisir =)

Liens:

http://pve.proxmox.com/wiki/Installation

, ,