Table of Contents
DRAFT
Voici mes prises de notes lors de la préparation d'un serveur Proxmox 9.x sous Debian 13. Il y a peut être des erreurs, des approximations, et nécessite des connaissances approfondi de linux, et de la gestion des lvm pour arriver au terme de l'installation.
- Certains volumes seront chiffrés.
- L'installation se fait avec le déploiement d'un serveur OVH debian 13.
- Le volume sera déchiffré au boot du serveur, avant même que le service ssh soit ouvert. Dropbear sera utilisé, au niveau de initramfs, il permet de monter une liaison ssh éphémère pour enter le code de déverrouillage du serveur.
- Disques 2x2To en raid1 soft. J'alloue 30Go pour / , le reste sur un volume poubelle monté sur /mnt/poubelle. Il sera destiné au volume chiffré.
Copier / coller dans vim
Le copier / coller est cassé, selon le paramétrage du terminal. A tester.
echo "set clipboard+=unnamedplus" >> ~/.vimrc
Update du système et installation de quelques produits
apt update apt install dropbear-initramfs cryptsetup-initramfs
Update du système et installation de quelques produits
umount /mnt/poubelle vi /etc/fstab => enlever montage de poubelle
Un lsblk fait apparaitre le volume restant de 1.8T en raid1.
├─sda5 8:5 0 1.8T 0 part │ └─md5 9:5 0 1.8T 0 raid1 └─sdb5 8:21 0 1.8T 0 part └─md5 9:5 0 1.8T 0 raid1
On initialise le volume md5 pour le chiffement
La clef sera demandée, le volume sera effacé et chiffré. Si la clef est perdu, le volume sera perdu aussi.
cryptsetup luksFormat /dev/md5
La commande lsblk fait apparaitre md5_crypt
sda
├─sda5 8:5 0 1.8T 0 part
│ └─md5 9:5 0 1.8T 0 raid1
│ └─md5_crypt 252:0 0 1.8T 0 crypt
sdb
└─sdb5 8:21 0 1.8T 0 part
└─md5 9:5 0 1.8T 0 raid1
└─md5_crypt 252:0 0 1.8T 0 crypt
Ouverture du volume chiffré, la clef sera demandée
cryptsetup open /dev/md5 md5_crypt
Ajouter une 2eme clef
cryptsetup luksAddKey /dev/md5
Voir les clefs associées au volume + infos
cryptsetup luksDump /dev/md5
Voir l'id du volume chiffré et le mettre dans le /etc/crypttab
#Noter l'id du volume chiffré blkid /dev/md5 #On l'enregistre dans le crypttab selon le modèle ci dessous. vi /etc/crypttab md5_crypt UUID="xxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx" none luks,initramfs
LVM
Préparation du lvm pour notre volume de 1.8To.
#ajoute le disque au pv pvcreate /dev/mapper/md5_crypt #creation du vg vgcreate vg_data /dev/mapper/md5_crypt #on créé le thinpool lvcreate -l 95%FREE --thinpool tp_pool_main vg_data
#changement de nom du serveur hostnamectl set-hostname proxppov #dropbear /etc/dropbear/initramfs add : authorized_keys (ssh clef public de votre machine d'administration) /etc/initramfs-tools add : authorized_keys /etc/dropbear/initramfs/dropbear.conf add: DROPBEAR_OPTIONS="-p 2222 -s -j -k" /etc/initramfs-tools/conf.d/resume add: RESUME=none update-initramfs -c -k all
Proxmox
Mise en place du repo proxmox
cat > /etc/apt/sources.list.d/pve-install-repo.sources << EOL Types: deb URIs: http://download.proxmox.com/debian/pve Suites: trixie Components: pve-no-subscription Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg EOL wget https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg -O /usr/share/keyrings/proxmox-archive-keyring.gpg #Vérifications sha256sum /usr/share/keyrings/proxmox-archive-keyring.gpg 136673be77aba35dcce385b28737689ad64fd785a797e57897589aed08db6e45 /usr/share/keyrings/proxmox-archive-keyring.gpg md5sum /usr/share/keyrings/proxmox-archive-keyring.gpg 77c8b1166d15ce8350102ab1bca2fcbf /usr/share/keyrings/proxmox-archive-keyring.gpg
On installe Proxmox
apt modernize-sources apt update -y && apt full-upgrade -y apt install proxmox-default-kernel apt install bridge-utils net-tools
Editer le /etc/hosts
Ajouter l'ip public et le hostname du serveur.
Restart et installations
systemctl reboot apt install -y proxmox-ve ksm-control-daemon locales-all chrony libguestfs-tools
Mise en place du forwarder linux
echo 1 > /proc/sys/net/ipv4/ip_forward cat > /etc/sysctl.d/proxmox.conf << EOL net.ipv4.conf.all.rp_filter=1 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.ip_forward=1 EOF
Web Administration Proxmox
Créer un user admin en mode console
#Créer un user system linux useradd -m -g monadmin -s /bin/bash monadmin #Mettre le mot de passe passwd monadmin #Créer le user sous proxmox pveum user add monadmin@pam #Le mettre dans le group admin pveum acl modify / --user monadmin@pam --role Administrator #lister les users proxmox pveum user list #delete un user proxmox pveum user delete monuser@pam #voir les roles pveum role list
Le serveur ne dispose pas de 2 interfaces réseau. Tout se passe sur l'interface publique. Il y a moyen de faire autrement je pense. Je prend la main sur proxmox pour aller activer le firewall.
Avec un navigateur aller sur https:ip_public:8006
On rentre dans une zone à très haut risque
Voici ma solution. Ce n'est pas forcement la meilleur, il y a peut être mieux.
La configuration réseau OVH dépend de netplan. On retrouve un fichier de configuration netplan sous /etc/netplan. Pour ma part, j'y retrouve mon interface eno1. Le system dispose de 2 interfaces, eno1 et eno2 mais seul eno1 est active.
- noter la macaddress de l'interface eno1.
- on remarque que l'ip est distribuée par dhcp.
- noter la route par defaut.
# la configuration ressemble à cela
network:
version: 2
ethernets:
eno1:
match:
macaddress: "aa:bb:cc:dd:ee:ff"
addresses:
- **************************
dhcp4: true
accept-ra: false
set-name: "eno1"
routes:
- on-link: true
to: "default"
via: "*************************
- Savoir que proxmox manage /etc/network/interfaces et ne gère que des ips manuelles.
- Editer /etc/network/interfaces et mettre en place l'adresse mac de l'interface eno1
- On installe le bridge vmbr0 qui va supporter proxmox et l'interface public.
- Ce fichier est très sensible, je n'ai pas utilisé dhcp car le pve proxmox contrôle ce fichier, et mettre en dur l'ip peut éviter bien des soucis.
- On ajoute vmbr1 pour la gestion du réseau privé des vm.
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet manual
iface eno2 inet manual
auto vmbr0
iface vmbr0 inet static
address !!ip_public/24!!
gateway !!route par defaut!!
bridge-ports eno1
bridge-stp off
bridge-fd 0
bridge-hwaddr !!Adresse Mac de ino1!!
#PUBLIC
auto vmbr1
iface vmbr1 inet static
address 192.168.100.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
#PRIVATE 100
Désactiver netplan
#Attention on va perdre le réseau. #Il faut enchainer ces actions à la suite par script, dans un screen par exemple. #En cas de problème, ovh propose un netboot de rescue qui permet d'aller modifier les fichiers sur le serveur. systemctl disable systemd-networkd systemctl stop systemd-networkd systemctl disable NetworkManager systemctl stop NetworkManager systemctl enable networking systemctl start networking
Préparer le firewall proxmox
- L'idée est dans un premier temps de fixer les régles firewall du pve proxmox pour éviter de perdre l'accès SSH , l'accès à l'interface d'admin et le ping.
- Plus tard on fermera l'interface d'admin web et on changera le port ssh pour éviter les robots.
# Editer /etc/pve/firewall/cluster.fw et mettre. [OPTIONS] enable: 1 [RULES] IN Ping(ACCEPT) -i vmbr0 -log nolog # Autorise l'icmp retour IN ACCEPT -i vmbr0 -p tcp -dport 8006 -log nolog # Proxmox Web Admin IN SSH(ACCEPT) -i vmbr0 -log nolog # SSH autorisé
