Логирование и аудит потенциально опасных событий на сервере Linux
Задача: при изменении критически важных файлов, запуск из под sudo, создание тоннелей SSH и переброс портов — отсылать уведомление об этом на почту.
Решение: воспользуемся штатным демоном auditd и сторонней утилитой wazuh
Установка auditd:
| 1 | apt install auditd | 
Просмотр текущих действующих правил:
| 1 | auditctl -l -a never,task | 
Стереть все действующие правила:
| 1 | auditctl -D | 
1) Настроить уведомление об изменении файлов /etc/paswd и /etc/shadow
| 1 2 | 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 после чего перезапустить демон
| 1 2 | systemctl restart auditd.service | 
2) Настройка уведомления о выполнении команд от sudo/root:
| 1 2 | 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:
| 1 2 3 4 5 6 7 8 9 | 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, отслеживание изменений:
| 1 2 3 4 5 | <localfile>     <location>/var/log/audit/audit.log</location>     <log_format>audit</log_format>   </localfile> | 
В этом же файле нужно настроить секцию касающуюся отправки уведомлений по email — отправитель, получатель.
Далее добавляем ключевые слова в /var/ossec/etc/lists/audit-keys, для фильтрации событий:
| 1 2 3 4 | passwd_watch:read shadow_watch:read sudo:read | 
И добавить правило срабатывания в /var/ossec/etc/rules/local_rules.xml:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <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> |