Voici un résumé organisé des étapes que nous avons suivies pour configurer SSH (sur le port 4242) et UFW (pour n’autoriser que ce port) dans la VM Born2BeRoot :
sshd
)Modifier /etc/ssh/sshd_config
Ouvrez le fichier de configuration du serveur SSH :
sudo nano /etc/ssh/sshd_config
Repérez et remplacez (ou décommentez) la ligne suivante :
- #Port 22
+ Port 4242
Vérifiez également que le login direct en root
est désactivé (recommandé) :
- #PermitRootLogin prohibit-password
+ PermitRootLogin no
Enregistrez (Ctrl + O → Entrée) et quittez (Ctrl + X).
Redémarrer le service SSH
Pour que les modifications prennent effet :
sudo systemctl restart sshd
Vérifiez qu’il n’y a pas d’erreur :
sudo systemctl status sshd
– S’il y a un problème de syntaxe dans sshd_config
, ce statut l’indiquera. Corrigez alors le fichier et redémarrez à nouveau.
Vérifier qu’sshd
écoute bien sur le port 4242
Dans la VM (console VirtualBox) :
ss -tuln | grep 4242
ou
netstat -tuln | grep 4242
Vous devez voir une (ou deux) lignes du type :
tcp LISTEN 0 128 0.0.0.0:4242 0.0.0.0:*
tcp6 LISTEN 0 128 [::]:4242 [::]:*
Cela confirme que le démon SSH est bien à l’écoute sur le port 4242 (et que plus aucun service ne répond sur le port 22).
Définir les politiques par défaut
Dans la VM, exécutez :
sudo ufw default deny incoming
sudo ufw default allow outgoing
deny incoming
: tout trafic entrant sera rejeté, sauf exception explicite.allow outgoing
: tout trafic sortant est autorisé (pour que la VM puisse faire apt-get
, DNS, etc.).Autoriser uniquement le port 4242/TCP
Toujours dans la VM :
sudo ufw allow 4242/tcp
Cette commande ajoute une règle qui autorise les connexions TCP sur le port 4242 uniquement.
Supprimer l’ancien port 22/TCP (si jamais UFW autorisait encore SSH sur 22)
sudo ufw delete allow 22/tcp
– Si la règle “22/tcp” n’existe pas, UFW vous l’indiquera, mais ce n’est pas bloquant.
Activer (ou réactiver) UFW
Si UFW n’était pas encore activé, lancez :
sudo ufw enable
– UFW vous préviendra que cela pourrait interrompre les connexions en cours. Répondez y
puisque vous venez d’autoriser le 4242 (pas le 22).
– Si UFW était déjà actif, les commandes précédentes ont mis à jour les règles à chaud.
Vérifier le statut d’UFW
sudo ufw status verbose
Vous devez lire :
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
4242/tcp ALLOW IN Anywhere
4242/tcp (v6) ALLOW IN Anywhere (v6)
– Seul le port 4242 apparaît dans la liste “ALLOW IN”. Tous les autres ports entrants sont bloqués par défaut.
Dans la VM (console VirtualBox)
Confirmez que sshd
est bien en écoute sur le port 4242 :
ss -tuln | grep 4242
– Vous verrez un “LISTEN” sur 0.0.0.0:4242
et :::4242
.
Confirmez qu’UFW autorise uniquement le port 4242 :
sudo ufw status verbose
Dans la machine hôte (terminal hors VirtualBox)
Si vous êtes en NAT + port-forwarding (voir la section précédente pour mettre en place la redirection VirtualBox 4242→4242) :
ssh -p 4242 <utilisateur_VM>@127.0.0.1
yes
), puis entrer le mot de passe de l’utilisateur dans la VM.sshd
fonctionnent correctement.Si vous êtes en Bridged Adapter (la VM a une IP LAN, par exemple 192.168.1.x
) :
ssh -p 4242 <utilisateur_VM>@<IP_VM>
– Par exemple :
ssh -p 4242 dbouizem42@192.168.121.105
– Là aussi, acceptez la clé si c’est la première fois, puis entrez le mot de passe.
sshd
doit écouter sur 4242 (corrigé dans /etc/ssh/sshd_config
), et vous devez avoir redémarré sshd
.