====== 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]]