Proxmox 6.0 sur un serveur dédié (2/3) : Installation et configuration de Proxmox

/!\ Attention /!\ /!\ Attention /!\ /!\ Attention /!\
Avant d’installer Proxmox, nous devons nous assurer que la résolution du nom d’hôte fonctionne à l’aide du fichier /etc/hosts. Pour cela vous devez vérifier que ce fichier contient une ligne attribue une adresse IPV4 au nom d’hôte. Assurez-vous aussi que cette ligne ne contient pas d’adresse IPV6. Pour cela nous allons l’éditer via la commande suivante :

1
# vi /etc/hosts

Voici le contenu de mon fichier après modification :

1
2
3
4
5
6
7
127.0.0.1	localhost
XXX.XXX.XXX.XXX	proxmox.localdomain proxmox

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Installation et configuration de Proxmox

Afin de pouvoir installer Proxmox sur notre Debian, nous devons configurer les dépôts et ajouter la clé GPG pour n’installer que des packages signés. Pour cela, on tape les commandes suivantes :

1
2
# echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
# wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg

Nous devons mettre à jour la base de données des packages disponibles et on met à jour le système. Pour cela, on tape les commandes suivantes :

1
2
# apt update
# apt full-upgrade

Nous allons maintenant installer Proxmox. Il vous sera demandé quelle type de configuration vous souhaitez pour Postfix, choisissez « Local only ». Pour cela, on tape la commande suivante :

1
# apt install proxmox-ve postfix open-iscsi

Maintenant, on redémarre le serveur pour booter sur le kernel fourni par Proxmox. Pour cela, on tape la commande suivante :

1
# reboot

Nous allons supprimer le package « os-prober ». Il est utilisé pour détecter les autres OS, dans le cas de dualboot. Pour cela, on tape la commande suivante :

1
# apt remove os-prober

Une fois le serveur redémarré, on supprime les kernels Debian ainsi que les packages inutiles. Pour cela, on tape les commandes suivantes :

1
2
3
4
# apt remove linux-image-amd64 'linux-image-4.19*'
# apt autoremove
# apt autoclean
# apt clean

Afin d’éviter d’avoir des messages d’erreurs, lors de la mise à jour de Proxmox en ligne de commande, on va désactiver, le dépôt « pve-enterprise ». Pour cela, on tape la commande suivante :

1
# sed -i '1 s/^/#/g' /etc/apt/sources.list.d/pve-enterprise.list

Avant de poursuivre assurez-vous que l’utilisateur que vous allez créer dans Proxmox, existe bien sur Linux. Si ce n’est pas le cas, créez le, via la commande suivante :

1
# useradd -M user
  • -M : Pemret de ne pas créer de répertoire au nom de l’utilisateur dans le répertoire /home/

Pour des questions de sécurité, nous allons créé un utilisateur « user », lui assigner un mot de passe, lui attribuer le rôle d’Administrateur et désactiver l’utilisateur « root ». Pour cela, on tape les commandes suivantes :

1
2
3
4
# pveum useradd user@pam
# pveum passwd user@pam
# pveum aclmod / -user user@pam -roles Administrator
# pveum usermod root@pam -enable 0

Installation et configuration de Fail2ban

Afin de sécuriser encore un peu plus notre serveur nous allons installer Fail2ban. Pour cela, on tape la commande suivante :

1
# apt install fail2ban

Nous allons modifier la configuration par défaut de Fail2ban. Pour cela, on tape les commandes suivantes :

1
2
# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf
# vi /etc/fail2ban/jail.local

On modifie ajoute le/les ip(s) (ligne 54) qui ne seront pas bloqués par fail2ban et le type de backend (ligne 91). Voici les lignes modifiées :

1
2
3
4
5
...
ignoreip = 127.0.0.1/8 ::1 XXX.XXX.XXX.XXX/XX
...
backend = systemd
...

Nous allons créer une jail pour Proxmox. Une jail est un ensemble de paramètre dédié à un logiciel. Nous allons créer le ficher de configuration via la commande suivante :

1
# vi /etc/fail2ban/jail.d/proxmox.conf

Voici le contenu du fichier :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[proxmox]
enabled = true
port = http,https,8006
filter = proxmox
logpath = /var/log/daemon.log
maxretry = 3
findtime = 60
# ban 1 day
bantime = 84600

ignoreip = XXX.XXX.XXX.XXX

Afin que la jail puisse fonctionner, nous devons créer un filtre. C’est un ensemble de paramètre définissant les règles pour rechercher dans les logs. Nous allons créer le ficher de configuration via la commande suivante :

1
# vi /etc/fail2ban/filter.d/proxmox.conf

Voici le contenu du fichier :

1
2
3
[Definition]
failregex = pvedaemon\[.*authentication failure; rhost= user=.* msg=.*
ignoreregex =

Nous allons créer une jail pour sshd :

1
# vi /etc/fail2ban/jail.d/sshd.conf

Voici le contenu du fichier :

1
2
3
4
5
6
7
[sshd]
enabled = true
port = 1234
maxretry = 3
# 1 day
bantime = 84600
ignoreip = XXX.XXX.XXX.XXX

Maintenant que nous avons créer nos fichiers de zone et de zone inverse, je vais vous expliquer à quoi correspondent les différents champs :

  • enabled : Permet de définir si la jail est active ou pas
  • port : Indique les ports concernés par la jail
  • filter : Indique le nom du filtre à utiliser avec la jail
  • logpath : Indique le fichier de log qui sera utilisé pour détecter les tentatives d’intrusion
  • maxretry : Indique le nombre de tentative au-delà duquel l’attaquant sera banni
  • findtime : Indique l’intervalle de recherche du nombre d’occurrences (maxretry)
  • bantime : Indique la durée du bannissement
  • ignoreip : Indique les ips qui ne seront pas bannies

Nous allons redémarrer le service fail2ban pour prendre en compte les modifications que nous venons d’effectuer, via la commande suivante :

1
# systemctl restart fail2ban

On peut vérifier que les jails sont bien active, via la commande suivante :

1
# fail2ban-client status

Configuration et activation de l’authentification à deux facteurs

Pour renforcer la sécurité de notre serveur Proxmox, nous allons configurer et activer l’authentification à deux facteurs pour le compte user. Cela nécessite d’avoir une application sur son smartphone de type Google Authenticator. Pour cela nous nous rendons dans l’interface web de Proxmox dans Datacenter -> Persmissions -> Users, puis on sélectionne l’utilisateur et ensuite on clique sur le bouton TFA

https://www.lecoindesdocs.fr/images/2019/08/22/Proxmox-Activation-OATH-3.png

A l’aide de l’application Google Authenticator on enregistre le QR Code, on renseigne le code généré par l’application puis on clique sur OK

https://www.lecoindesdocs.fr/images/2019/08/22/Proxmox-Activation-OATH-4.png

On clique sur Datacenter -> Permissions -> Authentication, puis on sélectionne « pam », ensuite on clique sur « Edit »

https://www.lecoindesdocs.fr/images/2019/08/22/Proxmox-Activation-OATH-1.png

On sélectionne OATH, puis on clique sur OK

https://www.lecoindesdocs.fr/images/2019/08/22/Proxmox-Activation-OATH-2.png

On sélectionne OATH, puis on clique sur OK. Il faut vous delogger pour voir un petit changement dans la fenêtre de login. Vous devrez voir apparaitre « (+ aoth) »

https://www.lecoindesdocs.fr/images/2019/08/22/Proxmox-Login-Page.png

Dernière étape, nous allons ajouter et configurer la partition sur laquelle sera stockée les conteneurs LXC et les machines virtuelles. Pour cela toujours dans l’interface web de Proxmox, on se rend dans Datacenter -> Storage, puis on clique sur le bouton « Add » et on sélectionne « Directory »

https://www.lecoindesdocs.fr/images/2019/08/22/Add-storage-1.png

Ensuite on donne un nom au stockage, ici « proxmox ». On indique le répertoire qui sera utilisée (/proxmox). On indique aussi ce qui pourra être stocké dans cette partition. Pour ma part, je souhaite qu’elle contienne les images disques, les templates des conteneurs, les sauvegardes des conteneurs et des machines virtuelles ainsi que les conteneurs eux-mêmes puis on clique sur le bouton « Add »

https://www.lecoindesdocs.fr/images/2019/08/22/Add-storage-2.png