====== Script de détection de modification d'un fichier ======
===== Description =====
Un petit script d'automatisation de la surveillance d'une modification éventuelle d'un fichier et prévient l'administrateur grâce à un mail.
Ce script peut-être utilisé pour surveiller si une personne mal intentionnée modifie un fichier de configuration.
===== Le code =====
Dans l'exemple ci-dessous, nous allons surveiller la date de dernière modification du fichier// /etc/resolv.conf // car nous voulons être informer si une personne non autorisée modifie ce fichier en vue d'un acte mal intentionné.
#! /bin/bash
# modif-fichier.sh
# montuy337513 - CHG-WEB
# Version 1.00
# Configuration
#Nom du fichier à surveiller
NOM_FICHIER="/etc/resolv.conf"
# Date de la dernière modification du fichier ci-dessus
DERNIERE_MODIF=$(date -r ${NOM_FICHIER} '+%d/%m/%Y %H:%M')
# Adresse mail de l'administrateur ou de la personne à prévenir
MAIL_ADMIN="miel@chg-web.com"
# Date a laquelle le fichier à bien été modifié par vos soins
DATE_MODIF="14/12/2014 11:50"
# Test si les deux dates sont identiques
if [ "${NOM_FICHIER}" != "${DATE_MODIF}" ]; then
# Si différente, envoi du mail d'alerte
CORPS_MESSAGE="Alerte, le fichier ${NOM_FICHIER} a été modifié le ${DERNIERE_MODIF}";
echo "$CORPS_MESSAGE" | mail -s "Alerte surveillance modification de fichier" "${MAIL_ADMIN}";
fi
Les commentaires sont sensés être suffisamment fournis pour que vous puissiez comprendre le code ci-dessus.
===== Utilisation du code =====
Pour ce faire, vous copiez/collez le code ci-dessus dans un fichier que vous appellerez // modif-fichier.sh // (vous pouvez créer ce fichier dans le répertoire root, dans l'exemple ci-après, ce sera ce cas de figure qui sera utilisé).
Un fois le fichier créé, on s'occupe de lui attribuer les droits d'exécution, pour l'utilisateur root
chmod 700 /root/modif-fichier.sh
Ensuite, on lance l'exécution du fichier pour voir si il n'y a pas d'erreur.
/root/modif-fichier.sh
Et pour terminer, on programme une tâche **cron** avec la commande
crontab -e
Nous rajoutons la ligne suivante pour lancer le script de façon automatique. Dans l'exemple ci-dessous, on fait le test toute les heures.
Vous pouvez consulter [[:serveur-debian-automatisation|la fiche sur CRON]] pour personnaliser la commande.
1/* * * * * /root/modif-fichier.sh
===== Pour aller plus loin =====
C'est un exemple simple, mais vous pouvez très bien le modifier pour rendre le script plus autonome avec par exemple les fonctionnalités suivantes :
* Au premier lancement, la date du fichier en question est stocké dans un fichier texte, et ensuite à chaque lancement, le script compare la date présent dans le fichier texte à la date de dernière modification actuelle.
* Un seul et même script qui vérifie les dernières modifications de plusieurs fichiers, cette liste étant stockée dans un fichier texte.
* L'envoi d'un SMS d'alerte en complément du mail
* etc...
===== Auteurs et sources =====
* Auteur : [[:user:montuy337513]]
===== Navigation =====
* [[:accueil|Accueil]]
* [[:serveur-debian-securite]]
* [[:serveur-debian-general]]
* [[:serveur-debian-automatisation]]
* [[:serveur-debian-file]]
* [[:serveur-debian-log]]
* [[:serveur-debian-user-groupe]]
* [[:serveur-debian-apache2]]
* [[:serveur-debian-postfix]]
* [[:serveur-debian-mysql]]
* [[:serveur-debian-divers]]