Вернуться на уровень выше

Linux: система AIDE

Суть системы — она создаёт свою базу данных директорий и файлов, и периодически отслеживает изменения в них.

Установка

Centos 7

yum install aide -y

Создаём базу для хранения состояния файлов конфигураций:

aide --init

Перемещаем базу:

mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

Запускаем проверку:

aide --check

Основной файл конфигурации — /etc/aide.conf

nano /etc/aide.conf

Пример исключения файлов и каталогов из проверки

!/var/log

Для сервера mikbill можно использовать такой конфиг (добавить конец файла):

/var/www/mikbill DIR
!/var/www/mikbill/admin/app/log
!/var/www/mikbill/stat/app/log
!/var/www/mikbill/admin/sys/mrtg
!/var/www/mikbill/admin/sys/mrtg_users

Обновить базу данных

aide --update

Скрипт для проверки по крону:

mkdir /var/mikbill/custom_scripts/aide
nano /var/mikbill/custom_scripts/aide/aide.sh
#!/bin/bash
SERVER_NAME="";
DATE=`date +%Y-%m-%d`
LOGDIR=/var/log/aide
REPORT="Aide-"$DATE.txt
AIDEDIR=/var/lib/aide/

aide --check >$LOGDIR/check
cat $LOGDIR/check|/bin/egrep "added|changed|removed" > $LOGDIR/$REPORT

aide --update
cp $AIDEDIR/aide.db.gz $LOGDIR/aide.db.gz-$DATE
mv $AIDEDIR/aide.db.new.gz $AIDEDIR/aide.db.gz

function send_message() {
    size=$(cat $LOGDIR/$REPORT |wc -l)
    if [ "$size" != "0" ]; then
        MESSAGE="$SERVER_NAME, $(< $LOGDIR/$REPORT)"
        # Тут можно что-то делать с $MESSAGE, например отправлять по почте, в telegram или slack          
    fi                                                                                                    
}                                                                                                         
                                                                                                       
#send_message  

Даем права на исполнение

chmod +x /var/mikbill/custom_scripts/aide/aide.sh
Добавляем в крон
nano /etc/cron.d/aide
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

00 07 * * * root /var/mikbill/custom_scripts/aide/aide.sh > /dev/null
#

Настройка Debian

Установка

apt install aide
aideinit
cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
update-aide.conf
cp /var/lib/aide/aide.conf.autogenerated /etc/aide/aide.conf

Скрипт

#!/bin/bash
SERVER_NAME="";
DATE=`date +%Y-%m-%d`
LOGDIR=/var/log/aide
REPORT="Aide-"$DATE.txt
AIDEDIR=/var/lib/aide/

AIDE='aide -c /etc/aide/aide.conf'

$AIDE --check >$LOGDIR/check-$DATE

$AIDE --update
cp $AIDEDIR/aide.db $LOGDIR/aide.db-$DATE
mv $AIDEDIR/aide.db.new $AIDEDIR/aide.db
  • billing/howto/aide.txt
  • Последние изменения: 3 месяц (-ев) назад
  • — Олег Вильковский