Ce document suit précisément le sujet mis à jour dans subject.md. Les
captures proviennent de imageTP4 et sont placées là où elles apportent une
illustration utile.
- Installer VirtualBox sur l’hôte :
sudo apt update
sudo apt install virtualbox
virtualbox --help- Créer une VM Ubuntu « Serveur-SSH » : 2 Go RAM, 20 Go disque, réseau en Bridged Adapter.
Vérifier l’adresse IP dans la VM et ping depuis l’hôte :
ip a
ping <IP_VM>sudo apt update
sudo apt install openssh-serverVérifier que le service tourne :
sudo systemctl status ssh
sudo ss -tlnp | grep sshssh etudiant@<IP_VM>Accepter l’empreinte et saisir le mot de passe. La clé du serveur est ajoutée à
~/.ssh/known_hosts.
ssh-keygen -t ed25519ssh-copy-id etudiant@<IP_VM>ssh etudiant@<IP_VM>Modifier /etc/ssh/sshd_config : désactiver mot de passe et root, changer le
port.
PasswordAuthentication no
PermitRootLogin no
Port 2222
Redémarrer SSH :
sudo systemctl restart sshVérifier l’écoute sur le port 2222 :
sudo ss -tlnp | grep 2222Tester la connexion sur le nouveau port (échec avant modification illustré :)
Ajouter dans ~/.ssh/config :
Host serveur-tp
HostName <IP_VM>
User etudiant
Port 2222
Connexion simplifiée :
ssh serveur-tpscp fichier.txt serveur-tp:/home/etudiant/
scp -r dossier/ serveur-tp:/home/etudiant/Après création du fichier de test et transfert on peut vérifier son contenu :
sftp serveur-tp
> put fichier.txt
> get fichier.txt
> ls
> exitrsync -avz dossier/ serveur-tp:/home/etudiant/dossier/sudo tail -f /var/log/auth.logObserver connexions réussies, échecs de mot de passe, tentatives sur le mauvais port, etc.
sudo apt install fail2ban
sudo systemctl status fail2ban
sudo fail2ban-client status sshdConfigurer /etc/fail2ban/jail.local : (exemple ci‑dessous, port 2222)
[sshd]
enabled = true
port = 2222
backend = systemd
maxretry = 3
findtime = 60
bantime = 60
Redémarrer :
sudo systemctl restart fail2banssh -L 8080:localhost:80 serveur-tpPermet d’accéder à un service HTTP distant via http://localhost:8080.
Résultat affiché par curl :
ssh -R 9090:localhost:22 serveur-tpSur le serveur, curl http://localhost:9090 renvoie la page du client :
- Arrêter SSH : (non illustré).
- Mauvais port – voir image 37 connexion refusée.
- Mauvaise IP – pas d’image.
- Permissions incorrectes – pas d’image.
- Vérifier réseau, service, port (
ss), logs, configuration, tests locaux.
- Serveur SSH fonctionnel
- Authentification par clé uniquement
- Mot de passe désactivé
- Root interdit
- Port modifié
- Tunnel SSH fonctionnel
- Transferts opérationnels
- Fail2Ban actif
- Analyse logs maîtrisée
sudo apt update
sudo apt install nginx
sudo systemctl status nginxCréer la page test :
sudo mkdir -p /var/www/site-tp
echo '<h1>Bienvenue sur le site TP Nginx !</h1>' \
| sudo tee /var/www/site-tp/index.htmlConfigurer le site :
sudo vim /etc/nginx/sites-available/site-tpserver {
listen 80;
server_name localhost;
root /var/www/site-tp;
index index.html;
}Activer, tester et redémarrer :
sudo ln -s /etc/nginx/sites-available/site-tp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginxsudo mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout site-tp.key -out site-tp.crtModifier /etc/nginx/sites-available/site-tp :
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/nginx/ssl/site-tp.crt;
ssl_certificate_key /etc/nginx/ssl/site-tp.key;
root /var/www/site-tp;
index index.html;
}
server {
listen 80;
server_name localhost;
return 301 https://$host$request_uri;
}Tester et redémarrer :
sudo nginx -t
sudo systemctl restart nginxcurl -k https://<IP_VM>Vérifier la redirection HTTP :
curl -I http://<IP_VM>sudo ufw allow 'Nginx Full'
sudo ufw allow 2222
sudo ufw statusOn voit l’ouverture du port SSH personnalisé :

Définir permissions du site :
sudo chown -R www-data:www-data /var/www/site-tp
sudo chmod -R 755 /var/www/site-tp- Nginx accessible en HTTP et HTTPS
- Redirection automatique HTTP → HTTPS
- Certificat auto-signé fonctionnel
- Firewall configuré
- Page test accessible depuis le client
Les images suivantes n'ont pas été insérées dans le rapport principal mais peuvent servir de support ou de vérification ultérieure :
img6.png img7.png img8.png img9.png img10.png img12.png img14.png
img18.png img19.png img20.png img23.png img25.png img26.png img27.png
img28.png img31.png img32.png img34.png img36.png img41.png img42.png
img46.png img49.png img50.png img51.png img52.png img53.png img55.png
img56.png img57.png img58.png
(la numérotation est celle du répertoire imageTP4)


























