Configuration initiale d’un serveur VPS Debian 11

Linux - Debian

Vous venez d’acheter un serveur (VPS) sous Debian ? Ça tombe bien cet article est fait pour vous. Pour faire tourner votre serveur de façon sûr et bien sécurisé, voici 7 étapes importantes à mettre en place.

Dans cet article vous seront très clairement les procédures à suivre pour bien paramétrer et sécuriser votre serveur VPS.

1- Déploiement de votre serveur 

Cette étape dépend de votre fournisseur VPS. Pour cet article j’ai acheté un VPS sur Contabo et j’ai choisi d’utiliser Debian comme OS de mon serveur. 

2- Connexion au serveur en utilisant le logiciel « Putty »

Connecter-vous à votre VPS en utilisant « Putty » (Vous êtes libre d’utiliser le logiciel de votre choix pour se connecter au serveur).

Télécharger et installer le logiciel « Putty » sur son site officiel. Choisir la version qui correspond bien à votre machine.

Pour se connecter, vous aurez besoin de l’adresse IP, nom de l’utilisateur et le mot de passe. Toutes ces informations devraient être disponibles dans votre « panneau de contrôle » et dans le mail que vous avez reçu de Contabo après la création de votre serveur.

Donc, voici les informations dont vous avez besoin pour se connecter : 

  • « Putty » installé
  • « Nom d’utilisateur » Pour un nouveau VPS acheté sous Debian (ou autre Linux en général) c’est « root »
  • « Mot de passe », à récupérer dans votre « panneau de contrôle » et dans le mail
  • « Adresse IP », à récupérer dans votre « panneau de contrôle » et dans le mail  

Ouvrer « Putty » et entrer « l’adresse IP » de votre serveur dans le champ correspondant. Laisser le « port » port par défaut sur « 22 ».

Ensuite, renseigner également le champ « Saved Sessions » cliquer sur le bouton « Save » pour enregistrer la session et éviter de retaper tous ces informations à la prochaine connexion.

Et enfin cliquer sur le bouton « Open » pour se connecter. 

Suivez toutes ces étapes comme dans l’image ci-dessous :

image_1_63s1GDGjR.png

Et puis une fenêtre comme ci-dessous s’ouvre et cliquez sur « Yes » :

image_2_DgNP10XMr.png

Et après vous devriez tomber sur un terminal vous demandant d’entrer votre login comme dans l’image ci-dessous :

Saisissez votre nom d’utilisateur, si c’est une première connexion le login devrait être « root »

image_3_kNr5bvusk.png

Et maintenant, on vous demande de renseigner le mot de passe et appuyer sur entrer, voir l’image ci-dessous :

image_4_hWg5jn7BB.png

Félicitations, vous êtes maintenant connecté à votre serveur et vous pouvez désormais commencer la configuration.  

image_5_IKoHiTZ7l.png

3- Création d’un nouvel utilisateur Admin

L’utilisateur admin par défaut d’un nouveau serveur se nomme généralement « root ». C’est valable pour tous les systèmes Linux et tout le monde sait cela. Donc, pour une question de sécurité, il est important de créer un nouvel utilisateur admin et désactiver l’utilisateur root par défaut.

Pour cela, exécutez le code ci-dessous :

adduser afdev

A savoir « afdev » est le nom du nouvel utilisateur que je voudrais créer

Et après le système va vous demander un mot de passe pour le nouvel utilisateur et d’autres informations complémentaires. Remplissez-les correctement.

image_6_Mkl5Ff53n.png

Sur Debian, on n’as pas vraiment besoin de la commande « sudo » par défaut. On n’a pas besoin de cette commande pour installer des logiciels mais on en a besoin pour devenir « root ».

Pour l’avoir, il faut l’installer en utilisant cette commande :

apt-get install sudo


Maintenant, nous allons ajouter le nouvel utilisateur dans la liste des « sudo group ». Un groupe d’utilisateurs qui ont le privilège d’exécuter des commandes root. C’est-à-dire qu’on va donner au compte récemment créé les mêmes pouvoirs que l’utilisateur « root » par défaut.

Pour cela revenons dans notre terminal et exécutons le code si dessus : 

usermod –aG sudo afdev 

Sur certaines versions de Debian (10 ou 11) on peut utiliser la commande suivante pour ajouter un utilisateur dans la liste des « sudo group » 

/sbin/adduser afdev sudo

A savoir « afdev » est le nouvel utilisateur que j’ai crée 

image_6.1_WJNmZf07P.png

Félicitations, vous venez de créer un nouveau compte et attribuer à ce dernier les privilèges de root. Pour voir que cela s’est bien passé, redémarrez votre serveur et essayez de vous connecter avec le nouveau compte.

Lancer cette commande pour redémarrer :

shutdown –h now

ou 

reboot

Essayez de vous reconnecter maintenant pour voir. Normalement, tout devrait bien se passer.

Pour vous connecter rapidement, utiliser cette commande :

ssh username@your _ip_address

image_7_Ny3gYkQpF.png

Pour être sûr que vous êtes vraiment un utilisateur « root » tapez cette commande : 

sudo whoami

Le terminal va vous demander votre mot de passe et devrait vous retourner le texte « root » sinon une erreur qui dit « user is not in the sudoers file »

4- Mise en place d’un pare-feu sous Debian 11

Rajouter d’autres couches de sécurité est toujours bénéfique. Pour protéger votre serveur, vous allez mettre en place un pare-feu qui vous permettra d’autoriser uniquement les connexions venant des programmes que vous aurez autorisés vous-mêmes.

Vous allez utiliser le logiciel UFW (Uncomplicated Firewall) pour configurer votre pare-feu. Voici un bon tutorial de digital océan pour aller plus vite avec cet outil UFW

Commencez par l’installer, exécutez la commande suivante : 

sudo apt install ufw

Voyons le status d’UFW :

sudo ufw status 

Si elle n’est pas activée, activez-la avec cette commande : 

sudo ufw enable

Pour la désactiver, on a cette commande : 

sudo ufw disable

Vous pouvez maintenant autoriser divers services avec cet outil. Et premièrement, vous allez autoriser le service SSH sans quoi vous serez dans l’incapacité de vous connecter avec le serveur via ce protocole. 

sudo ufw allow ssh

Et par défaut, on va aussi bloquer tous les trafics inconnus avec la commande :

sudo ufw default deny incoming

Vous aurez sûrement besoin des connexions via les protocoles http et https, donc vous devez autoriser ces services : 

sudo ufw allow http
sudo ufw allow https

Pour activer UFW après ces règles que vous venez de mettre en place, tapez la commande suivante : 

sudo ufw enable

Pour checker si UFW est activé et est en marche : 

sudo ufw status verbose

Sachez que vous pouvez supprimer des règles en se basant sur leurs numéros. Vous pouvez lister toutes les règles et leur numéro respectif avec cette commande :

sudo ufw status numbered

Récupérez le numéro de la règle et supprimez-la (si vous le voulez) avec cette commande : 

sudo ufw delete 3

N’oubliez pas de désactiver tous les ports que vous n’utilisez pas dans votre serveur. Pour ce faire, exécutez la commande suivante : 

sudo ufw deny out 25

Voilà, il n’y a pas de règle spécifique quant à l’utilisation d’UFW. Activer les services que vous utilisez et désactiver les trafics que vous n’utilisez pas. 

5- Configuration du SSH Key pour l’authentification

L’authentification via SSH Key est une surcouche supplémentaire à votre serveur. Ce système d’authentification est plus sécurisé (et recommandé) que la connexion par mot de passe.

Premièrement, vous avez besoin de générer une clé SSH. Si vous avez « PuttyGen » installé, ouvrez-le et générez une clé.

Cliquez sur le bouton « Generate » et déplacer aléatoirement votre curseur dans la zone entourée de la couleur bleu pendant que le logiciel génère votre clé. 

image_8_IVpEK9B3N.png

Pour plus de sécurité, ajoutez un « Passphrase » à votre clé SSH. Puis cliquez sur « Save private key » pour enregistrer la clé dans un endroit très sûr que vous pourrez retrouver.

Sachez que sans ce clé vous n’aurez pas la possibilité de vous connecter à votre serveur car vous allez désactiver la connexion par mot de passe suite après.

Veuillez bien vous souvenir du « Passsphrase » également car il n’y aura plus moyen pour le retrouver

plus tard. 

image_9_v4i28tuFA.png

Avant de fermer PuttyGen, copiez maintenant tout le texte dans le cadre et mettez-le dans un fichier texte car nous allons l’utiliser dans un instant.

image_10_Yn6gTRYNw.png

Mise en place de la clé SSH sur notre serveur

D’abord, ouvrez « Putty » et connectez-vous avec la session enregistrée dans « Putty » et utilisez la nouvelle compte récemment créée. Celle que vous allez utiliser en remplacement du compte « root » plus tard.

Entrez bien votre login et mot de passe.

Vous êtes maintenant connecté normalement.

Note importante : Toutes les commandes que vous allez exécuter ci-après vont être tapées sous « sudo ».

Création d’un répertoire pour coller la clé public SSH

Tapez les commandes ci-après pour créer le répertoire et le fichier dans lequel vous allez mettre la clé SSH :

sudo mkdir ~./ssh ;

Entrez votre mot de passe, puis tapez : 

sudo nano ~/.ssh/authorized_keys ;

image_11_kca_DKNY9.png

Presser « Ctrl + X » et « Y » pour sauvegarder.

Changement du niveau d’accès pour le dossier et fichier SSH

Nous allons maintenant changer la permission pour le dossier et la clé publique avec les commandes suivantes :

sudo chmod 700 –R ~/.ssh

Et puis :

sudo chmod 600 –R ~/.ssh/authorized_keys

Changez le propriétaire de ce dossier au nouvel utilisateur :

sudo chown –R afdev :afdev /home/

Et pour finir, changez le propriétaire à votre nouvel utilisateur créé. 

sudo chown –R afdev :afdev /home/afdev

Test de connexion via SSH avec le nouveau compte

Confirmons que vous pouvez vraiment vous connecter avec le nouveau que vous venez de configurer pour SSH.

Cette section est très importante car vous allez, un peu plus tard, désactiver la connexion par mot de passe. Et avant cela, vous devez être sûr que vous pouvez vous connecter avec ce compte non-root.

Vous allez toujours utiliser « Putty » cela. D’abord entrez le nom d’hôte ou l’adresse IP de votre serveur. Et après allez dans le menu « Credentials » comme dans l’image ci-dessous :

image_12_JBX7CdODu.png

Renseignez la clé privée SSH (que vous avez enregistré quelque part tout à l’heure) en cliquant sur le bouton « Browse », ça va ouvrir l’explorateur de fichier.

image_13_-_PCTe-j_.png

Revenez maintenant au menu « Sessions » en scrollant un peu plus haut. Comme vous l’avez deviné dans l’image ci-dessous, vous allez sauvegarder cette session.

Pour ce faire, donnez un nom à la session et cliquez sur le bouton « Save » pour sauvegarder. 

Suivez l’indication dans l’image ci-dessous.

image_14_0Ge9vdt8H.png

Et finalement pour se connecter :

  1. « Double cliquer » sur la session que vous venez d’enregistrer.
  2. « Se connecter » avec le compte non-root que vous avez créé
  3. « Passphrase » : si vous l’avez mis lors de la configuration, saisissez-le. Si tout est bon, vous devriez être connecté.

6- Désactivation du compte « root »

Avant de faire cette étape, s’il vous plait, assurez que vous pouvez bien vous connecter via SSH et tester que votre compte possède les mêmes droits que « root ».

Désactivez la connexion de l’utilisateur root via SSH. Pour cela éditez le fichier de configuration SSH, la commande est :

sudo nano /etc/ssh/sshd_config

Trouver dans le fichier le paramètre « PermitRootLogin » et changez son valeur à « no »

PermitRootLogin no

Presser « Ctrl + W » et « Y » pour enregistrer la modification. Et pour les changements, redémarrons le service SSH :

sudo service ssh restart

7- Dernier étape : Désactivation de l’authentification par mot de passe

Maintenant que tout est OK : vous avez créé l’utilisateur, vous avez les privilèges de « root », vous pouvez vous connecter via SSH et vous avez autorisé la connexion de l’utilisateur « root ». Vous allez cette fois-ci désactiver la connexion par mot de passe et permettre uniquement l’accès à votre serveur via la clé SSH que vous avez générée récemment.

Pour cela, vous allez, comme tout à l’heure, éditer le fichier de config SSH

sudo nano /etc/ssh/sshd_config

Cherchez le paramètre PasswordAuthentification et changez son valeur à « no »

PasswordAuthentification no

Pressez maintenant « Ctrl + W » et « Y » pour enregistrer la modification.

Et pour que les changements s’appliquent, redémarrez le service SSH :

sudo service ssh restart

Conclusion

Avoir un serveur VPS est une bonne chose, mais mettre en place une certaine sécurité à ce dernier en est une autre à ne pas négliger.

Si vous êtes encore débutant, c’est normal que vous ne sachiez pas trop quoi faire et dans cet article vous ont été montrées 7 étapes déjà importantes dans la sécurisation d’un serveur VPS. Bien sûr, vous pouvez aller encore plus loin en changeant par exemple le port de connexion via etc. , mais à mon avis, mettre en place ces quelques points est déjà bien.

Il y a rien de bien compliqué, vous devriez juste avoir quelques connaissance sur les serveurs et être à l’aise avec les lignes de commande linux.

Dans un prochain article, je vais vous montrer comment installer un serveur web « Ngnix » sur votre serveur.

D’ici là, portez-vous bien 🙂 .

Publié le 28/05/2023