главная - Статьи - Linux, FreeBSD
Aide. Аудит изменений файлов и папок в Linux.
Порой у всех начинает зашкаливать паранойя. Что-то произошло. Сервер взломали? Кто-то неудачно изменил конфиг и теперь непонятно, какой файл изменялся? На эти вопросы нам поможет ответить aide.
Важно! Подобные программы вспоминают чаще всего когда с системой что-то не то. Но в этот момент уже поздно пить боржоми. Если система скомпрометирвоана или просто неудачно что-то изменено, сравнивать текущее состояние просто не с чем. И бекап вам может не помочь, т.к. если система была в продакшене уже 3 года, то откуда вам знать, что и когда было изменено, в т.ч. в важных файлах (/etc/shadow, например). Поэтому важно настроить aide ДО того момента, когда он реально понадобится.
Все действия я проводил в CentOS, сразу после установки и базовых настроек (сеть, nano, mc и др. по вашему вкусу).
# yum install -y aide # cp /etc/aide.conf /etc/aide.conf.bak # less /etc/aide.conf
В базе файл уже готов к эксплуатации. Обратите внимание на то, где будут логи и база данных aide.
Запоминаем текущее состояние системы:
# aide --init AIDE, version 0.15.1 ### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
Сохраняем файлы:
/etc/aide.conf
/usr/sbin/aide
/var/lib/aide/aide.db.new.gz
в безопасном месте (т.е. явно не на этом же хосте), например, на флешке, на центральном сервере или в другом месте. На основании этих файлов вы будете в дальнейшем сравнивать, были ли изменения системных и др. файлов. Т.е. этим файлам вы должны полностью доверять. Как самому себе.
Ну, например, так (из Windows, используя Putty):
# pscp -v -P 22 -l srv-user 192.168.1.12:/var/lib/aide/aide.db.new.gz aide.db.new.gz
или как угодно еще.
Еще лучше будет запомнить контрольные суммы файлов:
# md5sum /etc/aide.conf 860337ac195215d3d4041ce3afdbb684 /etc/aide.conf # md5sum /usr/sbin/aide 2ef0db9111bdc82ab52671d44cee9b5c /usr/sbin/aide # md5sum /var/lib/aide/aide.db.new.gz e97951765c48f62f751bb11b7b1fcf3a /var/lib/aide/aide.db.new.gz
Копируем созданный файл в основной рабочий, с которым будет вестись работа:
# cd /var/lib/aide
# cp aide.db.new.gz aide.db.gz
Все, мы готовы к проверке.
Изменим какой-либо файл в системе, например, добавим новую строку в файл /etc/resolv.conf. Достаточно добавить пустую строку и сохранить файл.
Ищем, что поменялось:
# aide --check
В зависимости от производительности системы, количества файлов в ней процесс может занять разное время, но в итоге мы получим нечто вроде:
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2015-12-08 16:06:06
Summary:
Total number of files: 29931
Added files: 0
Removed files: 0
Changed files: 1
---------------------------------------------------
Changed files:
---------------------------------------------------
changed: /etc/resolv.conf
---------------------------------------------------
Detailed information about changes:
---------------------------------------------------
File: /etc/resolv.conf
Size : 132 , 133
SHA256 : xOEHDphj3/oSHCPkBuQeNyhZP3k3t/mV , Zd5keHnFCF6HjVdnPuFelZTb7rkgLXfb
Если мы знаем, что изменения легитимны, то мы можем обновить базу данных:
# aide --update
Попробуйте отправить отчет себе на email:
# aide --check | /usr/bin/mail -s "AIDE check on $HOSTNAME at `date +%d-%m-%Y---%H-%M`" your@email.com
Если отчет пришел, можете добавить команду в крон (например, выполнять каждый день):
# crontab -e
0 0 * * * /usr/sbin/aide --check | /usr/bin/mail -s "AIDE check on $HOSTNAME at `date +%d-%m-%Y---%H-%M`" your@email.com
Не факт, что вам не надоест постоянный отчет по электронной почте, но если вы не входили на сервер, а /etc/passwd изменился, это повод для серьезного расследования.
Важно, чтобы вы были уверены, что файл базы данных /var/lib/aide/aide.db.gz именно тот, который вы создавали своими руками.
Aide неплохо дополняется git, но это другая история.
Авторизуйтесь для добавления комментариев!