Задача: при изменении критически важных файлов, запуск из под sudo, создание тоннелей SSH и переброс портов — отсылать уведомление об этом на почту.
Решение: воспользуемся штатным демоном auditd и сторонней утилитой wazuh
Установка auditd:
Просмотр текущих действующих правил:
|
auditctl -l -a never,task |
Стереть все действующие правила:
1) Настроить уведомление об изменении файлов /etc/paswd и /etc/shadow
|
auditctl -w /etc/passwd -p wa -k passwd_watch auditctl -w /etc/shadow -p wa -k shadow_watch |
, где -p — обозначает при каком условии будет сделана запись в журнал:
r
— операция чтения данных из файлаw
— операция записи данных в файлx
— операция исполнения файлаa
— операция изменения атрибутов файла или директории
Что бы правила работали на постоянной основе, их нужно добавить в файл /etc/audit/rules.d/audit.rules
после чего перезапустить демон
|
systemctl restart auditd.service |
2) Настройка уведомления о выполнении команд от sudo/root:
|
auditctl -a exit,always -F arch=b64 -F euid=0 -S execve -k rootcmd auditctl -a exit,always -F arch=b32 -F euid=0 -S execve -k rootcmd |
3) Для того чтобы уведомления из журнала /etc/audit/audit.log отправлялись на почту, нужно установить wazuh-manager:
|
add-apt-repository ppa:openjdk-r/ppa curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | apt-key add - echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list apt-get update apt-get install wazuh-manager systemctl daemon-reload systemctl enable wazuh-manager systemctl start wazuh-manager |
И соответственно добавить в конфигурационный файл /var/ossec/etc/ossec.conf
, отслеживание изменений:
|
<localfile> <location>/var/log/audit/audit.log</location> <log_format>audit</log_format> </localfile> |
В этом же файле нужно настроить секцию касающуюся отправки уведомлений по email — отправитель, получатель.
Далее добавляем ключевые слова в /var/ossec/etc/lists/audit-keys, для фильтрации событий:
|
passwd_watch:read shadow_watch:read sudo:read |
И добавить правило срабатывания в /var/ossec/etc/rules/local_rules.xml:
|
<group name="audit"> < <rule id="100002" level="12"> <if_sid>80700</if_sid> <match>sudo</match> <options>alert_by_email</options> <description>Выполнена команда от SUDO сервер sdcsdcezs.sadcasd.ru</description> </rule> <rule id="100003" level="12"> <if_sid>80701</if_sid> <match>passwd_watch</match> <options>alert_by_email</options> <description>Изменился файл /etc/passwd</description> </rule> </group> |