Ce guide couvre la configuration initiale et la sécurisation d'un serveur VPS (Virtual Private Server) sous Ubuntu. Il aborde les étapes essentielles pour établir une base sécurisée pour vos déploiements futurs.
- Un VPS actif sous Ubuntu
- Les identifiants de connexion initiaux
- L'adresse IPv4 du serveur
SSH (Secure Shell) établit un canal de communication chiffré entre votre machine locale et le serveur. La première connexion s'effectue avec la commande :
ssh username@IPv4_VPSExemple de connexion :
ssh ubuntu@203.0.113.10Lors de la première connexion, SSH affichera l'empreinte du serveur (fingerprint). Cette vérification fait partie du protocole de sécurité SSH pour prévenir les attaques par interposition.
Modifiez immédiatement le mot de passe par défaut :
passwdLe terminal n'affiche pas les caractères lors de la saisie du mot de passe pour des raisons de sécurité.
La maintenance du système commence par la mise à jour complète des paquets :
Identification du système :
hostnamectlMise à jour du système :
sudo apt update # Met à jour l'index des paquets
sudo apt upgrade # Installe les nouvelles versions des paquetsLe service SSH fait face à deux vecteurs d'attaque principaux :
- Attaques par Brute Force : Tentatives automatisées d'authentification utilisant des combinaisons de credentials.
- Attaques par Déni de Service (DDoS) : Saturation des ressources du serveur par multiplication des connexions.
Le port 22 est la cible privilégiée des scans automatisés. La modification du port constitue une première mesure de sécurité :
sudo nano /etc/ssh/sshd_configConfiguration du nouveau port :
- Sélectionnez un port non privilégié (1024-65535)
- Évitez les ports standards des services courants
- Documentez le port choisi de manière sécurisée
- Exemple de configuration :
Port 49555
Note : Ne réutilisez pas le port de cet exemple. Choisissez un port unique et non prévisible.
Appliquez les modifications :
sudo service ssh restartLa nouvelle connexion nécessitera la spécification du port :
ssh username@IPv4_VPS -p votre_portFail2ban renforce la sécurité en implémentant un bannissement temporaire des adresses IP présentant un comportement suspect.
Installation :
sudo apt install fail2banConfiguration :
sudo nano /etc/fail2ban/jail.localConfiguration minimale :
[ssh-ddos]
enabled = true
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 600
findtime = 600
action = iptables[name=SSH, port=ssh, protocol=tcp]- enabled = true : Active la protection SSH.
- filter = sshd : Utilise le filtre sshd pour surveiller les tentatives de connexion échouées dans le fichier de journal /var/log/auth.log.
- maxretry = 5 : Après 5 tentatives échouées, Fail2Ban va bannir l'adresse IP.
- bantime = 600 : L'adresse IP sera bannie pendant 10 minutes (600 secondes).
- findtime = 600 : Si les 5 tentatives échouées se produisent dans un délai de 10 minutes (600 secondes), l'adresse IP sera bannie.
- action = iptables[name=SSH, port=ssh, protocol=tcp] : Utilise iptables pour bloquer l'IP de l'attaquant sur le port SSH.
Activation :
sudo /etc/init.d/fail2ban restartL'utilisation directe du compte root présente des risques de sécurité. La création d'un utilisateur avec des privilèges sudo offre une granularité plus fine dans la gestion des droits.
sudo adduser <nouvel_utilisateur>
sudo usermod -aG sudo <nouvel_utilisateur>Vous pouvez configurer le compte pour forcer l'utilisateur à changer son mot de passe à sa première connexion :
Activez cette fonctionnalité avec la commande :
sudo chage -d 0 <nom_utilisateur>Lors de la première connexion, l'utilisateur sera invité à choisir un nouveau mot de passe.
Restreignez l'accès SSH de l'utilisateur root :
sudo nano /etc/ssh/sshd_configAjoutez ou modifiez :
PermitRootLogin no
Appliquez les modifications :
sudo service ssh restartTestez systématiquement les modifications de configuration :
- Vérifiez la connexion avec le nouvel utilisateur
- Confirmez les privilèges sudo
- Testez les règles de Fail2ban
- Validez la désactivation de l'accès root
Pour renforcer davantage la sécurité :
- Implémentez l'authentification par clé SSH
- Configurez un pare-feu (UFW)
- Mettez en place une surveillance système
- Établissez une politique de sauvegarde
La sécurité étant un processus continu, maintenez régulièrement votre système à jour.