#!/bin/bash #script de surveillance des accès à une machine #NB : #- fait sur mesure pour une vieille redhat, nécessite adaptation pour un système debian #- script à placer dans /etc/profile.d/ # destinataires du mail d'alerte (mails, séparés par virgule) admins=titi@hop.com,toto@hop.com,root # ip autorisées (ips, séparées par pipe) ip_ok='192.168.2.x|ip2|ip3' # interprétation des connexions acces_inattendu=`last | grep "still" | head | awk '!/'$ip_ok'/' | awk '{ if ( $2 ~ /tty/ ) { print "Connexion locale"; } if ( $2 ~ /pts/ ) { print " - Utilisateur "$1 " provenant de "$3 " est connecte depuis "$7" le "$6 $5; }}'` heure=`last | grep "still" | head | awk '!/'$ip_ok'/' | awk '{ if ( $2 ~ /pts/ ) { print $7; }}'` # connexion user if [ -n "$acces_inattendu" ] && [ `id -u` -ne 0 ]; then ( echo "Connexion(s) suspecte(s) !" echo "Notification envoyee." echo $acces_inattendu ) | wall logger "[Controle d'acces - USER] $acces_inattendu" message=/tmp/warning_user echo `date` >$message echo "$acces_inattendu" >>$message mail -s "[$HOSTNAME] - Connexion suspecte" $admins <$message fi # connexion root if [ -n "$acces_inattendu" ] && [ `id -u` -eq 0 ]; then logger "[Controle d'acces - ROOT] $acces_inattendu" message=/tmp/warning_root echo `date` >$message ( echo "$acces_inattendu" echo "" echo "" if [ -n "$heure" ]; then echo "Extrait du log de connexion root :" echo "`grep $heure /var/log/secure`" fi echo "" echo "Rappel: blocage rapide de l'IP suspecte : ip_deny xxx.xxx.xxx.xxx" ) >>$message mail -s "[$HOSTNAME] - Connexion ROOT suspecte" $admins <$message fi