Les serveurs VPS Linux offrent une meilleure sécurité que les systèmes Windows grâce à leur modèle de sécurité Linux intégré. Cela dit, aucun système n'est infaillible. Des milliers de serveurs sont scannés chaque jour par des attaquants à la recherche de failles pour exploiter des données sensibles ou lancer des attaques à grande échelle.
Sécuriser un serveur Linux demande une configuration réfléchie. Une installation VPS fraîche arrive avec des paramètres par défaut qui favorisent l'accessibilité au détriment de la sécurité. Savoir comment sécuriser un serveur Linux protège contre des menaces en constante évolution tout en préservant le bon fonctionnement du système. Ce guide présente 20 étapes essentielles pour sécuriser votre infrastructure VPS Linux et transformer un serveur vulnérable en une forteresse capable de repousser les attaques courantes.
Qu'est-ce qu'un VPS Linux ?

Un VPS Linux (Virtual Private Server) s'exécute sur des plateformes cloud avec des ressources dédiées, isolées des autres utilisateurs. Contrairement à l'hébergement mutualisé où un seul compte compromis peut affecter les autres, un hébergement VPS sécurisé isole votre environnement. Malgré cela, les attaquants ciblent régulièrement les serveurs VPS non sécurisés pour voler des données, installer des logiciels malveillants ou lancer des attaques contre d'autres systèmes.
Lorsque vous commandez un VPS Linux hébergement, le système d'exploitation est préinstallé avec des paramètres de base. Ces configurations par défaut privilégient la simplicité d'utilisation au détriment de la sécurité, laissant votre serveur exposé à des attaques automatisées qui recherchent des vulnérabilités connues. Sécuriser les données dans le cloud avec des serveurs VPS exige des mesures proactives qui vont au-delà de la simple installation.
Pourquoi sécuriser votre VPS Linux
Les serveurs non sécurisés deviennent des cibles en quelques heures après leur mise en ligne. Les organisations font désormais face à une moyenne de 1 876 cyberattaques par semaine, soit une hausse de 75 % par rapport à l'année précédente. Savoir comment sécuriser une infrastructure serveur Linux protège contre ces menaces permanentes qui peuvent compromettre votre système.
Ce qui rend ces attaques particulièrement dangereuses, c'est qu'elles passent souvent inaperçues. Les attaquants peuvent accéder à vos données, surveiller vos communications ou exploiter les ressources de votre serveur sans aucun signe visible d'intrusion. Un hébergement VPS sécurisé exige une approche proactive : les attaquants ne préviennent pas. Le temps que vous détectiez une activité anormale, les dégâts peuvent déjà être considérables.
Modèle de sécurité Linux (LSM)

Linux intègre des fonctionnalités de sécurité natives qui bloquent les accès non autorisés aux composants système critiques. Le modèle de sécurité Linux, illustré par un diagramme, montre comment les contrôles d'accès protègent les fichiers, les processus et les interactions utilisateur. Cela crée plusieurs couches de sécurité qui rendent l'exploitation plus difficile que sur d'autres systèmes d'exploitation.
Les LSM ne peuvent cependant pas empêcher les attaques liées à une mauvaise configuration, des mots de passe faibles ou des logiciels obsolètes. Ils constituent la base pour sécuriser un serveur Linux, mais nécessitent une mise en œuvre rigoureuse pour être efficaces avec Hébergement Ubuntu VPS et autres distributions Linux.
20 façons de sécuriser Linux VPS

Ces mesures de sécurité vont des ajustements de configuration de base aux systèmes de surveillance avancés. Maîtriser la sécurisation d'un environnement serveur Linux demande d'appliquer ces étapes de façon méthodique, afin de construire un serveur Linux capable de résister aux vecteurs d'attaque courants.
Chaque technique cible des vulnérabilités spécifiques que les attaquants exploitent fréquemment. Les méthodes vont des configurations fondamentales indispensables à tout serveur aux systèmes de surveillance sophistiqués pour la détection de menaces avancées. Certaines mesures offrent une protection immédiate, d'autres renforcent la résilience de sécurité sur le long terme. L'ordre d'implémentation est important : les étapes de durcissement de base doivent précéder les outils de surveillance avancés. Ensemble, ces 20 stratégies créent des couches de sécurité qui se chevauchent et réduisent significativement la surface d'attaque de votre serveur.
1. Maintenir les logiciels à jour
Les logiciels obsolètes contiennent des vulnérabilités connues que les attaquants exploitent. Les développeurs publient régulièrement des correctifs pour y remédier : les mises à jour constituent donc votre première ligne de défense pour sécuriser vos systèmes serveur Linux.
Configurez les mises à jour automatiques pour les correctifs de sécurité critiques :
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
Configurez des notifications par e-mail pour les mises à jour disponibles, afin de rester informé des correctifs de sécurité nécessitant une révision manuelle.
2. Désactiver la connexion root
Chaque serveur Linux inclut un compte utilisateur « root » disposant d'un accès système illimité. Ce compte étant universellement connu, les pirates le ciblent par des attaques par force brute pour deviner le mot de passe et prendre le contrôle total du serveur.
Créez un utilisateur administrateur avant de désactiver l'accès root :
# Create new user
sudo adduser adminuser
sudo usermod -aG sudo adminuser
# Disable root login in SSH configuration
sudo nano /etc/ssh/sshd_config
# Change: PermitRootLogin no
sudo systemctl restart sshd
Cela oblige les attaquants à deviner à la fois le nom d'utilisateur et le mot de passe, ce qui renforce considérablement la sécurité.
3. Générer une paire de clés SSH
Les connexions par mot de passe, surtout lorsque ceux-ci sont faibles, peuvent constituer une vulnérabilité. L'authentification par clé SSH offre une alternative plus sûre. En utilisant des clés cryptographiques plutôt que des mots de passe, vous optez pour une méthode d'authentification plus difficile à compromettre.
Cette mesure de sécurité est particulièrement importante, car des identifiants volés constituent le vecteur d'attaque initial dans 24 % des violations de données selon les études en cybersécurité. Ces attaques sont plus longues à détecter et à contenir que toute autre méthode, ce qui rend la prévention par clés SSH indispensable.
Générez des paires de clés SSH pour une authentification sécurisée :
ssh-keygen -t rsa -b 4096
ssh-copy-id username@server-ip
Les clés SSH peuvent atteindre 4 096 bits, ce qui les rend exponentiellement plus sûres que même les mots de passe les plus complexes.
4. Activer l'authentification à deux facteurs
L'authentification à deux facteurs ajoute une étape de vérification supplémentaire au-delà du mot de passe. Même si un attaquant obtient votre mot de passe, il ne peut pas accéder à votre serveur sans le second facteur d'authentification.
Installer et configurer l'authentification à deux facteurs :
sudo apt install libpam-google-authenticator
google-authenticator
Configurez votre application d'authentification mobile pour générer des codes temporels pour l'accès au serveur.
5. Changer le port SSH
Le port SSH par défaut (22) est en permanence visé par des tentatives d'attaque provenant d'outils d'analyse automatisés. Changer de port réduit l'exposition à ces attaques automatisées. Sachant que le coût moyen mondial d'une violation de données a atteint 4,88 millions de dollars en 2024, même des mesures de sécurité simples comme le changement de port offrent une protection utile contre les menaces automatisées.
Pour la plupart des distributions Linux :
sudo nano /etc/ssh/sshd_config
# Find: #Port 22
# Change to: Port 2222 (choose a port between 1024-65535)
sudo systemctl restart sshd
Pour Ubuntu 23.04 et versions ultérieures :
sudo nano /lib/systemd/system/ssh.socket
# Update ListenStream=2222
sudo systemctl daemon-reload
sudo systemctl restart ssh.service
Important : Testez le nouveau port avant de fermer votre session en cours :
# Test connection in a new terminal
ssh username@server-ip -p 2222
Mettez à jour vos règles de pare-feu pour autoriser le nouveau port :
sudo ufw allow 2222
sudo ufw delete allow 22 # Remove old rule after testing
Pensez à préciser le nouveau port lors de la connexion : ssh nom_utilisateur@adresse-ip-serveur -p 2222
6. Désactiver les ports réseau et IPv6 inutilisés
Les ports réseau ouverts constituent des points d'entrée pour les attaquants. Chaque service actif crée des vulnérabilités potentielles : désactivez les services inutiles ainsi que les ports qui leur sont associés.
Afficher les ports actuellement ouverts :
sudo netstat -tulpn
# Alternative command
sudo ss -tulpn
Utilisez iptables pour gérer les règles de pare-feu et fermer les ports inutiles.
Désactiver IPv6 si inutile :
sudo nano /etc/sysctl.conf
# Add these lines:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
# Apply changes
sudo sysctl -p
# Verify IPv6 is disabled
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
# Should return 1
Mettre à jour la configuration réseau (indiquez le chemin de votre fichier netplan réel) :
# Find netplan configuration files
ls /etc/netplan/
# Edit your specific configuration file
sudo nano /etc/netplan/[your-config-file].yaml
# Comment out IPv6 configuration lines
sudo netplan apply
7. Configurer un pare-feu
Les pare-feux contrôlent le trafic réseau autorisé à atteindre votre serveur. Ils bloquent les connexions non autorisées tout en laissant passer le trafic légitime via les ports spécifiés.
Configuration rapide avec UFW :
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
Règles de pare-feu essentielles :
| Rôle | Commande | Résultat |
| Autoriser HTTP | sudo ufw allow 80 | Trafic web autorisé |
| Autoriser HTTPS | sudo ufw allow 443 | Trafic web sécurisé |
| Autoriser le port SSH personnalisé | sudo ufw allow 2222 | SSH sur port personnalisé |
| Bloquer une IP spécifique | sudo ufw deny from 192.168.1.100 | IP entièrement bloquée |
Vérifier l'état du pare-feu :
sudo ufw status verbose
Cette configuration bloque tout le trafic entrant, à l'exception des connexions SSH.
8. Installer des applications anti-malware et antivirus
Les systèmes Linux peuvent être infectés par des logiciels malveillants qui volent des données, minent des cryptomonnaies ou ouvrent des accès dérobés aux attaquants. Un logiciel anti-malware détecte et supprime ces menaces avant qu'elles ne compromettent votre système.
Installer ClamAV pour une analyse antivirus complète :
sudo apt install clamav clamav-daemon clamav-freshclam
sudo freshclam
sudo systemctl enable clamav-freshclam
sudo systemctl start clamav-freshclam
Lancer des analyses manuelles sur les répertoires critiques :
sudo clamscan -r /home --infected --remove --bell
sudo clamscan -r /var/www --infected --remove
Pour une protection renforcée, installer Maldet en complément de ClamAV :
# Verify URL availability before downloading
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar -xzf maldetect-current.tar.gz
cd maldetect-*
sudo ./install.sh
# Note: Always verify download URLs from official sources before use
Planifier des analyses automatisées quotidiennes avec cron :
# Add to crontab: Daily scan at 2 AM
0 2 * * * /usr/bin/clamscan -r /home --quiet --infected --remove
9. Installer un scanner de rootkits
Les rootkits sont des programmes malveillants qui s'enfouissent profondément dans le système d'exploitation, échappant souvent aux logiciels antivirus classiques. Ils permettent aux attaquants de maintenir un accès persistant à votre système tout en restant indétectables par les méthodes de détection habituelles.
Installer et configurer Chkrootkit pour la détection de rootkits :
sudo apt install chkrootkit
sudo chkrootkit | grep INFECTED
Installer RKHunter pour une protection supplémentaire contre les rootkits :
sudo apt install rkhunter
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
Mettre en place des analyses automatisées hebdomadaires de rootkits :
# Add to crontab: Weekly rootkit scan every Sunday at 3 AM
0 3 * * 0 /usr/bin/rkhunter --cronjob --update --quiet
0 4 * * 0 /usr/bin/chkrootkit | grep INFECTED > /var/log/chkrootkit.log
Si des rootkits sont détectés, isolez immédiatement le serveur et envisagez une réinstallation complète de l'OS : les rootkits sont souvent impossibles à éliminer totalement sans compromettre l'intégrité du système.
10. Utiliser Fail2Ban pour prévenir les intrusions
Fail2Ban surveille les tentatives de connexion et bloque automatiquement les adresses IP qui présentent un comportement malveillant, comme des échecs de connexion répétés.
Installation rapide :
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Paramètres de protection essentiels SSH :
[sshd]
enabled = true
port = ssh
maxretry = 3
bantime = 3600
findtime = 600
Valeurs de configuration clés :
| Paramètre | Tarif | Signification |
| maxretry | 3 | Tentatives échouées avant blocage |
| durée du bannissement | 3600 | Durée du bannissement (1 heure) |
| trouver l'heure | 600 | Fenêtre temporelle (10 minutes) |
Démarrer et activer :
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Vérifier les IP bannies :
sudo fail2ban-client status sshd
11. Activer SELinux
Security-Enhanced Linux (SELinux) impose des contrôles d'accès obligatoires qui limitent ce que les programmes peuvent faire, même s'ils sont compromis. Il ajoute une couche de sécurité supplémentaire au-delà des permissions Linux standard.
Vérifiez et activez SELinux :
sestatus
sudo setenforce enforcing
Les politiques SELinux empêchent les applications compromises d'accéder à des ressources système non autorisées. Suivez ces quelques conseils pour tirer le meilleur parti de SELinux pour une configuration optimale.
12. Protéger les fichiers, les répertoires et les e-mails
Chiffrez vos fichiers sensibles pour les protéger contre tout accès non autorisé, même si un attaquant parvient à compromettre le système. Une précaution indispensable pour les configurations de serveurs de fichiers Linux qui traitent des données sensibles.
Utiliser GPG pour chiffrer des fichiers :
gpg --cipher-algo AES256 --compress-algo 1 --s2k-mode 3 --s2k-digest-algo SHA512 --s2k-count 65536 --symmetric filename
Définir les permissions de fichiers appropriées pour restreindre l'accès :
chmod 600 sensitive-file # Owner read/write only
chmod 700 private-directory # Owner access only
13. Effectuer des sauvegardes régulières
Les sauvegardes régulières vous permettent de récupérer vos données après un incident de sécurité, une défaillance matérielle ou une perte accidentelle. Les sauvegardes automatisées réduisent le risque d'erreur humaine et constituent un élément clé de toute stratégie d'hébergement VPS sécurisée.
Créer des scripts de sauvegarde automatisés :
#!/bin/bash
tar -czf /backup/$(date +%Y%m%d)-system.tar.gz /home /etc /var/log
Stockez vos sauvegardes à plusieurs endroits, y compris hors site, en suivant la règle de sauvegarde 3-2-1.
14. Partitionner le disque
Le partitionnement du disque sépare les fichiers système des données utilisateur, ce qui limite les dégâts si une partition est compromise. Il empêche également qu'un manque d'espace sur une partition n'affecte l'ensemble du système.
Schéma de partition recommandé :
/boot – 500 Mo (fichiers de démarrage)
/ – 20 Go (fichiers système)
/home – 50 Go (données utilisateur)
/var – 10 Go (journaux et bases de données)
/tmp – 2 Go (fichiers temporaires)
swap – 2 Go (mémoire virtuelle)
Monter les partitions temporaires avec des restrictions de sécurité :
# Add to /etc/fstab for permanent mounting
echo "tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev,size=2G 0 0" >> /etc/fstab
echo "tmpfs /var/tmp tmpfs defaults,noexec,nosuid,nodev,size=1G 0 0" >> /etc/fstab
# Appliquer immédiatement
sudo mount -a
Vérifier la sécurité des partitions :
mount | grep -E "(noexec|nosuid|nodev)"
df -h # Check disk usage by partition
La noexec empêche l'exécution de fichiers malveillants, nosuid désactive les bits set-user-ID, et nodev empêche la création de fichiers de périphérique dans les répertoires temporaires.
15. Surveiller les journaux du serveur
Les journaux du serveur enregistrent toutes les activités système et fournissent des signaux d'alerte précoce en cas d'incident de sécurité. Une surveillance régulière permet de détecter les comportements anormaux avant qu'ils ne deviennent de véritables menaces.
Journaux clés à surveiller :
| Fichier journal | Rôle | Commande |
| /var/log/auth.log (Debian/Ubuntu)<br>/var/log/secure (CentOS/RHEL) | Tentatives de connexion | sudo tail -f /var/log/auth.log<br>sudo tail -f /var/log/secure |
| /var/log/syslog (Debian/Ubuntu)<br>/var/log/messages (CentOS/RHEL) | Messages système | sudo tail -f /var/log/syslog<br>sudo tail -f /var/log/messages |
| /var/log/apache2/access.log (Debian/Ubuntu)<br>/var/log/httpd/access_log (CentOS/RHEL) | Trafic web | sudo tail -f /var/log/apache2/access.log<br>sudo tail -f /var/log/httpd/access_log |
| /var/log/fail2ban.log | IPs bloquées | sudo tail -f /var/log/fail2ban.log |
Commandes rapides d'analyse des journaux :
# Failed login attempts (adjust path for your distribution)
sudo grep "Failed password" /var/log/auth.log | tail -10
# Successful logins
sudo grep "Accepted" /var/log/auth.log | tail -10
# Large file transfers (adjust path for your web server)
sudo awk '{print $10}' /var/log/apache2/access.log | sort -n | tail -10
Surveillance automatisée des journaux :
# Install logwatch for daily summaries
sudo apt install logwatch
sudo logwatch --detail Med --mailto [email protected] --service All
Configurez la rotation des journaux pour éviter que les fichiers de logs ne saturent l'espace disque.
16. Utilisez des mots de passe forts
Un mot de passe fort résiste aux attaques par force brute et aux attaques par dictionnaire. Un mot de passe faible peut être cracké en quelques minutes avec la puissance de calcul actuelle.
Exigences pour les mots de passe :
- 12 caractères minimum
- Mélange de majuscules, minuscules, chiffres et symboles
- Aucun mot du dictionnaire ni information personnelle
- Unique pour chaque compte
Utilisez un gestionnaire de mots de passe pour générer et stocker vos mots de passe complexes en toute sécurité. Combinés aux autres principes du modèle de sécurité Linux avec diagramme, les mots de passe forts constituent plusieurs couches de défense qui protègent contre les accès non autorisés.
17. Préférez SFTP à FTP
Le protocole FTP standard transmet les données et les identifiants en clair, les rendant visibles à quiconque intercepte le trafic réseau. SFTP chiffre toutes les transmissions, protège les informations sensibles et prend en charge les architectures de serveur de fichiers sécurisées Linux.
Configurer un accès exclusif en SFTP :
sudo nano /etc/ssh/sshd_config
# Add: Subsystem sftp internal-sftp
Désactivez les services FTP standard pour éliminer ce risque de sécurité :
sudo systemctl disable vsftpd
sudo systemctl stop vsftpd
18. Activez les mises à jour automatiques du CMS
Les systèmes de gestion de contenu (WordPress, Drupal, Joomla) publient régulièrement des correctifs de sécurité. Activer les mises à jour automatiques garantit que les vulnérabilités critiques sont corrigées sans délai.
Pour WordPress, ajoutez ceci dans wp-config.php :
define('WP_AUTO_UPDATE_CORE', true);
add_filter('auto_update_plugin', '__return_true');
add_filter('auto_update_theme', '__return_true');
Surveillez les journaux de mise à jour pour vérifier la compatibilité et le bon fonctionnement.
19. Désactivez les transferts FTP anonymes
Le FTP anonyme permet à n'importe qui de déposer des fichiers sur votre serveur sans authentification. Cela peut conduire votre serveur à héberger du contenu illégal, des malwares, ou à devenir un point de distribution pour des attaques.
Configurez vsftpd pour exiger une authentification :
sudo nano /etc/vsftpd.conf
# Désactiver l'accès anonyme
anonymous_enable=NO
# Activer l'authentification locale des utilisateurs
local_enable=YES
write_enable=YES
local_umask=022
# Restreindre les utilisateurs à leurs répertoires personnels
chroot_local_user=YES
allow_writeable_chroot=YES
# Paramètres de sécurité
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
Redémarrez le service FTP :
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
Créez des comptes utilisateurs FTP avec des permissions restreintes :
sudo adduser ftpuser
sudo usermod -d /var/ftp/uploads ftpuser
sudo chown ftpuser:ftpuser /var/ftp/uploads
sudo chmod 755 /var/ftp/uploads
Surveillez les journaux d'accès FTP pour détecter toute activité suspecte :
sudo tail -f /var/log/vsftpd.log
20. Configurer la protection contre les attaques par force brute
Mettez en place plusieurs couches de protection contre les attaques par force brute, au-delà de Fail2Ban, pour contrer les attaques automatisées sophistiquées.
Configurez des protections supplémentaires :
# Limit SSH connection attempts
sudo nano /etc/ssh/sshd_config
# Add: MaxAuthTries 3
# Add: ClientAliveInterval 300
# Add: ClientAliveCountMax 2
Utilisez des outils comme DenyHosts en complément de Fail2Ban pour une protection complète.
Conclusion
Sécuriser un Linux VPS nécessite plusieurs couches de défense, des modifications de configuration de base jusqu'aux systèmes de surveillance avancés. Commencez par les mesures fondamentales (mises à jour logicielles, configuration du pare-feu, durcissement SSH) avant d'ajouter des outils comme la détection d'intrusion et la surveillance automatisée.
Un serveur Linux sécurisé exige une maintenance continue, pas une configuration unique. Examinez régulièrement les journaux, mettez à jour les logiciels et ajustez vos mesures de sécurité à mesure que les menaces évoluent. Investir dans une configuration de sécurité rigoureuse permet d'éviter des violations de données coûteuses et de garantir la fiabilité du système.
Ces mesures de sécurité fonctionnent ensemble : aucune technique seule n'offre une protection complète. Mettre en oeuvre les 20 stratégies crée des couches de sécurité qui se renforcent mutuellement et réduisent significativement la vulnérabilité de votre serveur aux attaques courantes. Que vous ayez besoin de configurations sécurisées pour un serveur de fichiers Linux ou d'une protection générale pour l'hébergement VPS, ces étapes fondamentales constituent une base de sécurité solide.