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 !
Au bout d'une semaine : toujours exactement 7 archives.
Pour tester sans attendre : mettez temporairement une heure proche.
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 !