« Proxmox 8 » : différence entre les versions

Aller à la navigation Aller à la recherche
3 079 octets ajoutés ,  18 août 2023
(43 versions intermédiaires par le même utilisateur non affichées)
Ligne 3 : Ligne 3 :
[[Category:virtualisation]]
[[Category:virtualisation]]


<big>'''MISE À JOUR EN COURS'''</big>
Nous allons voir comment installer proxmox 7.x sur un raid 1 logiciel (md / mdadm) avec debootstrap.
 
Nous allons voir comment installer proxmox 7.x à la main via deboostrap avec un raid logiciel (md / mdadm)


=Prérequis=
=Prérequis=
Ligne 73 : Ligne 71 :


Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de <code>--raid-devices</code> et ajouter les partitions des disques à la suite.
Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de <code>--raid-devices</code> et ajouter les partitions des disques à la suite.
Attendez que le raid soit synchronisé avant de continuer. Vous pouvez surveiller facilement cela avec la commande <code>watch cat /proc/mdstat</code>.


==Création des systèmes de fichiers==
==Création des systèmes de fichiers==
Ligne 144 : Ligne 144 :
apt install locales  
apt install locales  
dpkg-reconfigure locales
dpkg-reconfigure locales
apt install console-data console-setup-linux console-setup
apt install console-data console-setup-linux console-setup wget
dpkg-reconfigure console-data # from arch > french > latin9)
dpkg-reconfigure console-data # from arch > french > latin9)
</pre>
</pre>
Ligne 164 : Ligne 164 :


Montez la partition EFI / ESP :
Montez la partition EFI / ESP :
<pre>mount /boot/efi</pre>
<pre>
mkdir /boot/efi
mount /boot/efi
</pre>


Configurez les interfaces réseaux dans <code>/etc/network/interfaces</code> :
Configurez les interfaces réseaux dans <code>/etc/network/interfaces</code> :
Ligne 180 : Ligne 183 :
Configurez le fichier <code>/etc/hosts</code> :
Configurez le fichier <code>/etc/hosts</code> :
<pre>
<pre>
# Do not remove the following line, or various programs
# local
# that require network functionality will fail.
127.0.0.1      localhost
127.0.0.1      localhost.localdomain localhost
::1             localhost ip6-localhost ip6-loopback
ipdelamachine    proxmox.domain.tld proxmox pvelocalhost
ff02::1         ip6-allnodes
# The following lines are desirable for IPv6 capable hosts
ff02::2         ip6-allrouters
#(added automatically by netbase upgrade)
 
::1     ip6-localhost ip6-loopback
# main
feo0::0 ip6-localnet
ipdelamachine  proxmox.domain.tld proxmox pvelocalhost
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
</pre>
</pre>


Ligne 215 : Ligne 214 :
<pre>
<pre>
hostname -F /etc/hostname
hostname -F /etc/hostname
aptitude install postfix
apt install postfix
</pre>
</pre>


Ligne 221 : Ligne 220 :
<pre>apt install mdadm</pre>
<pre>apt install mdadm</pre>


Puis ajoutez la configuration de l'array :
Vérifiez si votre array root s'est bien défini automatiquement dans <code>/etc/mdadm/mdadm.conf</code>. Si ce n'est pas me cas, ajoutez la configuration de l'array manuellement :
<pre>mdadm --examine --scan >> /etc/mdadm/mdadm.conf</pre>
<pre>mdadm --examine --scan >> /etc/mdadm/mdadm.conf</pre>


Ligne 250 : Ligne 249 :
<pre>
<pre>
apt install pve-firmware
apt install pve-firmware
apt install pve-kernel-5.13 grub-efi-amd64
apt install pve-kernel-5.15 grub-efi-amd64 gdisk
</pre>
</pre>
Supprimez les paquets suivant si vous n'avez pas besoin de secureboot :
<pre>apt purge grub-efi-amd64-signed mokutil shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned</pre>


Normalement tout doit se faire avec des promps. Si ce n'était pas le cas :
Normalement tout doit se faire avec des promps. Si ce n'était pas le cas :
<pre>grub-install --bootloader-id=proxmox</pre>
<pre>grub-install --bootloader-id=proxmox</pre>


Si jamais vous utilisez un démarrage en PXE, utilisez l'argument <code>--no-nvram</code> pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE :
Si jamais vous utilisez un démarrage en PXE (c'est le cas sur un serveur OVH par exemple), utilisez l'argument <code>--no-nvram</code> pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE :
<pre>grub-install --bootloader-id=proxmox --no-nvram</pre>
<pre>grub-install --bootloader-id=proxmox --no-nvram</pre>


Etant donné que seul <code>/dev/sda1</code> est monté sur <code>/boot/efi</code>, il faut transférer manuellement les données sur <code>/dev/sdb1</code> :
Etant donné que seul <code>/dev/sda1</code> est monté sur <code>/boot/efi</code>, il faut transférer manuellement les données sur <code>/dev/sdb1</code> :
<pre>
<pre>
mount
mount /dev/sdb1 /mnt
rsync
rsync -av /boot/efi/ /mnt/
umount
umount /mnt
</pre>
</pre>


Si pour une raison quelconque, vous aviez besoin des headers du kernel :
Si pour une raison quelconque, vous aviez besoin des headers du kernel :
<pre>apt install pve-headers-5.13</pre>
<pre>apt install pve-headers-5.15</pre>


Si vous souhaitez ultérieurement reconfigurer grub-efi :
===Possibilité 2 : Partitions GPT pour BIOS OU Partitions MBR pour BIOS===
<pre>dpkg-reconfigure grub-efi-amd64</pre>
 
===Possibilité 2 : Partitions GPT pour BIOS===


<pre>
<pre>
Ligne 288 : Ligne 287 :
apt install openssh-server
apt install openssh-server
passwd
passwd
sed -i "s/PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
</pre>
</pre>


==Installation de proxmox - Redémarrage sur le kernel proxmox==
==Installation de proxmox - Vérifications finales et redémarrage sur le kernel proxmox==


Si vous avez une configuration particulière à entrer dans <code>/etc/default/grub</code>, faites le maintenant. Par exemple :
Si vous avez une configuration particulière à entrer dans <code>/etc/default/grub</code>, faites le maintenant. Par exemple :
Ligne 300 : Ligne 299 :
Puis régénérez la configuration de grub :
Puis régénérez la configuration de grub :
<pre>update-grub</pre>
<pre>update-grub</pre>
Vous pouvez vérifier que votre fstab est valide avec :
<pre>findmnt --verify --verbose</pre>


Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier
Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier
Ligne 317 : Ligne 319 :
==Installation de ifupdown2==
==Installation de ifupdown2==


Le paquet <code>ifupdown2</code> est en voit de devenir le remplaçant officiel de <code>ifupdown</code> pour proxmox.
Le paquet <code>ifupdown2</code> est en voie de devenir le remplaçant officiel de <code>ifupdown</code> pour proxmox.


<pre>
<pre>
Ligne 324 : Ligne 326 :
systemctl enable networking
systemctl enable networking
</pre>
</pre>
Vérifiez si le fichier <code>/etc/network/interfaces.new</code> est cohérent avec votre configuration.


Pour vérifier que votre configuration est fonctionnelle : lancez <code>ifquery -a</code>
Pour vérifier que votre configuration est fonctionnelle : lancez <code>ifquery -a</code>
Ligne 347 : Ligne 347 :
         address xxxxx/24
         address xxxxx/24
         gateway xxxx
         gateway xxxx
        hwaddress AA:BB:CC:11:22:33
         bridge_ports eno3
         bridge_ports eno3
         bridge_stp off
         bridge_stp off
         bridge_fd 0
         bridge_fd 0
</pre>
</pre>
Définissez la ligne <code>hwaddress</code> avec l'adresse MAC de l'interface eno3.


Installez votre clé SSH dans <code>/root/.ssh/authorized_keys</code> puis désactivez le login root par password de OpenSSH dans <code>/etc/ssh/sshd_config</code>.
Installez votre clé SSH dans <code>/root/.ssh/authorized_keys</code> puis désactivez le login root par password de OpenSSH dans <code>/etc/ssh/sshd_config</code>.
<br><br>


Une fois tout installé, je vous conseille de reconfigurer grub afin de mettre à jour la configuration interne de debian:
* Pour EFI : <code>dpkg-reconfigure grub-efi-amd64</code>
* Pour BIOS : <code>dpkg-reconfigure grub-pc</code>
<br>
Redémarrez une dernière fois pour appliquer les changements.
Redémarrez une dernière fois pour appliquer les changements.


Votre proxmox sera accessible à l'adresse https://ip:8006
Votre proxmox sera accessible à l'adresse https://ip:8006
==Nettoyage des paquets==
Si vous ne comptez pas utiliser ZFS, vous pouvez supprimer les paquets suivantes :
<pre>apt purge zfs-zed libnvpair3linux libuutil3linux libzfs4linux libzpool5linux zfsutils-linux</pre>


==Configuration réseau avancée==
==Configuration réseau avancée==
Ligne 384 : Ligne 398 :
* désactivez le login root (directive <code>PermitRootLogin no</code> dans <code>/etc/ssh/sshd_config</code>). Pensez néanmoins à créer un utilisateur pour vous connecter en ssh avant de désactiver le login root.
* désactivez le login root (directive <code>PermitRootLogin no</code> dans <code>/etc/ssh/sshd_config</code>). Pensez néanmoins à créer un utilisateur pour vous connecter en ssh avant de désactiver le login root.
* utilisez la directive <code>allowusers <user></code> dans <code>/etc/ssh/sshd_config</code> pour n'autoriser que certains utilisateurs à se connecter en ssh.
* utilisez la directive <code>allowusers <user></code> dans <code>/etc/ssh/sshd_config</code> pour n'autoriser que certains utilisateurs à se connecter en ssh.
Il est aussi préférable d'installer le serveur de temps NTP à la place de systemd-timesyncd:
<pre>
apt install chrony
apt purge systemd-timesyncd
</pre>


=Configurer le serveur mail postfix=
=Configurer le serveur mail postfix=
Ligne 489 : Ligne 509 :


=Protégez votre proxmox=
=Protégez votre proxmox=
==Désactiver le login root sur l'interface proxmox==
Avant toute manipulation, n'oubliez pas de créer un utilisateur ayant les droits d'administration pour accéder à l'interface de proxmox
===Via l'interface proxmox===
Dans Datacenter > Permissions > Users : Editez l'utilisateur root et décochez la case <code>Enabled</code>
===Via les droits linux===
<pre>passwd --lock root</pre>
Attention, dans ce cas, vous ne pourrez plus vous loguer en root sur le serveur par ssh (sauf si vous avez une clé ssh défini), écran ou kvm !
===Via PAM===
Vous pouvez désactiver le login pam en éditant <code>/etc/pam.d/other</code> et en y ajoutant, en début de fichier, les lignes suivantes :
<pre>
auth        required    pam_deny.so
auth        required    pam_warn.so
account    required    pam_deny.so
account    required    pam_warn.so
</pre>
Attention, cette méthode peut avoir des effets de bord si d'autres programmes utilisent l'entité pam/other
==Désactiver rpcbind==
Si vous n'utilisez pas de montage NFS vous pouvez désactiver rpcbind.<br>
Editez <code>/etc/default/nfs-common</code> et passez l'argument suivant :
<pre>NEED_STATD=no</pre>
Puis désactivez rpcbind :
<pre>
systemctl disable rpcbind.target
systemctl disable rpcbind.socket
systemctl disable rpcbind.service
systemctl stop rpcbind.target
systemctl stop rpcbind.socket
systemctl stop rpcbind.service
</pre>


==Eviter les reboots accidentels avec molly-gard==
==Eviter les reboots accidentels avec molly-gard==
<pre>apt install molly-guard</pre>
<pre>apt install molly-guard</pre>


==sshguard==
==Protection SSH avec sshguard==


[[Protéger SSH avec sshguard]]
[[Protéger SSH avec sshguard]]
==Protéger l'interface web avec fail2ban==
<pre>aptitude install fail2ban</pre>
Créez le fichier <code>/etc/fail2ban/jail.local</code> contenant :
<pre>
[DEFAULT]
# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1
bantime  = 1800
maxretry = 3
#
# Destination email address used solely for the interpolations in
# jail.{conf,local} configuration files.
destemail = root@localhost
action = %(action_mwl)s
[ssh]
enabled = false
[sshd]
enabled  = false
[proxmox]
enabled = true
port = https,http,8006
filter = proxmox
logpath = /var/log/daemon.log
maxretry = 4
bantime = 3600 #1 heure
</pre>
Créez le fichier <code>/etc/fail2ban/filter.d/proxmox.conf</code> :
<pre>
[Definition]
failregex = pvedaemon\[.*authentication failure; rhost=<HOST> user=.* msg=.*
ignoreregex =
</pre>
Vous pouvez tester votre configuration avec la commande <code>fail2ban-regex /var/log/daemon.log /etc/fail2ban/filter.d/proxmox.conf</code>
Relancez fail2ban :
<pre>/etc/init.d/fail2ban restart</pre>


==firewall iptables==
==firewall iptables==


=VMs=
=Création d'un stockage pour les VMs=
 
Créez les partitions sda4 et sdb4 au moyen de gdisk (EFI) ou parted (BIOS).
 
Créez sur ces partitions un raid :
<pre>mdadm --create --verbose /dev/md4 --level=1 --raid-devices=2 /dev/sda4 /dev/sdb4</pre>
 
Maintenez à jour <code>mdadm.conf</code> et votre initramfs afin de conserver le bon naming du raid après reboot :
<pre>
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
update-initramfs -u
</pre>
 
Puis initialisez-y un LVM :
<pre>
pvcreate /dev/md4
vgcreate main /dev/md4
</pre>
 
Il ne reste plus qu'a déclarer ce Volume Group LVM dans l'interface proxmox.
 
=VM qemu/kvm=


==Télécharger vos images==
==Télécharger vos images==
Ligne 643 : Ligne 768 :


=Annexes=
=Annexes=
==Désactiver le login root sur l'interface proxmox==
Avant toute manipulation, n'oubliez pas de créer un utilisateur ayant les droits d'administration pour accéder à l'interface de proxmox
===Via l'interface proxmox===
Dans Datacenter > Permissions > Users : Editez l'utilisateur root et décochez la case <code>Enabled</code>
===Via les droits linux===
<pre>passwd --lock root</pre>
Attention, dans ce cas, vous ne pourrez plus vous loguer en root sur le serveur par ssh (sauf si vous avez une clé ssh défini), écran ou kvm !
===Via PAM===
Vous pouvez désactiver le login pam en éditant <code>/etc/pam.d/other</code> et en y ajoutant, en début de fichier, les lignes suivantes :
<pre>
auth        required    pam_deny.so
auth        required    pam_warn.so
account    required    pam_deny.so
account    required    pam_warn.so
</pre>
Attention, cette méthode peut avoir des effets de bord si d'autre programme utilise l'entité pam/other


==Problème de layout dans la console vnc==
==Problème de layout dans la console vnc==
4 231

modifications

Menu de navigation