User Tools

Site Tools


it:bezpecnost:aide

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 
it/bezpecnost/aide.txt · Last modified: 2019/08/02 11:18 (external edit)