Post

Lenovo ThinkCentre M93p 10AB - Proxmox V9

Lenovo ThinkCentre M93p 10AB - Proxmox V9

Proxmox VE est une plate-forme open-source complète pour la virtualisation d’entreprise. Grâce à l’interface Web intégrée, vous pouvez facilement gérer les machines virtuelles, le stockage, la mise en réseau, …

Machine Lenovo ThinkCentre M93p


Lenovo ThinkCentre M93p 10AB (documentation)

  • Processeur Intel Core i7-4765T 2.00 GHz (jusqu’à 3.00 GHz en Turbo Boost/4 Core 8 Threads)
  • Carte vidéo intégrée Intel HD Graphics 4600
  • Mémoire RAM 16 Go DDR3 SO-DIMM 2x8Go
  • Disque SSD 1 To SATA 2,5”
  • Connexions :
    • Avant :
      • 2 x USB 3.0.
      • 1 x casque.
      • 1 microphone.
    • Arrière :
      • 3 x USB 2.0.
      • 1 x VGA (vidéo).
      • 1 x DisplayPort (audio et vidéo).
      • 1 port Ethernet LAN RJ-45 10/100/1000 Mbps
      • 1 alimentation (alimentation externe).
  • Intérieures:
    • 2 emplacements mémoire DDR3 SO-DIMM (disposition de la RAM variable).
    • 1 x SATA (occupé).
  • Dimensions de l’ordinateur : 17,9 x 18,2 x 3,5 cm.
  • Poids de l’ordinateur : 1,3 kg.

Connecter la machine sur le réseau 192.168.0.0/24

Proxmox

Proxmox V9.0: Modernisation générale de la base, avec un passage à Debian 13 (Trixie) et au noyau Linux 6.14.8 - 2 par défaut. Cette base s’accompagne de QEMU 10.0.2, de LXC 6.0.4 et d’OpenZFS 2.3.3.

Liens

Installation via ISO

Installer ISO sur clé usb /dev/sdx

1
sudo dd if=proxmox-ve_9.0-1.iso of=/dev/sdx bs=4M

Démarrer la machine Lenovo sur la clé USB et procéder à l’installation de Proxmox (F12 pour accès menu démarrage)

Interface : eno1
FQDN : pve.home.arpa
IP address: 192.168.0.215/24
Gateway: 192.168.0.254
DNS: 192.168.0.205

Redémarage à la fin de l’installation

Proxmox Web

Accès lien https://192.168.0.215:8006

Pour accéder à l’interface, connectez-vous en tant que root et fournissez le mot de passe que vous définissez lors de l’installation de Proxmox.

Une boîte de dialogue apparaît en disant qu’il n’y a pas d’abonnement valide pour le serveur. Proxmox offre un service complémentaire optionnel auquel vous pouvez vous abonner. Pour ignorer le message, cliquez sur OK.

En désactivant le dépôt «entreprise»

Créer un nouvel utilisateur

Debian, créer un utlisateur “leno”
Accéder au shell pve –> Shell ou par une connexion ssh ``ssh root@192.168.0.215`

Utiliser la commande adduser pour créer un nouvel utilisateur

1
adduser leno

Pour créer un nouvel utilisateur dans Proxmox, procédez comme suit:

  • Connectez-vous à l’interface Web Proxmox.
  • Cliquez sur le nœud “Centre de données” dans la vue arborescence.
  • Sélectionnez l’onglet “Permissions –> Utilisateurs”. * Cliquez sur le bouton “Ajouter” pour créer un nouvel utilisateur. * Entrez les détails de l’utilisateur, y compris le nom d’utilisateur et l’adresse e-mail. * “Mot de passe” pour le créer

Gestion des rôles d’utilisateur
Proxmox utilise le contrôle d’accès basé sur les rôles pour gérer les autorisations des utilisateurs. Voici les rôles intégrés dans Proxmox:

  • Administrateur: Accès complet à toutes les ressources et paramètres.
  • VM User: Accès limité pour gérer les machines virtuelles.
  • No Access: Pas d’accès à des ressources.

Vous pouvez également créer des rôles personnalisés avec des autorisations spécifiques adaptées à vos besoins.

  • Cliquez sur l’onglet “Permissions”.
  • Attribuez l’utilisateur aux rôles souhaités ou aux rôles personnalisés.


Proxmox OpenSSH avec clé

OpenSSH
OpenSSH

Générer une paire de clé sur l'ordinateur de bureau PC1
Générer une paire de clé curve25519-sha256 (ECDH avec Curve25519 et SHA2) pour une liaison SSH avec le serveur.

1
2
ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/m93p-ed25519
chmod 600 /home/yann/.ssh/m93p-ed25519

Envoyer les clés publiques sur le serveur leno

1
ssh-copy-id -i ~/.ssh/m93p-ed25519.pub leno@192.168.0.215

On se connecte sur le serveur proxmox debian 13

1
ssh leno@192.168.0.215

Installer sudo

1
2
su -
apt install sudo

Supprimer l’accès root

1
nano /etc/ssh/sshd_config
1
PermitRootLogin no

Créer la configuration serveur SSH pour leno

1
nano /etc/ssh/sshd_config.d/leno.conf

Ajouter

1
2
Port = 55215
PasswordAuthentication no

Relancer le serveur

1
systemctl restart sshd

Connexion Proxmox via SSH depuis poste PC1

1
ssh -p 55215 -i ~/.ssh/m93p-ed25519 leno@192.168.0.215

Modifier le mot de passe root si nécessaire

1
2
sudo -s
passwd root

Ajoutez la recherche d’historique de la ligne de commande au terminal
Se connecter en utilisateur debian
Tapez un début de commande précédent, puis utilisez shift + up (flèche haut) pour rechercher l’historique filtré avec le début de la commande.

1
2
3
# Global, tout utilisateur
echo '"\e[1;2A": history-search-backward' | sudo tee -a /etc/inputrc
echo '"\e[1;2B": history-search-forward' | sudo tee -a /etc/inputrc

Motd
Effacer et créer motd

1
sudo rm /etc/motd && sudo nano /etc/motd
1
2
3
4
5
6
7
8
9
10
11
12
13
  _                                __  __  ___  ____      
 | |    ___  _ _   ___ __ __ ___  |  \/  |/ _ \|__ / _ __ 
 | |__ / -_)| ' \ / _ \\ V // _ \ | |\/| |\_, / |_ \| '_ \
 |____|\___||_||_|\___/ \_/ \___/ |_|  |_| /_/ |___/| .__/
  ___                                  __   __ ___  |_|   
 | _ \ _ _  ___ __ __ _ __   ___ __ __ \ \ / // _ \       
 |  _/| '_|/ _ \\ \ /| '  \ / _ \\ \ /  \ V / \_, /       
 |_|  |_|  \___//_\_\|_|_|_|\___//_\_\   \_/   /_/        
  _  ___  ___     _   __  ___     __     ___  _  ___      
 / |/ _ \|_  )   / | / / ( _ )   /  \   |_  )/ || __|     
 | |\_, / / /  _ | |/ _ \/ _ \ _| () |_  / / | ||__ \     
 |_| /_/ /___|(_)|_|\___/\___/(_)\__/(_)/___||_||___/     
                                                          

Proxmox - Réseau

IPV6

FreeBox
Se connecter sur la freebox, paramètres avancés -> Configuration IPV6
Relever Adresse IPv6 lien local: fe80::8e97:eaff:fe39:66d6
Le préfixe principal ipv6: 2a01:e0a:9c8:2080::/64

Ip V6 statique

Route de lien local. Avec le protocole IPv6, la notion de trafic de diffusion (broadcast) disparaît. C’est le trafic anycast associé au Neighbor Discovery Protocol qui permet de contacter les hôtes du voisinage réseau. Pour que les messages ICMPv6 du protocole NDP puissent être échangés, il est nécessaire de disposer d’une route vers le réseau auquel une interface active est raccordé. Cette route utilise toujours le préfixe fe80::/64.

Relever la route de lien local IPV6: ip address show vmbr0 |grep "inet6 fe80"
inet6 fe80::223:24ff:fe6b:52ff/64 scope link proto kernel_ll

On en déduit l’adresse IPV6 statique:
Le préfixe principal ipv6 + la route de lien local IPV6 2a01:e0a:9c8:2080: + 223:24ff:fe6b:52ff

Installer proxmox 8 avec ipv6 https://www.mathieu-gilloots.fr/posts/2023/installation-proxmox-8-avec-ipv6-ovh/

pve –> Réseau –> vmbr0 –> Editer

IPv6/CIDR: 2a01:e0a:9c8:2080:223:24ff:fe6b:52ff/64
Passerelle Ipv6: fe80::8e97:eaff:fe39:66d6

Puis cliquer sur “Appliquer la configuration”

https://[2a01:e0a:9c8:2080:223:24ff:fe6b:52ff]:8006

Proxmox - Authentification

Authentification 2FA TOTP

Se connecter à l’interface Web Proxmox avec utilisateur “leno”

Ajout authentification à 2 facteurs
“Centre de données,Permissions et Double Facteur, Ajouter” Code TOTP

  1. choix utilisateur: leno@pam
  2. Description: Authentification 2FA TOTP
  3. scanner le code avec application mobile AEGIS ou copier le secret dans l’application keepssxc
  4. Sair le code TOTP et le mot de passe


Authentification TOTP ajouter à l’utilisateur leno

Authentification WebAuthn

vous devrez avoir une instance Proxmox qui a un certificat SSL attaché.

Configuration des paramètres WebAuthn
Mettre à jour les paramètres WebAuthn. Accés: “Centre de données > Options” pve-webauthn01.png


Si vous accédez correctement à Proxmox via un domaine, vous pouvez appuyer sur “Remplissage automatique” pour remplir vos coordonnées sinon saisir le lien dans “Origine” avant.
Ensuite, appuyez sur OK.

“Centre de données,Permissions et Double Facteur, Ajouter” WebAuthn

Sur Keepassxc

Cliquer sur Enregistrer

Résultat

Authelia OpenID (INOPERANT)

Authelia base LLDAP

  • Ajouter un groupe proxmox
  • Créer utilisateur leno et l’ajouter un groupe proxmox

Se connecter sur le serveur cwwk qui héberge authelia

Créer le secret

1
authelia crypto hash generate pbkdf2 --variant sha512 --random --random.length 72 --random.charset rfc3986

Résultat commande ci-dessus

1
2
Random Password: bSrrtuz..........dzRcL
Digest: $pbkdf2-sha512$31..............o51CBQ

Configuration authelia
Authelia OpenID Proxmox

Editer la configuration authelia /etc/authelia/configuration.yml
Se rendre dans la rubrique oidc clients

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
identity_providers:
  oidc:

    clients:

# ajouter ce qui suit

      - client_id: 'proxmox'
        client_name: 'Proxmox'
        client_secret: '$pbkdf2-sha512$310...yp4UgmIN1/fBbmXGJuA'  # The digest of 'insecure_secret
        public: false
        authorization_policy: 'two_factor'
        require_pkce: true
        pkce_challenge_method: 'S256'
        redirect_uris:
          - 'https://pve.home.arpa:8006'
        scopes:
          - 'openid'
          - 'profile'
          - 'email'
          - 'groups'
        response_types:
          - 'code'
        grant_types:
          - 'authorization_code'
        access_token_signed_response_alg: 'none'
        userinfo_signed_response_alg: 'none'
        token_endpoint_auth_method: 'client_secret_basic'

Redémarrer authelia: sudo systemctl restart authelia

Web GUI

Configurer Proxmox Virtual Environment pour utiliser Authelia en tant que fournisseur OpenID Connect

  1. Centre de données
  2. Permissions
  3. Royaumes
  4. Ajouter un “serveur OpenID Connect”
  5. Configurez les options suivantes:
    • URL de l’émetteur: https://auth.example.com
    • Royaume: authelia
    • ID du client: proxmox
    • Clé du client: insecure_secret
    • Demande de nom d’utilisateur: Default (subject)
    • Champs d’application: openid email profile groups
    • Autocréer des utilisateurs: Activez si vous souhaitez que les utilisateurs soient automatiquement créés dans [Proxmox].
    • Autocréer des groupes: Activez si vous voulez que les groupes soient automatiquement créés dans [Proxmox].
    • Revendication de groupes: Réglé sur groupspour ajouter des utilisateurs à des groupes proxmox existants.

Proxmox - Stockage

NFS

Ajouter un dossier partagé NFS pour la sauvegarde nommé pve-sav


Idem avec un dossier nommé pve-share

Proxmox - Certificats SSL

Local - pve.home.arpa

Domaine home.arpa

Certificat domaine local home.arpa

1
2
sudo cp /mnt/pve/pve-share/homearpaCA.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

pve –> Certificats, Téléverser un certificat personnalisé
A partir d’un fichier clé:
A partir d’un fichier certificat:

On peut maintenant se connecter à la’adresse https://pve.home.arpa:8006 avec un certificat valide

Let’s Encrypt - pve.rnmkcy.eu

Objectif avoir un certificat valide lorsque l’on ce connecte à son proxmox

Installer let’s encrypt sur son serveur PROXMOX pour avoir un certificat valide, même si le serveur n’est pas sur internet en front.

Prérequis

  • Un nom domaine OVH : rnmkcy.eu qui pointe vers votre ip public
  • Un serveur PROXMOX, avec vos machines virtuelle accessible sur son lan via : https://192.168.0.215:8006

1 - Création d’un compte pour la génération des certificats

Centre de données –>ACME –> Comptes –> Ajouter

Créer un compte pour gérer les certificats sur notre serveur PROXMOX

2 - Création des clés OVH

Création d’une clé et d’un code secret pour une application : How to use OVH domain api

3 - Greffons de défi (plugin)

Ajouter les clés OVH dans PROXMOX : Dans le menu suivant : Centre de données –>ACME –> Greffons de défi –> Ajouter  

Identifiant du greffon : OVHAPI Délai de validation : on laisse par defaut API DNS : sélectionner OVH OVH_AK = coller l’ APPLICATION  KEY du site OVH réalisé ci-dessus OVH_AS = coller l’ APPLICATION  Secret du site OVH réalisé ci-dessus OVH_CK =  coller le  CONSSUMER KEY du site OVH réalisé ci-dessus OVH_END_POINT = laisser ovh-eu

4 - Activation du plugin ACME

Activation du plugin ACME qui vas utiliser les api OVH pour allé écrire dans les DNS OVH

pve –> Certificats –> ACME – > Ajouter

Type de défi : DNS
Greffon : Choisir le plugin précédemment créer
Domaine : positionner votre domaine ovh.

Générer le certificat maintenant

Attendre la fin de l’opération

On peut maintenant se connecter à la’adresse https://pve.rnmkcy.eu:8006 avec un certificat valide

ATTENTION: Le domaine pve.rnmkcy.eu pointe sur une adresse IPV6 UNIQUEMENT et si un VPN est actif sur le poste ou le navigateur, PAS DE CONNEXION POSSIBLE car les VPN sont IPV4

Proxmox trucs et astuces

Firefox - Consoles NOVNC Proxmox

corriger le layout clavier azerty

Quand on utilise Firefox (ou ses forks), avec l’activation d’options renforçant la sécurité, quand on lance un bureau dans le navigateur web, on se retrouve avec un clavier en qwerty bien que le système hôte et le système invité sont bien en disposition azerty.

Problème constaté avec Proxmox et les consoles NoVNC
Le problème est lié au paramétrage de protection contre le Fingerprinting.

Deux solutions possibles :

  1. Désactiver le paramétrage ResistFingerprinting
    • Ajouter des exceptions dans le ResistFingerprinting

Firefox, option non disponible dans l’interface graphique

1
about:config

Il est possible (mais c’est un peu brutal) de désactiver ResistFingerprinting en passant la clé privacy.resistFingerprinting à false :

Le mieux, c’est de laisser la clé privacy.resistFingerprinting à true et d’ajouter les sites problématiques dans la clé privacy.resistFingerprinting.exemptedDomains

Les domaines ajoutés, séparés par une virgule: *.home.arpa, *.rnmkcy.eu

Le clavier est en azerty (pas besoin de redémarrer Firefox)

Importer un fichier ISO dans Proxmox

Afin de pouvoir installer les systèmes d’exploitation sur nos différentes machines virtuelles, nous devons au préalable télécharger les images système (ISO) et les importer dans Proxmox.

Les fichiers ISO sont stockés dans le dossier /var/lib/vz/template/iso/

Pour cela, Proxmox dispose d’un élément assez sympa je trouve, une sorte de banque où seront stockés toutes vos images. Procédez comme ceci :

Sélectionnez votre nœud puis le stockage (local, dans notre cas).

Cliquez sur “ISO Images”, puis sur le bouton “Upload” et recherchez l’image à importer sur votre disque local.


Répéter l’opération autant de fois que nécessaire selon la quantité d’images ISO à importer, la seule limite c’est votre espace de stockage.
Les fichiers ISO sont stockés dans le dossier /var/lib/vz/template/iso/

Cet article est sous licence CC BY 4.0 par l'auteur.