## Pourquoi la sécurisation est-elle indispensable ? Il existe des réseaux de machines malveillantes (bots) dont la seule fonction est de scanner et attaquer les serveurs vulnérables. Les principales attaques sont : - **Scans de ports** : recherche des services exposés (SSH, HTTP, FTP…). - **Tentatives de connexion root** : ciblage prioritaire du port SSH (22 par défaut). - **Brute-force / dictionnaire** : test automatique de milliards de combinaisons de mots de passe. Sans sécurisation, votre VPS peut être compromis en quelques heures, voire quelques minutes après sa mise en ligne. --- # Niveau 1 – Mettre à jour le système Un système non mis à jour est une cible facile, car les failles connues sont publiques. Les éditeurs publient régulièrement des correctifs de sécurité : vous devez les appliquer rapidement. Commandes essentielles : ```bash apt update && apt upgrade -y ``` À répéter régulièrement. Pour automatiser, vous pouvez installer : ```bash apt install unattended-upgrades ``` Cela permet l’installation automatique des mises à jour critiques de sécurité. --- # Niveau 2 – Utiliser un mot de passe fort (ou mieux : des clés SSH) Un mot de passe faible ou prévisible sera découvert en quelques secondes par une attaque brute force. ### Bonnes pratiques pour les mots de passe - **Longueur minimale** : 12 à 16 caractères. - **Complexité** : mélange de majuscules, minuscules, chiffres et caractères spéciaux. - **Éviter absolument** : noms, dates de naissance, mots du dictionnaire. - **Ne jamais réutiliser** le même mot de passe sur plusieurs services. Exemple correct : ``` py$XoTTUdBYY@!9f ``` Pour changer le mot de passe root : ```bash passwd root ``` ### Recommandation professionnelle Évitez l’authentification par mot de passe quand c’est possible, et **utilisez des clés SSH** : ```bash ssh-keygen -t ed25519 ``` Puis ajoutez votre clé publique dans : `~/.ssh/authorized_keys` Ensuite, désactivez l’accès par mot de passe dans `/etc/ssh/sshd_config` : ``` PasswordAuthentication no ``` --- # Niveau 3 – Modifier le port SSH Changer le port SSH par défaut (22) complique la tâche des robots de scan. Éditer le fichier : ```bash nano /etc/ssh/sshd_config ``` Remplacez : ``` #Port 22 ``` par un port de votre choix (ex. 22022). Puis redémarrez le service : ```bash systemctl restart ssh ``` ⚠️ Avant de fermer votre session, **ouvrez une seconde connexion** pour tester le nouveau port. --- # Niveau 4 – Installer Fail2Ban Fail2Ban surveille vos logs et bloque automatiquement les adresses IP effectuant trop de tentatives infructueuses. Installation : ```bash apt install fail2ban -y ``` Création d’une configuration personnalisée : ```bash cd /etc/fail2ban/jail.d/ nano custom.conf ``` Exemple de configuration : ``` [DEFAULT] ignoreip = 127.0.0.1 findtime = 3600 bantime = 86400 maxretry = 3 [sshd] enabled = true port = 22022 # votre port SSH logpath = /var/log/auth.log ``` Puis redémarrez : ```bash systemctl restart fail2ban ``` --- # Niveau 5 – Activer un pare-feu Un VPS doit exposer uniquement les services nécessaires. Tout le reste doit être bloqué par défaut. ### Avec UFW (simple) ```bash apt install ufw -y ufw default deny incoming ufw default allow outgoing ufw allow 22022/tcp # SSH ufw allow 80,443/tcp # HTTP/HTTPS ufw enable ``` ### Avec iptables/nftables (avancé) Utile pour des règles plus complexes (DoS, filtrage par IP, etc.). --- # Niveau 6 – Créer un utilisateur non-root L’utilisateur root ne devrait jamais être utilisé directement. Créez un utilisateur normal avec droits sudo : ```bash adduser monuser usermod -aG sudo monuser ``` Puis désactivez la connexion root SSH : ``` PermitRootLogin no ``` --- # Niveau 7 – Sauvegardes et surveillance Un serveur bien sécurisé ne doit pas seulement être protégé contre les intrusions, mais aussi être **préparé à une récupération rapide**. - **Sauvegardes régulières** : bases de données, fichiers critiques, configurations. - **Monitoring** : surveiller la charge CPU, RAM, espace disque et journaux (via Prometheus, Grafana, ou un service externe). - **Détection d’intrusion** : outils comme `rkhunter`, `chkrootkit`, ou `Lynis`. --- # Conclusion Sécuriser son VPS n’est pas une option mais une **obligation**. Un VPS non protégé est tôt ou tard compromis. Résumé des étapes minimales : 1. Maintenir le système à jour. 2. Utiliser des mots de passe forts (ou mieux, clés SSH). 3. Changer le port SSH et désactiver root. 4. Installer Fail2Ban. 5. Mettre en place un pare-feu. 6. Créer un utilisateur non-root. 7. Planifier des sauvegardes et surveiller le système. En appliquant ces bonnes pratiques, vous augmentez considérablement la résilience de votre VPS face aux attaques.