Linux логирование файловой системы

Основы аудита. Настраиваем журналирование важных событий в Linux

Под­систе­ма ауди­та Linux поз­воля­ет на осно­ве пред­варитель­но нас­тро­енных пра­вил отсле­живать зна­чимую информа­цию о безопас­ности опе­раци­онной сис­темы, соз­дает записи жур­нала для даль­нейше­го рас­сле­дова­ния наруше­ний полити­ки. Сегод­ня мы пос­мотрим поб­лиже на этот важ­ный и для хакера, и для адми­на эле­мент сис­темы безопас­ности.

С помощью ауди­та мож­но реали­зовать жур­налиро­вание для сле­дующих событий:

  • дос­туп к объ­ектам фай­ловой сис­темы;
  • вы­пол­нение сис­темных вызовов;
  • за­пуск поль­зователь­ских команд;
  • ло­гины поль­зовате­лей;
  • дей­ствия с учет­ными запися­ми и при­виле­гиями.

В этой статье я рас­ска­жу, как устро­ена под­систе­ма ауди­та, как ей управлять, а так­же как получить жур­нал ауди­та всех инте­ресу­ющих тебя событий.

Под­систе­ма ауди­та в Linux сос­тоит из двух групп ком­понен­тов: в прос­транс­тве ядра это kauditd, а в поль­зователь­ском — auditd.

В общем виде схе­ма работы под­систе­мы ауди­та выг­лядит сле­дующим обра­зом.

Яд­ро, при­нимая сис­темные вызовы из user space, про­пус­кает их через филь­тры user , task , filesystem , exclude и exit .

  • Филь­тр user исполь­зует­ся для филь­тра­ции (исклю­чения) событий, про­исхо­дящих в поль­зователь­ском прос­транс­тве до отправ­ки в auditd. Прак­тичес­ки никог­да не исполь­зует­ся.
  • Филь­тр task при­меня­ется для сис­темных вызовов fork( ) и clone( ) .
  • Филь­тр filesystem исполь­зует­ся для исклю­чения событий для кон­крет­ной фай­ловой сис­темы.
  • Филь­тр exclude зада­ет исклю­чения для событий.
  • Филь­тр exit про­ходят все сис­темные вызовы. Обыч­но нас­тра­ивают имен­но этот филь­тр.

Че­рез netlink( 7) сооб­щения отправ­ляют­ся из kauditd в auditd. При получе­нии событий, демон auditd записы­вает их в лог (по умол­чанию / var/ log/ audit/ audit. log ).

Нас­тра­ивая филь­тры с помощью ути­литы auditctl, мы можем управлять потоком событий, который хотим получать. С помощью ути­лит ausearch, aureport, aulast удоб­но прос­матри­вать жур­нал ауди­та.

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

Ста­тус работы под­систе­мы ауди­та мож­но получить так:

$ sudo auditctl -s
enabled 1
failure 1
pid 885
rate_limit 0
backlog_limit 8192
lost 0
backlog 0
backlog_wait_time 60000
loginuid_immutable 0 unlocked

Для тес­та есть воз­можность отпра­вить тек­сто­вое сооб­щение в под­систе­му ауди­та и убе­дить­ся, что соот­ветс­тву­ющее событие попало в жур­нал ауди­та.

Читайте также:  Ricoh sp325 драйвер linux

$ sudo auditctl -m helloaudit
$ sudo ausearch -m USER
—-
type=USER msg=audit(08/31/2021 19:20:11.160:330699) : pid=305708 uid=root auid=andrey ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg=’text=helloaudit exe=/usr/sbin/auditctl hostname=rhel.ipa.localdomain addr=? terminal=pts/0 res=success’

Нас­трой­ки демона auditd пред­став­лены в фай­ле / etc/ audit/ auditd. conf . Кон­фиг по умол­чанию рабочий и не тре­бует изме­нений, оставля­ем его как есть.

Раз­берем­ся теперь, как управлять филь­тра­ми kauditd. Все нас­трой­ки филь­тров груп­пиру­ются в фай­лы пра­вил. Фор­мат пра­вил ана­логи­чен син­такси­су кон­соль­ной прог­раммы auditctl. Демон auditd заг­ружа­ет эти пра­вила пос­ледова­тель­но при стар­те сис­темы либо вруч­ную по коман­де пользователя.

info

Важ­ный момент: что­бы наши пра­вила при­меня­лись пос­ле перезаг­рузки, необ­ходимо записать их в файл, в каталог / etc/ audit/ rules. d/ .

При­меры пра­вил ты можешь най­ти в катало­ге / usr/ share/ audit/ sample-rules/ . Пра­вила ауди­та быва­ют сле­дующих типов:

  1. Уп­равля­ющие пра­вила нас­тра­ивают сис­тему ауди­та и поведе­ние аген­та. Все воз­можные опции перечис­лены в мане auditctl( 8) .
  2. Пра­вила фай­ловой сис­темы необ­ходимы для наб­людения за фай­лом или катало­гом, дос­туп к которым мы хотим кон­тро­лиро­вать. Фор­мат пра­вила сле­дующий:

Важ­но отме­тить, что пра­вила сис­темных вызовов зна­читель­но вли­яют на про­изво­дитель­ность сис­темы в целом. Ста­рай­ся сок­ратить их количес­тво и объ­еди­няй пра­вила, где это воз­можно.

В качес­тве тре­ниров­ки соз­дадим пра­вило ауди­та для регис­тра­ции изме­нения фай­ла / etc/ passwd .

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Источник

Как посмотреть логи в Linux

Системные администраторы, да и обычные пользователи Linux, часто должны смотреть лог файлы для устранения неполадок. На самом деле, это первое, что должен сделать любой сисадмин при возникновении любой ошибки в системе.

Сама операционная система Linux и работающие приложения генерируют различные типы сообщений, которые регистрируются в различных файлах журналов. В Linux используются специальное программное обеспечение, файлы и директории для хранения лог файлов. Знание в каких файлах находятся логи каких программ поможет вам сэкономить время и быстрее решить проблему. В этой статье мы рассмотрим основные части системы логирования в Linux, файлы логов, а также утилиты, с помощью которых можно посмотреть логи Linux.

Расположение логов по умолчанию

Большинство файлов логов Linux находятся в папке /var/log/ вы можете список файлов логов для вашей системы с помощью команды ls:

Ниже мы рассмотрим 20 различных файлов логов Linux, размещенных в каталоге /var/log/. Некоторые из этих логов встречаются только в определенных дистрибутивах, например, dpkg.log встречается только в системах, основанных на Debian.

  • /var/log/messages — содержит глобальные системные логи Linux, в том числе те, которые регистрируются при запуске системы. В этот лог записываются несколько типов сообщений: это почта, cron, различные сервисы, ядро, аутентификация и другие.
  • /var/log/dmesg — содержит сообщения, полученные от ядра. Регистрирует много сообщений еще на этапе загрузки, в них отображается информация об аппаратных устройствах, которые инициализируются в процессе загрузки. Можно сказать это еще один лог системы Linux. Количество сообщений в логе ограничено, и когда файл будет переполнен, с каждым новым сообщением старые будут перезаписаны. Вы также можете посмотреть сообщения из этого лога с помощью команды dmseg.
  • /var/log/auth.log — содержит информацию об авторизации пользователей в системе, включая пользовательские логины и механизмы аутентификации, которые были использованы.
  • /var/log/boot.log — Содержит информацию, которая регистрируется при загрузке системы.
  • /var/log/daemon.log — Включает сообщения от различных фоновых демонов
  • /var/log/kern.log — Тоже содержит сообщения от ядра, полезны при устранении ошибок пользовательских модулей, встроенных в ядро.
  • /var/log/lastlog — Отображает информацию о последней сессии всех пользователей. Это нетекстовый файл, для его просмотра необходимо использовать команду lastlog.
  • /var/log/maillog /var/log/mail.log — журналы сервера электронной почты, запущенного в системе.
  • /var/log/user.log — Информация из всех журналов на уровне пользователей.
  • /var/log/Xorg.x.log — Лог сообщений Х сервера.
  • /var/log/alternatives.log — Информация о работе программы update-alternatives. Это символические ссылки на команды или библиотеки по умолчанию.
  • /var/log/btmp — лог файл Linux содержит информацию о неудачных попытках входа. Для просмотра файла удобно использовать команду last -f /var/log/btmp
  • /var/log/cups — Все сообщения, связанные с печатью и принтерами.
  • /var/log/anaconda.log — все сообщения, зарегистрированные при установке сохраняются в этом файле
  • /var/log/yum.log — регистрирует всю информацию об установке пакетов с помощью Yum.
  • /var/log/cron — Всякий раз когда демон Cron запускает выполнения программы, он записывает отчет и сообщения самой программы в этом файле.
  • /var/log/secure — содержит информацию, относящуюся к аутентификации и авторизации. Например, SSHd регистрирует здесь все, в том числе неудачные попытки входа в систему.
  • /var/log/wtmp или /var/log/utmp — системные логи Linux, содержат журнал входов пользователей в систему. С помощью команды wtmp вы можете узнать кто и когда вошел в систему.
  • /var/log/faillog — лог системы linux, содержит неудачные попытки входа в систему. Используйте команду faillog, чтобы отобразить содержимое этого файла.
  • /var/log/mysqld.log — файлы логов Linux от сервера баз данных MySQL.
  • /var/log/httpd/ или /var/log/apache2 — лог файлы linux11 веб-сервера Apache. Логи доступа находятся в файле access_log, а ошибок в error_log
  • /var/log/lighttpd/ — логи linux веб-сервера lighttpd
  • /var/log/conman/ — файлы логов клиента ConMan,
  • /var/log/mail/ — в этом каталоге содержатся дополнительные логи почтового сервера
  • /var/log/prelink/ — Программа Prelink связывает библиотеки и исполняемые файлы, чтобы ускорить процесс их загрузки. /var/log/prelink/prelink.log содержит информацию о .so файлах, которые были изменены программой.
  • /var/log/audit/— Содержит информацию, созданную демоном аудита auditd.
  • /var/log/setroubleshoot/ — SE Linux использует демон setroubleshootd (SE Trouble Shoot Daemon) для уведомления о проблемах с безопасностью. В этом журнале находятся сообщения этой программы.
  • /var/log/samba/ — содержит информацию и журналы файлового сервера Samba, который используется для подключения к общим папкам Windows.
  • /var/log/sa/ — Содержит .cap файлы, собранные пакетом Sysstat.
  • /var/log/sssd/ — Используется системным демоном безопасности, который управляет удаленным доступом к каталогам и механизмами аутентификации.

Просмотр логов в Linux

Чтобы посмотреть логи на Linux удобно использовать несколько утилит командной строки Linux. Это может быть любой текстовый редактор, или специальная утилита. Скорее всего, вам понадобятся права суперпользователя для того чтобы посмотреть логи в Linux. Вот команды, которые чаще всего используются для этих целей:

Я не буду останавливаться подробно на каждой из этих команд, поскольку большинство из них уже подробно рассмотрены на нашем сайте. Но приведу несколько примеров. Просмотр логов Linux выполняется очень просто:

Смотрим лог /var/log/dmesg, с возможностью прокрутки:

Источник

Оцените статью
Adblock
detector