Meta : Apprenez à configurer un serveur Linux pour des performances, une sécurité et une fiabilité optimales. Guide pas à pas pour développeurs et petites entreprises.

Configurer un serveur Linux à partir de zéro est l'une des compétences les plus précieuses qu'un développeur ou un administrateur système puisse maîtriser. Que vous mettiez en place un nouveau serveur dédié pour une application web, un serveur de jeu ou un projet personnel, ce guide vous accompagne à chaque étape : depuis la première connexion SSH jusqu'à un environnement sécurisé et prêt pour la production. À la fin, vous disposerez d'un serveur Linux entièrement configuré et prêt à accueillir vos charges de travail.

⚡ Difficulté : Débutant à intermédiaire

🖥 Compatible avec : Ubuntu 24.04 LTS / Debian 12 / AlmaLinux 9

Points clés à retenir

  • Vous configurerez un serveur Linux depuis le premier accès SSH jusqu'à un environnement sécurisé et prêt pour le réseau.
  • Outils requis : un terminal (ou PuTTY sous Windows), l'adresse IP publique de votre serveur et les identifiants root fournis par Kimsufi.
  • Temps estimé : 45 à 90 minutes selon votre distribution Linux et votre aisance avec la ligne de commande.
  • Niveau requis : accessible aux débutants. Aucune expérience préalable en administration de serveur Linux n'est nécessaire.
  • À la fin de ce guide, votre serveur disposera : d'un utilisateur sudo non-root, d'une authentification par clé SSH, d'un pare-feu configuré (UFW) et de paquets à jour.

Prérequis : ce dont vous aurez besoin

Avant de commencer, assurez-vous d'avoir les éléments suivants à portée de main :

  • Un serveur dédié Kimsufi : n'importe quelle gamme KS, SYS ou RISE convient. Si vous n'en avez pas encore commandé un, vous pouvez en déployer un en quelques minutes depuis l'espace client Kimsufi.
  • L'adresse IP publique de votre serveur et les identifiants root (envoyés par e-mail après la mise en service).
  • Une application de terminal : sous macOS/Linux, utilisez le Terminal intégré. Sous Windows, utilisez PowerShell, Windows Terminal ou PuTTY.
  • Une paire de clés SSH (recommandé). Si vous n'en avez pas encore, l'étape 3 explique comment la générer.
  • Une distribution Linux de votre choix. Ce guide utilise Ubuntu Server 24.04 LTS comme exemple principal, avec des notes pour Debian 12 et AlmaLinux 9 lorsque les commandes diffèrent.

💡 Astuce Ubuntu Server 24.04 LTS est la distribution Linux pour serveurs la mieux documentée et le meilleur point de départ pour les débutants. AlmaLinux 9 est le choix recommandé pour les environnements de niveau entreprise nécessitant une compatibilité RHEL.

Vue d'ensemble : ce que nous allons faire

Configurer un serveur Linux implique une série d'étapes bien définies : se connecter de manière sécurisée, mettre à jour le système, créer un compte utilisateur non-root, renforcer l'accès SSH, configurer le pare-feu et vérifier que tout fonctionne. Voici la séquence complète en un coup d'œil :

  • Se connecter à votre serveur via SSH en tant que root.
  • Mettre à jour tous les paquets système vers leurs dernières versions.
  • Créer un nouvel utilisateur non-root disposant des privilèges sudo.
  • Générer et déployer des clés SSH pour une connexion sécurisée et sans mot de passe.
  • Configurer SSH pour désactiver la connexion root et l'authentification par mot de passe.
  • Mettre en place UFW (Uncomplicated Firewall) avec les bonnes règles.
  • Configurer les paramètres réseau et le nom d'hôte.
  • Vérifier la configuration et tester l'installation.

Étape 1 : Connectez-vous à votre serveur via SSH

La première chose à faire est d'établir une connexion SSH vers votre serveur. Kimsufi fournit les identifiants de l'utilisateur root et l'adresse IP publique de votre serveur dans l'e-mail de mise en service.

Ouvrez votre terminal et exécutez la commande suivante, en remplaçant YOURSERVERIP par votre adresse IP réelle :

bash
ssh root@YOUR_SERVER_IP

S'il s'agit de votre première connexion, une demande de confirmation d'empreinte (fingerprint) s'affichera. Tapez yes pour continuer. Le mot de passe root fourni dans votre e-mail de bienvenue vous sera ensuite demandé.

✅ Résultat attendu Vous êtes maintenant connecté en tant qu'utilisateur root. L'invite de votre terminal devrait afficher : root@your-hostname:~#

Sous Windows avec PuTTY : ouvrez PuTTY, saisissez l'IP de votre serveur dans le champ Host Name, sélectionnez SSH et le port 22, puis cliquez sur Open. Saisissez vos identifiants root lorsqu'ils vous sont demandés.

Étape 2 : Mettez à jour les paquets système

Avant de configurer quoi que ce soit, mettez votre système à jour. Cela corrige les vulnérabilités de sécurité connues et garantit que vous travaillez avec les versions stables les plus récentes des logiciels.

Ubuntu / Debian

bash
sudo apt update && sudo apt upgrade -y

AlmaLinux / systèmes basés sur RHEL

bash
sudo yum update -y

ou sur les systèmes plus récents :

bash
sudo dnf update -y

Ce processus peut prendre quelques minutes selon le nombre de paquets à mettre à jour. Une fois terminé, redémarrez le serveur si le noyau a été mis à jour :

bash
sudo reboot

✅ Résultat attendu Tous les paquets sont à jour. Après le redémarrage, reconnectez-vous via SSH. Vous devriez voir la version mise à jour du noyau dans la bannière de connexion.

Étape 3 : Créez un utilisateur non-root avec des privilèges sudo

L'utilisateur root dispose d'un accès illimité à tout le système. Travailler en tant que root pour les tâches quotidiennes représente un risque de sécurité majeur : une simple faute de frappe peut avoir des conséquences irréversibles. La bonne pratique consiste à créer un compte utilisateur standard et à lui accorder les privilèges sudo pour les tâches administratives.

Créez un nouvel utilisateur (remplacez « youruser » par le nom d'utilisateur de votre choix) :

bash
adduser youruser

Suivez les invites pour définir un mot de passe et renseigner les informations utilisateur facultatives. Ajoutez ensuite l'utilisateur au groupe sudo :

Ubuntu / Debian

bash
usermod -aG sudo youruser

AlmaLinux / systèmes basés sur RHEL

bash
usermod -aG wheel youruser

Vérifiez que l'utilisateur a bien été créé et qu'il dispose de l'accès sudo :

su - youruser

bash
sudo whoami

✅ Résultat attendu La commande « sudo whoami » renvoie « root », confirmant que l'utilisateur dispose des privilèges sudo sans avoir à se connecter en tant que root.

Étape 4 : Mettez en place l'authentification par clé SSH

L'authentification par clé SSH est nettement plus sécurisée que la connexion par mot de passe. Elle repose sur une paire de clés publique/privée : la clé publique réside sur le serveur, et la clé privée reste sur votre machine locale. Même si quelqu'un obtient votre mot de passe, il ne pourra pas se connecter sans la clé privée.

Générez une paire de clés SSH sur votre machine locale

Exécutez cette commande dans votre terminal local (pas sur le serveur) :

bash
ssh-keygen -t ed25519 -C "your@email.com"

Appuyez sur Entrée pour accepter l'emplacement de fichier par défaut (~/.ssh/id_ed25519). Définissez une phrase secrète (passphrase) pour une couche de sécurité supplémentaire.

Copiez la clé publique sur votre serveur

bash
ssh-copy-id youruser@YOUR_SERVER_IP

Si ssh-copy-id n'est pas disponible (par exemple sous Windows), ajoutez manuellement le contenu de votre fichier ~/.ssh/ided25519.pub au fichier ~/.ssh/authorizedkeys sur le serveur :

bash
mkdir -p ~/.ssh && chmod 700 ~/.ssh

nano ~/.ssh/authorized_keys

Collez votre clé publique, enregistrez et quittez

bash
chmod 600 ~/.ssh/authorized_keys

✅ Résultat attendu Vous pouvez désormais vous connecter à votre serveur avec : ssh youruser@YOURSERVERIP, sans qu'aucun mot de passe ne vous soit demandé (ou uniquement la phrase secrète de votre clé si vous en avez défini une).

Étape 5 : Renforcez la configuration SSH

Une fois les clés SSH en place, désactivez l'authentification par mot de passe et la connexion root. Cela réduit considérablement la surface d'attaque de votre serveur face aux attaques par force brute.

Ouvrez le fichier de configuration SSH :

bash
sudo nano /etc/ssh/sshd_config

Localisez et modifiez (ou ajoutez) les directives suivantes :

PermitRootLogin no

PasswordAuthentication no

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

Enregistrez le fichier (Ctrl+X, Y, Entrée dans nano) et redémarrez le service SSH :

bash
sudo systemctl restart sshd

⚠️ Attention Avant de fermer votre session actuelle, ouvrez une seconde fenêtre de terminal et vérifiez que vous pouvez vous connecter avec votre nouvel utilisateur et votre clé SSH. Si vous vous bloquez l'accès, vous devrez utiliser la console KVM de Kimsufi pour récupérer l'accès.

Étape 6 : Configurez le pare-feu avec UFW

Un pare-feu contrôle quel trafic réseau est autorisé à atteindre votre serveur. UFW (Uncomplicated Firewall) est l'outil standard sous Ubuntu/Debian pour gérer les règles iptables via une interface simple.

Installez UFW s'il n'est pas déjà présent (il est inclus par défaut sur Ubuntu) :

bash
sudo apt install ufw -y

Définissez les règles par défaut : refuser tout le trafic entrant, autoriser tout le trafic sortant :

bash
sudo ufw default deny incoming

sudo ufw default allow outgoing

Autorisez SSH avant d'activer le pare-feu (essentiel : oublier cette étape vous bloquera l'accès) :

bash
sudo ufw allow OpenSSH

Ajoutez des règles pour les services que vous prévoyez d'exécuter, par exemple :

bash
sudo ufw allow 80/tcp    # HTTP

sudo ufw allow 443/tcp   # HTTPS

sudo ufw allow 3306/tcp  # MySQL (uniquement si nécessaire à distance)

Activez UFW et vérifiez son statut :

bash
sudo ufw enable

sudo ufw status verbose

✅ Résultat attendu UFW est actif. La sortie du statut affiche vos règles : SSH, HTTP et HTTPS autorisés. Tout autre trafic entrant est bloqué.

Pour les systèmes AlmaLinux / basés sur RHEL, utilisez firewalld à la place :

bash
sudo systemctl enable --now firewalld

sudo firewall-cmd --permanent --add-service=ssh

sudo firewall-cmd --permanent --add-service=http

sudo firewall-cmd --reload

Étape 7 : Configurez les paramètres réseau et le nom d'hôte

Définir un nom d'hôte explicite facilite la gestion du serveur, en particulier lorsque vous administrez plusieurs machines. Votre serveur Kimsufi dispose déjà d'une adresse IP publique attribuée, mais vous pouvez vouloir configurer une adresse réseau privée statique ou mettre à jour le nom d'hôte.

Définissez le nom d'hôte

bash
sudo hostnamectl set-hostname your-server-name

Mettez à jour /etc/hosts pour refléter le nouveau nom d'hôte :

bash
sudo nano /etc/hosts

Ajoutez ou modifiez la ligne :

127.0.1.1 your-server-name

Vérifiez les interfaces réseau et l'adresse IP

ip addr show

ip route show

Sur les serveurs Kimsufi, l'adresse IP publique est généralement attribuée via DHCP et déjà configurée. Si vous devez définir une IP statique (courant pour les serveurs de production), modifiez le fichier de configuration Netplan sous Ubuntu :

bash
sudo nano /etc/netplan/00-installer-config.yaml

Une configuration d'IP statique ressemble à ceci :

network:

version: 2

ethernets:

eth0:

dhcp4: no

addresses: [YOURSERVERIP/24]

gateway4: YOUR_GATEWAY

nameservers:

addresses: [8.8.8.8, 1.1.1.1]

bash
sudo netplan apply

✅ Résultat attendu L'exécution de « hostnamectl » affiche votre nouveau nom d'hôte. « ip addr show » affiche l'adresse IP publique de votre serveur sur l'interface réseau principale.

Vérification : comment confirmer que tout fonctionne

Avant de poursuivre, parcourez cette liste de contrôle pour confirmer que votre serveur Linux est correctement configuré :

  • Accès SSH avec votre utilisateur non-root : ssh youruser@YOURSERVERIP doit se connecter sans demander de mot de passe.
  • Connexion root désactivée : ssh root@YOURSERVERIP doit renvoyer « Permission denied (publickey) ».
  • Paquets à jour : exécutez sudo apt list --upgradable (Ubuntu/Debian) ou sudo dnf check-update (AlmaLinux) : doit renvoyer une liste vide.
  • Pare-feu actif : sudo ufw status doit afficher « Status: active » avec vos règles définies.
  • Nom d'hôte défini : hostnamectl doit afficher le nom d'hôte choisi sous « Static hostname ».
  • Sudo fonctionne : sudo whoami doit renvoyer « root ».

✅ Toutes les vérifications sont passées ? Votre serveur Linux est configuré et prêt pour des charges de travail en production. Vous pouvez désormais installer votre stack applicative (LAMP, LEMP, Node.js, Docker, etc.).

Dépannage

Voici les problèmes les plus courants rencontrés lors de la configuration d'un serveur Linux, et comment les résoudre :

Symptôme / ErreurCause probableSolution
ssh: Connection refusedService SSH non démarré ou mauvais portExécutez : sudo systemctl status sshd. S'il est arrêté : sudo systemctl start sshd. Vérifiez le port avec : sudo ss -tlnp \
Permission denied (publickey)Clé publique absente d'authorizedkeys ou permissions incorrectesVérifiez que ~/.ssh/authorizedkeys existe et que le chmod est 600. Vérifiez que la bonne clé privée est utilisée : ssh -i ~/.ssh/ided25519 youruser@IP
sudo: command not foundUtilisateur absent du groupe sudo/wheelReconnectez-vous en tant que root et exécutez : usermod -aG sudo youruser (Ubuntu) ou usermod -aG wheel youruser (AlmaLinux)
UFW m'a bloqué l'accèsRègle SSH non ajoutée avant l'activation d'UFWUtilisez la console KVM de Kimsufi. Désactivez UFW : sudo ufw disable. Ré-ajoutez la règle SSH : sudo ufw allow OpenSSH. Réactivez.
apt update échoue : « No network connection »Mauvaise configuration DNS ou réseauVérifiez la config IP : ip addr show. Testez la connectivité : ping 8.8.8.8. Si Netplan a été modifié, exécutez : sudo netplan apply
bash: sudo: command not found (AlmaLinux)sudo non installé par défaut sur les installations minimalesConnectez-vous en tant que root et exécutez : dnf install sudo -y

Pour aller plus loin : astuces avancées

1. Installez Fail2ban pour bloquer les attaques par force brute

Même avec l'authentification par clé SSH, des bots automatisés tenteront en continu de se connecter à votre serveur. Fail2ban surveille les fichiers journaux et bannit automatiquement les adresses IP au comportement malveillant (trop de tentatives de connexion échouées). Pour une liste de contrôle de sécurité plus complète, consultez notre guide sur comment sécuriser un serveur dédié.

bash
sudo apt install fail2ban -y

sudo systemctl enable --now fail2ban

La configuration par défaut surveille SSH et bannit les IP après 5 tentatives échouées en 10 minutes. Vérifiez son statut avec : sudo fail2ban-client status sshd.

2. Mettez en place les mises à jour de sécurité automatiques

Maintenir votre serveur à jour est essentiel. Sous Ubuntu/Debian, le paquet unattended-upgrades installe automatiquement les mises à jour de sécurité :

bash
sudo apt install unattended-upgrades -y

sudo dpkg-reconfigure --priority=low unattended-upgrades

3. Surveillez votre serveur grâce aux journaux système

Linux offre une journalisation riche via journald et les fichiers de logs traditionnels dans /var/log/. Journaux clés à surveiller :

  • /var/log/auth.log : connexions SSH, utilisation de sudo, échecs d'authentification (Ubuntu/Debian).
  • /var/log/secure : équivalent ci-dessus sur les systèmes AlmaLinux/basés sur RHEL.
  • sudo journalctl -xe : événements système et messages d'erreur en temps réel.

Pour une solution de supervision plus puissante, envisagez d'installer Netdata ou Prometheus + Grafana pour des tableaux de bord en temps réel sur votre serveur Kimsufi. Si vous êtes prêt à passer à l'étape suivante avec votre serveur, consultez notre guide du serveur dédié Linux pour des sujets de configuration plus avancés.

FAQ

Combien de temps faut-il pour configurer un serveur Linux à partir de zéro ?

Pour une installation sécurisée de base (étapes 1 à 6 de ce guide), comptez 45 à 90 minutes. Le temps dépend surtout de la durée des mises à jour de paquets et de votre aisance avec la ligne de commande. Les administrateurs système expérimentés peuvent finaliser l'installation en moins de 20 minutes à l'aide d'outils d'automatisation comme Ansible.

Quelle est la meilleure distribution Linux pour les serveurs ?

Pour la plupart des usages, Ubuntu Server LTS (Long Term Support) est le meilleur point de départ : il bénéficie de la plus grande communauté, de la documentation la plus fournie et de 5 ans de support officiel. Pour les environnements d'entreprise nécessitant une compatibilité Red Hat Enterprise Linux (RHEL), AlmaLinux 9 ou Rocky Linux sont d'excellentes alternatives gratuites. Debian 12 est privilégié lorsque la stabilité est la priorité absolue.

Quel est le rôle de l'utilisateur root ?

L'utilisateur root est le compte super-utilisateur d'un système Linux : il dispose d'un accès illimité à tous les fichiers, processus et paramètres système. Pour la gestion quotidienne du serveur, utilisez un compte utilisateur standard doté des privilèges sudo plutôt que de vous connecter directement en tant que root. Cela limite les dégâts si le compte est compromis ou si une commande est exécutée par erreur.

Puis-je ignorer la mise en place des clés SSH et utiliser un mot de passe à la place ?

Techniquement oui, mais c'est fortement déconseillé. L'authentification SSH par mot de passe est vulnérable aux attaques par force brute. Les clés SSH sont mathématiquement sûres et quasiment impossibles à craquer par force brute avec les longueurs de clés modernes (ed25519 ou RSA 4096 bits). Pour tout serveur exposé à Internet, y compris votre serveur Kimsufi, les clés SSH sont incontournables.

Comment configurer les paramètres réseau si je ne connais pas l'IP de ma passerelle ?

Sur les serveurs Kimsufi, l'IP de votre passerelle correspond généralement à l'IP de votre serveur dont le dernier octet est remplacé par .254 (par exemple, si votre IP est 192.168.1.100, la passerelle est 192.168.1.254). Vous pouvez aussi la récupérer avant toute modification avec : ip route show | grep default.

Quels outils sont nécessaires pour gérer un serveur Linux ?

Au minimum : un terminal avec accès SSH, un éditeur de texte (nano pour les débutants, vim pour les utilisateurs avancés) et le gestionnaire de paquets de votre distribution (apt pour Ubuntu/Debian, dnf/yum pour AlmaLinux). Au-delà, parmi les outils utiles figurent htop (supervision des processus), tmux (multiplexeur de terminal pour les sessions persistantes), rsync (transferts de fichiers) et cron (planification des tâches).

Comment configurer un pare-feu sur un serveur Linux ?

Sous Ubuntu/Debian, UFW (Uncomplicated Firewall) est l'outil standard : reportez-vous à l'étape 6 de ce guide pour l'installation complète. Sur les systèmes AlmaLinux/basés sur RHEL, c'est firewalld qui est utilisé à la place. Pour les cas d'usage avancés nécessitant des règles fines, nftables ou iptables vous offrent un contrôle total sur le filtrage du trafic réseau.

Conclusion

Vous disposez désormais d'un serveur Linux entièrement configuré : paquets à jour, utilisateur sudo non-root en place, clés SSH configurées, connexion root désactivée, pare-feu protégeant vos ports ouverts et configuration réseau propre. C'est la base sécurisée et prête pour la production sur laquelle tout serveur Linux devrait débuter. L'étape suivante consiste à déployer votre stack applicative par-dessus, qu'il s'agisse d'une stack LAMP/LEMP pour un serveur web, de Docker pour des applications conteneurisées, ou de la mise en place de sauvegardes automatisées pour protéger tout ce que vous venez de construire.

Déployez votre serveur Linux dès aujourd'hui Lancez-vous avec les serveurs dédiés Kimsufi à partir de 11,10 €/mois. Accès root, trafic illimité, protection anti-DDoS intégrée.