Configurer un VPS Linux pour la Première Fois : Le Guide Pas à Pas

Configurer un VPS Linux pour la Première Fois : Le Guide Pas à Pas

6 min de lecture

Vous venez de commander votre premier VPS. L’email de confirmation est arrivé avec une adresse IP, un nom d’utilisateur root, et un mot de passe temporaire. Et maintenant ?

La configuration initiale d’un VPS Linux est un rite de passage pour tout développeur web ou propriétaire de site ambitieux. C’est aussi l’étape que beaucoup négligent — et qui explique pourquoi tant de serveurs se font pirater dans les jours suivant leur mise en ligne.

Ce guide couvre la configuration de base d’un VPS Ubuntu (la distribution la plus répandue et la mieux documentée), de la première connexion à la mise en ligne de votre premier site.

Étape 1 : Première connexion SSH

SSH (Secure Shell) est le protocole que vous utiliserez pour communiquer avec votre serveur depuis votre ordinateur. Toutes les commandes s’exécutent dans un terminal.

Depuis macOS ou Linux

Ouvrez votre terminal et tapez :

ssh root@VOTRE_ADRESSE_IP

Remplacez VOTRE_ADRESSE_IP par l’IP fournie par votre hébergeur. Confirmez l’empreinte du serveur (tapez yes), puis entrez le mot de passe temporaire.

Depuis Windows

Utilisez le client SSH intégré à Windows 10/11 (PowerShell ou Windows Terminal) ou installez PuTTY. La commande est identique.

Première action : changer le mot de passe root

Une fois connecté, changez immédiatement le mot de passe root :

passwd

Choisissez un mot de passe fort (16+ caractères, mélange majuscules/minuscules/chiffres/symboles) et conservez-le dans un gestionnaire de mots de passe.

Étape 2 : Mettre à jour le système

Avant toute chose, mettez à jour les paquets installés pour avoir les derniers correctifs de sécurité :

apt update && apt upgrade -y

Cette commande peut prendre quelques minutes. Une fois terminée, si le système vous propose un redémarrage (cas fréquent après une mise à jour du noyau), effectuez-le :

reboot

Reconnectez-vous via SSH après le redémarrage.

Étape 3 : Créer un utilisateur non-root

Travailler en permanence avec l’utilisateur root est une mauvaise pratique de sécurité : une erreur de commande ou une compromission a des conséquences immédiates sur l’ensemble du système. Créez un utilisateur avec des privilèges limités pour votre travail quotidien.

adduser votre_nom_utilisateur

Suivez les instructions pour définir un mot de passe et renseignez les informations demandées (ou appuyez sur Entrée pour les passer).

Accordez-lui les privilèges sudo (pour exécuter des commandes administrateur ponctuellement) :

usermod -aG sudo votre_nom_utilisateur

Testez que ça fonctionne en vous connectant avec ce nouvel utilisateur :

su - votre_nom_utilisateur
sudo apt update

Si la commande sudo fonctionne, vous êtes prêt. Travaillez désormais avec cet utilisateur.

Étape 4 : Sécuriser l’accès SSH

C’est l’étape la plus importante de la sécurisation d’un VPS. Par défaut, SSH accepte les connexions par mot de passe sur le port standard 22 — une combinaison qui attire les bots d’attaque par force brute en permanence.

Configurer l’authentification par clé SSH

L’authentification par clé est bien plus sécurisée qu’un mot de passe. Elle repose sur une paire de clés cryptographiques : une clé privée (sur votre ordinateur) et une clé publique (sur le serveur).

Générez une paire de clés sur votre ordinateur local (pas sur le serveur) :

ssh-keygen -t ed25519 -C "[email protected]"

Choisissez un emplacement (la valeur par défaut ~/.ssh/id_ed25519 convient) et définissez une passphrase.

Copiez la clé publique sur votre serveur :

ssh-copy-id votre_nom_utilisateur@VOTRE_ADRESSE_IP

Cette commande ajoute votre clé publique dans ~/.ssh/authorized_keys sur le serveur.

Testez la connexion par clé avant de modifier la configuration SSH :

ssh votre_nom_utilisateur@VOTRE_ADRESSE_IP

Vous devriez vous connecter sans saisir votre mot de passe.

Durcir la configuration SSH

Éditez le fichier de configuration SSH :

sudo nano /etc/ssh/sshd_config

Modifiez ou ajoutez ces lignes :

# Désactiver la connexion root par SSH
PermitRootLogin no

# Désactiver l'authentification par mot de passe
PasswordAuthentication no

# Activer explicitement l'authentification par clé
PubkeyAuthentication yes

# Optionnel : changer le port SSH (obscurcissement)
# Port 2222

Sauvegardez et redémarrez le service SSH :

sudo systemctl restart sshd

Attention : avant de fermer votre session actuelle, ouvrez un nouveau terminal et testez que vous pouvez vous connecter. Si la connexion échoue, corrigez la configuration avant de fermer l’ancienne session.

Étape 5 : Configurer le pare-feu

Ubuntu inclut ufw (Uncomplicated Firewall), un outil simple pour gérer les règles de filtrage réseau.

Autorisez les connexions SSH (indispensable !), HTTP et HTTPS :

sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Activez le pare-feu :

sudo ufw enable

Vérifiez les règles actives :

sudo ufw status verbose

Si vous avez changé le port SSH dans l’étape précédente, remplacez allow ssh par allow VOTRE_PORT/tcp.

Étape 6 : Installer Fail2ban

Fail2ban surveille les logs du serveur et bannit automatiquement les adresses IP qui tentent des connexions répétées échouées — protection efficace contre les attaques par force brute.

sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

La configuration par défaut est suffisante pour commencer. Elle surveille SSH et banne les IP après 5 tentatives échouées en 10 minutes.

Étape 7 : Installer un serveur web

Vous avez maintenant un serveur sécurisé. Il est temps d’installer un serveur web pour héberger vos sites.

Nginx (recommandé pour les nouveaux déploiements)

Nginx est performant, léger et parfaitement adapté à l’hébergement de sites statiques, d’applications PHP, et de reverse proxy :

sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx

Testez en accédant à l’adresse IP de votre serveur dans un navigateur — vous devriez voir la page d’accueil Nginx.

Apache (alternative populaire)

Apache est plus facile à configurer pour certains cas d’usage (notamment avec .htaccess pour WordPress) :

sudo apt install apache2 -y
sudo systemctl enable apache2
sudo systemctl start apache2

Installer PHP (pour WordPress et autres CMS)

sudo apt install php php-fpm php-mysql php-curl php-gd php-xml php-mbstring -y

Étape 8 : Installer MariaDB (base de données)

La plupart des CMS (WordPress, Drupal, etc.) nécessitent une base de données :

sudo apt install mariadb-server -y
sudo mysql_secure_installation

Le script mysql_secure_installation vous guide pour sécuriser l’installation : définir un mot de passe root, supprimer les utilisateurs anonymes, désactiver l’accès root à distance.

Créez une base de données et un utilisateur pour votre site :

sudo mysql -u root -p

Dans le prompt MySQL :

CREATE DATABASE nom_de_votre_base;
CREATE USER 'votre_utilisateur'@'localhost' IDENTIFIED BY 'mot_de_passe_fort';
GRANT ALL PRIVILEGES ON nom_de_votre_base.* TO 'votre_utilisateur'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Étape 9 : Configurer un certificat SSL avec Let’s Encrypt

HTTPS est aujourd’hui indispensable pour tout site en production. Let’s Encrypt fournit des certificats SSL gratuits via l’outil Certbot :

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d votre-domaine.com -d www.votre-domaine.com

Certbot configure automatiquement Nginx pour utiliser le certificat et met en place le renouvellement automatique.

Vérifiez que le renouvellement automatique fonctionne :

sudo certbot renew --dry-run

Étape 10 : Configurer les mises à jour automatiques de sécurité

Les correctifs de sécurité doivent être appliqués rapidement. unattended-upgrades automatise les mises à jour critiques :

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

Répondez “Oui” pour activer les mises à jour automatiques.

Check-list finale

Avant de considérer votre VPS prêt à héberger un site en production, vérifiez :

  • Connexion SSH par clé uniquement (mot de passe désactivé)
  • Connexion root directe désactivée
  • Pare-feu ufw actif (ports 22/80/443 uniquement)
  • Fail2ban installé et actif
  • Serveur web (Nginx ou Apache) fonctionnel
  • Certificat SSL Let’s Encrypt en place
  • Mises à jour automatiques de sécurité activées
  • Stratégie de sauvegardes définie

Avec cette configuration, votre VPS est dans un état nettement plus sécurisé que la grande majorité des serveurs mal configurés qui se font compromettre en quelques jours. Ce n’est pas une configuration parfaite — la sécurité est un processus continu — mais c’est une fondation solide sur laquelle construire sereinement.

Vous cherchez le meilleur rapport qualité-prix ?

Consultez nos comparatifs détaillés pour faire le bon choix.

Sophie Laurent

Écrit par

Sophie Laurent

Développeuse web et consultante en infrastructure depuis 10 ans. Sophie a géré des centaines de migrations d'hébergement et teste chaque fournisseur avec des benchmarks réels de performance, uptime et support technique.