semaine 3 - securisation
Le cadenas et les clés
L'homme et sa sécurité doivent constituer la première préoccupation de toute aventure technologique.Albert Einstein
- Activer le HTTPS sur vos sites avec Let's Encrypt et certbot.
- Créer des webmestres : accès SFTP aux fichiers, jamais au shell.
- Maîtriser useradd, adduser et les groupes Linux.
https - pourquoi
Pourquoi le HTTPS ?
HTTP
Tout circule en clair : mots de passe, formulaires, pages. N'importe qui sur le chemin peut lire et modifier.
HTTPS
Le trafic est chiffré entre le navigateur et votre serveur. Le certificat prouve que vous êtes bien vous.
Les navigateurs marquent les sites HTTP « Non sécurisé » et les moteurs de recherche les pénalisent. En 2026, le HTTPS n'est plus une option.
https - prealables
Conditions préalables
- Un nom de domaine enregistré (semaine 2 : fait !).
- Un enregistrement A pointant vers l'IP publique du serveur.
- Un CNAME pour www (ou le wildcard *).
- Un fichier d'hôte virtuel pour le domaine dans /etc/apache2/sites-available/.
ServerName tonsite.com
ServerAlias www.tonsite.com
https - etape 1
Installer certbot
Certbot est le logiciel de l'EFF qui parle à Let's Encrypt pour vous.
prenom@serveur:~$ sudo apt update
prenom@serveur:~$ sudo apt install certbot python3-certbot-apache
Confirmez avec Y puis Enter : certbot est prêt.
https - etape 2
Ouvrir le pare-feu au HTTPS
prenom@serveur:~$ sudo ufw allow 'Apache Full'
prenom@serveur:~$ sudo ufw delete allow 'Apache'
prenom@serveur:~$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache Full ALLOW Anywhere
Apache Full = ports 80 et 443. Le profil « Apache » (80 seulement) devient redondant.
https - etape 3
Obtenir le certificat
prenom@serveur:~$ sudo certbot --apache
- Email : votre adresse (avis de renouvellement et sécurité).
- Terms of Service : (A)gree.
- Partager le courriel avec l'EFF ? N.
- Which names ? Indiquer TOUS les numéros proposés (ou laisser vide pour tout).
- Redirect HTTP vers HTTPS ? Choisir 2 : tout le trafic devient chiffré.
Certbot programme lui-même le renouvellement automatique : vos certificats se renouvellent sans vous.
https - verification
Vérifier son HTTPS
prenom@serveur:~$ sudo certbot renew --dry-run
prenom@serveur:~$ sudo certbot certificates
Refaites sudo certbot --apache à chaque nouveau sous-domaine à protéger.
webmestre - qui
Le webmestre : tout sauf le shell
Le webmestre programme et maintient UN site web. Il a besoin d'accéder :
Accès permis
- Aux fichiers de SON site via SFTP (FileZilla, WinSCP, Dolphin)
- À SA base de données via phpMyAdmin
Accès interdits
- Aux répertoires des autres sites
- Aux autres bases de données
- Au shell pour taper des commandes !
webmestre - creation
Créer un webmestre
prenom@serveur:~$ sudo useradd wiki-tonsite-com
prenom@serveur:~$ sudo passwd wiki-tonsite-com
prenom@serveur:~$ sudo chown -R wiki-tonsite-com:www-data /var/www/wiki.tonsite.com
prenom@serveur:~$ ls -l /var/www
Le webmestre se connecte ensuite en SFTP sur le port 22 et téléverse ses fichiers.
useradd vs adduser
useradd ou adduser ?
useradd (bas niveau)
Crée un utilisateur SANS profil ni home. Pour les webmestres sans shell et les scripts (portable sur toutes les distributions).
adduser (haut niveau)
Profil détaillé, répertoire home, questions interactives. La majorité du temps, c'est lui.
prenom@serveur:~$ sudo cat /etc/passwd
prenom@serveur:~$ sudo cat /etc/group
webmestre - securisation
Retirer le shell : sftponly
prenom@serveur:~$ sudo jed /usr/local/bin/sftponly
#!/bin/bash
if [[ "$2" = *sftp-server ]]
then
exec /bin/bash "$@"
else
echo "'$LOGNAME' peut seulement utiliser sftp."
exit 1
fi
prenom@serveur:~$ sudo chmod +x /usr/local/bin/sftponly
prenom@serveur:~$ sudo usermod --shell /usr/local/bin/sftponly wiki-tonsite-com
prenom@serveur:~$ sudo service ssh restart
Test : ssh wiki-tonsite-com@ip doit être refusé, le SFTP doit passer.
groupes
Exploiter les groupes d'utilisateurs
prenom@serveur:~$ sudo groupadd legroupe
prenom@serveur:~$ sudo usermod -aG legroupe ami
prenom@serveur:~$ cat /etc/group | grep legroupe
Le G MAJUSCULE est vital : un g minuscule supprime l'utilisateur de tous ses autres groupes !
resume
Un serveur digne de confiance
HTTPS partout
Certbot + Let's Encrypt : cadenas et renouvellement automatique.
Webmestres cadrés
SFTP sur leur site, phpMyAdmin sur leur base, zéro shell.
Comptes maîtrisés
useradd, adduser, groupes : chaque humain à sa place.
Le laboratoire de la semaine 3 vous attend : cadenas pour tous vos sites et un webmestre bien encadré. C'est aussi la ligne d'arrivée du Projet Serveur Web !