Skip to content

Instantly share code, notes, and snippets.

@Dolpheus89
Last active December 27, 2024 20:06
Show Gist options
  • Select an option

  • Save Dolpheus89/6314abc91e3471f2cefbc046ea4264c6 to your computer and use it in GitHub Desktop.

Select an option

Save Dolpheus89/6314abc91e3471f2cefbc046ea4264c6 to your computer and use it in GitHub Desktop.

Configuration et Sécurisation d'un Serveur VPS Ubuntu

Introduction

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.

Prérequis

  • Un VPS actif sous Ubuntu
  • Les identifiants de connexion initiaux
  • L'adresse IPv4 du serveur

1. Connexion SSH Initiale

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_VPS

Exemple de connexion :

ssh ubuntu@203.0.113.10

Lors 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.

2. Sécurisation du Compte Utilisateur

Modifiez immédiatement le mot de passe par défaut :

passwd

Le terminal n'affiche pas les caractères lors de la saisie du mot de passe pour des raisons de sécurité.

3. Mise à Jour du Système

La maintenance du système commence par la mise à jour complète des paquets :

Identification du système :

hostnamectl

Mise à jour du système :

sudo apt update    # Met à jour l'index des paquets
sudo apt upgrade   # Installe les nouvelles versions des paquets

4. Sécurisation de l'Accès SSH

4.1 Analyse des Vulnérabilités

Le service SSH fait face à deux vecteurs d'attaque principaux :

  1. Attaques par Brute Force : Tentatives automatisées d'authentification utilisant des combinaisons de credentials.
  2. Attaques par Déni de Service (DDoS) : Saturation des ressources du serveur par multiplication des connexions.

4.2 Modification du Port SSH

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_config

Configuration 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 restart

La nouvelle connexion nécessitera la spécification du port :

ssh username@IPv4_VPS -p votre_port

4.3 Implémentation de Fail2ban

Fail2ban renforce la sécurité en implémentant un bannissement temporaire des adresses IP présentant un comportement suspect.

Installation :

sudo apt install fail2ban

Configuration :

sudo nano /etc/fail2ban/jail.local

Configuration 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 restart

5. Gestion des Utilisateurs

5.1 Création d'un Utilisateur Privilégié

L'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.

5.2 Désactivation de l'Accès Root

Restreignez l'accès SSH de l'utilisateur root :

sudo nano /etc/ssh/sshd_config

Ajoutez ou modifiez :

PermitRootLogin no

Appliquez les modifications :

sudo service ssh restart

6. Validation de la Configuration

Testez systématiquement les modifications de configuration :

  1. Vérifiez la connexion avec le nouvel utilisateur
  2. Confirmez les privilèges sudo
  3. Testez les règles de Fail2ban
  4. Validez la désactivation de l'accès root

Recommandations Complémentaires

Pour renforcer davantage la sécurité :

  1. Implémentez l'authentification par clé SSH
  2. Configurez un pare-feu (UFW)
  3. Mettez en place une surveillance système
  4. Établissez une politique de sauvegarde

La sécurité étant un processus continu, maintenez régulièrement votre système à jour.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment