janvier 8

Migration Serveur Physique vers VM Proxmox

📋 Informations du Serveur Source

  • Serveur : serveur physique ( dans mon cas : chez OVH )
  • OS : Debian xx
  • Disque : 2 To (1,8 To partition principale + 511 Mo swap)
  • Utilisation : ~15 Go seulement actuellement
  • SSH : Port 22
  • Type de boot : BIOS Legacy

🎯 Objectif

Cloner le serveur physique OVH vers une machine virtuelle Proxmox , en utilisant rsync pour ne transférer que les données utilisées.


✅ Étape 1 : Création de la VM sur Proxmox

  1. Créer une nouvelle VM (ex: VM ID 100)
  2. Configuration :
  3. Disque : 100-200 Go (largement suffisant pour 15 Go de données)
  4. Type de boot : BIOS
  5. RAM/CPU : 2 CPU – 2Go RAM
  6. Attacher une ISO Debian Live
  7. Démarrer la VM sur le Live CD

🔧 Étape 2 : Préparation du Disque dans la VM

Dans la console de la VM (Live CD) :

# Créer les partitions
sudo fdisk /dev/sda
# Commandes : n, p, 1, Entrée, +95G, w
# Puis : n, p, 2, Entrée, Entrée, t, 2, 82, w

# Formater les partitions
sudo mkfs.ext4 /dev/sda1
sudo mkswap /dev/sda2

# Monter la partition principale
sudo mkdir -p /mnt/restore
sudo mount /dev/sda1 /mnt/restore

# Installer les outils nécessaires
sudo apt-get update
sudo apt-get install -y rsync pv openssh-client


📦 Étape 3 : Synchronisation des Données avec rsync

Depuis la VM, récupérer les données du serveur OVH :

# Tester la connexion SSH (port 22 ou autre selon config)
ssh user@IP_SERVEUR_OVH

# Lancer la synchronisation rsync
cd /mnt/restore
sudo rsync -aAXvP --delete \
  -e "ssh -p 22" \
  --exclude=/dev/* \
  --exclude=/proc/* \
  --exclude=/sys/* \
  --exclude=/tmp/* \
  --exclude=/run/* \
  --exclude=/mnt/* \
  --exclude=/media/* \
  --exclude=/lost+found \
  --exclude=/var/cache/* \
  --exclude=/var/tmp/* \
  user@IP_SERVEUR_OVH:/ /mnt/restore/

Options rsync utilisées :
-a : Mode archive (préserve permissions, liens symboliques, timestamps, etc.)
-A : Préserve les ACLs
-X : Préserve les attributs étendus
-v : Mode verbose
-P : Affiche la progression et permet la reprise
–delete : Synchronise les suppressions –
-e « ssh -p 22 » : Utilise SSH sur le port différent que 22

 


🗂️ Étape 4 : Finalisation du Système

4.1 – Recréer les répertoires système

cd /mnt/restore
sudo mkdir -p proc sys dev tmp run mnt media

4.2 – Configuration du fstab

# Monter pour le chroot
sudo mount --bind /dev /mnt/restore/dev
sudo mount --bind /proc /mnt/restore/proc
sudo mount --bind /sys /mnt/restore/sys

# Entrer dans le système cloné
sudo chroot /mnt/restore

# Récupérer les UUID des partitions
blkid /dev/sda1
blkid /dev/sda2

# Éditer le fstab
nano /etc/fstab

Contenu du /etc/fstab :

UUID=VOTRE_UUID_SDA1  /     ext4  errors=remount-ro  0  1
UUID=VOTRE_UUID_SDA2  none  swap  sw                 0  0


🚀 Étape 5 : Installation de GRUB

5.1 – Installer GRUB depuis le Live CD

# Sortir du chroot si vous y êtes
exit

# Installer les paquets GRUB dans le Live CD
sudo apt-get update
sudo apt-get install -y grub-pc-bin grub-common grub-pc

# Installer GRUB sur le disque
sudo grub-install --target=i386-pc --boot-directory=/mnt/restore/boot --recheck --force /dev/sda

Note : –target=i386-pc pour BIOS / Legacy

5.2 – Générer la configuration GRUB

# Re-rentrer en chroot
sudo mount --bind /dev /mnt/restore/dev
sudo mount --bind /proc /mnt/restore/proc
sudo mount --bind /sys /mnt/restore/sys
sudo chroot /mnt/restore

# Générer la config GRUB
update-grub

# Vérifier que tout est ok
ls -la /boot/grub/grub.cfg
cat /boot/grub/grub.cfg | grep menuentry


🔄 Étape 6 : Modifications Post-Migration (Optionnel)

Installation de paquets supplémentaires

Dans le chroot, vous pouvez installer des paquets :

# Agent Proxmox (recommandé)
apt-get update
apt-get install -y qemu-guest-agent
systemctl enable qemu-guest-agent

# Autres paquets utiles
apt-get install -y openssh-server sudo curl

Changement de kernel (optionnel)

# Installer un kernel plus récent depuis les backports ( xxx : distrib , par ex trixie)
echo "deb http://deb.debian.org/debian xxxx-backports main" >> /etc/apt/sources.list
apt-get update
apt-get install -y -t xxxx-backports linux-image-amd64

# Regénérer GRUB
update-grub

Désactiver e2fsck au boot

Méthode 1 – via fstab (déjà fait ci-dessus) : Mettre 0 en dernier champ dans /etc/fstab

Méthode 2 – via tune2fs :

tune2fs -c 0 -i 0 /dev/sda1


🎬 Étape 7 : Premier Démarrage

7.1 – Nettoyage et démontage

# Sortir du chroot
exit

# Démonter proprement
sudo umount /mnt/restore/dev
sudo umount /mnt/restore/proc
sudo umount /mnt/restore/sys
sudo umount /mnt/restore

# Redémarrer
sudo reboot

7.2 – Configuration Proxmox avant le boot

Important : 1. Dans l’interface Proxmox, aller dans les options de la VM 2. Retirer l’ISO du lecteur CD/DVD 3. Vérifier l’ordre de boot (Hard Disk en premier) 4. Démarrer la VM

7.3 – Vérifications post-boot

Une fois la VM démarrée :

# Vérifier le système de fichiers
df -h

# Vérifier le swap
swapon -s

# Vérifier le kernel
uname -a

# Vérifier les services
systemctl status

# Activer le swap si nécessaire
swapon -a


🔍 Dépannage

La VM ne boot pas

  1. Redémarrer avec l’ISO Live
  2. Remonter le système :
sudo mount /dev/sda1 /mnt/restore
sudo mount --bind /dev /mnt/restore/dev
sudo mount --bind /proc /mnt/restore/proc
sudo mount --bind /sys /mnt/restore/sys
sudo chroot /mnt/restore

  1. Réinstaller GRUB :
grub-install --force /dev/sda
update-grub

Erreur « unknown filesystem » avec grub-probe

Ignorez l’avertissement si update-grub se termine quand même avec succès. Sinon, créez manuellement le grub.cfg (voir section installation GRUB).

Réseau ne fonctionne pas dans le chroot

# Sortir du chroot
exit
# Copier la configuration DNS
sudo cp /etc/resolv.conf /mnt/restore/etc/resolv.conf
# Re-rentrer en chroot
sudo chroot /mnt/restore


✨ Avantages de cette Méthode

✅ Rapide : Seulement 15 Go transférés au lieu de 2 To
✅ Sans interruption : Le serveur OVH reste en production pendant la migration
✅ Sécurisé : Transfert via SSH chiffré
✅ Reprise possible : rsync permet de reprendre en cas d’interruption
✅ Préserve tout : Liens symboliques, permissions, ACLs, attributs
✅ Testable : Possibilité de tester la VM avant de couper l’ancien serveur


📝 Notes Importantes

  • Le serveur source reste accessible pendant toute la migration
  • La VM peut être testée avant de désactiver le serveur OVH
  • Les données peuvent être re-synchronisées avec rsync si nécessaire
  • Pensez à installer qemu-guest-agent pour une meilleure intégration Proxmox

🎓 Ce que rsync préserve

  • ✅ Liens symboliques
  • ✅ Liens durs (hardlinks)
  • ✅ Permissions (chmod)
  • ✅ Propriétaires (chown)
  • ✅ Timestamps
  • ✅ Attributs étendus
  • ✅ ACLs
  • ✅ Fichiers spéciaux (devices)
Catégorie : Bare Metal, Debian, Linux, Proxmox, VM | Commentaires fermés sur Migration Serveur Physique vers VM Proxmox
janvier 8

/run en tmpfs

De plus en plus le dossier /run est en tmpfs , donc se détruit lors d’un reboot ,j’ai eu récemment le cas avec php-fpm et mariadb , pour solutionner le pb :
il suffit de créer un fichier conf dans /etc/tmpfiles.d
la structure du fichier :
#Type Path Mode UID GID Age Argument

exemples :
mysqld.conf
d /run/mysqld 0755 mysql mysql –

php-fpm.conf
d /var/run/php 0755 www-data www-data –

Catégorie : Debian, Linux | Commentaires fermés sur /run en tmpfs
janvier 2

Durcir la configuration SSH

dans le fichier /etc/ssh/ssh_config.d/ciphers.conf , ajoutez :

Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.com

KexAlgorithms curve25519-sha256,diffie-hellman-group-exchange-sha256

macs umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1

Catégorie : Linux, Non classé, SSH | Commentaires fermés sur Durcir la configuration SSH
juin 17

gérer les VLAN depuis une seule Interface réseau

je veux gérer les vlans depuis le système , il y a une seule carte réseau .
je veux une interface pour le lan (sans vlan ) ,  une interface pour le vlan 100 une interface pour le vlan 200 un interface pour le vlan 300

sudo apt install vlan

on édite le fichier /etc/network/interfaces :

auto eth0.100
iface eth0.100 inet static
address <adresse IP pour VLAN 100>
netmask <masque de sous-réseau pour VLAN 100>

auto eth0.200
face eth0.200 inet static
address <adresse IP pour VLAN 200>
netmask <masque de sous-réseau pour VLAN 200>

auto eth0.300
iface eth0.300 inet static
address <adresse IP pour VLAN 300>
netmask <masque de sous-réseau pour VLAN 300>

Catégorie : Debian, Linux, Réseau | Commentaires fermés sur gérer les VLAN depuis une seule Interface réseau
juin 17

SSH et HTTPS sur port 443

Pour des raisons de sécurités , je ne veux pas que ssh soit accessible sur le port 22 , mais sur le 443 .
Problème le port 443 est déjà utilisé par HTTPS ( apache , nginx , ….. )
Solution , utiliser sslh
sudo apt install sslh

Ensuite on vas modifier ssh pour qu’il écoute seulement sur l’adr 127.0.0.1 , en modifiant /etc/ssh/sshd_config :
ListenAddress 127.0.0.1

Maintenant on remplace le contenu de  /etc/default/sslh par :
DAEMON=/usr/sbin/sslh
DAEMON_OPTS="-p 0.0.0.0:443 --ssh 127.0.0.1:22 --tls 127.0.0.1:4443"

Tout ce qui arrive sur l’adr de la machine avec le port 443 , en TCP est redirigé sur 127.0.0.1:22 , en HTTPS redirige vers 127.0.0.1:4443
Le serveur web apache / nginx doit écouter 4443 en https

Catégorie : Debian, Linux, SSH | Commentaires fermés sur SSH et HTTPS sur port 443