AIDE на CentOS 8 — установка и настройка
Важно: AIDE помогает выявлять изменения в файловой системе, но не заменяет комплексную систему обнаружения вторжений. Всегда храните базу AIDE в защищённом и, по возможности, внешнем месте.

AIDE (Advanced Intrusion Detection Environment) — популярный инструмент для контроля целостности файлов на системах Linux. Он создаёт базу (снимок) текущего состояния файловой системы и затем сравнивает её со свежим состоянием, чтобы обнаруживать добавления, удаления и изменения. AIDE ускоряет расследование инцидентов, сужая круг подозрительных файлов.
Что делает AIDE в 1 строке
AIDE сравнивает эталонную базу метаданных и хэшей файлов с текущим состоянием — и сообщает о любых расхождениях.
Особенности AIDE
- Отслеживает атрибуты: тип файла, inode, uid, gid, права, число ссылок, mtime, ctime, atime.
- Поддерживает сжатие Gzip, SELinux, XAttrs, Posix ACL и расширенные атрибуты файловой системы.
- Может использовать множество алгоритмов контрольных сумм: md5, sha1, sha256, sha512, rmd160, crc32 и другие.
- Умеет оповещать по почте через системную почту.

Требования
- Сервер с CentOS 8 и минимум 2 ГБ оперативной памяти. Перечисление требований — ориентировочно; реальные потребности зависят от размера файловой системы.
- Настроенный root-пароль или доступ под пользователем с правами root.
Подготовка системы
Перед установкой рекомендуется обновить систему до последних пакетов:
dnf update -yПосле обновления перезагрузите систему, чтобы применить обновления ядра и системных библиотек.
Установка AIDE
AIDE доступен в стандартных репозиториях CentOS 8. Установите пакет командой:
dnf install aide -yПроверьте версию:
aide --versionОжидаемый пример вывода (вариант зависит от версии сборки):
Aide 0.16
Compiled with the following options:
WITH_MMAP
WITH_PCRE
WITH_POSIX_ACL
WITH_SELINUX
WITH_XATTR
WITH_E2FSATTRS
WITH_LSTAT64
WITH_READDIR64
WITH_ZLIB
WITH_CURL
WITH_GCRYPT
WITH_AUDIT
CONFIG_FILE = "/etc/aide.conf"
Также можно просмотреть доступные команды и опции:
aide --helpИнициализация базы AIDE
Первое действие после установки — создать базу (снимок) файловой системы. Это эталон, с которым будут сравниваться будущие состояния.
Запустите инициализацию:
aide --initПример вывода, который вы можете увидеть (содержит временные метки и контрольные суммы):
Start timestamp: 2020-01-16 03:03:19 -0500 (AIDE 0.16)
AIDE initialized database at /var/lib/aide/aide.db.new.gz
Number of entries: 49472
---------------------------------------------------
The attributes of the (uncompressed) database(s):
---------------------------------------------------
/var/lib/aide/aide.db.new.gz
MD5 : 4N79P7hPE2uxJJ1o7na9sA==
SHA1 : Ic2XBj50MKiPd1UGrtcUk4LGs0M=
RMD160 : rHMMy5WwHVb9TGUc+TBHFHsPCrk=
TIGER : vkb2bvB1r7DbT3n6d1qYVfDzrNCzTkI0
SHA256 : tW3KmjcDef2gNXYqnOPT1l0gDFd0tBh9
xWXT2iaEHgQ=
SHA512 : VPMRQnz72+JRgNQhL16dxQC9c+GiYB8g
uZp6uZNqTvTdxw+w/IYDSanTtt/fEkiI
nDw6lgDNI/ls2esijukliQ==
End timestamp: 2020-01-16 03:03:44 -0500 (run time: 0m 25s)
Команда создаёт файл /var/lib/aide/aide.db.new.gz. Просмотреть можно так:
ls -l /var/lib/aideПример:
total 2800
-rw------- 1 root root 2863809 Jan 16 03:03 aide.db.new.gzЧтобы AIDE начал пользоваться этой базой, переименуйте её в aide.db.gz:
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gzСовет: обновляйте базу периодически (например, после плановых изменений), чтобы эталон соответствовал ожидаемому состоянию.
Проверка с использованием базы
После инициализации запустите проверку без внесения изменений:
aide --checkВ большом файловом дереве проверка может занять время. Ожидаемый результат, если ничего не менялось:
Start timestamp: 2020-01-16 03:05:07 -0500 (AIDE 0.16)
AIDE found NO differences between database and filesystem. Looks okay!!
Это означает, что все файлы и директории соответствуют базе.
Пример: тест детектирования изменений
По умолчанию AIDE может не отслеживать /var/www/html (корень веб-документов). Добавим его в конфигурацию.
Откройте конфигурационный файл:
nano /etc/aide.confДобавьте строку (например, перед “/root/ CONTENT_EX”):
/var/www/html/ CONTENT_EXСохраните и закройте.
Создайте тестовый файл:
echo "Test AIDE" > /var/www/html/aide.txtЗапустите проверку:
aide --checkОжидаемый вывод при обнаружении нового файла:
Start timestamp: 2020-01-16 03:09:40 -0500 (AIDE 0.16)
AIDE found differences between database and filesystem!!
Summary:
Total number of entries: 49475
Added entries: 1
Removed entries: 0
Changed entries: 0
---------------------------------------------------
Added entries:
---------------------------------------------------
f++++++++++++++++: /var/www/html/aide.txt
Если изменения верны, обновите базу:
aide --updateПример вывода при обновлении базы:
Start timestamp: 2020-01-16 03:10:41 -0500 (AIDE 0.16)
AIDE found differences between database and filesystem!!
New AIDE database written to /var/lib/aide/aide.db.new.gz
Summary:
Total number of entries: 49475
Added entries: 1
Removed entries: 0
Changed entries: 0
---------------------------------------------------
Added entries:
---------------------------------------------------
f++++++++++++++++: /var/www/html/aide.txt
Затем переименуйте новую базу и снова проверьте:
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
aide --checkОжидаемый результат — отсутствие различий.
Автоматизация проверок (cron)
Рекомендуется запускать проверку регулярно и получать отчёты по почте.
Отредактируйте системный crontab:
nano /etc/crontabДобавьте строку для ежедневной проверки в 10:15:
15 10 * * * root /usr/sbin/aide --checkСохраните. Отчёты будут отправляться на системную почту root. Просмотреть почту можно так:
tail -f /var/mail/rootЛоги AIDE находятся в /var/log/aide/aide.log:
tail -f /var/log/aide/aide.logСовет: направьте вывод в отдельный файл, используйте лог-роутер или SIEM для агрегации уведомлений.
Безопасность и надёжность базы AIDE
- Храните копию aide.db.gz вне проверяемой системы — на другом хосте, в зашифрованном хранилище или на съемном носителе.
- Ограничьте права на /var/lib/aide: файл должен быть доступен только root (rw——-).
- Подумайте о подписывании базы (GPG) и хранении подписи отдельно.
- Закройте доступ к конфигурации /etc/aide.conf и к cron-скриптам для предотвращения подмены.
- SELinux помогает: убедитесь, что контексты не мешают чтению базы и логов.
Важно: если злоумышленник получил root, он может изменить и саму базу AIDE. Поэтому off-host резервные копии и подписи критичны.
Когда AIDE не поможет (ограничения)
- AIDE не обнаружит атаки, которые не оставляют изменений в файловой системе (например, эксплойты в памяти).
- Если злоумышленник получил root и изменил бинарь AIDE или базу, локальная проверка может вернуть ложное «OK».
- AIDE отслеживает файлы и атрибуты, но не поведение процессов.
Альтернативы и дополнения
- OSSEC / Wazuh — HIDS с возможностями лог-анализа и реакций на события.
- Tripwire — коммерческая и открытая реализация контроля целостности.
- Auditd (linux audit framework) — для подробного аудита системных вызовов.
Используйте AIDE в составе многослойной защиты.
Практическое руководство — мини-методология
- Инициализируйте базу на чистой, проверенной системе.
- Экспортируйте копию базы на защищённый сервер или внешнее хранилище.
- Настройте регулярные проверки (cron) и обработку уведомлений.
- На обнаружение — проверить, проанализировать, зафиксировать и обновить базу при необходимости.
- Храните историю инцидентов и политику реакции.
Пошаговый SOP для администратора (сокращённый)
- Шаг 1 — Инициализация
- Установите aide, выполните aide –init.
- Перенесите aide.db.new.gz оффхост и подпишите.
- Шаг 2 — Настройка мониторинга
- Добавьте директории в /etc/aide.conf.
- Настройте cron для aide –check.
- Шаг 3 — Обработка оповещений
- На оповещение: проверьте изменения, сравните логи и временные метки, подтвердите источник изменения.
- Если подтверждён инцидент — выполните процедуру инцидент-менеджмента и восстановление из бэкапа.
- Шаг 4 — Обновление базы
- После валидного изменения выполните aide –update, перенесите новую базу в защищённое хранилище.
Чек-листы по ролям
Sysadmin
- Установил AIDE и проинициализировал базу.
- Настроил права на /var/lib/aide (600).
- Настроил cron и проверил доставку почты root.
SecOps
- Настроил интеграцию с SIEM или централизованным логированием.
- Настроил оффхост бэкап базы и подписывание.
- Прописал процесс реагирования и эскалации.
DevOps
- Добавил нужные пути приложений в /etc/aide.conf.
- Убедился, что автогенерация файлов (например, временных) исключены из проверки.
Примеры сценариев и критерии приёмки
Критерии приёмки для теста установки:
- aide –init успешно создаёт /var/lib/aide/aide.db.new.gz.
- mv в /var/lib/aide/aide.db.gz и aide –check сообщают NO differences сразу после инициализации.
- При создании тестового файла AIDE обнаруживает добавление.
- cron запускает проверку в указанное время и отчёт появляется в /var/mail/root.
Решение при обнаружении изменений — простое дерево принятия решений
flowchart TD
A[Определено отличие AIDE] --> B{Изменение ожидаемо?}
B -- Да --> C[Документировать, выполнить aide --update]
B -- Нет --> D{Похоже на злонамеренное изменение?}
D -- Нет --> E[Исследовать, откатить при необходимости]
D -- Да --> F[Запустить инцидент-реакцию: изолировать, собрать артефакты, восстановить]
C --> G[Перенести новую базу в защищённое хранилище]
E --> G
F --> GОтладка и полезные команды
- Просмотр лога AIDE:
tail -n 100 /var/log/aide/aide.log- Проверка содержимого базы (gzip):
gzip -d -c /var/lib/aide/aide.db.gz | less- Быстрая проверка конфигурации:
aide --check --config-check(Опция –config-check полезна для синтаксической проверки /etc/aide.conf.)
Безопасность данных и аудит
- Храните копии базы в нескольких местах.
- Ограничьте доступ к конфигурации и логам.
- Подписывайте базу и храните подпись отдельно.
- Контролируйте целостность бинарей AIDE (например, с помощью hw-based measured boot или внешнего контроля).
Глоссарий — 1 строка на термин
- База AIDE: сжатый файл с контрольными суммами и метаданными отслеживаемых файлов.
- CONTENT_EX: правило конфигурации AIDE означающее сравнение содержимого и разрешённые исключения.
- ETHALON (эталон): базовое состояние файловой системы, с которым сравнивают текущее.
Контрольные случаи тестирования
- Инициализация на чистой системе создаёт базу и aide –check возвращает “NO differences”.
- Добавление/удаление/изменение файла фиксируется как Added/Removed/Changed.
- Обновление базы приводит к созданию aide.db.new.gz и последующему применению.
Заключение
AIDE — простой и надёжный инструмент контроля целостности файловой системы. Его сила — в простоте: создание эталона и регулярные проверки. Для полноты безопасности используйте AIDE как часть многослойного подхода: защищайте базу вне хоста, интегрируйте уведомления в SIEM и документируйте процедуру реагирования.
Требования к дальнейшим действиям:
- Настройте оффхост-резервирование базы AIDE и подпись.
- Включите в план реагирования обработку результатов AIDE.
- Периодически ревью конфигурации /etc/aide.conf и исключений.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента