Table des matières
Description générale
Introduction
Ce document présente l'installation de l'environnement de virtualisation Proxmox VE.
L'environnement de virtualisation Proxmox VE, basé sur la distribution Debian, est livré sur un CD-ROM d'installation qui comprend un système Debian complet, un noyau Linux spécialement modifié et tous les paquets PVE nécessaires.
L'installateur vous pose seulement quelques questions, partitionne le(s) disques locaux, installe tous les paquetages requis et configure le système comprenant une configuration réseau de base. Vous pouvez obtenir un système entièrement fonctionnel en quelques minutes.
Alternativement, PVE peut être installé sur un système Debian existant. Cette option n'est seulement recommandée qu'aux utilisateurs avancés, car des connaissances détaillées sont nécessaires.
VirtualBox
Habituellement, l'installation de PVE s'effectue sur une machine qui lui est complètement dédiée. Vu que nous voulons seulement nous familiariser avec le comportement de cet environnement, nous allons commencer par l'installer sur une machine virtuelle sous VirtualBox. Une fois maîtrisées, nous allons répéter les mêmes procédures sur une machine physique dédiée à PVE.
Vous pourrez vérifier les modifications à l'environnement PVE sur la machine virtuelle avant de les implémenter sur la machine physique.
Mise en garde
L'installation de machines virtuelles dans PVE roulant sous VirtualBox est excessivement lente, car il existe deux niveaux de virtualisation: un pour VirtualBox et un autre pour PVE. Une installation NethServer sur un serveur virtuel PVE roulant sous VirtualBox prend plus d'une heure tandis que sur un serveur PVE physique, elle ne prend qu'environ vingt minutes.
Nous recommandons cet environnement uniquement pour la vérification des changements de configuration de PVE.
Proxmox Virtual Environment
Virtualisation LIBRE (licence GNU Affero General Public License, version 3) basée sur l'hyperviseur Linux KVM offrant aussi une solution de Conteneurs avec LXC.
PVE fourni par Proxmox Server Solutions GmbH est une solution de virtualisation de type “bare metal”.
L'installateur (basé sur Debian) configure:
- le système d'exploitation (Debian Stretch 64 bits),
- le partitionnement de disques durs avec LVM2,
- le support de LXC (conteneurs) et le module KVM (virtualisation complète),
- les outils de sauvegarde et de restauration,
- l'interface Web d'administration et de supervision, etc…
Les fonctions de grappe permettent la migration à chaud des machines virtuelles, d'un serveur physique à un autre serveur. (À condition d'utiliser un stockage partagé SAN ou Ceph sinon, la migration entraîne une courte interruption lors du redémarrage sur un autre nœud de la grappe).
L'installation du système depuis le CD formate le disque dur et entraîne la suppression complète des données qui pourraient y être présentes. Cependant, étant donné que PVE repose sur une distribution Debian, il est tout à fait possible de l'installer à partir de paquetages sur une machine existante, sans pour autant perdre ses données.
Caractéristiques
PVE propose deux types de virtualisation.
- Virtualisation matérielle (ou complète) - KVM: permettant la virtualisation de tout système d'exploitation sur des processeurs d'architectures x86_64 disposant des technologies Intel VT ou AMD-V.
- Virtualisation par conteneurs - LXC: permettant la création d'instances isolées de système d'exploitation (Linux uniquement) appelées Serveurs Privés Virtuels (VPS), Environnements Virtuels (VE) ou Conteneurs. Cette solution est plus performante (consomme moins de ressources) qu'une virtualisation matérielle du fait du peu de temps système requis.
Système requis
Pour des services en mode production, il est fortement recommandé d'utiliser des serveurs modernes.
Comme toute technologie de virtualisation, un problème touchant une machine physique affectera toutes les machines virtuelles installées sur celle-ci. Ce risque est cependant atténué par l'utilisation de la haute disponibilité (HA) offerte depuis la version 2.0. En effet, PVE supporte les grappes et signifie que des installations multiples de PVE peuvent être centralisées et contrôlées par l'intermédiaire de la fonction Cluster, incluse dans l'interface d'administration du logiciel.
PVE peut utiliser le stockage local (DAS), SAN, NAS et également le stockage distribué (Ceph RBD), voir le chapitre 8, Proxmox VE Storage du guide https://pve.proxmox.com/pve-docs/pve-admin-guide.pdf.
Depuis la version 1.5, il est désormais possible d'utiliser des disques iSCSI pour stocker les machines virtuelles permettant ainsi d'assouplir le fonctionnement en grappe. D'autres types de stockage sont utilisables tel NFS.
Système minimum requis
- CPU 64 bits (Intel EM64T ou AMD64).
- Carte-mère et BIOS compatible Intel VT/AMD-V (pour le support de la virtualisation par KVM).
- 1 GO de RAM.
- Disque dur.
- Une carte réseau.
Système recommandé
- CPU 64 bits (Intel EM64T ou AMD64), multi-cœur recommandé.
- Carte-mère et BIOS compatible Intel VT/AMD-V (pour le support de la virtualisation par KVM).
- Mémoire: 2 Go minimum pour les services OS et PVE et le plus de mémoire possible pour les invités. Pour Ceph ou ZFS, de la mémoire supplémentaire est requise, soit environ 1 Go de mémoire pour chaque To utilisé.
- RAID matériel avec cache d'écriture protégé par batterie (“BBU”) ou protection par flash ou non-RAID pour ZFS. Ni ZFS ni Ceph ne sont compatibles avec un contrôleur RAID matériel. Partagé et distribué, le stockage est également possible.
- Disques durs rapides; de meilleurs résultats sont obtenus avec des disques à 15 000 RPM en RAID 10.
- Au moins 2 cartes réseau en fonction de la technologie de stockage utilisée, vous pourriez en avoir besoin de plus.
- Système d'alimentation sans coupure.
Documentation
PDF & HTML
Anglais seulement: https://pve.proxmox.com/pve-docs/.
Vidéo
Français: https://www.proxmox.com/en/training/video-tutorials/category/french.
Anglais: https://www.proxmox.com/en/training/video-tutorials/category/english.
Youtube: https://www.youtube.com/watch?v=Sjy0jll0Rx4.
Aide en ligne
PVE lui-même est entièrement LIBRE donc, il encourage toujours ses utilisateurs à discuter et à partager leurs connaissances en utilisant le Forum communautaire Proxmox VE à l'adresse https://forum.proxmox.com/. Le forum est entièrement “pondéré” par l'équipe de support Proxmox et possède une vaste base d'utilisateurs tout autour du globe. Inutile de dire qu'un tel forum est un bon endroit pour obtenir des informations.
La principale source de la documentation se trouve à l'adresse https://www.proxmox.com/en/downloads. Cette source combine documentation et téléchargements.
Cours NethServer-101
Le Cours NethServer-101, se voulant une base solide pour la création d'un site de Commerce en ligne, comprend plusieurs cahiers:
- Cahier-01: → Les bases de Linux.
- Cahier-02: → Installation et configuration des logiciels prérequis sur le poste de travail.
- Cahier-03: → Création d'un Serveur NethServer virtuel.
- Cahier-04: → Serveur NethServer LOCAL & Let's Encrypt.
- Cahier-06: → Installation de WordPress.
- Cahier-07: → Installation de l'extension de sécurité Wordfence.
- Cahier-08: → WooCommerce, comptes chez Stripe et PayPal pour les paiements en ligne.
- Cahier-09: → Sauvegarde/restauration ou migration d'un site avec l'extension Duplicator.
- Cahier-10: → Serveur mandataire inversé.
- Cahier-11: → Sauvegarde/restauration avec BackupPC.
Cours NethServer-201
Le Cours NethServer-201 décrit l'installation et la configuration d'applications sur un serveur NethServer.
- Cahier-201-01: → Dolibarr.
- Cahier-201-02: → Odoo-12.
- Cahier-201-03: → MediaWiki.
- Cahier-201-04: → DokuWiki.
- Cahier-201-05: → Moodle.
- Cahier-201-06: → Proxmox.
- Cahier-201-07: → Flectra.
Logiciels
Tous les logiciels nécessaires sont du domaine public ou LIBRE sous licence GPL; ils ne coûtent pas un sou. Le seul achat nécessaire est l'obtention d'un nom de domaine au prix initial de $15 CAD et son renouvellement annuel d'environ $30 CAD.
But final
Après avoir suivi le Cours NethServer-101, vous posséderez un site de Commerce en ligne fiable et hautement sécuritaire. De plus, vous pourrez utiliser un clone de votre site, sur un Serveur NethServer virtuel roulant sur votre poste de travail, pour tester de nouvelles extensions et applications sans compromettre la sécurité ou l'intégrité de votre site en ligne.
Particularités de ce document
Notes au lecteur
* Les captures d'écrans ne sont que des références.
** Les informations écrites ont préséance sur celles retrouvées dans les captures d'écrans. Veillez vous référer aux différents tableaux lorsque ceux-ci sont présents.
*** Une capture d'écran avec une accentuation en magenta indique qu'il faut remplacer cette distinction par vos propres paramètres ou implique un choix laissé à votre appréciation.
Conventions
Manipulation, truc ou ruse pour se tirer d'embarras.
Une recommandation ou astuce.
Une note.
Une étape, note ou procédure à surveiller.
Paragraphe non complété ou non vérifié.
Danger pour la sécurité du système.
Toutes les commandes à la console ou à travers PuTTY sont précédées d'une invite qui est toujours présente.
[root@dorgee ~]# ping 10.10.10.75 -c1 PING 10.10.10.75 (10.10.10.75) 56(84) bytes of data. 64 bytes from 10.10.10.75: icmp_seq=1 ttl=64 time=1.63 ms --- 10.10.10.75 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.639/1.639/1.639/0.000 ms [root@dorgee ~]#
Commande à exécuter si ce n'est déjà fait.
Commande indiquée à titre d'information seulement.
Téléchargement de l'ISO
Page de téléchargement
On se rend à la page de téléchargement de la version Proxmox VE 6.0: https://www.proxmox.com/en/downloads/item/proxmox-ve-6-0-iso-installer. La page affiche aussi la somme de contrôle du fichier qui nous servira à vérifier l'intégrité de l'ISO téléchargé.
Téléchargement
Nous allons télécharger la version Proxmox VE 6.0 ISO Installer (version 6.0-1.iso) et sauvegarder l'ISO sur notre poste de travail.
Vérification de la somme de contrôle
Calcul de la somme de contrôle
Nous utilisons le calculateur de 7-Zip pour la somme de contrôle SHA-256.
Ci-contre, la somme de contrôle SHA-256 affichée sur la page de téléchargement.
Les sommes de contrôle coïncident, le fichier peut être utilisé en toute sécurité.
On brûle l'ISO sur un CD/DVD qu'on insérera dans le lecteur de notre machine physique dédiée avant son amorçage.
Création d'une machine virtuelle sous VirtualBox
Description
Avec une installation VirtualBox, vous pourrez vérifier les modifications à l'environnement PVE sur la machine virtuelle avant de les implémenter sur la machine physique.
Marche à suivre
- Vérification du BIOS.
- Création et configuration de la machine virtuelle qui roulera PVE.
BIOS
Depuis 2006, les processeurs Intel et AMD supportent ce qui est appelé la “virtualisation matérielle”. La virtualisation matérielle signifie que ces processeurs peuvent aider VirtualBox à intercepter des opérations potentiellement dangereuses que pourrait essayer d'exécuter l'invité et facilite la présentation du matériel à une machine virtuelle.
Ces fonctionnalités diffèrent entre les CPU d'Intel et ceux d'AMD. Intel a appelé sa techno VT-x; AMD a nommé la leur AMD-V. Le support d’Intel et d’AMD est très différent dans le détail, mais pas si différent dans le principe.
Les processeurs modernes incluent des fonctionnalités de virtualisation matérielle qui aident à accélérer la virtualisation. Intel VT-x n'est pas toujours activé par défaut. Si tel est le cas, un message est affiché: “L'accélération matérielle VT-x/AMD-V n'est pas disponible sur votre système” ou “Cet hôte prend en charge Intel VT-x mais Intel, VT-x est désactivé”.
Le matériel Intel VT-x peut être désactivé via le BIOS ou le micrologiciel UEFI. Il est régulièrement désactivé sur les nouveaux ordinateurs.
AMD-V est toujours activé si vous utilisez un processeur AMD qui le prend en charge, il n'y a donc aucun BIOS ou UEFI que vous devez modifier.
Activation
http://www.informatiweb.net/tutoriels/informatique/9-bios/89--activer-la-virtualisation-intel-vt-x-amd-v.html.
http://www.pumbaa.ch/blog/tutoriaux/?d=2016/03/09/16/30/00-activer-vt-xamd-v-pour-installer-un-os-64-bits-dans-une-vm.
https://www.qnap.com/fr-fr/qa/con_show.php?op=showone&cid=258.
http://f4b1.com/comment-activer-la-virtualisation-vt-x-amd-v-dans-le-bios.
Paramètres de la machine virtuelle PVE
Pour l'installation de VirtualBox, voir: Cahier-02: Installations & configurations des logiciels prérequis du “Cours NethServer-101”.
Dans VirtualBox, nous allons créer une machine virtuelle ProxmoxVE_16Go.
- Mémoire: 4096 Mo. Si nous avons seulement 4 Go de mémoire totale pour la station de travail et que nous allouons plus de 1998 Mo, VirtualBox affichera un Avertissement.
- Disque: 16 Go.
Création de la machine virtuelle PVE
• Nom: ProxmoxVE_16Go.
• Type: Linux.
• Version: Debian (64-bit).
• Taille de la mémoire: 4096.
• Créer un disque virtuel maintenant.
• Créer.
• Taille du fichier: 16,00 Go.
• type de fichier de disque dur:
⦿ VDI (Image Disque VirtualBox).
• Stockage sur disque physique:
⦿ Dynamiquement alloué.
• Créer.
• On est retourné à l’écran principal de VirtualBox et on voit notre nouvelle machine virtuelle.
• On sélectionne la machine virtuelle et on clique Configuration.
Configuration
Général → onglet Avancé → Presse-papier partagé: Bidirectionnel → Glisser-Déposer: Bidirectionnel (non obligatoire).
Onglet Description → on entre une description assez détaillée et surtout le mot de passe, car une fois qu’on aura plusieurs MV, il sera facile d’oublier…
- Système → onglet Processeur → on peut choisir le nombre de processeurs à allouer à cette machine virtuelle.
- Cocher toutes les Fonctions avancées.
- Affichage → onglet Écran → Mémoire Vidéo: on ajuste à 32 MB ou jusqu'au max 128 MB.
- Contrôleur graphique: VboxVGA.
On se rend au répertoire où on a téléchargé l’ISO de Proxmox, on sélectionne le fichier ISO → Ouvrir.
- Le fichier ISO de PVE est maintenant attaché au CD/DVD de la machine virtuelle. Lorsque la MV amorcera, elle lancera l’installation de PVE.
- Son → on décoche Activer le son. Un serveur n’a pas besoin de carte de son.
Carte 1 (eth0)
- Réseau → onglet Carte 1.
- Mode d’accès réseau: → Accès par pont.
Cliquer Avancé pour afficher plus de choix.
- Type d'interface: → choisir la carte reliée au connecteur RJ-45.
- Mode Promiscuité:2) → Autoriser les VMs.
Carte 2 (eth1)
- Réseau → onglet Carte 2.
- On coche Activer la carte réseau.
- Mode d’accès réseau: → Accès par pont.
Cliquer Avancé pour afficher plus de choix.
- Type d'interface: → choisir la carte reliée au connecteur RJ-45.
- Mode Promiscuité: → Autoriser les VMs.
Interface utilisateur
☑ Afficher en plein écran/mode intégré.
☑ Afficher en haut de l'écran.
On coche ☑ la case en bas à gauche afin d'afficher les icônes au bas de l'écran VirtualBox.
On déroule tous les menus et on coche toutes les options offertes → OK.
La machine ProxmoxVE_16Go sous VirtualBox est prête à recevoir l'installation de PVE.
Installation & configuration
La machine virtuelle est configurée, elle possède deux cartes réseau et le CD/DVD est attaché au lecteur optique. On peut amorcer cette MV pour lancer l'installation de PVE.
Installation
Si vous recevez l'erreur ci-dessous, voir Virtualisation matérielle KVM.
On entre le pays → on choisit un fuseau horaire (Montréal n'est pas là, mais dans l'écran de gestion, il apparaîtra dans les choix) → Next.
- On entre un mot de passe pour root (au moins 7 caractères) et on le confirme.
- On entre l'adresse courriel qui recevra les messages de PVE.
- Next.
Adresse du gestionnaire PVE
Après le réamorçage, l'écran de connexion s'affiche.
Instantané VirtualBox
Ici, on arrête la machine virtuelle et on prend un Instantané VirtualBox afin d'avoir une sauvegarde de l'installation originale: Proxmox-6.0.1_Sauvegarde_originale_AAAA-MM-JJ_nnhnn. On redémarre la machine virtuelle.
Connexion à la console de la MV
Pour vérifier le bon fonctionnement de la MV, on se logue à la console du serveur PVE.
Nom d'usager: → root.
Mot de passe: → le mot de passe entré lors de l'installation.
Connexion PuTTY
On lance PuTTY et on crée une nouvelle session pour se connecter en SSH au système PVE.
On utilise l'usager root et on entre le mot de passe donné lors de l'installation.
login as: root root@192.168.1.44's password: mot-de-passe-de-root Linux pve 5.0.15-1-pve #1 SMP PVE 5.0.15-1 (Wed, 03 Jul 2019 11:01:11 +0200) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. root@pve:~#
Groupe de volumes
Le programme d'installation crée un Groupe de Volumes (VG) appelé pve et des Volumes Logiques (LV) supplémentaires appelés: data, root et swap.
root@pve:~# vgs VG #PV #LV #SN Attr VSize VFree pve 1 3 0 wz--n- <15.50g <1.88g root@pve:~#
Volume physique
root@pve:~# pvs PV VG Fmt Attr PSize PFree /dev/sda3 pve lvm2 a-- <15.50g <1.88g root@pve:~#
Volumes logiques
root@pve:~# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert data pve twi-a-tz-- <6.00g 0.00 1.57 root pve -wi-ao---- 3.75g swap pve -wi-ao---- <1.88g root@pve:~#
Volume data
Ce volume logique utilise LVM-thin, et est utilisé pour stocker les images des machines virtuelles. LVM-thin est préférable pour cette tâche, car il offre un support efficace pour les Instantanés des MV PVE.
LVM-thin
Certains systèmes de fichiers dont Qemu qcow2 (Quick emulator - Quick Copy On Write) supportent LVM-thin. Avec LVM-thin activé, seuls les blocs que le système invité utilisera réellement seront écrits sur le disque de stockage.
Volume root
Le volume logique root est formaté en ext4, et contient le système d'exploitation.
root@pve:~# cat /etc/fstab # <file system> <mount point> <type> <options> <dump> <pass> /dev/pve/root / ext4 errors=remount-ro 0 1 /dev/pve/swap none swap sw 0 0 proc /proc proc defaults 0 0 root@pve:~#
Vérification de la connexion Internet
root@pve:~# ping -c3 google.com PING google.com (172.217.1.14) 56(84) bytes of data. 64 bytes from yyz10s14-in-f14.1e100.net (172.217.1.14): icmp_seq=1 ttl=57 time=12.9 ms 64 bytes from yyz10s14-in-f14.1e100.net (172.217.1.14): icmp_seq=2 ttl=57 time=12.5 ms 64 bytes from yyz10s14-in-f14.1e100.net (172.217.1.14): icmp_seq=3 ttl=57 time=11.8 ms --- google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 5ms rtt min/avg/max/mdev = 11.821/12.402/12.905/0.464 ms root@pve:~#
Performance de l'hôte
root@pve:~# pveperf CPU BOGOMIPS: 13973.88 REGEX/SECOND: 1487730 HD SIZE: 3.63 GB (/dev/mapper/pve-root) BUFFERED READS: 88.55 MB/sec AVERAGE SEEK TIME: 8.69 ms FSYNCS/SECOND: 240.33 DNS EXT: 40.20 ms DNS INT: 2.03 ms (micronator.org) root@pve:~#
Souscription
root@pve:~# pvesubscription get message: There is no subscription key serverid: 3D7751FEBFC5CB91DA22881F61A887C5 status: NotFound url: https://www.proxmox.com/proxmox-ve/pricing root@pve:~#
Configuration
Pour connaître l'adresse du gestionnaire PVE, voir le paragraphe Connexion à la console de la MV.
Il faut absolument autoriser les témoins et JavaScript dans le navigateur sinon, l'écran de connexion ne sera pas présenté.
Adresse du gestionnaire PVE
Par la console du serveur, on peut toujours retrouver l'adresse IP du gestionnaire PVE en affichant le fichier
/etc/network/interfaces
.
root@pve:~# cat /etc/network/interfaces auto lo iface lo inet loopback iface enp0s3 inet manual auto vmbr0 iface vmbr0 inet static address 192.168.1.44 netmask 255.255.255.0 gateway 192.168.1.1 bridge_ports enp0s3 bridge_stp off bridge_fd 0 root@pve:~#
- On pointe un navigateur vers: https://192.168.1.44:8006/
- Avancé.
Si vous ne pouvez accéder à l'adresse du gestionnaire, voir le paragraphe Adresse IP.
- Language: → French (l'écran va se rafraîchir).
- Utilisateur: → root.
- Mot de passe: → celui donné lors de l'installation.
- Login.
On nous suggère de visiter le site www.proxmox.com pour plus d'informations sur les options de contrat de service.
- https://www.proxmox.com/en/proxmox-ve/pricing
- Sur le site de Proxmox, les différents plans de souscription sont affichés.
Fuseau horaire
Maintenant, nous pouvons ajuster le fuseau horaire à America/Montreal.
Mise à jour
Cette mise à jour s'appliquera au système complet.
Certains fichiers n'ont pu être téléchargés.
L'erreur de téléchargement vient du fait que nous n'avons aucun plan de souscription à Proxmox.
La mise à jour est terminée. On peut fermer cette fenêtre.
- Un rechargement du cache s'effectue.
- Il n'y a plus de mises à jour disponibles
Souscription
Référence: https://it.izero.fr/proxmox-quelques-infos-en-vrac/.
Pour supprimer l'écran surgissant No valid subscription.
À la console du serveur.
root@pve:~# sed -i.bak 's/NotFound/Active/g' \ /usr/share/perl5/PVE/API2/Subscription.pm && \ systemctl restart pveproxy.service root@pve:~#
Fichier /usr/share/perl5/PVE/API2/Subscription.pm
original.
... my $info = PVE::INotify::read_file('subscription'); if (!$info) { return { status => "NotFound", message => "There is no subscription key", serverid => $server_id, url => $url, } } ...
Fichier /usr/share/perl5/PVE/API2/Subscription.pm
modifié. La valeur NotFound a été remplacé par Active.
... my $info = PVE::INotify::read_file('subscription'); if (!$info) { return { status => "Active", message => "There is no subscription key", serverid => $server_id, url => $url, } } ...
On vérifie.
root@pve:~# cat /usr/share/perl5/PVE/API2/Subscription.pm | grep -C 1 "Active" return $info if $info->{status} ne 'Active'; -- my $no_subscription_info = { status => "Active", message => "There is no subscription key", -- if (!$param->{force} && $info->{status} eq 'Active') { my $age = time() - $info->{checktime}; root@pve:~#
On redémarre les services.
root@pve:~# service pvestatd restart root@pve:~#
root@pve:~# service pvedaemon restart root@pve:~#
Instantané VirtualBox
À ce stade-ci, on peut prendre un Instantané de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
Configuration du poste de travail
Fichier hosts
Le FQDN de notre Serveur PVE est pve.micronator-dev.org. Vu que nous n'avons pas de serveur DNS sur notre réseau, il nous faut une façon quelconque pour pouvoir spécifier le nom de notre domaine afin que le navigateur puisse identifier son adresse IP sans devoir interroger un serveur DNS. C'est ici que le fichier hosts
du poste de travail entre en jeu.
La communication dans l'Internet se fait toujours par adresses IP et non pas avec les noms de domaines qui sont utilisés par les humains qui ont plus de facilité à retenir un nom qu'un numéro.
Lorsque vous voulez vous rendre chez google.com, le navigateur ne connaît pas l'adresse IP de google.com. Il commence par regarder dans le fichier hosts
du poste de travail si ce fichier contient une référence à google.com.
Si oui, il utilise l'adresse IP contenu dans le fichier hosts
.
Si le fichier hosts
du poste de travail n'a pas de référence pour le nom du domaine recherché, le navigateur va demander à son serveur DNS s'il connaît google.com
. Si son serveur DNS ne connaît pas le domaine en question, il demande à son tour à son serveur DNS supérieur s'il connaît le domaine. Si le DNS supérieur n'a pas de référence pour le domaine, à son tour, il demande à son serveur DNS supérieur et ainsi de suite jusqu'au DNS tout en haut de l'échelle hiérarchique .com qui lui, avec ses confrères .org, .net, etc…, connaissent tous les noms de tous les domaines de l'Internet.
Une fois l'adresse IP trouvée, elle redescend l'échelle hiérarchique jusqu'à votre navigateur qui utilisera alors l'adresse IP reçue pour communiquer avec google.com.
Le point à remarquer est que le navigateur cherche en premier lieu dans le fichier host
du poste de travail. Pour tromper le navigateur, il suffit alors d'y entrer une référence pour notre domaine pve.micronator-dev.org.
Pour un système Windows, le chemin du fichier hosts
est: C:\Windows\System32\drivers\etc\hosts
. Pour un système Linux, le chemin est: /etc/hosts
.
Pour un système Windows, le fichier hosts est en Lecture seule.
En ayant les droits d'administrateur Windows, on enlève le droit de Lecture seule sur le fichier hosts du poste de travail et on l'édite avec Notepad++.
On est alors retourné à l'écran d'édition et on sauvegarde encore une fois, car la première sauvegarde n'a pas eu lieu, elle a été transformée en demande de changement de mode.
On ferme Notepad++ et, pour la sécurité du poste de travail, on remet le fichier
hosts
en Lecture seule.
À l'avenir, lorsqu'on demandera à notre navigateur de se rendre à https://www.pve.micronator-dev.org:8006, il cherchera dans le fichier hosts
une correspondance avec www.pve.micronator-dev.org// et trouvera www.pve.micronator-dev.org, il prendra alors l'adresse 192.168.1.44 qui y est associée et se connectera à la page de l'interface Web de notre serveur PVE.
==== Cartes réseau ====
=== Particularités de la carte RJ-45 ===
L'adresse MAC de cette carte est différente de l'adresse MAC de la Carte-1, Carte-2, eth0 ou eth1.
La carte réseau RJ-45 doit être activée et reliée à un dispositif quelconque pour que le poste de travail puisse l'identifier. Pour nous, cette carte est branchée à un port de l'aguilleur.
Si le connecteur RJ-45 n'est pas branché à un dispositif quelconque et qu'on examine cette carte dans l'utilitaire Centre Réseau et partage de Windows, on verra qu'il indique Câble réseau non connecté même si elle est pourtant reliée, à travers la Carte-1, au réseau LOCAL et à travers la Carte-2, au réseau Externe du serveur invité Proxmox. De plus, si VirtualBox ne trouve pas cette carte, le serveur invité pourrait refuser de démarrer.
Nous activerons la deuxième carte réseau au paragraphe Deuxième carte réseau.
Plus haut, nous avons débuté une arnaque en faisant croire au navigateur Web du poste de travail que c'est son serveur DNS qui lui donnera l'adresse l'IP de notre Serveur Proxmox LOCAL alors qu'en réalité c'est le fichier C:\Windows\System32\drivers\etc\hosts
du poste de travail qui répondra à sa requête.
Le but principal de notre configuration “non standard” de la carte réseau du poste de travail est de continuer l'arnaque précédente en lui faisant croire qu'il possède deux cartes réseau RJ-45.
=== Première adresse IP ===
1) Nous commençons par donner l'adresse 192.168.1.81 à la carte RJ-45 du poste de travail.
Clac (clic droit) sur l'icône réseau dans la zone de notification → Ouvrir le Centre Réseau et partage.
2) Utiliser l'adresse IP suivante:
On entre les informations telles que ci contre.
Utiliser une passerelle par défaut sur un autre segment IP que l'adresse principale n'est pas tout à fait standard.
3) Serveur DNS
Pour le serveur DNS préféré, nous utiliserons l'adresse IP 10.10.10.75 du serveur invité Proxmox sur son réseau LOCAL afin de pouvoir utiliser le nom FQDN du Serveur Proxmox virtuel même si celui-ci ne possède pas de véritable nom de domaine.
En effet, plus tard, lorsque le navigateur Web lancera une requête DNS pour l'adresse IP de l'URL https://www.proxmox.micronator-dev.org:
Windows cherchera d'abord dans son fichier hosts
s'il existe une correspondance pour cette URL. Il trouvera l'adresse IP du Serveur Proxmox entrée précédemment et il la transmettra au navigateur Web.
Si l'URL en question n'existe pas dans le fichier hosts
du poste de travail, la requête sera transmise au serveur DNS préféré - 10.10.10.75 - le Serveur Proxmox virtuel. Si notre serveur virtuel ne connaît pas cette URL, il transmet la requête à son propre serveur DNS qui lui, la transmet à son propre serveur DNS, etc… jusqu'à ce que l'adresse IP soit enfin trouvée et retournée au navigateur Web.
Lorsque le serveur invité sera éteint, la carte RJ-45 ne trouvant pas le serveur DNS préféré, demandera alors au serveur DNS auxiliaire (192.168.1.1) de remplir les requêtes DNS.
→ Cliquer Avancé…
=== Deuxième adresse IP ===
4) Nous donnons une deuxième adresse - 10.10.10.81 à la carte RJ-45 du poste de travail.
=== Deuxième passerelle par défaut ===
Nos deux adresses IP et nos deux passerelles son présentes.
- Fermer toutes les fenêtre.
====== Certificat TLS/SSL Let's Encrypt ======
===== Référence =====
Voir le chapitre Certificat TLS/SSL Let's Encrypt dans le Cahier-04: NethServer LOCAL & Certificat Let's Encrypt du “Cours NehServer-101”.
==== Ajout des nouveaux CNAME chez Cloudflare.com ====
pve
www.pve
- On vérifie.
- On se déconnecte de Cloudflare.
===== Installation du script acme.sh =====
==== Utilitaire curl ====
Installation de curl
pour le téléchargement du fichier du script.
<file>
root@pve:~# apt-get install -y curl
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
libcurl4
The following NEW packages will be installed:
curl libcurl4
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 596 kB of archives.
After this operation, 1,123 kB of additional disk space will be used.
Get:1 http://ftp.ca.debian.org/debian buster/main amd64 libcurl4 amd64 7.64.0-4 [332 kB]
Get:2 http://ftp.ca.debian.org/debian buster/main amd64 curl amd64 7.64.0-4 [264 kB]
Fetched 596 kB in 1s (1,150 kB/s)
Selecting previously unselected package libcurl4:amd64.
(Reading database … 43994 files and directories currently installed.)
Preparing to unpack …/libcurl4_7.64.0-4_amd64.deb …
Unpacking libcurl4:amd64 (7.64.0-4) …
Selecting previously unselected package curl.
Preparing to unpack …/curl_7.64.0-4_amd64.deb …
Unpacking curl (7.64.0-4) …
Setting up libcurl4:amd64 (7.64.0-4) …
Setting up curl (7.64.0-4) …
Processing triggers for man-db (2.8.5-2) …
Processing triggers for libc-bin (2.28-10) …
root@pve:~#
</file>
==== Téléchargement du fichier du script ====
<file>
root@pve:~# curl https://get.acme.sh | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 705 0 705 0 0 2974 0 –:–:– –:–:– –:–:– 2974
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 186k 100 186k 0 0 578k 0 –:–:– –:–:– –:–:– 576k
[Mon 09 Sep 2019 07:02:49 PM EDT] Installing from online archive.
[Mon 09 Sep 2019 07:02:49 PM EDT] Downloading https://github.com/Neilpang/acme.sh/archive/master.tar.gz
[Mon 09 Sep 2019 07:02:49 PM EDT] Extracting master.tar.gz
[Mon 09 Sep 2019 07:02:49 PM EDT] Installing to /root/.acme.sh
[Mon 09 Sep 2019 07:02:49 PM EDT] Installed to /root/.acme.sh/acme.sh
[Mon 09 Sep 2019 07:02:49 PM EDT] Installing alias to '/root/.bashrc'
[Mon 09 Sep 2019 07:02:49 PM EDT] OK, Close and reopen your terminal to start using acme.sh
[Mon 09 Sep 2019 07:02:49 PM EDT] Installing cron job
41 0 * * * “/root/.acme.sh”/acme.sh –cron –home “/root/.acme.sh” > /dev/null
[Mon 09 Sep 2019 07:02:49 PM EDT] Good, bash is found, so change the shebang to use bash as preferred.
[Mon 09 Sep 2019 07:02:50 PM EDT] OK
[Mon 09 Sep 2019 07:02:50 PM EDT] Install success!
root@pve:~#
</file>
On vérifie.
<file>
root@pve:~# ls -als
total 36
4 drwx—— 5 root root 4096 Sep 10 09:15 .
4 drwxr-xr-x 18 root root 4096 Sep 9 12:53 ..
4 drwx—— 7 root root 4096 Sep 7 07:02 .acme.sh
4 -rw-r–r– 1 root root 601 Sep 10 09:15 .bashrc
4 -rw-r–r– 1 root root 25 Sep 9 12:53 .forward
4 drwx—— 3 root root 4096 Sep 10 09:14 .gnupg
4 -rw-r–r– 1 root root 148 Aug 17 2015 .profile
4 -rw——- 1 root root 1024 Sep 9 13:11 .rnd
4 drwxr-xr-x 2 root root 4096 Sep 9 13:11 .ssh
root@pve:~#
</file>
===== Variables d'environnement =====
On doit définir certaines variables d’environnement correspondant à nos informations d’identification et à notre validateur DNS c.-à-d. Cloudflare.
C’est ici que vous devrez effectuer des ajustements nécessaires si vous utilisez un autre serveur de noms que Cloudflare - pour plus de détails, voir ce lien pour la documentation du script
acme.sh
: https://github.com/Neilpang/acme.sh/wiki/dnsapi.
L'exemple ci-dessous est celui d'une installation utilisant le serveur de noms Cloudflare.
On exporte, dans l'environnement présentement en mémoire, notre clé API Globale de Cloudflare.
<file>
[root@tchana ~]# export CF_Key=“VotreCléGlobaleDeCloudflare”
[root@tchana ~]#
</file>
On exporte notre adresse courriel utilisée pour notre enregistrement chez Cloudflare.
<file>
[root@tchana ~]# export CF_Email=“VotreAdresseCourrielDEnregistrementChezCloudflare”
[root@tchana ~]#
</file>
On vérifie les exportations.
<file>
[root@tchana ~]# env | grep -i CF_
CF_Email= VotreAdresseCourrielDEnregistrementChezCloudflare
CF_Key= VotreCléGlobaleDeCloudflare
[root@tchana ~]#
</file>
Si vous réamorcez le Serveur PVE avant la demande d'un certificat, vous perdez ces exportations. Il vous faudra alors les refaire.
===== Demande d'un certificat de test =====
<file>
[root@tchana ~]# /root/.acme.sh/acme.sh \
–issue \
–dns dns_cf \
-d pve.micronator-dev.org \
-d www.pve.micronator-dev.org \
–accountemail “michelandre@micronator.org” \
–keypath /etc/pve/local/pveproxy-ssl.key \
–fullchainpath /etc/pve/local/pveproxy-ssl.pem \
–reloadcmd “systemctl restart pveproxy” \
–log /root/.acme.sh/acme.sh.log \
–test \
–force
[Tue 10 Sep 2019 09:16:49 AM AST] Using stage ACME_DIRECTORY: https://acme-staging-v02.api.letsencrypt.org/directory
[Tue 10 Sep 2019 09:16:50 AM AST] Create account key ok.
[Tue 10 Sep 2019 09:16:50 AM AST] Registering account
[Tue 10 Sep 2019 09:16:51 AM AST] Registered
…
[Tue 10 Sep 2019 09:16:51 AM AST] The domain key is here: /root/.acme.sh/pve.micronator-dev.org/pve.micronator-dev.org.key
[Tue 10 Sep 2019 09:16:51 AM AST] Multi domain='DNS:pve.micronator-dev.org,DNS:www.pve.micronator-dev.org'
…
[Tue 10 Sep 2019 09:17:17 AM AST] Domain pve.micronator-dev.org '_acme-challenge.pve.micronator-dev.org' success.
[Tue 10 Sep 2019 09:17:17 AM AST] Checking www.pve.micronator-dev.org for _acme-challenge.www.pve.micronator-dev.org
[Tue 10 Sep 2019 09:17:17 AM AST] Domain www.pve.micronator-dev.org '_acme-challenge.www.pve.micronator-dev.org' success.
[Tue 10 Sep 2019 09:17:17 AM AST] All success, let's return
…
[Tue 10 Sep 2019 09:17:17 AM AST] Verifying: pve.micronator-dev.org
[Tue 10 Sep 2019 09:17:19 AM AST] Success
[Tue 10 Sep 2019 09:17:20 AM AST] Verifying: www.pve.micronator-dev.org
[Tue 10 Sep 2019 09:17:22 AM AST] Success
…
—–BEGIN CERTIFICATE—–
MIIFYDCCBEigAwIBAgITAPqGqLkQqAECZQhj5EuyG3VRATANBgkqhkiG9w0BAQsF
…
TBVT2PIBfGL9VvjcRbffwwq52ZFtVG9n/KJ3471tNFW9+jrf
—–END CERTIFICATE—–
[Tue 10 Sep 2019 09:17:29 AM AST] Your cert is in /root/.acme.sh/pve.micronator-dev.org/pve.micronator-dev.org.cer
[Tue 10 Sep 2019 09:17:29 AM AST] Your cert key is in /root/.acme.sh/pve.micronator-dev.org/pve.micronator-dev.org.key
[Tue 10 Sep 2019 09:17:29 AM AST] The intermediate CA cert is in /root/.acme.sh/pve.micronator-dev.org/ca.cer
[Tue 10 Sep 2019 09:17:29 AM AST] And the full chain certs is there: /root/.acme.sh/pve.micronator-dev.org/fullchain.cer
[Tue 10 Sep 2019 09:17:29 AM AST] Installing key to:/etc/pve/local/pveproxy-ssl.key
chmod: changing permissions of '/etc/pve/local/pveproxy-ssl.key': Operation not permitted
[Tue 10 Sep 2019 09:17:29 AM AST] Installing full chain to:/etc/pve/local/pveproxy-ssl.pem
[Tue 10 Sep 2019 09:17:29 AM AST] Run reload cmd: systemctl restart pveproxy
[Tue 10 Sep 2019 09:17:32 AM AST] Reload success
root@pve:~#
</file>
===== Demande d'un certificat officiel =====
<file>
[root@tchana ~]# /root/.acme.sh/acme.sh \
–issue \
–dns dns_cf \
-d pve.micronator-dev.org \
-d www.pve.micronator-dev.org \
–accountemail “michelandre@micronator.org” \
–keypath /etc/pve/local/pveproxy-ssl.key \
–fullchainpath /etc/pve/local/pveproxy-ssl.pem \
–reloadcmd “systemctl restart pveproxy” \
–log /root/.acme.sh/acme.sh.log \
–force
…
[Mon 09 Sep 2019 06:32:59 PM EDT] Let's check each dns records now. Sleep 20 seconds first.
[Mon 09 Sep 2019 06:33:20 PM EDT] Checking www.pve.micronator-dev.org for _acme-challenge.www.pve.micronator-dev.org
[Mon 09 Sep 2019 06:33:21 PM EDT] Domain www.pve.micronator-dev.org '_acme-challenge.www.pve.micronator-dev.org' success.
[Mon 09 Sep 2019 06:33:21 PM EDT] All success, let's return
[Mon 09 Sep 2019 06:33:21 PM EDT] pve.micronator-dev.org is already verified, skip dns-01.
[Mon 09 Sep 2019 06:33:21 PM EDT] Verifying: www.pve.micronator-dev.org
[Mon 09 Sep 2019 06:33:23 PM EDT] Success
…
[Mon 09 Sep 2019 06:33:27 PM EDT] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/04709b7539b16d5d777430b314c755ce9601
[Mon 09 Sep 2019 06:33:27 PM EDT] Cert success.
—–BEGIN CERTIFICATE—–
MIIFgTCCBGmgAwIBAgISBHCbdTmxbV13dDCzFMdVzpYBMA0GCSqGSIb3DQEBCwUA
…
cfbX5u8+i4U5T+uEZJZyrCLyD1vU
—–END CERTIFICATE—–
[Mon 09 Sep 2019 06:33:27 PM EDT] Your cert is in /root/.acme.sh/pve.micronator-dev.org/pve.micronator-dev.org.cer
[Mon 09 Sep 2019 06:33:27 PM EDT] Your cert key is in /root/.acme.sh/pve.micronator-dev.org/pve.micronator-dev.org.key
[Mon 09 Sep 2019 06:33:27 PM EDT] The intermediate CA cert is in /root/.acme.sh/pve.micronator-dev.org/ca.cer
[Mon 09 Sep 2019 06:33:27 PM EDT] And the full chain certs is there: /root/.acme.sh/pve.micronator-dev.org/fullchain.cer
[Mon 09 Sep 2019 06:33:27 PM EDT] Installing key to:/etc/pve/local/pveproxy-ssl.key
[Mon 09 Sep 2019 06:33:27 PM EDT] Installing full chain to:/etc/pve/local/pveproxy-ssl.pem
[Mon 09 Sep 2019 06:33:27 PM EDT] Run reload cmd: systemctl restart pveproxy
[Mon 09 Sep 2019 06:33:31 PM EDT] Reload success
root@pve:~#
</file>
===== Vérification =====
On se rend à https://www.pve.micronator-dev.org.
Il n'est pas nécessaire d'ajouter une exception pour le certificat, car il a été émis par une autorité de certification reconnue. Le cadenas est vert.
On clique le cadenas pour afficher les informations de la connexion, puis on clique l'icône >.
- On clique Nom alternatif du sujet du certificat.
- Tous les CNAME sont présents.
- Fermer toutes les fenêtres.
===== Renouvellement =====
À chaque jour, une tâche cron
vérifie le nombre de jours restant pour la validité.
<file>
[root@tchana ~]# crontab -l
41 0 * * * “/root/.acme.sh”/acme.sh –cron –home “/root/.acme.sh” > /dev/null
[root@tchana ~]#
</file>
Le renouvellement se fera automatiquement lorsqu'il ne restera que 30 jours de validité.
===== Journal =====
Nous avons spécifié de créer un journal en utilisant le paramètre
–log /root/.acme.sh/acme.sh.log
.
On examine les dernières lignes du journal.
<file>
root@pve:~# tail /root/.acme.sh/acme.sh.log
[Tue 10 Sep 2019 00:40:00 PM EDT] ACME_REVOKE_CERT='https://acme-v02.api.letsencrypt.org/acme/revoke-cert'
[Tue 10 Sep 2019 00:40:00 PM EDT] ACME_AGREEMENT='https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf'
[Tue 10 Sep 2019 00:40:00 PM EDT] ACME_NEW_NONCE='https://acme-v02.api.letsencrypt.org/acme/new-nonce'
[Tue 10 Sep 2019 00:40:00 PM EDT] ACME_VERSION='2'
[Tue 10 Sep 2019 00:40:00 PM EDT] Le_NextRenewTime='1573166007'
[Tue 10 Sep 2019 00:40:00 PM EDT] _saved_domain='pve.micronator-dev.org'
[Tue 10 Sep 2019 00:40:00 PM EDT] _saved_alt='www.pve.micronator-dev.org'
[Tue 10 Sep 2019 00:40:00 PM EDT] Domains not changed.
[Tue 10 Sep 2019 00:40:00 PM EDT] Skip, Next renewal time is: Fri 08 Nov 2019 10:33:27 PM UTC
[Tue 10 Sep 2019 00:40:00 PM EDT] Add '–force' to force to renew.
root@pve:~#
</file>
===== Instantané VirtualBox =====
À ce stade-ci, on peut prendre un Instantané de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
====== Serveur physique dédié ======
===== Installation =====
On insère le CD/DVD de Proxmox-6 dans le lecteur du serveur physique et on l'amorce.
On entre le pays → on choisit un fuseau horaire (Montréal n'est pas là, mais dans l'écran de gestion, il apparaîtra dans les choix) → Next.
- On entre un mot de passe robuste pour root (au moins 7 caractères) et on le confirme.
- On entre l'adresse courriel qui recevra les messages de PVE.
- Next.
- Les différents paramètres sont affichés, on peut les modifier.
- Next.
- Le système Proxmox VE s'installe.
===== Adresse du gestionnaire PVE =====
Après le réamorçage, l'écran de connexion s'affiche.
===== Connexion PuTTY =====
- On ajoute une nouvelle entrée, port 22 → Save.
- On sélectionne la nouvelle entrée ProxmoxVE → Open.
On se logue à la console.
Nom d'usager: → root.
Mot de passe: → le mot de passe entré lors de l'installation.
<file>
login as: root
root@192.168.1.52's password: mot-de-passe-de-root
Linux proxmox 5.0.15-1-pve #1 SMP PVE 5.0.15-1 (Wed, 03 Jul 2019 10:51:57 +0200) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Sep 10 16:29:30 2019
root@proxmox:~#
</file>
Affichage des cartes réseau
<file>
root@proxmox:~# lspci | grep Ethernet
02:00.0 Ethernet controller: Broadcom Limited NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 21)
04:00.0 Ethernet controller: Broadcom Limited NetXtreme BCM5722 Gigabit Ethernet PCI Express
root@proxmox:~#
</file>
===== Inspection de la machine PVE =====
==== Stockage ====
Le programme d'installation crée un Groupe de Volumes (VG) appelé pve et des Volumes Logiques (LV) supplémentaires appelés: data, root et swap.
Basic Concepts of Proxmox Virtual Environment
=== Groupe de volumes ===
<file>
root@proxmox:~# vgs
VG #PV #LV #SN Attr VSize VFree
pve 1 3 0 wz–n- <74.03g 9.25g
root@proxmox:~#
</file>
=== Volume physique ===
<file>
root@proxmox:~# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 pve lvm2 a– <74.03g 9.25g
root@proxmox:~#
</file>
=== Volumes logiques ===
<file>
root@proxmox:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data pve twi-a-tz– <37.28g 0.00 1.59
root pve -wi-ao—- 18.50g
swap pve -wi-ao—- 7.00g
root@proxmox:~#
</file>
== Volume data ==
Ce volume logique utilise LVM-thin, et est utilisé pour stocker les images des machines virtuelles. LVM-thin est préférable pour cette tâche, car il offre un support efficace pour les Instantanés.
== LVM-thin ==
Certains systèmes de fichiers dont Qemu qcow2 (Quick emulator - Quick Copy On Write)3) supportent LVM-thin. Avec LVM-thin activé, seuls les blocs que le système invité utilisera réellement seront écrits sur le disque de stockage.
Par exemple, vous créez une machine virtuelle avec un disque dur de 32 Go et, après l'installation du système d'exploitation invité, le système de fichiers de la machine virtuelle contient seulement 3 Go de données. Dans ce cas, seulement 3 Go sont écrits sur le disque, même si la MV voit un disque dur de 32 Go. De cette façon, LVM-thin vous permet de créer des disques qui sont plus grands que les blocs de stockage actuellement disponibles. Vous pouvez créer de grands disques pour vos machines virtuelles et quand le besoin se présente, ajouter plus de disques à votre stockage sans redimensionner les systèmes de fichiers des machines virtuelles.
Tous les types de stockage qui possèdent la fonctionnalité “Instantané” supportent également LVM-thin.
=== Volume root ===
Le volume logique root est formaté en ext4 et contient le système d'exploitation.
<file>
root@proxmox:~# cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/pve/root / ext4 errors=remount-ro 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
root@proxmox:~#
</file>
===== Communication =====
==== Dispositifs réseau ====
<file>
root@proxmox:~# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 00:10:18:27:7d:c9 brd ff:ff:ff:ff:ff:ff
3: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr0 state UP mode DEFAULT group default qlen 1000
link/ether 00:26:b9:7a:8e:dc brd ff:ff:ff:ff:ff:ff
4: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 00:26:b9:7a:8e:dc brd ff:ff:ff:ff:ff:ff
root@proxmox:~#
</file>
Référence: https://pve.proxmox.com/wiki/Network_Configuration.
=== Noms des interfaces réseau Systemd ===
Systemd utilise le préfixe de deux caractères en pour les périphériques réseau Ethernet. Les caractères suivants dépendent du pilote de périphérique et à quel modèle il correspond.
- o<index>[n<phys_port_name>|d<dev_port>] — devices on board.
- s<slot>[f<function>][n<phys_port_name>|d<dev_port>] — device by hotplug id.
- [P<domain>]p<bus>s<slot>[f<function>][n<phys_port_name>|d<dev_port>] — devices by bus id.
- x<MAC> — device by MAC address.
Les modèles les plus courants sont:
enp2s0 — est la carte réseau sur pcibus 2 slot 0.
eno1 — est la première carte réseau embarquée.
Affichage des cartes réseau de notre serveur.
<file>
root@proxmox:~# lspci | grep Ethernet
02:00.0 Ethernet controller: Broadcom Limited NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 21)
04:00.0 Ethernet controller: Broadcom Limited NetXtreme BCM5722 Gigabit Ethernet PCI Express
root@proxmox:~#
</file>
<file>
root@proxmox:~# cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vmbr0: 58716 889 0 0 0 0 0 0 34589 195 0 0 0 0 0 0
eno1: 74708 890 0 2 0 0 0 671 35831 194 0 0 0 0 0 0
enp2s0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
root@proxmox:~#
</file>
==== Adresses ====
<file>
root@proxmox:~# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:10:18:27:7d:c9 brd ff:ff:ff:ff:ff:ff
3: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000
link/ether 00:26:b9:7a:8e:dc brd ff:ff:ff:ff:ff:ff
4: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:26:b9:7a:8e:dc brd ff:ff:ff:ff:ff:ff
inet 192.168.1.52/24 brd 192.168.1.255 scope global vmbr0
valid_lft forever preferred_lft forever
inet6 fe80::226:b9ff:fe7a:8edc/64 scope link
valid_lft forever preferred_lft forever
root@proxmox:~#
</file>
Le dispositif vmbr0 prend l'adresse MAC du dispositif eno1.
==== Vérification de la connexion Internet ====
<file>
root@proxmox:~# ping -c3 google.com
PING google.com (172.217.1.14) 56(84) bytes of data.
64 bytes from iad23s25-in-f14.1e100.net (172.217.1.14): icmp_seq=1 ttl=57 time=12.0 ms
64 bytes from iad23s25-in-f14.1e100.net (172.217.1.14): icmp_seq=2 ttl=57 time=12.0 ms
64 bytes from iad23s25-in-f14.1e100.net (172.217.1.14): icmp_seq=3 ttl=57 time=11.8 ms
— google.com ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 11.755/11.921/12.005/0.117 ms
root@proxmox:~#
</file>
===== Performance de l'hôte =====
<file>
root@proxmox:~# pveperf
CPU BOGOMIPS: 40431.68
REGEX/SECOND: 1315068
HD SIZE: 18.08 GB (/dev/mapper/pve-root)
BUFFERED READS: 49.15 MB/sec
AVERAGE SEEK TIME: 17.58 ms
FSYNCS/SECOND: 12.95
DNS EXT: 37.70 ms
DNS INT: 20.38 ms (micronator-dev.org)
root@proxmox:~#
</file>
==== Souscription ====
<file>
root@proxmox:~# pvesubscription get
message: There is no subscription key
serverid: 95581739A670F04DEA88D32431E185B4
status: NotFound
url: http://www.proxmox.com/products/proxmox-ve/subscription-service-plans
root@proxmox:~#
</file>
===== Affichage de l'adresse du gestionnaire PVE =====
Par la console du serveur, on peut toujours retrouver l'adresse IP du gestionnaire PVE en affichant le fichier
/etc/network/interfaces
.
<file>
root@proxmox:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback
iface eno1 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.1.52
netmask 255.255.255.0
gateway 192.168.1.1
bridge_ports eno1
bridge_stp off
bridge_fd 0
root@proxmox:~#
</file>
====== Interface Web ======
===== Adresse et navigateur =====
Pour savoir l'adresse du gestionnaire PVE, voir le paragraphe Affichage de l'adresse du gestionnaire PVE ou utiliser la commande du paragraphe: Adresse du gestionnaire PVE.
Il faut absolument autoriser les témoins et JavaScript dans le navigateur, sinon l'écran de connexion ne sera pas présenté.
===== Connexion =====
Si vous ne pouvez accéder à l'adresse du gestionnaire, voir la section Gestionnaire PVE.
- On pointe un navigateur vers: https://192.168.1.52:8006/
- Avancé…
- Language: → French (l'écran va se rafraîchir).
- Utilisateur: → root.
- Mot de passe: → celui donné lors de l'installation.
- Login.
On nous suggère de visiter le site www.proxmox.com pour plus d'informations sur les options de contrat de service.
- https://www.proxmox.com/en/proxmox-ve/pricing
- Sur le site de Proxmox, les différents plans de souscription sont affichés.
==== Fuseau horaire ====
Maintenant, nous pouvons ajuster le fuseau horaire à America/Montreal.
===== Mise à jour =====
Cette mise à jour s'appliquera au système complet.
OK.
Certains fichiers n'ont pu être téléchargés.
L'erreur de téléchargement vient du fait que nous n'avons aucun plan de souscription à Proxmox.
La mise à jour est terminée. On peut fermer cette fenêtre.
- Un rechargement du cache s'effectue.
- Il n'y a plus de mises à jour disponibles.
===== Cartes réseau =====
- On peut examiner les cartes réseau:
Vue Stockage → Datacenter → proxmox → Système → Réseau.
- Les cartes réseau ont été correctement détectées.
===== Souscription =====
Nous allons désactiver l'affichage de l'écran surgissant No valid subscription,
On active la variable $no_subscription_info
dans le fichier Subscription.pm
et en redémarrant pveproxy.service
.
<file>
root@pve:~# sed -i.bak 's/NotFound/Active/g' /usr/share/perl5/PVE/API2/Subscription.pm && systemctl restart pveproxy.service
root@pve:~#
</file>
On vérifie que le statut de la variable est à la valeur Active
.
<file>
root@pve:~# cat /usr/share/perl5/PVE/API2/Subscription.pm | grep -C 1 “Active”
return $info if $info→{status} ne 'Active';
–
my $no_subscription_info = {
status ⇒ “Active”,
message ⇒ “There is no subscription key”,
–
if (!$param→{force} && $info→{status} eq 'Active') {
my $age = time() - $info→{checktime};
root@pve:~#
</file>
On redémarre les services.
<file>
root@pve:~# service pvestatd restart
root@pve:~#
</file>
<file>
root@pve:~# service pvedaemon restart
root@pve:~#
</file>
Tout fonctionne correctement et notre serveur physique est à jour.
====== Certificat Let's Encrypt ======
Voir le chapitre Certificat TLS/SSL Let's Encrypt dans le Cahier-04: NethServer LOCAL & Certificat Let's Encrypt du “Cours NehServer-101”.
===== Ajout des nouveaux CNAME chez Cloudflare.com =====
proxmox
www.proxmox
- On vérifie.
- On se déconnecte de Cloudflare.
===== Installation du script acme.sh =====
==== Utilitaire curl ====
Installation de curl
pour le téléchargement du fichier du script acme.sh
.
<file>
root@pve:~# apt-get install -y curl
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
libcurl4
The following NEW packages will be installed:
curl libcurl4
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 596 kB of archives.
After this operation, 1,123 kB of additional disk space will be used.
Get:1 http://ftp.ca.debian.org/debian buster/main amd64 libcurl4 amd64 7.64.0-4 [332 kB]
Get:2 http://ftp.ca.debian.org/debian buster/main amd64 curl amd64 7.64.0-4 [264 kB]
Fetched 596 kB in 0s (1,247 kB/s)
Selecting previously unselected package libcurl4:amd64.
(Reading database … 43351 files and directories currently installed.)
Preparing to unpack …/libcurl4_7.64.0-4_amd64.deb …
Unpacking libcurl4:amd64 (7.64.0-4) …
Selecting previously unselected package curl.
Preparing to unpack …/curl_7.64.0-4_amd64.deb …
Unpacking curl (7.64.0-4) …
Setting up libcurl4:amd64 (7.64.0-4) …
Setting up curl (7.64.0-4) …
Processing triggers for man-db (2.8.5-2) …
Processing triggers for libc-bin (2.28-10) …
root@pve:~#
</file>
=== Téléchargement du fichier du script ===
<file>
root@pve:~# curl https://get.acme.sh | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 705 0 705 0 0 3248 0 –:–:– –:–:– –:–:– 3248
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 186k 100 186k 0 0 707k 0 –:–:– –:–:– –:–:– 707k
[Tue 10 Sep 2019 06:36:41 PM EDT] Installing from online archive.
[Tue 10 Sep 2019 06:36:41 PM EDT] Downloading https://github.com/Neilpang/acme.sh/archive/master.tar.gz
[Tue 10 Sep 2019 06:36:41 PM EDT] Extracting master.tar.gz
[Tue 10 Sep 2019 06:36:41 PM EDT] Installing to /root/.acme.sh
[Tue 10 Sep 2019 06:36:41 PM EDT] Installed to /root/.acme.sh/acme.sh
[Tue 10 Sep 2019 06:36:41 PM EDT] Installing alias to '/root/.bashrc'
[Tue 10 Sep 2019 06:36:41 PM EDT] OK, Close and reopen your terminal to start using acme.sh
[Tue 10 Sep 2019 06:36:41 PM EDT] Installing cron job
no crontab for root
no crontab for root
[Tue 10 Sep 2019 06:36:41 PM EDT] Good, bash is found, so change the shebang to use bash as preferred.
[Tue 10 Sep 2019 06:36:42 PM EDT] OK
[Tue 10 Sep 2019 06:36:42 PM EDT] Install success!
root@pve:~#
</file>
On vérifie.
<file>
root@pve:~# ls -als
total 40
4 drwx—— 5 root root 4096 Sep 10 18:36 .
4 drwxr-xr-x 18 root root 4096 Sep 10 17:02 ..
4 drwx—— 5 root root 4096 Sep 10 18:36 .acme.sh
4 -rw——- 1 root root 16 Sep 10 16:29 .bash_history
4 -rw-r–r– 1 root root 601 Sep 10 18:36 .bashrc
4 -rw-r–r– 1 root root 25 Sep 10 16:28 .forward
4 drwx—— 3 root root 4096 Sep 10 16:29 .gnupg
4 -rw-r–r– 1 root root 148 Aug 17 2015 .profile
4 -rw——- 1 root root 1024 Sep 10 16:31 .rnd
root@pve:~#
</file>
===== Variables d'environnement =====
On doit définir certaines variables d’environnement correspondant à nos informations d’identification et à notre validateur DNS c.-à-d. Cloudflare.
C’est ici que vous devrez effectuer des ajustements nécessaires si vous utilisez un autre serveur de noms que Cloudflare - pour plus de détails, voir ce lien pour la documentation du script
acme.sh
: https://github.com/Neilpang/acme.sh/wiki/dnsapi.
L'exemple ci-dessous est celui d'une installation utilisant le serveur de noms Cloudflare.
On exporte, dans l'environnement présentement en mémoire, notre clé API Globale de Cloudflare.
<file>
[root@tchana ~]# export CF_Key=“VotreCléGlobaleDeCloudflare”
[root@tchana ~]#
</file>
On exporte notre adresse courriel utilisée pour notre enregistrement chez Cloudflare.
<file>
[root@tchana ~]# export CF_Email=“VotreAdresseCourrielDEnregistrementChezCloudflare”
[root@tchana ~]#
</file>
On vérifie les exportations.
<file>
[root@tchana ~]# env | grep -i CF_
CF_Email= VotreAdresseCourrielDEnregistrementChezCloudflare
CF_Key= VotreCléGlobaleDeCloudflare
[root@tchana ~]#
</file>
Si vous réamorcez le Serveur PVE avant la demande d'un certificat, vous perdez ces exportations. Il vous faudra alors les refaire.
===== Demande d'un certificat de test =====
<file>
[root@tchana ~]# /root/.acme.sh/acme.sh \
–issue \
–dns dns_cf \
-d proxmox.micronator-dev.org \
-d www.proxmox.micronator-dev.org \
–accountemail “michelandre@micronator.org” \
–keypath /etc/pve/local/pveproxy-ssl.key \
–fullchainpath /etc/pve/local/pveproxy-ssl.pem \
–reloadcmd “systemctl restart pveproxy” \
–log /root/.acme.sh/acme.sh.log \
–test \
–force
[Tue 10 Sep 2019 06:39:16 PM EDT] Using stage ACME_DIRECTORY: https://acme-staging-v02.api.letsencrypt.org/directory
[Tue 10 Sep 2019 06:39:17 PM EDT] Create account key ok.
[Tue 10 Sep 2019 06:39:17 PM EDT] Registering account
[Tue 10 Sep 2019 06:39:18 PM EDT] Registered
[Tue 10 Sep 2019 06:39:18 PM EDT] ACCOUNT_THUMBPRINT='DhfgmCkjdV_zUAumSuOREjUR1lNr-QYIAqA5s1b6plI'
[Tue 10 Sep 2019 06:39:18 PM EDT] Creating domain key
[Tue 10 Sep 2019 06:39:18 PM EDT] The domain key is here: /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.key
[Tue 10 Sep 2019 06:39:18 PM EDT] Multi domain='DNS:proxmox.micronator-dev.org,DNS:www.proxmox.micronator-dev.org'
[Tue 10 Sep 2019 06:39:18 PM EDT] Getting domain auth token for each domain
…
[Tue 10 Sep 2019 06:39:19 PM EDT] Getting webroot for domain='proxmox.micronator-dev.org'
[Tue 10 Sep 2019 06:39:19 PM EDT] Getting webroot for domain='www.proxmox.micronator-dev.org'
…
[Tue 10 Sep 2019 06:39:48 PM EDT] Verifying: proxmox.micronator-dev.org
[Tue 10 Sep 2019 06:39:50 PM EDT] Success
[Tue 10 Sep 2019 06:39:50 PM EDT] Verifying: www.proxmox.micronator-dev.org
[Tue 10 Sep 2019 06:39:53 PM EDT] Success
…
[Tue 10 Sep 2019 06:39:57 PM EDT] Download cert, Le_LinkCert: https://acme-staging-v02.api.letsencrypt.org/acme/cert/fac5e54195ddd18b976e9b2715f5a1f9be76
[Tue 10 Sep 2019 06:39:58 PM EDT] Cert success.
—–BEGIN CERTIFICATE—–
MIIFbjCCBFagAwIBAgITAPrF5UGV3dGLl26bJxX1ofm+djANBgkqhkiG9w0BAQsF
5bQthGGYwsd5EHlMVFXCEYP4wuUe2eicxUr/NCE6JqbqI3sTlTjvtQchkuLSZ2rF
qME=
—–END CERTIFICATE—–
[Tue 10 Sep 2019 06:39:58 PM EDT] Your cert is in /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.cer
[Tue 10 Sep 2019 06:39:58 PM EDT] Your cert key is in /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.key
[Tue 10 Sep 2019 06:39:58 PM EDT] The intermediate CA cert is in /root/.acme.sh/proxmox.micronator-dev.org/ca.cer
[Tue 10 Sep 2019 06:39:58 PM EDT] And the full chain certs is there: /root/.acme.sh/proxmox.micronator-dev.org/fullchain.cer
[Tue 10 Sep 2019 06:39:58 PM EDT] Installing key to:/etc/pve/local/pveproxy-ssl.key
chmod: changing permissions of '/etc/pve/local/pveproxy-ssl.key': Operation not permitted
[Tue 10 Sep 2019 06:39:58 PM EDT] Installing full chain to:/etc/pve/local/pveproxy-ssl.pem
[Tue 10 Sep 2019 06:39:58 PM EDT] Run reload cmd: systemctl restart pveproxy
[Tue 10 Sep 2019 06:40:04 PM EDT] Reload success
root@pve:~#
</file>
===== Demande d'un certificat officiel =====
On force notre première demande de certificat officiel Let's Encrypt.
<file>
[root@tchana ~]# /root/.acme.sh/acme.sh \
–issue \
–dns dns_cf \
-d proxmox.micronator-dev.org \
-d www.proxmox.micronator-dev.org \
–accountemail “michelandre@micronator.org” \
–keypath /etc/pve/local/pveproxy-ssl.key \
–fullchainpath /etc/pve/local/pveproxy-ssl.pem \
–reloadcmd “systemctl restart pveproxy” \
–log /root/.acme.sh/acme.sh.log \
–force
[Tue 10 Sep 2019 06:44:54 PM EDT] Create account key ok.
[Tue 10 Sep 2019 06:44:54 PM EDT] Registering account
[Tue 10 Sep 2019 06:44:55 PM EDT] Registered
[Tue 10 Sep 2019 06:44:55 PM EDT] ACCOUNT_THUMBPRINT='hZTl7u8PJriLTr_yJTA9p6nGgXTYDls5i3QWO0TGpWs'
[Tue 10 Sep 2019 06:44:55 PM EDT] Multi domain='DNS:proxmox.micronator-dev.org,DNS:www.proxmox.micronator-dev.org'
[Tue 10 Sep 2019 06:44:55 PM EDT] Getting domain auth token for each domain
[Tue 10 Sep 2019 06:44:56 PM EDT] Getting webroot for domain='proxmox.micronator-dev.org'
[Tue 10 Sep 2019 06:44:56 PM EDT] Getting webroot for domain='www.proxmox.micronator-dev.org'
…
[Tue 10 Sep 2019 06:45:21 PM EDT] Checking proxmox.micronator-dev.org for _acme-challenge.proxmox.micronator-dev.org
[Tue 10 Sep 2019 06:45:22 PM EDT] Domain proxmox.micronator-dev.org '_acme-challenge.proxmox.micronator-dev.org' success.
[Tue 10 Sep 2019 06:45:22 PM EDT] Checking www.proxmox.micronator-dev.org for _acme-challenge.www.proxmox.micronator-dev.org
[Tue 10 Sep 2019 06:45:22 PM EDT] Domain www.proxmox.micronator-dev.org '_acme-challenge.www.proxmox.micronator-dev.org' success.
[Tue 10 Sep 2019 06:45:22 PM EDT] All success, let's return
[Tue 10 Sep 2019 06:45:22 PM EDT] Verifying: proxmox.micronator-dev.org
[Tue 10 Sep 2019 06:45:24 PM EDT] Success
[Tue 10 Sep 2019 06:45:24 PM EDT] Verifying: www.proxmox.micronator-dev.org
[Tue 10 Sep 2019 06:45:27 PM EDT] Success
…
[Tue 10 Sep 2019 06:45:34 PM EDT] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/0425cf1782b6f2ffaaebf72b6df6ad5d93f8
[Tue 10 Sep 2019 06:45:34 PM EDT] Cert success.
—–BEGIN CERTIFICATE—–
MIIFjjCCBHagAwIBAgISBCXPF4K28v+q6/crbfatXZP4MA0GCSqGSIb3DQEBCwUA
…
EO3jraRnlFx6f9ZrL8PVp48IUG1bph8SYojVGSVqU86tLA==
—–END CERTIFICATE—–
[Tue 10 Sep 2019 06:45:34 PM EDT] Your cert is in /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.cer
[Tue 10 Sep 2019 06:45:34 PM EDT] Your cert key is in /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.key
[Tue 10 Sep 2019 06:45:34 PM EDT] The intermediate CA cert is in /root/.acme.sh/proxmox.micronator-dev.org/ca.cer
[Tue 10 Sep 2019 06:45:34 PM EDT] And the full chain certs is there: /root/.acme.sh/proxmox.micronator-dev.org/fullchain.cer
[Tue 10 Sep 2019 06:45:34 PM EDT] Installing key to:/etc/pve/local/pveproxy-ssl.key
[Tue 10 Sep 2019 06:45:34 PM EDT] Installing full chain to:/etc/pve/local/pveproxy-ssl.pem
[Tue 10 Sep 2019 06:45:34 PM EDT] Run reload cmd: systemctl restart pveproxy
[Tue 10 Sep 2019 06:45:39 PM EDT] Reload success
root@pve:~#
</file>
===== Fichier hosts =====
On entre notre nouveau domaine, ses CNAME et son adresse IP dans le fichier hosts
:
C:\Windows\System32\drivers\etc\hosts
.
===== Vérification du certificat =====
On se rend à la page:
Il n'est pas nécessaire d'ajouter une exception pour le certificat, car il a été émis par une autorité de certification reconnue. Le cadenas est vert.
On clique le cadenas pour afficher les informations de la connexion, puis on clique l'icône >.
- On clique Nom alternatif du sujet du certificat.
- Tous les CNAME sont présents.
- Fermer toutes les fenêtres.
===== Renouvellement =====
À chaque jour, une tâche cron vérifie le nombre de jours restant pour la validité.
<file>
[root@tchana ~]# crontab -l
41 0 * * * “/root/.acme.sh”/acme.sh –cron –home “/root/.acme.sh” > /dev/null
[root@tchana ~]#
</file>
Le renouvellement se fera automatiquement lorsqu'il ne restera que 30 jours de validité.
===== Journal =====
Nous avons spécifié de créer un journal en utilisant le paramètre –log /root/.acme.sh/acme.sh.log
.
On examine les dernières lignes du journal.
<file>
root@pve:~# tail /root/.acme.sh/acme.sh.log
[Tue 10 Sep 2019 06:45:34 PM EDT] Your cert is in /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.cer
[Tue 10 Sep 2019 06:45:34 PM EDT] Your cert key is in /root/.acme.sh/proxmox.micronator-dev.org/proxmox.micronator-dev.org.key
[Tue 10 Sep 2019 06:45:34 PM EDT] v2 chain.
[Tue 10 Sep 2019 06:45:34 PM EDT] The intermediate CA cert is in /root/.acme.sh/proxmox.micronator-dev.org/ca.cer
[Tue 10 Sep 2019 06:45:34 PM EDT] And the full chain certs is there: /root/.acme.sh/proxmox.micronator-dev.org/fullchain.cer
[Tue 10 Sep 2019 06:45:34 PM EDT] Installing key to:/etc/pve/local/pveproxy-ssl.key
[Tue 10 Sep 2019 06:45:34 PM EDT] Installing full chain to:/etc/pve/local/pveproxy-ssl.pem
[Tue 10 Sep 2019 06:45:34 PM EDT] Run reload cmd: systemctl restart pveproxy
[Tue 10 Sep 2019 06:45:39 PM EDT] Reload success
[Tue 10 Sep 2019 06:45:39 PM EDT] _on_issue_success
root@pve:~#
</file>
===== Propriétés du certificat dans l'interface Web =====
- Vue Serveur → Datacenter → proxmox → Système → Certificats.
- Nous avons forcer notre dernière demande de certificat officiel Let's Encrypt le 2019-09-10.
Le certificat officiel Let's Encrypt fonctionne correctement.
====== Création d'une machine virtuelle NethServer ======
===== Diagramme réseau =====
Le Serveur NethServer virtuel (ns-1) créé dans PVE s'intégrera dans le diagramme réseau ci-dessous.
===== Deuxième carte réseau =====
On veut activer et configurer la deuxième carte réseau de notre machine physique proxmox.micronator-dev.org.
==== Configuration sur le serveur de test pve ====
Vu que les manipulations des cartes réseau peuvent se terminer en désastre, on commence par modifier les cartes réseau de notre serveur de test pve.micronator-dev.org (nous avons créé ce serveur PVE pour spécifiquement faire des tests de configuration).
Lors de la création de la MV dans VirtualBox, nous avons spécifié deux cartes réseau, mais lors de l'installation et de la configuration de ce système, nous avons seulement configuré la première, la deuxième étant désactivée.
Vue Serveur → Datacenter → pve → Système → Réseau pour afficher le statut des cartes réseau.
<file> root@pve:~# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000 link/ether 08:00:27:c8:9c:1c brd ff:ff:ff:ff:ff:ff 3: enp0s8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 08:00:27:a5:fc:72 brd ff:ff:ff:ff:ff:ff 4: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 08:00:27:c8:9c:1c brd ff:ff:ff:ff:ff:ff inet 192.168.1.44/24 brd 192.168.1.255 scope global vmbr0 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fec8:9c1c/64 scope link valid_lft forever preferred_lft forever root@pve:~# </file> === Activation de la deuxième carte réseau ===
On redémarre le serveur pve.micronator-dev.org.
<file>
root@pve:~# reboot
</file>
On vérifie.
<file>
root@pve:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000
link/ether 08:00:27:c8:9c:1c brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr1 state UP group default qlen 1000
link/ether 08:00:27:a5:fc:72 brd ff:ff:ff:ff:ff:ff
4: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 08:00:27:c8:9c:1c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.44/24 brd 192.168.1.255 scope global vmbr0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fec8:9c1c/64 scope link
valid_lft forever preferred_lft forever
5: vmbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 08:00:27:a5:fc:72 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.44/24 brd 10.10.10.255 scope global vmbr1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fea5:fc72/64 scope link
valid_lft forever preferred_lft forever
root@pve:~#
</file>
La deuxième carte réseau est active, fonctionnelle et est représentée par vmbr1.
==== Configuration sur le serveur physique proxmox ====
Nos tests sont concluants. On peut refaire, sans craintes, les mêmes manipulations sur notre serveur physique proxmox.micronator-dev.org.
Changements en attente (Redémarrez le serveur pour appliquer les modifications).
--- /etc/network/interfaces 2019-09-12 14:38:45.216731205 -0400 +++ /etc/network/interfaces.new 2019-09-12 20:53:41.635509920 -0400 @@ -15,6 +15,7 @@ auto eno1 iface eno1 inet manual +auto enp2s0 iface enp2s0 inet manual auto vmbr0 @@ -26,3 +27,11 @@ bridge-stp off bridge-fd 0 +auto vmbr1 +iface vmbr1 inet static + address 10.10.10.52 + netmask 24 + bridge-ports enp2s0 + bridge-stp off + bridge-fd 0 +
On redémarre le serveur physique proxmox.micronator-dev.org. <file> root@proxmox:~# reboot </file>
Après le redémarrage du système proxmox.micronator-dev.org.
On vérifie les adresse IP de toutes les cartes réseau.
<file>
root@proxmox:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr1 state UP group default qlen 1000
link/ether 00:10:18:27:7d:c9 brd ff:ff:ff:ff:ff:ff
3: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000
link/ether 00:26:b9:7a:8e:dc brd ff:ff:ff:ff:ff:ff
4: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:26:b9:7a:8e:dc brd ff:ff:ff:ff:ff:ff
inet 192.168.1.52/24 brd 192.168.1.255 scope global vmbr0
valid_lft forever preferred_lft forever
inet6 fe80::226:b9ff:fe7a:8edc/64 scope link
valid_lft forever preferred_lft forever
5: vmbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:10:18:27:7d:c9 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.52/24 brd 10.10.10.255 scope global vmbr1
valid_lft forever preferred_lft forever
inet6 fe80::210:18ff:fe27:7dc9/64 scope link
valid_lft forever preferred_lft forever
root@proxmox:~#
</file>
==== Vérification des connexions aux réseaux ====
On lance 3 ping vers le poste de travail - 192.168.1.81.
<file>
root@proxmox:~# ping -c3 192.168.1.81
PING 192.168.1.81 (192.168.1.81) 56(84) bytes of data.
64 bytes from 192.168.1.81: icmp_seq=1 ttl=128 time=0.764 ms
64 bytes from 192.168.1.81: icmp_seq=2 ttl=128 time=0.424 ms
64 bytes from 192.168.1.81: icmp_seq=3 ttl=128 time=0.407 ms
— 192.168.1.81 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 48ms
rtt min/avg/max/mdev = 0.407/0.531/0.764/0.166 ms
root@proxmox:~#
</file>
On lance 3 ping vers le serveur principal connecté directement à l'Internet - 192.168.1.1.
<file>
root@proxmox:~# ping -c3 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.902 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.548 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.441 ms
— 192.168.1.1 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 52ms
rtt min/avg/max/mdev = 0.441/0.630/0.902/0.198 ms
root@proxmox:~#
</file>
On lance 3 ping vers google.com.
<file>
root@proxmox:~# ping -c3 google.com
PING google.com (172.217.0.238) 56(84) bytes of data.
64 bytes from yyz10s03-in-f14.1e100.net (172.217.0.238): icmp_seq=1 ttl=57 time=11.6 ms
64 bytes from yyz10s03-in-f14.1e100.net (172.217.0.238): icmp_seq=2 ttl=57 time=11.8 ms
64 bytes from yyz10s03-in-f14.1e100.net (172.217.0.238): icmp_seq=3 ttl=57 time=12.2 ms
— google.com ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 6ms
rtt min/avg/max/mdev = 11.640/11.880/12.153/0.228 ms
root@proxmox:~#
</file>
On lance 3 ping vers le serveur pve - 192.168.1.44.
<file>
root@proxmox:~# ping -c3 192.168.1.44
PING 192.168.1.44 (192.168.1.44) 56(84) bytes of data.
64 bytes from 192.168.1.44: icmp_seq=1 ttl=64 time=1.48 ms
64 bytes from 192.168.1.44: icmp_seq=2 ttl=64 time=2.12 ms
64 bytes from 192.168.1.44: icmp_seq=3 ttl=64 time=0.619 ms
— 192.168.1.44 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 0.619/1.404/2.117/0.613 ms
root@proxmox:~#
</file>
On vérifie le réseau 10.10.10.0/24.
<file>
root@proxmox:~# ping -c3 10.10.10.81
PING 10.10.10.81 (10.10.10.81) 56(84) bytes of data.
64 bytes from 10.10.10.81: icmp_seq=1 ttl=128 time=3.04 ms
64 bytes from 10.10.10.81: icmp_seq=2 ttl=128 time=0.496 ms
64 bytes from 10.10.10.81: icmp_seq=3 ttl=128 time=0.414 ms
— 10.10.10.81 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 29ms
rtt min/avg/max/mdev = 0.414/1.315/3.037/1.218 ms
root@proxmox:~#
</file>
<file>
root@proxmox:~# ping -c3 10.10.10.44
PING 10.10.10.44 (10.10.10.44) 56(84) bytes of data.
64 bytes from 10.10.10.44: icmp_seq=1 ttl=64 time=0.661 ms
64 bytes from 10.10.10.44: icmp_seq=2 ttl=64 time=0.617 ms
64 bytes from 10.10.10.44: icmp_seq=3 ttl=64 time=0.669 ms
— 10.10.10.44 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 53ms
rtt min/avg/max/mdev = 0.617/0.649/0.669/0.022 ms
root@proxmox:~#
</file>
On vérifie si le serveur pve peut communiquer avec le serveur proxmox.
<file>
root@pve:~# ping -c3 192.168.1.52
PING 192.168.1.52 (192.168.1.52) 56(84) bytes of data.
64 bytes from 192.168.1.52: icmp_seq=1 ttl=64 time=1.09 ms
64 bytes from 192.168.1.52: icmp_seq=2 ttl=64 time=1.27 ms
64 bytes from 192.168.1.52: icmp_seq=3 ttl=64 time=1.24 ms
— 192.168.1.52 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 9ms
rtt min/avg/max/mdev = 1.088/1.200/1.271/0.080 ms
root@pve:~#
</file>
<file>
root@pve:~# ping -c3 10.10.10.52
PING 10.10.10.52 (10.10.10.52) 56(84) bytes of data.
64 bytes from 10.10.10.52: icmp_seq=1 ttl=64 time=0.988 ms
64 bytes from 10.10.10.52: icmp_seq=2 ttl=64 time=1.16 ms
64 bytes from 10.10.10.52: icmp_seq=3 ttl=64 time=1.05 ms
— 10.10.10.52 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 6ms
rtt min/avg/max/mdev = 0.988/1.066/1.158/0.079 ms
root@pve:~#
</file>
La deuxième carte réseau est activée, configurée et fonctionne correctement.
===== Téléversement de l'ISO NethServer dans l'environnement PVE =====
Vue Serveur → Datacenter → proxmox → local (proxmox) → Contenu → Upload.
Le fichier ISO pour l'installation d'un Serveur NethServer est maintenant dans l'environnement PVE.
Si la taille du fichier indique une grandeur moindre, simplement faire un rafraîchissement de la page du fureteur.
==== Vérification par l'interface Web ====
- Vue par pools → Datacenter → Stockage.
- On voit que le fichier ISO est emmagasiné dans le chemin /var/lib/vz
.
==== Vérification par WinSCP ==== On crée une nouvelle connexion dans WinSCP pour accéder au serveur proxmox.
- On se rend dans le répertoire /var/lib/vz/template/iso
.
- Le fichier ISO pour le Serveur NethServer s'y trouve.
===== Création de la machine virtuelle NethServer =====
==== Paramètres de la machine virtuelle ====
- Nom de la machine virtuelle: → NethServer-7.6.1810.
- Nom du serveur virtuel: → ns-1.
- Le nom complet FQDN: → ns1.micronator-dev.org.
- Mémoire: → 4096 MB.
- Disque: → 8 GB.
- IP (réseau local): → 192.168.1.11 / Masque: 255.255.255.0.
- IP (réseau externe): → 10.10.10.11 / Masque: 255.255.255.0.
- Passerelle: → 192.168.1.1.
==== Création de la machine virtuelle ====
On clique Créer VM.
Si le nombre de CPU alloués à la machine virtuelle (ex: 4) dépasse le
nombre de CPU de l'hôte (ex: 2), vous recevrez l'erreur ci-contre.
Dans notre cas, nous avons 4 coeurs avec 2 CPU/coeur = 8 CPU.
- Onglet Disque Dur.
- Bus/Device → VirtIO4) Block est plus rapide.
- Taille du disque (GiB): → 8.
Onglet Réseau → on prend les défauts surtout pour Modèle: VirtIO (Paravirtualisé5)).
==== Ajout d'une deuxième carte réseau ====
- Un Serveur NethServer a besoin de deux cartes réseau.
- Matériel → Ajouter → Carte réseau.
- Pont: → vmbr1.
- Modèle: → VirtIO (paravirtualisé).
- Parefeu: NethServer a son propre pare-feu.
- Ajouter.
===== Pare-feu =====
Référence: https://pve.proxmox.com/wiki/Firewall.
Vue par pools → Datacenter → 100 (NethServer-7.6.1810) → Parefeu → Options.
NethServer possède son propre pare-feu. Il n'est donc pas nécessaire d'utiliser celui de PVE.
On sélectionne les différentes options → Éditer.
DHCP
On désactive cette option.
Il ne faut surtout pas avoir deux serveurs DHCP sur le même segment IP.
Les options NDP et Annonce du routeur sont utilisées par IPv6.
Par défaut, les machines virtuelles sont autorisées à envoyer des messages de sollicitation d'aiguilleur (router) (pour rechercher un aiguilleur) et à recevoir des paquets d'annonce d'aiguilleur. Ceci leur permet d'utiliser la configuration automatique sans état (stateless6)). D'autre part, les ordinateurs virtuels ne peuvent pas s'annoncer eux-mêmes en tant qu'aiguilleur sauf si l'option Annonce du routeur (radv: 17)) est définie.
===== Instantané =====
À ce stade-ci, on peut prendre un Instantané PVE de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
Vue par pool → Datacenter → Snapshots → Créer un snapshot.
- On entre un nom descriptif.
- On décoche Inclure la RAM.
- On entre une description plus détaillée.
- Créer un snapshot.
L'Instantané est terminé en seulement quelques secondes.
====== Installation de NethServer ======
===== Démarrage et installation =====
On amorce la machine virtuelle en cliquant Démarrer, puis on ouvre une console en cliquant Console.
- On choisit un fuseau horaire, car Montréal n'est pas là. Il le sera dans l'interface Web de NethServer.
- Done.
Onglet IPv4 Settings → Manual → Add → on entre l'adresse IP, le masque et l'IP de la passerelle (l'adresse de notre serveur connecté directement à l'Internet) → i.d. pour DNS servers → Save.
Onglet IPv4 Settings → Manual → Add → on entre l'adresse IP, le masque et l'IP de la passerelle (l'adresse du serveur proxmox) → Save.
===== Première connexion =====
- Les URL pour se connecter à l'interface Web sont affichées:
- On se connecte avec le justificatif de l'utilisateur root.
- On est connecté à la console du serveur.
===== Instantané =====
À ce stade-ci, on peut prendre un Instantané PVE de la machine virtuelle afin de pouvoir y revenir en cas d'une future erreur de manipulation.
- On entre un nom descriptif.
- On décoche Inclure la RAM.
- On entre une description plus détaillée.
- Créer un snapshot.
L'Instantané est terminé.
===== Connexion à l'interface Web =====
NethServer peut être configuré à l'aide de l'interface Web du gestionnaire du serveur.
À partir de notre poste de travail, nous avons besoin d'un navigateur Web tel que Mozilla Firefox, Google Chrome ou Safari pour accéder à l'interface Web à l'aide de l'adresse (URL) https://abcd:980 où abcd est l'adresse IP configurée lors de l'installation du serveur et 980 le port utilisé par l'interface Web.
- Pour l'instant, on se connecte à l'interface WEB par l'IP du réseau LOCAL: https://192.168.1.11:980.
- Avancé… → Accepter le risque et poursuivre.
===== Configuration initiale de NethServer =====
- Nom d'utilisateur par défaut: → root.
- Nous avons déjà choisi un mot de passe lors de l'installation
- Si nous n'avons pas choisi de mot de passe, par défaut il est défini à: Nethesis,1234. Attention, ne pas oublier la “virgule”.
Si le mot de passe de root n'est pas robuste, modifiez-le dès que possible en choisissant un mot de passe composé d’une séquence aléatoire de lettres, de chiffres et de symboles.
Restore configuration
- On pourrait récupérer la configuration depuis une sauvegarde précédente.
- Next.
Set host name
- Le FQDN de notre serveur a été entré lors de l'installation. Ici, on peut le modifier.
- Next.
Date and time
- On choisit le fuseau horaire. Ici, nous avons beaucoup plus de choix que lors de l'installation du serveur.
- Next.
SSH
- On change le port SSH de 22 à 2222 pour dérouter, un peu plus, les intrusions malveillantes.
- Next.
=== Smarthost ===
Envoyer les courriels en utilisant un smarthost8).
Le serveur tentera d'envoyer les courriels directement à la destination (recommandé dans la plupart des cas). Mais, en choisissant plutôt d'envoyer par un smarthost, il essaiera de les transmettre via le serveur SMTP du FAI (recommandé en cas de connexion peu fiable ou d'ADSL résidentiel, IP dynamique, etc.).
Next.
Usage statistics
- Ces statistique sont utilisées seulement pour connaître le nombre total de NethServer installés.
- Next.
Review changes
Apply.
La configuration initiale du Serveur NethServer est terminée.
====== Configuration de NethServer ======
===== Réseau =====
==== Rôles et zones ====
Chaque interface réseau a un rôle qui correspond à une zone du pare-feu. Le pare-feu comporte les zones intégrées suivantes, classées de la plus prépondérante à la moins privilégiée:
VERT: → réseau LOCAL. Cette zone est considérée comme fiable. Les hôtes de ce réseau peuvent accéder à n’importe quelle autre zone. Les hôtes connectés via VPN peuvent être considérés en zone verte.
BLEU: → réseau invité. Les hôtes de ce réseau peuvent accéder aux zones orange et rouge, mais pas à la zone verte.
ORANGE: → réseau DMZ. Les hôtes de ce réseau peuvent accéder à la zone rouge, mais pas aux zones verte et bleue.
ROUGE: → réseau externe/Internet. Les hôtes de ce réseau peuvent uniquement accéder à cette zone.
Il existe également une zone de pare-feu spéciale qui représente le pare-feu lui-même. Le pare-feu peut accéder à n’importe quelle zone.
Chaque interface réseau, avec un rôle configuré, est une zone du pare-feu. Les rôles sont “mappés” aux zones Shorewall comme suit:
vert → loc
rouge → net
bleu → bleu
orange → orang (dans Shorewall, un nom de zone ne peut dépasser 5 caractères)
pare-feu → FW
Les noms personnalisés de zones sont directement “mappés” sur Shorewall en respectant la limite de 5 caractères.
Les interfaces rouges peuvent être configurées avec une adresse IP statique ou à l'aide de DHCP. Toutes les autres interfaces ne peuvent être configurées qu'avec des adresses IP statiques.
===== Connexion Internet =====
Lors de la configuration du poste de travail, nous avons configuré la carte RJ-45 pour que ce soit elle qui nous connecte à l'internet. Nous lui avons donné l'adresse IP statique (fixe) 192.168.1.81 et comme passerelle l'adresse 192.168.1.1.
De plus, nous assumons que c'est le serveur dorgee.micronator.org qui sert de serveur DHCP et qui fournit dynamiquement les adresses IP à tous les autres postes sur le réseau 192.168.1.0/24.
==== Vérification des adresses IP du Serveur NethServer ====
Configuration → Network.
- Sous Network, on voit que le réseau de la carte eth0 est vert indiquant que c'est un réseau de confiance et implique que quiconque sur le réseau 192.168.1.1/24 peut avoir accès au gestionnaire Web du serveur s'il connaît le mot de passe de root. - Le réseau de la carte eth1 est aussi vert indiquant que c'est aussi un réseau de confiance. === Carte eth0 ===
On s'assure que la première carte réseau possède bien l'adresse 192.168.1.11, que son Role est LAN (green) pour indiquer que c'est elle qui connecte le serveur au réseau LOCAL et que sa passerelle est l'adresse IP de notre serveur principal (directement branché à l'Internet), sinon on édite la configuration de cette carte en cliquant Edit, à la fin de la ligne sur la capture d'écran ci-dessus.
=== Carte eth1 ===
On s'assure que la deuxième carte réseau possède bien l'adresse 10.10.10.11 et on la configure pour avoir un Role de DMZ (orange) pour indiquer que c'est elle qui connecte le serveur à l'Internet. On édite la configuration de cette carte en cliquant Edit, à la fin de la ligne sur la capture d'écran ci-dessous.
==== Serveur DNS ====
On clique DNS servers et on vérifie que le serveur DNS de notre système est bien 192.168.1.1, l'adresse de notre serveur principal qui est directement branché à l'Internet, sinon on ajuste → SUBMIT.
Vérification de la communication
- On crée une nouvelle entrée dans PuTTY pour le Serveur NethServer. Ici le port est 2222.
- Open et on accepte le certificat.
On se connecte en utilisateur root et le mot de passe qu’on lui a attribué. <file> login as: root root@192.168.1.11's password:mot-de-passe-de-root Last login: Fri Sep 13 17:07:11 2019 Welcome to NethServer This is a NethServer installation. Before editing configuration files, be aware of the automatic events and templates system. http://docs.nethserver.org * [root@ns-1 ~]# </file> On affiche la configuration des cartes réseau. <file> [root@ns-1 ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::10ac:dcff:fe57:d608 prefixlen 64 scopeid 0x20<link> ether 12:ac:dc:57:d6:08 txqueuelen 1000 (Ethernet) RX packets 180905 bytes 233843665 (223.0 MiB) RX errors 0 dropped 21 overruns 0 frame 0 TX packets 149049 bytes 27381092 (26.1 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.10.10.11 netmask 255.255.255.0 broadcast 10.10.10.255 ether 8e:9a:a3:3d:b4:dd txqueuelen 1000 (Ethernet) RX packets 7964 bytes 560977 (547.8 KiB) RX errors 0 dropped 21 overruns 0 frame 0 TX packets 147 bytes 10378 (10.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 578 bytes 60489 (59.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 578 bytes 60489 (59.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@ns-1 ~]# </file>
- Les adresses IP sont correctes.
- On peut comparer leur adresse MAC.
On affiche le serveur DNS.
<file>
[root@ns-1 ~]# cat /etc/resolv.conf
# ================= DO NOT MODIFY THIS FILE =================
#
# Manual changes will be lost when this file is regenerated.
#
# Please read the developer's guide, which is available
# at NethServer official site: https://www.nethserver.org
#
#
domain micronator-dev.org
search micronator-dev.org
# dnsmasq is enabled on this machine:
nameserver 127.0.0.1
[root@ns-1 ~]#
</file>
On affiche la table de routage.
<file>
[root@ns-1 ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default dorgee.micronat 0.0.0.0 UG 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
[root@ns-1 ~]#
</file>
On lance 2 ping vers google.com pour vérifier le fonctionnement du DNS.
<file>
[root@tchana ~]# ping -c 2 google.com
PING google.com (172.217.164.238) 56(84) bytes of data.
64 bytes from yyz12s05-in-f14.1e100.net (172.217.164.238): icmp_seq=1 ttl=57 time=11.9 ms
64 bytes from yyz12s05-in-f14.1e100.net (172.217.164.238): icmp_seq=2 ttl=57 time=11.9 ms
— google.com ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 11.925/11.962/11.999/0.037 ms
[root@tchana ~]#
</file>
Le domaine google.com répond impliquant que le DNS a trouvé son adresse 172.217.164.238 et que le serveur-aiguilleur (192.168.1.1) fonctionne correctement.
===== Test de vitesse =====
- On vérifie que tout fonctionne correctement en lançant un test de vitesse.
- Status → Diagnostics → onglet Speedtest → SPEEDTEST.
===== Configuration complète du Serveur Nethserver =====
Pour la mise à jour, la configuration complète, l'ajout de modules supplémentaires etc., voir le Cahier-04: NethServer LOCAL & Certificat Let's Encrypt du “Cours NethServer-101”.
Appendices du Cahier-04: NethServer LOCAL & Certificat Let's Encrypt du “Cours NethServer-101”.
1. Écran conventionnel de démarrage.
2. Nom du serveur dans l'écran de connexion à Webmail.
3. Langue à la console du serveur.
4. Langue de l'interface Web.
5. Table de mappe de clavier.
6. Fermeture automatique de session (session timeout).
7. Fuseau horaire.
8. Certificat Let's Encrypt.
9. Changement du mot de passe de root.
10. ERROR Failed to send host log message.
11. Martian source.
12. Serveur de production
Le Serveur NethServer est installé et fonctionne correctement.
===== Virtualisation matérielle KVM =====
Si vous êtes sous VirtualBox et que vous créez une machine virtuelle, il faut, après sa création, désactiver (mettre à NON) la Virtualisation matérielle KVM de cette machine: Vue serveur → Datacenter → pve → sélectionner la machine virtuelle → Options → Virtualisation matérielle KVM → décocher Activé → OK.
Si vous ne désactivez pas cette option, la machine virtuelle ne démarrera pas.
Pour afficher le message d'erreur, cliquer Erreur: KVM virtualisation co…
Le message d'erreur s'affiche.
====== Instantané PVE d'une machine virtuelle ======
Ce chapitre provient de la version 0.0.1 de ce document.
Grâce aux Instantanés, vous pouvez enregistrer l'état particulier d'une machine virtuelle à un moment donné pour pouvoir l'utiliser plus tard. Ainsi, après avoir pris un Instantané, vous pourrez à n'importe quel moment revenir à cet état, même si la machine virtuelle a été complètement changée ou endommagée.
Les Instantanés sont particulièrement utiles pour disposer d'un système toujours propre et s'assurer que la machine virtuelle est dépourvue de bogues causés par l'installation de logiciels, virus ou autres.
===== Création d'un Instantané d'un Serveur SME =====
Maintenant que le Serveur SME est fonctionnel, il serait dommage de faire une manipulation quelconque et de ruiner tout le travail qu'on a fait à date.
Si nous prenons un Instantané d'une MV qui roule, l'Instantané peut inclure le contenu de la mémoire, ce qui augmentera la taille de l'Instantané.
===== Création d'un Instantané =====
On crée notre premier Instantané avec la machine en marche.
- On entre les informations demandées.
- Il n'est pas nécessaire d'inclure la mémoire.
- Créer un snapshot.
Le premier Instantané a été créé.
On répète l'opération pour avoir quelques Instantanés.
On crée un Instantané avec la machine arrêtée.
==== Hiérarchie des Instantanés ====
L'Instantané apparaîtra dans la liste des Instantanés. Sous Description, vous verrez apparaître “Vous êtes ici!”, ce qui signifie que l'état actuel de votre machine virtuelle est dérivé de l'Instantané précédemment créé; il est basé sur ce dernier.
Si, à ce moment-là, vous prenez un autre Instantané n°2 puis un autre n°3, chacun d'entre eux sera un Instantané dérivé de l'Instantané précédent. L'état actuel peut dériver de l'Instantané n°3 qui lui-même dérive du n°2 qui lui-même dérive du premier.
Vous pouvez ainsi créer autant d'Instantanés que vous voulez pour créer autant d'états que vous le souhaitez. Mais attention, si on inclut la mémoire, les Instantanés utiliseront beaucoup plus d'espace disque.
==== Utiliser les Instantanés ====
=== Mise en garde ===
Attention, lorsque vous faites un retour sur Instantané c'est tout le disque dur (c.-à.d. le fichier du disque virtuel) de la machine virtuelle qui est restauré. Autrement dit, si vous aviez créé des documents sur ce disque (pour une machine virtuelle Windows, si vous avez enregistré vos documents sur le Bureau ou dans “Mes Documents”), vous ne les retrouverez plus!
Pensez donc à enregistrer vos documents ailleurs que sur la machine virtuelle avant de faire un retour sur Instantané!
===== Restauration d'un Instantané =====
On restaure le deuxième Instantané.
Le deuxième Instantané a été restauré.
==== Suppression d'un Instantané ====
“Supprimer” permet de supprimer l'Instantané que vous avez sélectionné sans modifier l'état de la machine actuelle.
Vous ne pourrez plus revenir à l'ancien état sauvegardé par cet Instantané, mais la machine virtuelle courante garde son état actuel.
Utile si vous avez trop abusé des Instantanés et que vous manquez d'espace libre sur votre disque dur; supprimez les Instantanés qui vous serviront probablement le moins.
On supprime le troisième Instantané.
====== Truc et astuces ======
===== Gestionnaire PVE =====
==== Adresse IP ====
Si vous ne pouvez accéder à l'adresse du gestionnaire, vérifiez le fichier /etc/network/interfaces
à la console du serveur PVE.
<file>
root@proxmox:~# cat /etc/network/interfaces
# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet manual
auto enp2s0
iface enp2s0 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.1.52
netmask 255.255.255.0
gateway 192.168.1.1
bridge-ports eno1
bridge-stp off
bridge-fd 0
auto vmbr1
iface vmbr1 inet static
address 10.10.10.52
netmask 24
bridge-ports enp2s0
bridge-stp off
bridge-fd 0
root@proxmox:~#
</file>
Assurez-vous que l'adresse utilisée est bien celle affichée du gestionnaire sur la console lors d'un amorçage sinon, modifiez l'adresse locale dans ce fichier et réamorcez pour que le système en tienne compte.
===== Afficher des messages d'amorçage =====
Référence: https://askubuntu.com/questions/25022/how-to-enable-boot-messages-to-be-printed-on-screen-during-boot-up.
Pour afficher les messages lors de l'amorçage ou de l'arrêt d'un serveur PVE, vous devez supprimer le paramètre quiet de la ligne de démarrage du noyau dans le fichier GRUB:
1. Démarrez votre système et attendez que le menu GRUB apparaisse.
2. Sélectionnez le noyau que vous souhaitez utiliser et appuyez sur la touche e. Vous devriez pouvoir voir et éditer les commandes associées au noyau en surbrillance.
3. Descendez à la ligne commençant par Linux et supprimez le paramètre quiet.
4. Appuyez maintenant sur [Ctrl] + [x] pour démarrer.
==== Rendre ce changement permanent ====
On affiche la ligne du fichier /etc/default/grub
qui débute par GRUB_CMDLINE_LINUX_DEFAULT.
<file>
root@proxmox:~# cat /etc/default/grub | grep “GRUB_CMDLINE_LINUX_DEFAULT”
GRUB_CMDLINE_LINUX_DEFAULT=“quiet”
root@proxmox:~#
</file>
On supprime quiet de cette ligne.
<file>
root@proxmox:~# sed -i “s/DEFAULT=\”quiet\“/DEFAULT=\”\“/” /etc/default/grub
root@proxmox:~#
</file>
On vérifie.
<file>
root@proxmox:~# cat /etc/default/grub | grep “GRUB_CMDLINE_LINUX_DEFAULT”
GRUB_CMDLINE_LINUX_DEFAULT=“”
root@proxmox:~#
</file>
On rend ce changement permanent.
<file>
root@proxmox:~# update-grub
Generating grub configuration file …
Found linux image: /boot/vmlinuz-5.0.15-1-pve
Found initrd image: /boot/initrd.img-5.0.15-1-pve
Found memtest86+ image: /boot/memtest86+.bin
Found memtest86+ multiboot image: /boot/memtest86+_multiboot.bin
done
root@proxmox:~#
</file>
===== Sauvegarde =====
Pour la sauvegarde, nous recommandons de créer une grappe (cluster) avec un ou deux autres serveurs PVE.
On peut aussi utiliser BackupPC voir: Cahier-11: NethServer & BackupPC du “Cours NethServer-101”. Vous pouvez utiliser les procédures du Cahier-11 pour sauvegarder tout serveur Linux.
===== Logiciels supplémentaires =====
On peut installer quelques logiciels supplémentaires qui sont souvent utilisés et qui ne sont pas fournis par PVE.
==== net-tools ====
Pour pouvoir utiliser la commande ifconfig.
<file>
root@proxmox:~# apt-get install -y net-tools
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following NEW packages will be installed:
net-tools
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 248 kB of archives.
After this operation, 1,002 kB of additional disk space will be used.
Get:1 http://ftp.ca.debian.org/debian buster/main amd64 net-tools amd64 1.60+git20180626.aebd88e-1 [248 kB]
Fetched 248 kB in 0s (916 kB/s)
Selecting previously unselected package net-tools.
(Reading database … 44068 files and directories currently installed.)
Preparing to unpack …/net-tools_1.60+git20180626.aebd88e-1_amd64.deb …
Unpacking net-tools (1.60+git20180626.aebd88e-1) …
Setting up net-tools (1.60+git20180626.aebd88e-1) …
Processing triggers for man-db (2.8.5-2) …
root@proxmox:~#
</file>
=== Exemple ===
<file>
root@proxmox:~# ifconfig vmbr0
vmbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.52 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::226:b9ff:fe7a:8edc prefixlen 64 scopeid 0x20<link>
ether 00:26:b9:7a:8e:dc txqueuelen 1000 (Ethernet)
RX packets 345680 bytes 120289854 (114.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 262220 bytes 152964543 (145.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
root@proxmox:~#
</file>
==== Utilitaire locate ====
Pour la recherche de fichiers.
<file>
root@proxmox:~# apt-get install locate
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following NEW packages will be installed:
locate
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 270 kB of archives.
After this operation, 431 kB of additional disk space will be used.
Get:1 http://ftp.ca.debian.org/debian buster/main amd64 locate amd64 4.6.0+git+20190209-2 [270 kB]
Fetched 270 kB in 0s (1,018 kB/s)
Selecting previously unselected package locate.
(Reading database … 44125 files and directories currently installed.)
Preparing to unpack …/locate_4.6.0+git+20190209-2_amd64.deb …
Unpacking locate (4.6.0+git+20190209-2) …
Setting up locate (4.6.0+git+20190209-2) …
Processing triggers for man-db (2.8.5-2) …
root@proxmox:~#
</file>
=== Exemple ===
On met à jour la BD de locate (peut prendre un certain temps lors de la première mise à jour).
<file>
root@proxmox:~# updatedb
root@proxmox:~#
</file>
Recherche du fichier os-release.
<file>
root@proxmox:~# locate os-release
/etc/os-release
/usr/lib/os-release
/usr/share/man/man5/os-release.5.gz
root@proxmox:~#
</file>
==== Midnight Commander (mc) ====
<file>
root@proxmox:~# apt-get install -y mc
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
libgpm2 mc-data unzip
Suggested packages:
gpm arj catdvi | texlive-binaries dbview djvulibre-bin epub-utils gv imagemagick
libaspell-dev odt2txt poppler-utils python-boto python-tz xpdf | pdf-viewer zip
The following NEW packages will be installed:
libgpm2 mc mc-data unzip
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,015 kB of archives.
After this operation, 8,159 kB of additional disk space will be used.
Get:1 http://ftp.ca.debian.org/debian buster/main amd64 libgpm2 amd64 1.20.7-5 [35.1 kB]
Get:2 http://ftp.ca.debian.org/debian buster/main amd64 mc-data all 3:4.8.22-1 [1,292 kB]
Get:3 http://ftp.ca.debian.org/debian buster/main amd64 mc amd64 3:4.8.22-1 [516 kB]
Get:4 http://ftp.ca.debian.org/debian buster/main amd64 unzip amd64 6.0-23+deb10u1 [172 kB]
Fetched 2,015 kB in 1s (1,589 kB/s)
Selecting previously unselected package libgpm2:amd64.
(Reading database … 44139 files and directories currently installed.)
Preparing to unpack …/libgpm2_1.20.7-5_amd64.deb …
Unpacking libgpm2:amd64 (1.20.7-5) …
Selecting previously unselected package mc-data.
Preparing to unpack …/mc-data_3%3a4.8.22-1_all.deb …
Unpacking mc-data (3:4.8.22-1) …
Selecting previously unselected package mc.
Preparing to unpack …/mc_3%3a4.8.22-1_amd64.deb …
Unpacking mc (3:4.8.22-1) …
Selecting previously unselected package unzip.
Preparing to unpack …/unzip_6.0-23+deb10u1_amd64.deb …
Unpacking unzip (6.0-23+deb10u1) …
Setting up libgpm2:amd64 (1.20.7-5) …
Setting up unzip (6.0-23+deb10u1) …
Setting up mc-data (3:4.8.22-1) …
Setting up mc (3:4.8.22-1) …
update-alternatives: using /usr/bin/mcview to provide /usr/bin/view (view) in auto mode
Processing triggers for man-db (2.8.5-2) …
Processing triggers for mime-support (3.62) …
Processing triggers for libc-bin (2.28-10) …
root@proxmox:~#
</file>
=== Exemple ===
[F-10] pour quitter.
===== Ajour d'un nouvel administrateur =====
La commande à la ligne pour créer, modifier, etc… un utilisateur est pveum (Proxmox VE User Manager).
On crée l'utilisateur michelandre.
<file>
root@proxmox:~# pveum useradd michelandre@pve -comment “Créateur”
root@proxmox:~#
</file>
On lui donne un mot de passe.
<file>
root@proxmox:~# pveum passwd michelandre@pve
Enter new password: *
Retype new password: *
root@proxmox:~#
</file>
On crée un nouveau groupe.
<file>
root@proxmox:~# pveum groupadd administrateur -comment “Administrateur PVE”
root@proxmox:~#
</file>
On accorde au nouveau groupe administrateur les mêmes permissions que celles du rôle Administrator.
<file>
root@proxmox:~# pveum aclmod / -group administrateur -role Administrator
root@proxmox:~#
</file>
On ajoute michelandre au nouveau groupe administrateur.
<file>
root@proxmox:~# pveum usermod michelandre@pve -group administrateur
root@proxmox:~#
</file>
==== Vérification ====
Permissions
Le nouveau groupe administrateur est présent et il possède les permissions du rôle Administrator.
Utilisateurs
- Le nouvel utilisateur michelandre est aussi présent.
- L'utilisateur root a été crée lors de l'installation de PVE.
Nous sommes connecté et le groupe administrateur possède les mêmes permissions que celles du rôle Administrator.
Victoire totale, hissons la bannière de la victoire.
—-
====== Crédits ======
© 2018-2019 RF-232
Auteur: Michel-André.
Remerciement: Tous les contributeurs GNU/GPL.
Intégré par: Michel-André Robillard CLP.
Contact: michelandre at micronator.org.
Répertoire de ce document: RF-232_Cours_NethServer-201-06_ProxmoxVE_2019-09-17_14h33.odt
Historique des modifications:
^Version^Date^Commentaire^Auteur|
|0.0.1|2018-11-15|Début pour SME-9.2.|Michel-André|
|0.0.2|2019-09-09|Ajustements pour NethServer et DokuWiki.|Michel-André|
|012345678901| | |012345678901|
<html><hr style=“width:50%; margin: 0 auto;”></html>
===== AVIS DE NON-RESPONSABILITÉ =====
Ce document est uniquement destiné à informer. Les informations, ainsi que les contenus et fonctionnalités de ce document sont fournis sans engagement et peuvent être modifiés à tout moment. RF‑232 n'offre aucune garantie quant à l'actualité, la conformité, l'exhaustivité, la qualité et la durabilité des informations, contenus et fonctionnalités de ce document. L'accès et l'utilisation de ce document se font sous la seule responsabilité du lecteur ou de l'utilisateur.
RF‑232 ne peut être tenu pour responsable de dommages de quelque nature que ce soit, y compris des dommages directs ou indirects, ainsi que des dommages consécutifs résultant de l'accès ou de l'utilisation de ce document ou de son contenu.
Chaque internaute doit prendre toutes les mesures appropriées (mettre à jour régulièrement son logiciel antivirus, ne pas ouvrir des documents suspects de source douteuse ou non connue) de façon à protéger le contenu de son ordinateur de la contamination d'éventuels virus circulant sur la Toile.
Toute reproduction interdite
Vous reconnaissez et acceptez que tout le contenu de ce document, incluant mais sans s’y limiter, le texte et les images, sont protégés par le droit d’auteur, les marques de commerce, les marques de service, les brevets, les secrets industriels et les autres droits de propriété intellectuelle. Sauf autorisation expresse de RF-232, vous acceptez de ne pas vendre, délivrer une licence, louer, modifier, distribuer, copier, reproduire, transmettre, afficher publiquement, exécuter en public, publier, adapter, éditer ou créer d’oeuvres dérivées de ce document et de son contenu.
==== Avertissement====
Bien que nous utilisions ici un vocabulaire issu des techniques informatiques, nous ne prétendons nullement à la précision technique de tous nos propos dans ce domaine.
Référence: https://fr.wikipedia.org/wiki/Fully_qualified_domain_name.
Référence:https://fr.wikipedia.org/wiki/Promiscuous_mode.
Virtio est une interface de programmation du Noyau Linux utile aux machines virtuelles.
Problème
Les machines virtuelles, pour des raisons de performance, tendent de plus en plus à devenir des hyperviseurs afin d'accélérer le transit des données entre l'hôte et les invités en présentant au système d'exploitation invité un matériel virtuel nécessitant un pilote spécifique. Ceci contrairement aux machines virtuelles classiques qui simulent la présence d'un matériel existant réellement, généralement répandu, pour lequel le système invité a déjà un pilote.
La multiplication des hyperviseurs a entraîné une multiplication dans les mêmes proportions des pilotes nécessaires, des pilotes qui, sous Linux, devaient être adaptés à chaque version du noyau. Virtio tente de répondre à ce problème en mettant en œuvre directement dans la branche officielle du noyau Linux une interface de programmation dédiée aux pilotes de périphériques de machines virtuelles.
Fonctionnement
L'interface de programmation de Virtio est très minimaliste, toutes les communications entre l'hyperviseur et le noyau invité se font au travers d'une file d'attente FIFO1. Des pilotes, eux aussi présents dans le noyau, se basent sur cette interface; il existe à l'heure actuelle des pilotes pour une carte réseau et un contrôleur de disques, utilisés par KVM. Les développeurs de KVM ont également écrit un pilote réseau pour Microsoft Windows XP et 2000 mettant en œuvre Virtio.
Référence: https://fr.wikipedia.org/wiki/Virtio.
Référence: https://fr.wikipedia.org/wiki/Paravirtualisation.
Référence: http://www.granddictionnaire.com/ficheOqlf.aspx?Id_Fiche=8364596.
Référence:https://fr.wikipedia.org/wiki/Radvd.
Référence: https://en.wikipedia.org/wiki/Smart_host.