TP03 : Sécurisation des VPS - Durionleponey/AdminII GitHub Wiki
Noms des auteurs :
- De Henau Dudley
- Gendebien Jonas
- Clarembaux Robin
Date de réalisation : février 2025
Ci-dessous la checklist avec ce qui est réalisé, les commandes utilisées et la validation.
-
a) Réalisé :
sudo apt update
sudo apt upgrade
-
b) Documentation des commandes :
-
apt update
recharge la liste des paquets disponibles. -
apt upgrade
installe les mises à jour.
-
-
c) Validation :
- Relancer
sudo apt update && sudo apt upgrade
ne propose plus de mise à jour.
- Relancer
-
a) Réalisé :
- Éditer le fichier
/etc/ssh/sshd_config
- Décommenter la ligne
#Port 22
et remplacer22
par un autre port libre.
- Décommenter la ligne
sudo systemctl restart sshd
- Éditer le fichier
-
b) Documentation des commandes :
sudo nano /etc/ssh/sshd_config
sudo systemctl restart sshd
-
c) Validation :
- Sur la machine :
sudo ss -ptnlu
(vérifie le port d’écoute de sshd). - Hors de la machine :
nmap -p- <ip_du_vps>
(vérifie les ports ouverts).
- Sur la machine :
-
a) Réalisé :
sudo adduser normal
- Configuration du mot de passe.
-
sudo usermod -aG docker normal
(exemple pour l’ajouter au groupe Docker).
-
b) Documentation des commandes :
-
adduser <nom_utilisateur>
crée l’utilisateur et demande un mot de passe. - 'sudo addgroup <mon_groupe>' crée un groupe sans créer d'utilisateur.
-
usermod -aG <groupe> <utilisateur>
ajoute l’utilisateur à un groupe.
-
-
c) Validation :
-
groups normal
pour vérifier son appartenance aux groupes. -
cat /etc/passwd
pour vérifier sa présence. -
cat /etc/group
pour vérifier sa présence. - Test de connexion SSH avec l’utilisateur.
-
-
a) Réalisé :
- Dans
/etc/ssh/sshd_config
, définirPermitRootLogin no
. -
sudo systemctl restart sshd
.
- Dans
-
b) Documentation des commandes :
- Idem que précédemment (édition du fichier + restart du service).
-
c) Validation :
- Tentative de connexion SSH en root → doit être refusée.
-
a) Réalisé :
-
sudo apt-get install iptables
(si besoin). - Exemple de règles :
sudo iptables -A INPUT -i lo -j ACCEPT # Loopback sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP sudo iptables -A INPUT -p tcp --dport 49947 -j ACCEPT # Ajouter ici la règle pour votre port SSH custom (ex. 2222) : # sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT # Politique par défaut (au besoin) : # sudo iptables -P INPUT DROP # sudo iptables -P FORWARD DROP # sudo iptables -P OUTPUT ACCEPT sudo iptables-save > /etc/iptables/rules.v4 # Sauvegarde des règles
-
-
b) Documentation des commandes :
-
iptables -A INPUT -p tcp --dport <port> -j ACCEPT
autorise l’accès au port spécifié. -
iptables-save > /etc/iptables/rules.v4
sauvegarde la configuration.
-
-
c) Validation :
-
nmap -p- <ip_du_vps>
pour vérifier les ports réellement ouverts.
-
-
a) Réalisé :
sudo apt update
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Éditer
/etc/fail2ban/jail.local
:bantime = 3h maxretry = 3 [sshd] enabled = true
sudo systemctl restart fail2ban
-
b) Documentation des commandes :
-
fail2ban-client status
pour voir l’état global. -
fail2ban-client status sshd
pour voir les IP bannies, etc.
-
-
c) Validation :
- Faire plusieurs tentatives de connexion SSH incorrectes.
- Vérifier
fail2ban-client status sshd
.
-
a) Réalisé :
- Création du dossier :
mkdir ~/.ssh chmod 700 ~/.ssh
- Génération de la clé :
(Accepter les chemins par défaut ou spécifier un chemin personnalisé)
ssh-keygen -t ed25519 -a 100
- Ajout de la clé publique dans
~/.ssh/authorized_keys
:cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
- Création du dossier :
-
b) Documentation des commandes :
-
ssh-keygen -t ed25519 -a 100
crée une paire de clés (publique/privée) plus sécurisée. -
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
ajoute la clé publique au fichier d’autorisation.
-
-
c) Validation :
- Tester la connexion SSH :
ssh -i ~/.ssh/id_ed25519 <user>@<ip_du_vps> -p <port_ssh>
- Connexion réussie sans demande de mot de passe (si le mot de passe est désactivé et la clé configurée).
- Tester la connexion SSH :
-
a) Réalisé :
- Dans
/etc/ssh/sshd_config
, passerPasswordAuthentication no
. -
sudo systemctl restart sshd
.
- Dans
-
b) Documentation des commandes :
nano /etc/ssh/sshd_config
sudo systemctl restart sshd
-
c) Validation :
- Nouvelle tentative de connexion SSH : seule l’authentification par clé doit fonctionner.
Un site web consacré à Crash Bandicoot est déployé sur http://vps-1c1ad1e4.vps.ovh.net/
au moyen de Docker.