Aller au contenu principal
Sécurité 28 février 2026 12 min de lecture

Sécuriser un serveur Linux : les 10 étapes essentielles

Votre VPS ou dédié fraîchement livré est une cible ouverte. Voici les 10 mesures indispensables à appliquer immédiatement après l'installation.

La première chose à faire lorsque vous recevez un serveur Linux neuf, qu'il s'agisse d'un VPS chez OVHcloud, Scaleway ou Infomaniak, ou d'un serveur dédié, c'est de le sécuriser. Un serveur exposé sur Internet sans hardening est une cible facile : les scans automatisés commencent dans les minutes qui suivent la mise en ligne. Ce guide vous présente les 10 étapes essentielles à appliquer systématiquement sur toute nouvelle installation.

1. Mettre à jour le système

C'est la toute première action à effectuer. Connectez-vous en root et lancez une mise à jour complète du système :

# Debian / Ubuntu
apt update && apt upgrade -y

# CentOS / Rocky Linux / AlmaLinux
dnf update -y

Activez ensuite les mises à jour automatiques de sécurité. Sous Ubuntu, le paquet unattended-upgrades gère cela de manière fiable. Sous Rocky Linux, configurez dnf-automatic avec le profil security. Les vulnérabilités non patchées restent le vecteur d'attaque numéro un sur les serveurs Linux.

# Ubuntu - Activer les mises à jour automatiques
apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades

2. Créer un utilisateur non-root

Travailler directement en root est une mauvaise pratique. Créez un utilisateur administrateur avec les privilèges sudo :

adduser admin
usermod -aG sudo admin

Utilisez cet utilisateur pour toutes vos connexions SSH quotidiennes. Le compte root ne devrait être utilisé qu'en cas d'urgence, et idéalement, sa connexion SSH devrait être désactivée (voir étape suivante).

3. Durcir la configuration SSH

SSH est la porte d'entrée principale de votre serveur. Sa configuration par défaut est trop permissive. Éditez /etc/ssh/sshd_config et appliquez ces modifications :

# Changer le port SSH (optionnel mais recommandé)
Port 2222

# Désactiver la connexion root
PermitRootLogin no

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

# Autoriser uniquement l'authentification par clé
PubkeyAuthentication yes

# Limiter les utilisateurs autorisés
AllowUsers admin

# Désactiver le protocole SSH v1
Protocol 2

# Timeout des sessions inactives
ClientAliveInterval 300
ClientAliveCountMax 2

Avant de désactiver l'authentification par mot de passe, assurez-vous d'avoir copié votre clé publique sur le serveur avec ssh-copy-id admin@votre-serveur. Redémarrez SSH avec systemctl restart sshd et testez la connexion dans un nouveau terminal avant de fermer votre session active.

4. Configurer le firewall avec UFW

UFW (Uncomplicated Firewall) est le frontend le plus simple pour iptables. Il permet de définir des règles claires en quelques commandes :

# Politique par défaut : tout bloquer en entrée
ufw default deny incoming
ufw default allow outgoing

# Autoriser SSH (sur le port modifié)
ufw allow 2222/tcp

# Autoriser HTTP et HTTPS
ufw allow 80/tcp
ufw allow 443/tcp

# Activer le firewall
ufw enable

# Vérifier les règles
ufw status verbose

Pour les configurations plus avancées ou les serveurs de production critiques, iptables ou nftables offrent un contrôle plus fin. Mais pour la majorité des cas d'usage, UFW est suffisant et nettement plus maintenable.

5. Installer et configurer fail2ban

fail2ban surveille les logs de vos services et bloque automatiquement les adresses IP qui montrent des comportements suspects (tentatives de brute-force, scans de vulnérabilités). C'est un indispensable :

apt install fail2ban -y
systemctl enable fail2ban

Créez un fichier de configuration locale dans /etc/fail2ban/jail.local :

[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3
backend = systemd

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400

Avec cette configuration, toute IP qui échoue 3 fois en 10 minutes à se connecter en SSH sera bannie pendant 24 heures. Vous pouvez ajouter des jails pour Apache, Nginx, Postfix et d'autres services selon vos besoins.

6. Désactiver les services inutiles

Chaque service actif sur votre serveur est une surface d'attaque potentielle. Listez les services en écoute et désactivez ceux qui ne sont pas nécessaires :

# Lister les ports en écoute
ss -tulnp

# Désactiver un service
systemctl stop nom-du-service
systemctl disable nom-du-service

Les services fréquemment inutiles sur un serveur web : rpcbind, avahi-daemon, cups, bluetooth. Chaque port fermé est un vecteur d'attaque en moins.

7. Configurer les permissions et les limites

Appliquez le principe du moindre privilège partout. Les fichiers de configuration sensibles ne doivent être lisibles que par root :

# Protéger les fichiers sensibles
chmod 600 /etc/ssh/sshd_config
chmod 600 /etc/shadow

# Sécuriser le répertoire tmp
mount -o remount,noexec,nosuid,nodev /tmp

Configurez également les limites système dans /etc/security/limits.conf pour éviter qu'un processus ne consomme toutes les ressources du serveur (fork bomb, fuite mémoire).

8. Détecter les rootkits et malwares

Installez des outils de détection pour repérer toute compromission :

# Installer rkhunter et chkrootkit
apt install rkhunter chkrootkit -y

# Mettre à jour la base de données rkhunter
rkhunter --update
rkhunter --propupd

# Lancer un scan
rkhunter --check --skip-keypress
chkrootkit

Planifiez des scans réguliers via cron (hebdomadaire minimum) et configurez les alertes par email pour être notifié en cas de détection. L'outil AIDE (Advanced Intrusion Detection Environment) est également recommandé pour surveiller l'intégrité des fichiers système.

9. Mettre en place les sauvegardes

La sécurité, c'est aussi la résilience. Configurez des sauvegardes automatiques régulières, stockées en dehors du serveur :

  • Snapshots hébergeur : OVHcloud, Scaleway et Infomaniak proposent des snapshots automatiques. Activez-les systématiquement.
  • Sauvegardes applicatives : exportez vos bases de données avec mysqldump ou pg_dump et envoyez-les vers un stockage externe (Object Storage S3, bucket Scaleway).
  • Sauvegarde fichiers : utilisez rsync ou restic pour synchroniser les fichiers importants vers un stockage distant.

Testez régulièrement la restauration de vos sauvegardes. Une sauvegarde non testée est une sauvegarde qui ne fonctionne pas.

10. Surveiller et auditer

Un serveur sécurisé est un serveur surveillé. Mettez en place un monitoring minimal dès le premier jour :

  • Logs centralisés : configurez rsyslog ou journald pour conserver les logs sur une durée suffisante (90 jours minimum).
  • Monitoring système : installez Netdata ou Prometheus + Grafana pour surveiller CPU, RAM, disque et réseau en temps réel.
  • Alertes : configurez des alertes sur les événements critiques (charge CPU élevée, disque plein, connexion SSH depuis une IP inconnue).
  • Audit : activez auditd pour tracer les accès aux fichiers sensibles et les modifications de configuration.

Checklist récapitulative

Les 10 étapes en résumé :
  1. Mettre à jour le système et activer les mises à jour automatiques
  2. Créer un utilisateur non-root avec sudo
  3. Durcir SSH (clé, port, désactiver root)
  4. Configurer le firewall (UFW ou iptables)
  5. Installer fail2ban contre le brute-force
  6. Désactiver les services inutiles
  7. Verrouiller les permissions et limites système
  8. Installer les outils de détection (rkhunter, chkrootkit)
  9. Mettre en place des sauvegardes automatiques hors-serveur
  10. Configurer le monitoring et les alertes

Ces 10 étapes constituent le socle minimal de sécurité pour tout serveur Linux exposé sur Internet. Elles ne prennent que 30 à 45 minutes à appliquer sur un serveur neuf, mais elles réduisent considérablement votre surface d'attaque. Appliquez-les systématiquement sur chaque nouveau VPS ou dédié, et documentez vos configurations pour pouvoir les reproduire rapidement en cas de besoin.

Pour aller plus loin, consultez notre comparatif des meilleurs VPS qui intègre les critères de sécurité dans l'évaluation, ou notre guide sur les meilleurs outils de monitoring open source pour surveiller votre serveur en continu.

Alexandre Petit

Administrateur systèmes

Admin sys depuis 15 ans, je teste les offres VPS et dédiés du marché pour les développeurs et les entreprises.