Cours RechercherCtrl K

Sécuriser un serveur Défi final

Sécuriser un serveur tout neuf

Pare-feu, SSH, CrowdSec, mises à jour et sauvegarde : la check-list complète d'un nouveau serveur.

30 min

Tu viens de louer un serveur. Avant d'y mettre le moindre site, tu appliques la check-list de sécurité vue dans ce cours. Attention à l'ordre : à aucun moment tu ne dois te couper l'accès SSH.

À retenir

  • Ordre sûr : autoriser SSH, puis activer le pare-feu ; installer la clé, puis couper les mots de passe.
  • Toujours sudo sshd -t avant de recharger SSH, et une session de secours ouverte.
  • CrowdSec = agent + bouncer, et une liste blanche pour soi.
  • Correctifs automatiques avec unattended-upgrades, sauvegarde nocturne avec cron, copie hors du serveur.

Voir la fiche de révision de cette leçon (à imprimer ou à relire avant un contrôle)

Le défi · La check-list du premier jour

  1. Pare-feu : refuse par défaut ce qui entre, autorise 22/tcp, 80/tcp et 443/tcp, puis active-le ;
  2. SSH : crée une clé ed25519, installe-la avec ssh-copy-id eleve@serveur, puis crée /etc/ssh/sshd_config.d/10-securite.conf avec PasswordAuthentication no et PermitRootLogin no ; vérifie et recharge SSH ;
  3. Attaques : installe crowdsec et crowdsec-firewall-bouncer-iptables, et mets ton adresse 198.51.100.10 dans une liste blanche perso ;
  4. Mises à jour : installe et active unattended-upgrades ;
  5. Sauvegarde : crée /etc/cron.d/sauvegarde qui lance en root, chaque jour à 23 h 30, tar -czf /var/backups/monsite.tar.gz /var/www/monsite.
commandes.sh
eleve@cours: ~

Tape tes commandes ici ou dans le fichier à gauche : chaque commande tapée dans le terminal est ajoutée au fichier.

Consignes à réussir

  • À faire : Pare-feu actif, entrées refusées par défaut
  • À faire : 22, 80 et 443 autorisés (SSH avant l'activation)
  • À faire : HTTPS autorisé
  • À faire : HTTP autorisé
  • À faire : La clé est installée (authorized_keys)
  • À faire : La clé est installée avant de couper les mots de passe
  • À faire : Plus de mot de passe ni de root en SSH
  • À faire : PermitRootLogin vaut no
  • À faire : sshd -t avant le rechargement
  • À faire : CrowdSec bloque vraiment (bouncer installé)
  • À faire : 198.51.100.10 est dans la liste blanche
  • À faire : Mises à jour automatiques actives
  • À faire : Sauvegarde chaque jour à 23 h 30 en root
Toujours bloqué ? Voir une solution
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
ssh-keygen -t ed25519 -C "eleve@pc"
ssh-copy-id eleve@serveur
echo "PasswordAuthentication no" | sudo tee /etc/ssh/sshd_config.d/10-securite.conf
echo "PermitRootLogin no" | sudo tee -a /etc/ssh/sshd_config.d/10-securite.conf
sudo sshd -t
sudo systemctl reload ssh
sudo apt install crowdsec crowdsec-firewall-bouncer-iptables
sudo cscli allowlists create perso -d "Moi"
sudo cscli allowlists add perso 198.51.100.10
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
echo "30 23 * * * root tar -czf /var/backups/monsite.tar.gz /var/www/monsite" | sudo tee /etc/cron.d/sauvegarde