мониторинг системы при помощи Auditd

Thank you for reading this post, don't forget to subscribe!

Аудит систе­мы - один из важ­ней­ших аспек­тов систем­но­го адми­ни­стри­ро­ва­ния, аудит без­опас­но­сти явля­ет­ся непло­хим допол­не­ни­ем, напри­мер ты зада­вал­ся вопро­сом, что и когда про­ис­хо­дит с фай­лом shadow или passwd, когда он изме­ня­ет­ся и т.п.? Такой мони­то­ринг мож­но осу­ще­ствить при помо­щи auditd, далее крат­ко рас­ска­жу о том, как уста­но­вить audit в CentOS, настро­ить мони­то­ринг изме­не­ний passwd и shadows.

Установка и настройка Auditd

По умол­ча­нию раз­мер фай­ла лога auditd состав­ля­ет 8 мега­байт, роти­ро­вать­ся будут 5 фай­лов, эти пара­мет­ры мож­но изме­нить в фай­ле конфигурации:

Пара­мет­ры:

После изме­не­ний фай­ла кон­фи­гу­ра­ции необ­хо­ди­мо пере­за­пу­стить сервис:

Ино­гда может потре­бо­вать­ся выпол­нить коман­ду systemctl daemon-reload, об этом меня пре­ду­пре­ди­ла систе­ма в момент рестар­та сервиса.

Про­ве­рить статус:

Про­ве­рить набор пра­вил (по умол­ча­нию их нет):

Создание правил Auditd

Пра­ви­ла ауди­та папок / фай­лов име­ют сле­ду­ю­щий формат:

Где:

  • путь - пол­ный путь до ауди­ру­е­мо­го фай­ла / папки
  • раз­ре­ше­ния - ука­зы­ва­ют­ся в виде ком­би­на­ций read, write, xecute
  • ключ - исполь­зу­ет­ся для более удоб­ной филь­тра­ции логов в дальнейшем

Пра­ви­ла необ­хо­ди­мо добав­лять в файл - /etc/audit/rules.d/audit.rules, в нашем слу­чае это будут правила:

После добав­ле­ния пра­вил, сер­вис auditd необ­хо­ди­мо перезапустить:

Сно­ва смот­рим исполь­зу­е­мые правила:

Вре­мен­ные пра­ви­ла мож­но запус­кать командой:

Это может быть полез­ным в момент отлад­ки / тести­ро­ва­ния правил

Работа с логом аудита

Для при­ме­ра я создал поль­зо­ва­те­ля и изме­нил ему пароль, в логах появи­лась об этом инфор­ма­ция с ука­зан­ны­ми клю­ча­ми key="shadow" и key="passwd", по клю­чу мож­но гре­пать логи напри­мер так:

Где мож­но уви­деть, что поль­зо­ва­тель с uid=0 успеш­но изме­нил поль­зо­ва­те­лю testaudit пароль:

Логи мож­но читать исполь­зуя спе­ци­аль­ную коман­ду, кото­рая выда­ет в чита­бель­ном виде содер­жи­мое лога:

Так-же мож­но созда­вать отче­ты, где мож­но посмот­реть коли­че­ство сра­ба­ты­ва­ний по ключам:

Или несколь­ко более детально:

Мож­но посмот­реть к при­ме­ру собы­тия вхо­да в систе­му, напри­мер за послед­ние сутки:

Немного о визуализации

Скрип­ты кото­рые понадобятся:

Так-же пона­до­бит­ся graphviz:

Раз­ре­ша­ем испол­не­ние скриптов:

Теперь смот­рим кто у нас изме­нял файлы:

В ито­ге будет сге­не­ри­ро­ван архив gr.ps.gz с PostScript диаграммой: