TP3 : Sécurisation des VPS - PasRP-Theo/Admin-II GitHub Wiki
- Théo
- Barish
Date de réalisation : 17/02/2025
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.
-
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).
- Modifier le fichier
-
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 mettrePermitRootLogin no
.
- Modifier le fichier
-
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
- Modifier
-
Génération d'une clé SSH
ssh-keygen
-
Copie de la clé sur le VPS
Si cela ne fonctionne pas, copier le contenu de
ssh-copy-id <user>@<ip>
id_ed25519.pub
ouid_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 mettrePasswordAuthentication no
.
- Modifier le fichier
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
!
Indiquez ici sur quel VPS un site web a été déployé.