====== AIDE ====== Advanced Intrusion Detection Environment je souborový a adresářový integrity checker, který si dle své konfigurace vytvoří databázi obsahující informace o souborovém systému, proti které následně detekuje změny na tomto souborovém systému. Poté je možná indikace změny při případném proniknutí do systému. Konfigurace se provádí v souboru /etc/aide.conf, který umožňuje velké množství intuitivního nastavení. Při prvním spuštění vytvoříme snapshot přepínačem -i. Pro následné automatické spouštění použijeme přepínač -C. == Commandline spušťení: == /usr/sbin/aide -c /path/aide.conf -i /usr/sbin/aide -c /path/aide.conf -C == Skript k opakovanému spouštění cronem: == #!/bin/bash TEMP_FILE=`mktemp` LOG_FILE="/var/log/aide/my_aide.log" DB_FILE="/var/lib/aide/aide.db.gz" NEW_DB_FILE="/var/lib/aide/aide.db.new.gz" EMAIL_SUB="!!! AIDE zmena na FS serveru `uname -n` !!!" EMAIL_SUB_ALERT="!!! ALERT AIDE na serveru `uname -n` !!!" EMAIL_ADDR="vlk@oksystem.cz" MY_DATE=`date +%Y%m%d-%H%M%S` AIDE="/usr/sbin/aide" ECHO="/bin/echo" RM="/bin/rm" MV="/bin/mv" CP="/bin/cp" DATE="/bin/date" LS="/bin/ls" MKDIR="/bin/mkdir" CAT="/bin/cat" MAIL="/bin/mailx" NICE="/bin/nice" EXISTS="$AIDE $ECHO $RM $MV $CP $DATE $LS $MKDIR $CAT $MAIL $NICE" #----------------------------------------------------------------------------- test_binaries() { for COMMAND in `echo $EXISTS`; do if [ ! -x $COMMAND ] ; then send_alert "Prikaz "$COMMAND" neni v systemu nainstalovan, nebo nelze spustit. => Koncim" exit 1 fi done } #----------------------------------------------------------------------------- send_alert() { $ECHO "<> "$1 log "$1" $ECHO -e $1 | $MAIL -s "$EMAIL_SUB_ALERT" $EMAIL_ADDR } #----------------------------------------------------------------------------- log() { $ECHO "["`$DATE +%Y\ %m\.%d\.\ %H\:%M\:%S`"] --- "$1 >> $LOG_FILE } #----------------------------------------------------------------------------- test_binaries if [ -f $TEMP_FILE ] ; then rm -f $TEMP_FILE fi echo [$MY_DATE] BEGIN AIDE > $TEMP_FILE if [ ! -f $DB_FILE ] ; then send_alert "DB $DB_FILE nenalezena => vytvarim novou." $NICE -n 19 $AIDE -i >> $TEMP_FILE 2>&1 $CP $NEW_DB_FILE $DB_FILE MY_DATE=`date +%Y%m%d-%H%M%S` $ECHO [$MY_DATE] END AIDE >> $TEMP_FILE $CAT $TEMP_FILE >> $LOG_FILE if [ -f $TEMP_FILE ] ; then rm -f $TEMP_FILE fi exit 1 fi $NICE -n 19 $AIDE -C >> $TEMP_FILE 2>&1 RETVAL_CHECK=$? if [ "$RETVAL_CHECK" -ne "0" ] ; then $NICE -n 19 $AIDE -i >> $TEMP_FILE 2>&1 RETVAL_INIT=$? $CP $NEW_DB_FILE $DB_FILE $ECHO -e "RETVAL_CHECK=$RETVAL_CHECK\nRETVAL_INIT=$RETVAL_INIT" >> $TEMP_FILE 2>&1 MY_DATE=`date +%Y%m%d-%H%M%S` $ECHO [$MY_DATE] END AIDE >> $TEMP_FILE $CAT $TEMP_FILE >> $LOG_FILE $CAT $TEMP_FILE | $MAIL -s "$EMAIL_SUB" $EMAIL_ADDR fi if [ -f $TEMP_FILE ] ; then rm -f $TEMP_FILE fi exit 0