TP3 : Sécurisation des VPS - PasRP-Theo/Admin-II GitHub Wiki

Noms des auteurs :

  • Théo
  • Barish

Date de réalisation : 17/02/2025


1. Mise en oeuvre de la procédure de sécurisation proposée par OVH

Dans la TODO list ci-dessous, merci d'indiquer ce qui est réalisé et de documenter les commandes utilisées.

NOTE : Attention à ne pas mettre d'informations sensibles telles que des mots de passe si votre Wiki est accessible publiquement !

Indiquez également soigneusement, pour chaque point, comment vous avez validé son implémentation.

Tâches effectuées

  • Mettre à jour le système d'exploitation
    sudo apt update && sudo apt -y upgrade
  • Modifier le port d'écoute SSH par défaut
    • Modifier le fichier /etc/ssh/sshd_config et changer la valeur du port (par défaut 22).
  • Créer un utilisateur avec des droits restreints
    sudo adduser <newuser>
  • Désactiver l'accès SSH de l'utilisateur root
    • Modifier le fichier /etc/ssh/sshd_config et mettre PermitRootLogin no.
  • Configurer le pare-feu
    sudo apt install ufw
    sudo ufw allow <ssh_port>
    sudo ufw enable
    sudo ufw status  # Pour confirmer l'état du pare-feu
  • Installer Fail2ban et le configurer pour éviter les attaques brute-force sur SSH
    • Modifier /etc/fail2ban/jail.local avec la configuration suivante :
      [sshd]
      enabled = true
      port = <ssh_port>
      filter = sshd
      maxretry = 3
      findtime = 5m
      bantime  = 30
    • Activer le journal des tentatives de connexion :
      sudo touch /var/log/auth.log

2. Mise en place de l'authentification SSH par clé

  • Génération d'une clé SSH
    ssh-keygen
  • Copie de la clé sur le VPS
    ssh-copy-id <user>@<ip>
    Si cela ne fonctionne pas, copier le contenu de id_ed25519.pub ou id_rsa.pub dans ~/.ssh/authorized_keys sur le serveur.
  • Désactiver l'authentification par mot de passe
    • Modifier le fichier /etc/ssh/sshd_config.d/50-cloud-init.conf et mettre PasswordAuthentication no.

3. Ajout d'un utilisateur externe

Voici un script pour créer un utilisateur et le configurer :

#!/bin/bash

# Check if an argument is provided
if [ -z "$1" ]; then
    echo "Usage: $0 <username>"
    exit 1
fi

# Use the first argument as the username
name=$1

# Add user
sudo adduser --gecos "" $name

# Add user to the docker group
sudo usermod -aG docker $name

# Setup SSH directory securely
sudo -u $name mkdir -p /home/$name/.ssh
sudo -u $name touch /home/$name/.ssh/authorized_keys

# Expire password to force change on first login (optional)
sudo passwd -e $name

echo "User $name has been created and configured."

Attention : Ne pas oublier d'ajouter la clé publique de l'utilisateur dans authorized_keys !


4. Prise en main du VPS

Indiquez ici sur quel VPS un site web a été déployé.

⚠️ **GitHub.com Fallback** ⚠️