← Semaine 15

Laboratoire : le grand final

Sauvegarde rotative et estampes de sécurité : tout le cours s'assemble en deux automatisations de production.
0 / 6 missions accomplies
#!/bin/bash mkdir -p /home/prenom/etampes extension=$(date +%Y-%m-%d-%Hh%M) date > /home/prenom/etampes/etampe-${extension}.txt
$ chmod +x etampe.sh $ crontab -e */2 * * * * /home/prenom/script/etampe.sh

Laissez tourner 6 minutes : trois fichiers datés doivent apparaître. Puis retirez la ligne du crontab.

Adaptez le script à VOTRE site du module 1 :

#!/bin/bash cd /var/www tar czf /home/prenom/sauvegarde/monsite.tgz monsite.com cd /home/prenom/sauvegarde aujourdhui=$(date +%Y-%m-%d) ilYaSeptJours=$(date --date '- 7 day' +%Y-%m-%d) mv monsite.tgz monsite.$aujourdhui.tgz fichierAEffacer=monsite.$ilYaSeptJours.tgz if [ -e $fichierAEffacer ]; then rm $fichierAEffacer fi

Testez à la main deux fois de suite : la seconde exécution écrase proprement la sauvegarde du jour.

Les 4 principes crontab : non-interactif, chemins absolus (script ET dedans), permissions, chmod +x. Vérifiez chacun !
$ crontab -e 0 3 * * * /home/prenom/script/sauvegarde.sh
Bonus externalisation : rapatriez les archives hors du serveur avec scp ou rsync depuis votre poste - si le serveur brûle, vos sauvegardes survivent.

Un script qui fouille auth.log et produit une estampe par anomalie dans /var/surveillance/ :

#!/bin/bash sudo mkdir -p /var/surveillance horodatage=$(date +%Y-%m-%d-%Hh%M-%S) fichierEstampe=/var/surveillance/estampe-${horodatage}.txt sudo grep "Failed password" /var/log/auth.log | tail -n 5 | while read ligne do dateIncident=$(echo $ligne | awk '{print $1, $2, $3}') adresseIncident=$(echo $ligne | grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n 1) echo "*************************************" | sudo tee -a $fichierEstampe echo "Service : sshd" | sudo tee -a $fichierEstampe echo "Anomalie : failed password" | sudo tee -a $fichierEstampe echo "Date : $dateIncident" | sudo tee -a $fichierEstampe echo "IP : $adresseIncident" | sudo tee -a $fichierEstampe done

Tout est étiqueté en français, chaque exécution crée un nouveau fichier daté : les exigences du projet.

# 1. Prendre les empreintes de reference $ md5sum /etc/passwd /etc/ssh/sshd_config > /home/prenom/empreintes-reference.txt # 2. Verifier plus tard : silence = tout va bien $ md5sum --check /home/prenom/empreintes-reference.txt /etc/passwd: OK /etc/ssh/sshd_config: OK

Intégrez la vérification au script d'estampes : si un md5 diffère, générez une estampe d'intégrité (md5 avant/après, tailles, dernières lignes du journal).

Transformez le détecteur en service permanent (recette de la semaine 13) :

# /usr/bin/surveillance.sh : le detecteur dans un while true + sleep 60 # /lib/systemd/system/surveillance.service : [Unit] Description=Surveillance des incidents de securite [Service] ExecStart=/usr/bin/surveillance.sh [Install] WantedBy=multi-user.target
$ sudo systemctl enable surveillance.service $ sudo systemctl start surveillance.service $ systemctl status surveillance.service $ ls /var/surveillance/

Ajoutez la rétroaction : un compte des estampes de chaque sorte, affiché sur une page web de votre serveur, par exemple.

LE COURS EST COMPLET ! Votre serveur se sauvegarde chaque nuit, détecte les intrusions, vérifie son intégrité et vous fait rapport - tout seul. Du premier ssh de la semaine 0 jusqu'à ce daemon vigile : vous êtes maintenant administratrice ou administrateur de serveurs. Chapeau !