Sécurité & Optimisation Proxmox

Sécurité & Optimisation  Proxmox

Un serveur Proxmox une fois installé est vulnérable ! Et il est donc nécessaire de sécuriser un peu tout le bouzin ! Et optimiser certaines tâches qui peuvent être récurrentes.

Pour effectuer les différentes modifications indiquez, ci-après, il est nécessaire de vous connecter en SSH avec l'utilisateur root sur votre serveur Proxmox. Sous Windows utiliser par exemple Putty. Pour sur les autres OS, passer simplement par le terminal avec la commande ssh root@IP_SERVEUR.

Le Bashrc

Tous d'abord, nous allons ajouter plusieurs lignes dans le fichier /root/.bashrc

Ouvrez le fichier et ajoutez à la fin les lignes suivantes :

alias apt-get='echo -e " /!\ Installation Proxmox /!\ \nPour continuer entrer la commande suivante : apt-get-safe"'

alias apt-get-safe='/usr/bin/apt-get'

alias lc='lxc-console -n'

C'est trois alias vous seront d'une extrême utilité. Les deux premiers alias permettent de désactiver la commande apt-get qui pourrait vous flinguer votre serveur en cas erreurs (par exemple installer un paquet sur une VM alors que vous êtes sur la connexion SSH du Proxmox). Cela va donc éviter d'installer à tout va des paquets sans faire attention. Si vous avez besoin de la commande apt-get il faudra taper apt-get-safe.

Par exemple pour mettre à jour le système :

apt-get-safe update && apt-get-safe upgrade -y

La dernière permettra de vous simplifier la vie pour vous connecter simplement au terminal de vos conteneurs LXC sans passer par l'interface web.
Elle permet simplement de raccourcir la commande lxc-console -n 100 en lc 100 (dans le cas ou lon veux ouvrir le conteneur LXC d'ID 100).

Le SSH

Ahh, le SSH vous vous connectez avec celui-ci à votre serveur... Mais conserver le port 22 n'est pas forcement sur... Et laisser la connexion avec l'utilisateur root possible est loin d'être bien.

Nous allons corriger cela. Ouvrez le fichier /etc/ssh/sshd_config.

Dans ce fichier vous trouverez la ligne :

Port 22

Elle définit le port qui sera utilisé pour se connecter en SSH. Je vous conseille fortement de changer la valeur histoire de commencer a brouiller les pistes (n'utilisez pas les nombre entre 1 et 1023, il est préférable de choisir une valeur entre 49152 et 65535). Par exemple :

Port 49494

Une autre ligne dans ce fichier à modifier est :

PermitRootLogin yes

Elle permet d'indiquer si l'utilisateur root a le droit de se connecter.
Avant de changer la valeur, il est nécessaire de créer un utilisateur secondaire par exemple l'utilisateur flow avec la commande. Évitez d'utiliser le même mot de passe que celui de l'utilisateur root :)

adduser flow

Nous avons créé un utilisateur qui ne dispose d'aucun privilège, mais peut quand même se connecter en SSH.
Donc si nous désactivons la connexion avec l'utilisateur root, il faudra dans un premier temps se connecter avec l'utilisateur flow puis faire la commande pour se connecter en root :

su

Vous pouvez aussi créer une clé SSH et l'ajouter dans le fichier /root/.ssh/authorized_keys. Nous verrons cela dans un autre article.

Maintenant, vous pouvez modifier la valeur par :

PermitRootLogin without-password

Elle indique que l'utilisateur root doit se connecter en SSH sans mot de passe ce qui est possible qu'avec une clé SSH.

Vous pouvez sauvegarder le fichier puis redémarrer le service ssh :

service ssh restart

Attention : Ne fermez pas votre terminal, ouvrez une nouvelle connexion SSH et tentez de vous connecter avec votre clé SSH où via le nouvel utilisateur. N'oubliez pas d'indiquer le port voulu !

Dans mon cas je fais :

ssh -p49494 flow@IP_SERVEUR

su

Si vous arrivez à vous connecter c'est parfait, sinon vérifier votre configuration depuis l'autre terminal... Au pire, retournez sur votre ancien config.

Voilà c'est tous pour le moment ... j'ajouterais surement plus de truc par la suite :)

Article en relation