Как проверить, установлено ли правило аудита в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы узнаете, как проверить, установлены ли правила аудита в Linux. Вы начнете с перечисления в настоящее время загруженных правил аудита с помощью команды auditctl -l, которая взаимодействует с демоном аудита Linux (auditd) для отображения правил, определяющих, какие системные события отслеживаются.

Затем вы изучите файл конфигурации правил аудита, расположенный по пути /etc/audit/audit.rules, чтобы понять, как эти правила сохраняются постоянно. Наконец, вы проверите журналы аудита в каталоге /var/log/audit, чтобы увидеть записанные события на основе настроенных правил, что даст практические представления о деятельности аудита системы.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/help("Command Assistance") linux/BasicSystemCommandsGroup -.-> linux/man("Manual Access") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/tail("File End Display") subgraph Lab Skills linux/help -.-> lab-558780{{"Как проверить, установлено ли правило аудита в Linux"}} linux/man -.-> lab-558780{{"Как проверить, установлено ли правило аудита в Linux"}} linux/ls -.-> lab-558780{{"Как проверить, установлено ли правило аудита в Linux"}} linux/cat -.-> lab-558780{{"Как проверить, установлено ли правило аудита в Linux"}} linux/tail -.-> lab-558780{{"Как проверить, установлено ли правило аудита в Linux"}} end

Перечисление правил аудита с помощью auditctl -l

На этом этапе вы узнаете, как перечислить текущие правила аудита, настроенные в системе, с помощью команды auditctl. Демон аудита Linux (auditd) представляет собой мощный инструмент для отслеживания информации, связанной с безопасностью системы. Правила аудита определяют, какие события система должна записывать в журналы.

Команда auditctl используется для управления демоном аудита. Чтобы перечислить в настоящее время загруженные правила аудита, используйте параметр -l.

Если вы еще не открыли терминал, сделайте это. Для этого нажмите на значок Xfce Terminal слева на рабочем столе.

Теперь введите в терминале следующую команду и нажмите Enter:

sudo auditctl -l

Вы, возможно, увидите вывод, похожий на следующий:

-w /etc/passwd -p wa -k passwd_changes
-w /etc/shadow -p wa -k shadow_changes
-w /etc/gshadow -p wa -k gshadow_changes
-w /etc/group -p wa -k group_changes
-w /etc/sudoers -p wa -k sudoers_changes
-w /etc/sudoers.d/ -p wa -k sudoers_changes
-w /var/log/faillog -p wa -k logins
-w /var/log/lastlog -p wa -k logins
-w /var/log/tallylog -p wa -k logins
-w /var/run/utmp -p wa -k session
-w /var/log/wtmp -p wa -k session
-w /var/log/btmp -p wa -k session
-a always,exit -F arch=b32 -S open,creat,truncate,ftruncate,chmod,fchmod,chown,fchown,setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F auid>=1000 -F auid!=unset -k access
-a always,exit -F arch=b64 -S open,creat,truncate,ftruncate,chmod,fchmod,chown,fchown,setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F auid>=1000 -F auid!=unset -k access
-a always,exit -F arch=b32 -S execve -F auid>=1000 -F auid!=unset -k exec
-a always,exit -F arch=b64 -S execve -F auid>=1000 -F auid!=unset -k exec
-a always,exit -F arch=b32 -S unlink,unlinkat,rename,renameat -F auid>=1000 -F auid!=unset -k delete
-a always,exit -F arch=b64 -S unlink,unlinkat,rename,renameat -F auid>=1000 -F auid!=unset -k delete
-a always,exit -F arch=b32 -S rmdir -F auid>=1000 -F auid!=unset -k delete
-a always,exit -F arch=b64 -S rmdir -F auid>=1000 -F auid!=unset -k delete
-a always,exit -F arch=b32 -S mount -F auid>=1000 -F auid!=unset -k mount
-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=unset -k mount
-a always,exit -F arch=b32 -S swapon -F auid>=1000 -F auid!=unset -k swapon
-a always,exit -F arch=b64 -S swapon -F auid>=1000 -F auid!=unset -k swapon
-a always,exit -F arch=b32 -S swapoff -F auid>=1000 -F auid!=unset -k swapoff
-a always,exit -F arch=b64 -S swapoff -F auid>=1000 -F auid!=unset -k swapoff
-a always,exit -F arch=b32 -S acct -F auid>=1000 -F auid!=unset -k acct
-a always,exit -F arch=b64 -S acct -F auid>=1000 -F auid!=unset -k acct
-a always,exit -F arch=b32 -S settimeofday,adjtimex,stime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b64 -S settimeofday,adjtimex,stime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b32 -S clock_settime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b64 -S clock_settime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b32 -S sethostname,setdomainname -F auid>=1000 -F auid!=unset -k system-locale
-a always,exit -F arch=b64 -S sethostname,setdomainname -F auid>=1000 -F auid!=unset -k system-locale
-a always,exit -F arch=b32 -S init_module,finit_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b64 -S init_module,finit_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b32 -S creat_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b64 -S creat_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b32 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b64 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b32 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec
-a always,exit -F arch=b64 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec
-a always,exit -F arch=b32 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b64 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b32 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify
-a always,exit -F arch=b64 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify
-a always,exit -F arch=b32 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event
-a always,exit -F arch=b64 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event
-a always,exit -F arch=b32 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring
-a always,exit -F arch=b64 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring
-a always,exit -F arch=b32 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle
-a always,exit -F arch=b64 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle
-a always,exit -F arch=b32 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle
-a always,exit -F arch=b64 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle
-a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b32 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b64 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b32 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b64 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b32 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b64 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b32 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
-a always,exit -F arch=b64 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
-a always,exit -F arch=b32 -S finit_module -F auid>=1000 -F auid!=unset -k finit_module
-a always,exit -F arch=b64 -S finit_module -F auid>=1000 -F auid!=unset -k finit_module
-a always,exit -F arch=b32 -S delete_module -F auid>=1000 -F auid!=unset -k delete_module
-a always,exit -F arch=b64 -S delete_module -F auid>=1000 -F auid!=unset -k delete_module
-a always,exit -F arch=b32 -S init_module -F auid>=1000 -F auid!=unset -k init_module
-a always,exit -F arch=b64 -S init_module -F auid>=1000 -F auid!=unset -k init_module
-a always,exit -F arch=b32 -S creat_module -F auid>=1000 -F auid!=unset -k creat_module
-a always,exit -F arch=b64 -S creat_module -F auid>=1000 -F auid!=unset -k creat_module
-a always,exit -F arch=b32 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b64 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b32 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec_load
-a always,exit -F arch=b64 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec_load
-a always,exit -F arch=b32 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b64 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b32 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify_init
-a always,exit -F arch=b64 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify_init
-a always,exit -F arch=b32 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event_open
-a always,exit -F arch=b64 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event_open
-a always,exit -F arch=b32 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring_setup
-a always,exit -F arch=b64 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring_setup
-a always,exit -F arch=b32 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle_at
-a always,exit -F arch=b64 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle_at
-a always,exit -F arch=b32 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle_at
-a always,exit -F arch=b64 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle_at
-a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b32 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b64 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b32 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b64 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b32 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b64 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b32 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
-a always,exit -F arch=b64 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp

Этот вывод показывает правила, которые в настоящее время активны в системе аудита. Каждая строка представляет собой отдельное правило. Не беспокойтесь о том, чтобы сразу понять все детали правил. Главное, что вы можете увидеть список этих правил.

Параметр -w используется для отслеживания изменений в определенном файле или каталоге. Параметр -a служит для добавления правила. Параметр -S задает системные вызовы, которые необходимо отслеживать в рамках аудита.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка файла правил аудита с помощью команды cat /etc/audit/audit.rules

На предыдущем этапе вы перечислили в настоящее время активные правила аудита с помощью команды auditctl -l. Обычно эти правила загружаются из файла конфигурации при запуске демона аудита. Основной файл конфигурации правил аудита - это /etc/audit/audit.rules.

Давайте рассмотрим содержимое этого файла с помощью команды cat. Команда cat используется для отображения содержимого файлов.

Введите в терминале следующую команду и нажмите Enter:

cat /etc/audit/audit.rules

Вы увидите содержимое файла /etc/audit/audit.rules, выведенное в терминал. Этот файл содержит правила, которые загружает демон аудита при запуске.

### This file is automatically generated from /etc/audit/rules.d
##
### The rules are simply the concatenation of all rules files in /etc/audit/rules.d
### and will be loaded after the kernel rules are loaded.
##
##
### First rule - delete all
-D

### Increase the buffers to survive stress events.
### Make this bigger for busy systems
-b 8192

### Set failure mode to syslog
-f 1

### Log all attempts to alter system time
-a always,exit -F arch=b32 -S settimeofday,adjtimex,stime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b64 -S settimeofday,adjtimex,stime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b32 -S clock_settime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b64 -S clock_settime -F auid>=1000 -F auid!=unset -k time-change

### Log all attempts to alter system locale
-a always,exit -F arch=b32 -S sethostname,setdomainname -F auid>=1000 -F auid!=unset -k system-locale
-a always,exit -F arch=b64 -S sethostname,setdomainname -F auid>=1000 -F auid!=unset -k system-locale

### Log all attempts to alter system modules
-a always,exit -F arch=b32 -S init_module,finit_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b64 -S init_module,finit_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b32 -S creat_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b64 -S creat_module,delete_module -F auid>=1000 -F auid!=unset -k modules

### Log all attempts to alter system syslog
-a always,exit -F arch=b32 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b64 -S syslog -F auid>=1000 -F auid!=unset -k syslog

### Log all attempts to alter system kexec
-a always,exit -F arch=b32 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec
-a always,exit -F arch=b64 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec

### Log all attempts to alter system bpf
-a always,exit -F arch=b32 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b64 -S bpf -F auid>=1000 -F auid!=unset -k bpf

### Log all attempts to alter system fanotify
-a always,exit -F arch=b32 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify
-a always,exit -F arch=b64 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify

### Log all attempts to alter system perf_event
-a always,exit -F arch=b32 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event
-a always,exit -F arch=b64 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event

### Log all attempts to alter system io_uring
-a always,exit -F arch=b32 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring
-a always,exit -F arch=b64 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring

### Log all attempts to alter system open_by_handle
-a always,exit -F arch=b32 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle
-a always,exit -F arch=b64 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle

### Log all attempts to alter system name_to_handle
-a always,exit -F arch=b32 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle
-a always,exit -F arch=b64 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle

### Log all attempts to alter system vmsplice
-a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice

### Log all attempts to alter system process_vm_readv
-a always,exit -F arch=b32 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b64 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv

### Log all attempts to alter system process_vm_writev
-a always,exit -F arch=b32 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b64 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev

### Log all attempts to alter system ptrace
-a always,exit -F arch=b32 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b64 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace

### Log all attempts to alter system kcmp
-a always,exit -F arch=b32 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
-a always,exit -F arch=b64 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp

### Log all attempts to alter system finit_module
-a always,exit -F arch=b32 -S finit_module -F auid>=1000 -F auid!=unset -k finit_module
-a always,exit -F arch=b64 -S finit_module -F auid>=1000 -F auid!=unset -k finit_module

### Log all attempts to alter system delete_module
-a always,exit -F arch=b32 -S delete_module -F auid>=1000 -F auid!=unset -k delete_module
-a always,exit -F arch=b64 -S delete_module -F auid>=1000 -F auid!=unset -k delete_module

### Log all attempts to alter system init_module
-a always,exit -F arch=b32 -S init_module -F auid>=1000 -F auid!=unset -k init_module
-a always,exit -F arch=b64 -S init_module -F auid>=1000 -F auid!=unset -k init_module

### Log all attempts to alter system creat_module
-a always,exit -F arch=b32 -S creat_module -F auid>=1000 -F auid!=unset -k creat_module
-a always,exit -F arch=b64 -S creat_module -F auid>=1000 -F auid!=unset -k creat_module

### Log all attempts to alter system syslog
-a always,exit -F arch=b32 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b64 -S syslog -F auid>=1000 -F auid!=unset -k syslog

### Log all attempts to alter system kexec_load
-a always,exit -F arch=b32 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec_load
-a always,exit -F arch=b64 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec_load

### Log all attempts to alter system bpf
-a always,exit -F arch=b32 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b64 -S bpf -F auid>=1000 -F auid!=unset -k bpf

### Log all attempts to alter system fanotify_init
-a always,exit -F arch=b32 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify_init
-a always,exit -F arch=b64 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify_init

### Log all attempts to alter system perf_event_open
-a always,exit -F arch=b32 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event_open
-a always,exit -F arch=b64 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event_open

### Log all attempts to alter system io_uring_setup
-a always,exit -F arch=b32 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring_setup
-a always,exit -F arch=b64 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring_setup

### Log all attempts to alter system open_by_handle_at
-a always,exit -F arch=b32 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle_at
-a always,exit -F arch=b64 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle_at

### Log all attempts to alter system name_to_handle_at
-a always,exit -F arch=b32 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle_at
-a always,exit -F arch=b64 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle_at

### Log all attempts to alter system vmsplice
-a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice

### Log all attempts to alter system process_vm_readv
-a always,exit -F arch=b32 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b64 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv

### Log all attempts to alter system process_vm_writev
-a always,exit -F arch=b32 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b64 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev

### Log all attempts to alter system ptrace
-a always,exit -F arch=b32 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b64 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace

### Log all attempts to alter system kcmp
-a always,exit -F arch=b32 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
-a always,exit -F arch=b64 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp

Как вы можете видеть, содержимое файла /etc/audit/audit.rules похоже на вывод команды sudo auditctl -l. Этот файл является источником правил, которые загружаются в подсистему аудита ядра.

Понимание содержимого этого файла является важным аспектом настройки аудита системы. Вы можете добавлять, удалять или изменять правила в этом файле, чтобы настроить, какие события будут отслеживаться в рамках аудита. Однако для внесения изменений в этот файл требуются привилегии суперпользователя (root), и обычно для вступления изменений в силу необходимо перезапустить демон аудита.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка журналов аудита в каталоге /var/log/audit

Теперь, когда вы знаете, как перечислить правила аудита и просмотреть файл конфигурации, давайте посмотрим, где хранятся журналы аудита. Демон аудита записывает записи журнала в файлы, которые обычно находятся в каталоге /var/log/audit/.

Основной файл журнала аудита обычно называется audit.log. Вы можете использовать команду ls для перечисления файлов в каталоге /var/log/audit/ и проверить, существует ли файл журнала.

Введите в терминале следующую команду и нажмите Enter:

ls /var/log/audit/

Вы должны увидеть вывод, похожий на следующий, показывающий файл audit.log:

audit.log

Теперь давайте просмотрим содержимое файла audit.log с помощью команды tail. Команда tail полезна для просмотра конца файла, где находятся самые свежие записи журнала. Поскольку журнал аудита может быть очень большим, просмотр конца файла часто более практичен, чем просмотр всего файла с помощью команды cat.

Введите в терминале следующую команду и нажмите Enter:

sudo tail /var/log/audit/audit.log

Вы увидите последние строки файла audit.log. Эти строки представляют недавние события, которые были отслежены в соответствии с настроенными правилами. Вывод будет выглядеть приблизительно так, при этом каждая строка представляет собой детальную запись аудита:

type=SYSCALL msg=audit(1678886400.123:456): arch=c000003e syscall=1 success=yes exit=1 a0=1 a1=7ffc... a2=1 a3=0 items=0 ppid=1234 pid=5678 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts/0 ses=1 comm="bash" exe="/usr/bin/bash" subj=unconfined key="access"
type=PROCTITLE msg=audit(1678886400.123:456): proctitle=bash
type=CWD msg=audit(1678886400.123:456): cwd="/home/labex/project"
... (more log entries)

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

Вы успешно нашли и просмотрели журналы аудита. В реальной жизни вы бы использовали такие инструменты, как ausearch и aureport, чтобы эффективно искать и суммировать эти журналы, но для этого вводного практического занятия просто знание их местоположения - это отличный старт.

Нажмите Продолжить, чтобы завершить это практическое занятие.

Резюме

В этом практическом занятии вы узнали, как проверить, установлены ли правила аудита в Linux. Вы начали с использования команды auditctl -l для перечисления в настоящее время загруженных правил аудита, которые контролируются демоном аудита Linux (auditd) и определяют, какие системные события записываются в журналы.

Затем вы обычно бы рассмотрели файл правил аудита, расположенный по пути /etc/audit/audit.rules, с помощью команды cat, чтобы увидеть постоянную конфигурацию правил аудита. Наконец, вы бы проверили журналы аудита в каталоге /var/log/audit, чтобы убедиться, что события записываются в соответствии с настроенными правилами.