ОС семейства Unix
Общие данные
Примечание: начиная с версии
3.7.2в Платформе Радар все источники, которые являются операционными системами семейства Unix, объединены в один источник Linux-Unix.
Платформа Радар поддерживает сбор событий со следующих ОС семейства Unix:
- Astra Linux Special Edition 1.7 и выше;
- Ubuntu 16.04, 18.04, 20.04, 22.04;
- CentOS 6, 7, 8, 9;
- Debian 8, 9, 10, 12;
- Oracle Solaris 10, 11;
- Red Hat Enterprise Linux 6, 7, 8;
- SUSE Linux Enterprise Server 11.3, 12, 15;
- Fedora 30, 31.
Для журналирования событий используются следующие службы:
rsyslogилиsyslog-ng- служба журналирования для отправки событий в платформу;auditd- отвечает за запись сообщений аудита вызванных активностью приложений или системы.
Характеристики источника в Платформе Радар:
| Характеристика | Значение |
|---|---|
| Название | Linux-Debian |
| Номер (Порт) | 2671 |
| Тип | Operating System |
| Вендор | Debian |
| Профиль сбора | tcp_input udp_input |
Примечание: если источник будет отдавать большой поток событий, и если таких источников будет много, то рекомендуется передавать события по протоколу UDP. Так как при использовании протокола TCP может образоваться большая очередь на агенте сбора лог-коллектора. Но при использовании протокола UDP могут происходить потери. Для выбора оптимальных настроек для вашей системы, рекомендуется обратиться в службу технического сопровождения Платформы Радар.
Настройка источника включает в себя следующие процессы:
- Настройка службы журналирования.
- Настройка службы
auditd. - Настройка журналирования bash-команд.
- Проверка настроенной конфигурации.
- Включение источника на платформе.
Примечание: все действия при настройке источника должны выполняться от имени суперпользователя.
Настройка службы журналирования
Для отправки событий стандарта syslog в Платформу Радар на источнике необходимо настроить службу журналирования и отправку событий.
В целях организации безопасной передачи данных на агент сбора лог-коллектора по протоколу TCP, а также обеспечения возможности фильтрации сообщений по источникам и их содержимому предлагается использовать службы rsyslog или syslog-ng.
Службы реализуют механизм централизованного протоколирования событий в ОС семейства Unix. Все части системы (включая ядро и системные службы) передают происходящие в них события службе журналирования. В свою очередь, служба журналирования добавляет к телу события информацию о важности (severity), категории (facility), времени происшествия события, hostname или IP-адрес хоста, имя и PID службы, сгенерировавшей лог.
Служба журналирования, согласно настройкам в файле конфигурации, классифицирует все события в несколько выходных потоков, согласно категории (facility) и важности (severity). Например, события ядра системы будут иметь категорию kern, а события почтового сервера - категорию mail. Если уровень важности не имеет значения, но необходимо, чтобы в одном файле были собраны события только одного демона, в файле конфигурации службы журналирования указывается запись kern.* -/var/log/kern.log, где * - любой уровень важности события. Но если необходимо, например, сохранять в файл события ошибок почтового сервера, указывается строка mail.err /var/log/mail.err. Таким образом, можно распределить события разных категорий и уровней важности по разным файлам.
Перед началом работы с платформой мы рекомендуем вам настроить параметры категории (facility) и важности (severity) события для оптимизации передаваемого в платформу потока.
Подробнее о механизме централизованного протоколирования событий вы можете ознакомиться в соответствующих руководствах для вашей ОС.
Определение используемой службы журналирования
Если установлена ОС Astra Linux, Debian или Ubuntu, то выполните команду:
# dpkg --list | grep syslog
Eсли ALT Linux, CentOS или Red Hat Enterprise Linux, то выполните команду:
# rpm -qa *syslog*
Eсли SUSE Linux Enterprise Server, то выполните команду:
# zypper search *syslog* --installed-only | grep 'i |'
На экран будет выведено название используемой службы. Если результат отличается от rsyslog или syslog-ng, то рекомендуется выполнить установку соответствующей службы.
Настройка rsyslog
Если служба не установлена, то вы можете ее установить. Для этого выполните соответствующую команду:
| ОС | Команда |
|---|---|
| для систем на базе deb (Debian / Ubuntu) | # apt-get update# apt-get install rsyslog |
| для систем на базе RPM (Red Hat / CentOS) | # yum -y install rsyslog |
Добавьте службу rsyslog в автозагрузку и запустите:
# systemctl enable rsyslog
# systemctl start rsyslog
Конфигурационный файл службы /etc/rsyslog.conf по умолчанию имеет следующую структуру:
Первой идет секция модулей:
- Модули ввода — можно рассматривать как способ сбора информации из различных источников, начинаются с
im; - Модули вывода — позволяют отправлять сообщения в файлы, по сети или в базу данных, имя начинается на
om; - Модули фильтрации — позволяют фильтровать поступающие сообщения по различным критериям, начинаются с
fm; - Модули парсинга — предоставляют расширенные возможности для синтаксического анализа сообщения, начинаются с
pm.
Далее идет секция глобальных директив:
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormatпредписывает записывать события в формате<PRI> TIMESTAMP HOSTNAME TAG MSG;$RepeatedMsgReduction onпредписывает отбрасывать дубликаты сообщений;$WorkDirectory /var/spool/rsyslog— задает директорию для рабочих файлов службы;$IncludeConfig /etc/rsyslog.d/*.conf— задает директорию дополнительных файлов конфигурации.
Директивы $FileOwner, $FileGroup и прочие — устанавливают права доступа, владельца и группу по умолчанию для лог-файлов.
Для настройки пересылки событий в агент сбора лог-коллектора необходимо в конец конфигурационного файла rsyslog.conf добавить следующую строку:
auth,authpriv.* @@<адрес агента сбора лог-коллектора>:port
Где:
<ip-адрес агента сбора лог-коллектора>- IP-адрес агента сбора лог-коллектора;port- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора;@@- указывается в случае, если используется протоколTCP;@- указывается в случае, если используется протоколUDP.
Для завершения настройки необходимо перезапустить службу rsyslog.
Настройка отправки событий от службы auditd
Чтобы служба rsyslog принимала и отправляла поток событий от службы auditd, необходимо создать файл /etc/rsyslog.d/30-auditd.conf и указать в нем следующие параметры:
module(load="imfile" mode="inotify" PollingInterval="10")
input(type="imfile" File="/var/log/audit/audit.log"
Severity="info"
Facility="local6"
tag="audit:")
local6.* @@<IP-адрес агента сбора лог-коллектора>:port
Где:
<ip-адрес агента сбора лог-коллектора>- IP-адрес агента сбора лог-коллектора;port- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора;@@- указывается в случае, если используется протоколTCP;@- указывается в случае, если используется протоколUDP.
Настройка отправки событий от службы UFW и firewalld
Служба rsyslog может самостоятельно передавать события от служб firewalld и UFW.
Описание настройки служб описано в разделе Настройка журналирования UFW и firewalld.
Настройка syslog-ng
Если служба не установлена, то вы можете ее установить. Для этого выполните соответствующую команду:
| ОС | Команда |
|---|---|
| для систем на базе deb (Debian / Ubuntu) | # apt-get update# apt-get install syslog-ng |
| для систем на базе RPM (Red Hat / CentOS | # yum -y install syslog-ng |
Добавьте службу syslog-ng в автозагрузку и запустите:
# systemctl enable syslog-ng
# systemctl start syslog-ng
В конфигурационном файле /etc/syslog-ng/syslog-ng.confнастройте службу на сбор необходимых событий (пример файла приведен в Приложении А).
В начале файла укажите версию службы (если она не указана) и включенные конфигурационные файлы:
@version: 3.35
@include "scl.conf"
@include "/etc/syslog-ng/conf.d/*.conf"
В блоке options установите следующие глобальные переменные:
options {
flush_lines (0);
time_reopen (10);
log_fifo_size (1000);
chain_hostnames (off);
use_dns (no);
dns-cache(no);
use_fqdn (no);
create_dirs (no);
keep_hostname (yes);
stats-freq(0);
mark-freq(0);
};
В блоке Sources укажите источники получения логов, например:
source s_sys {
system();
internal();
};
В блоке Destinations укажите пути к файлам, собираемых журналов:
# стандартные файлы журналов.
#
destination d_auth { file("/var/log/auth.log"); };
destination d_auth { file("/var/log/auth.log"); };
destination d_daemon { file("/var/log/daemon.log"); };
destination d_kern { file("/var/log/kern.log"); };
destination d_lpr { file("/var/log/lpr.log"); };
destination d_mail { file("/var/log/mail.log"); };
destination d_syslog { file("/var/log/syslog"); };
destination d_user { file("/var/log/user.log"); };
destination d_uucp { file("/var/log/uucp.log"); };
# журналы, поступающие от почтовых подсистем.
#
destination d_mailinfo { file("/var/log/mail.info"); };
destination d_mailwarn { file("/var/log/mail.warn"); };
destination d_mailerr { file("/var/log/mail.err"); };
# универсальные файлы журналов.
#
destination d_debug { file("/var/log/debug"); };
destination d_error { file("/var/log/error"); };
destination d_messages { file("/var/log/messages"); };
# root's консоль.
#
destination d_mlal { usertty("*"); };
# virtual консоль.
#
destination d_cons { file("/dev/console"); };
# отптравка сообщений в агент сбора лог-коллектора
#
destination d_net { tcp("<IP-адрес агента сбора лог-коллектора>" port log_fifo_size(1000)); };
Где, в параметре destination d_net укажите следующие данные:
<IP-адрес агента сбора лог-коллектора>- IP-адрес агента сбора лог-коллектора;port- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора.
В блоке Filters настройте правила и уровни журналирования, чтобы установить какие именно сообщения будут отправляться. Рекомендуются следующие настройки:
filter f_dbg { level(debug); };
filter f_info { level(info); };
filter f_notice { level(notice); };
filter f_warn { level(warn); };
filter f_err { level(err); };
filter f_crit { level(crit .. emerg); };
filter f_debug { level(debug) and not facility(auth, authpriv, news, mail); };
filter f_error { level(err .. emerg) ; };
filter f_messages { level(info,notice,warn) and
not facility(auth,authpriv,cron,daemon,mail,news); };
filter f_audit { program("audit"); };
filter f_auth { facility(auth, authpriv); };
filter f_daemon { facility(daemon) and not filter(f_debug); };
filter f_kern { facility(kern) and not filter(f_debug); };
filter f_lpr { facility(lpr) and not filter(f_debug); };
filter f_local { facility(local0, local1, local3, local4, local5,
local6, local7) and not filter(f_debug); };
filter f_mail { facility(mail) and not filter(f_debug); };
filter f_syslog3 { not facility(auth, authpriv, mail) and not filter(f_debug); };
filter f_user { facility(user) and not filter(f_debug); };
filter f_uucp { facility(uucp) and not filter(f_debug); };
filter f_cnews { level(notice, err, crit) and facility(news); };
filter f_cother { level(debug, info, notice, warn) or facility(daemon, mail); };
filter f_console { level(warn .. emerg); };
В блоке Log path укажите маршрутизацию принятого службой логирования потока событий (блок Source) в указанные файлы логов (блока Destination) в соответствии с заданными фильтрами:
log { source(s_sys); filter(f_auth); destination(d_auth); };
log { source(s_sys); filter(f_daemon); destination(d_daemon); };
log { source(s_sys); filter(f_kern); destination(d_kern); };
log { source(s_sys); filter(f_lpr); destination(d_lpr); };
log { source(s_sys); filter(f_syslog3); destination(d_syslog); };
log { source(s_sys); filter(f_user); destination(d_user); };
log { source(s_sys); filter(f_uucp); destination(d_uucp); };
log { source(s_sys); filter(f_mail); destination(d_mail); };
log { source(s_sys); filter(f_debug); destination(d_debug); };
log { source(s_sys); filter(f_error); destination(d_error); };
log { source(s_sys); filter(f_messages); destination(d_messages); };
log { source(s_sys); filter(f_console); destination(d_cons); };
log { source(s_sys); filter(f_crit); destination(d_mlal); };
# для отправки сообщений на удаленный сайт
# убедитесь, что строка ниже не закомментирована
log { source(s_sys); filter(f_auth); destination(d_net); };
Внимание! убедитесь, что не закомментирована строка
log { source(s_sys); filter(f_auth); destination(d_net); }
Для завершения настройки необходимо перезапустить службу syslog-ng.
Настройка отправки событий от службы auditd
Для отправки событий собираемых службой auditd на агент сбора лог-коллектора, в директории /etc/syslog-ng/conf.d добавьте файл audit_messages.conf со следующими параметрами:
source s_audit {
file (/var/log/audit/audit.log persist-name (s_auditd_for_siem) program_override("auditd"));
};
destination d_auditd {
tcp (
"<IP-адрес агента сбора лог-коллектора>"
port
persist-name(d_auditd_for_siem)
);
};
log {
source(s_audit); destination(d_auditd);
};
Где, в параметре destination d_auditd укажите следующие параметры:
<IP-адрес агента сбора лог-коллектора>- IP-адрес агента сбора лог-коллектора;port- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора.
Настройка отправки событий от службы UFW и firewalld
Служба syslog-ng может самостоятельно передавать события от служб firewalld и UFW.
Описание настройки служб описано в разделе Настройка журналирования UFW и firewalld.
Настройка службы auditd
Служба auditd предназначена для мониторинга событий операционной системы и записи их в журналы событий.
Настройка службы включает в себя установку и подключение службы в качестве источника событий для Платформы Радар.
Если служба не установлена, то вы можете ее установить. Для этого выполните соответствующую команду:
| ОС | Команда |
|---|---|
| для систем на базе deb (Debian / Ubuntu) | # sudo apt-get install auditd# sudo apt-get install audispd-plugins |
| для систем на базе RPM (Red Hat / CentOS) | # yum -y install auditd# yum -y install audispd-plugins |
Настройка конфигурационного файла службы auditd
Конфигурационный файл службы - /etc/audit/auditd.conf - содержит информацию о конфигурации, специфичную для аудита. Структура файла: одно ключевое слово конфигурации в каждой строке, знак равенства, а затем следует соответствующая информация о конфигурации.
Если у вас ОС на базе deb (Debian / Ubuntu), то в /etc/audit/auditd.conf укажите следующее содержимое:
local_events = yes
write_logs = yes
log_file = /var/log/audit/audit.log
log_group = adm
log_format = ENRICHED
flush = INCREMENTAL_ASYNC
freq = 50
max_log_file = 8
num_logs = 5
priority_boost = 4
disp_qos = lossy
dispatcher = /sbin/audispd
name_format = NUMERIC
##name = mydomain
max_log_file_action = ROTATE
space_left = 75
space_left_action = SYSLOG
verify_email = yes
action_mail_acct = root
admin_space_left = 50
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND
use_libwrap = yes
##tcp_listen_port = 60
tcp_listen_queue = 5
tcp_max_per_addr = 1
##tcp_client_ports = 1024-65535
tcp_client_max_idle = 0
enable_krb5 = no
krb5_principal = auditd
##krb5_key_file = /etc/audit/audit.key
distribute_network = no
Если у вас ОС на базе RPM (Red Hat / CentOS), то в /etc/audit/auditd.conf укажите следующее содержимое:
local_events = yes
write_logs = yes
log_file = /var/log/audit/audit.log
log_group = adm
log_format = RAW
flush = INCREMENTAL_ASYNC
freq = 50
max_log_file = 8
num_logs = 5
priority_boost = 6
name_format = HOSTNAME
max_log_file_action = ROTATE
space_left = 75
space_left_action = SYSLOG
verify_email = yes
action_mail_acct = root
admin_space_left = 50
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND
use_libwrap = yes
##tcp_listen_port = 60
tcp_listen_queue = 5
tcp_max_per_addr = 1
##tcp_client_ports = 1024-65535
tcp_client_max_idle = 0
transport = TCP
krb5_principal = auditd
##krb5_key_file = /etc/audit/audit.key
distribute_network = no
q_depth = 1200
overflow_action = SYSLOG
max_restarts = 10
plugin_dir = /etc/audit/plugins.d
end_of_event_timeout = 2
Описание параметров конфигурационного файла /etc/audit/auditd.conf приведено в Приложении Б.
Настройка правил расширенного аудита
Если у вас ОС на базе deb (Debian / Ubuntu), то создайте файл с правилами расширенного аудита /etc/audit/rules.d/extended.rules и добавьте туда следующие правила:
-D
-b 8192
-f 1
-a exclude,always -F msgtype=BPRM_FCAPS
-a exclude,always -F msgtype=BPF
# ===== EXECVE (ВСЕ КОМАНДЫ) =====
-a always,exit -F arch=b64 -S execve,execveat -k exec_all_commands
-a always,exit -F arch=b32 -S execve,execveat -k exec_all_commands
# ===== PRIVILEGE ESCALATION =====
-a always,exit -F arch=b64 -S setuid,setgid,setreuid,setregid,setresuid,setresgid,setfsuid,setfsgid -k privilege_escalation
-a always,exit -F arch=b32 -S setuid,setgid,setreuid,setregid,setresuid,setresgid,setfsuid,setfsgid -k privilege_escalation
# ===== SENSITIVE FILES =====
-a always,exit -F arch=b64 -S open,openat,openat2 -F path=/etc/shadow -F auid!=-1 -k shadow_read
-a always,exit -F arch=b32 -S open,openat -F path=/etc/shadow -F auid!=-1 -k shadow_read
-a always,exit -F arch=b64 -S open,openat,openat2 -F path=/etc/passwd -F auid!=-1 -k passwd_read
-a always,exit -F arch=b32 -S open,openat -F path=/etc/passwd -F auid!=-1 -k passwd_read
# ===== MOUNT OPERATIONS =====
-a always,exit -F arch=b64 -S mount,umount2 -k mount_operations
-a always,exit -F arch=b32 -S mount,umount2 -k mount_operations
# ===== PTRACE (Process Tracing) =====
-a always,exit -F arch=b64 -S ptrace -k ptrace_usage
-a always,exit -F arch=b32 -S ptrace -k ptrace_usage
# ===== SOCKET OPERATIONS =====
-a always,exit -F arch=b64 -S socket -F a0=2 -k socket_ipv4
-a always,exit -F arch=b32 -S socket -F a0=2 -k socket_ipv4
-a always,exit -F arch=b64 -S socket -F a0=0xa -k socket_ipv6
-a always,exit -F arch=b32 -S socket -F a0=0xa -k socket_ipv6
-a always,exit -F arch=b64 -S bind -k network_bind
-a always,exit -F arch=b32 -S bind -k network_bind
# ===== TIME MANIPULATION =====
-a always,exit -F arch=b64 -S adjtimex,settimeofday,clock_settime -k time_changes
-a always,exit -F arch=b32 -S adjtimex,settimeofday,stime,clock_settime -k time_changes
# ===== NETWORK CONFIG =====
-a always,exit -F arch=b64 -S sethostname,setdomainname -k network_modifications
-a always,exit -F arch=b32 -S sethostname,setdomainname -k network_modifications
# ===== PROCESS TRACKING =====
-a always,exit -F arch=b64 -S fork,vfork,clone,clone3 -F auid!=-1 -k process_creation
-a always,exit -F arch=b32 -S fork,vfork,clone,clone3 -F auid!=-1 -k process_creation
-a always,exit -F arch=b64 -S exit,exit_group -k process_exit
-a always,exit -F arch=b32 -S exit,exit_group -k process_exit
# ===== FILE OPERATIONS =====
# Статистика файлов (базовая информация)
-a always,exit -F arch=b64 -S stat,lstat,statx -k file_stat
-a always,exit -F arch=b32 -S lstat,stat -k file_stat
# fstat - информация о открытом файле
-a always,exit -F arch=b64 -S fstat -k fstat_usage
-a always,exit -F arch=b32 -S fstat -k fstat_usage
# mknod - создание специальных файлов
-a always,exit -F arch=b64 -S mknod,mknodat -k mknod_usage
-a always,exit -F arch=b32 -S mknod,mknodat -k mknod_usage
# chown - изменение владельца
-a always,exit -F arch=b64 -S chown,fchown,lchown,fchownat -F auid!=-1 -k chown_usage
-a always,exit -F arch=b32 -S chown,fchown,lchown,fchownat -F auid!=-1 -k chown_usage
# link операции - создание жестких и символических ссылок
-a always,exit -F arch=b64 -S link,linkat,symlink,symlinkat -F auid!=-1 -k link_usage
-a always,exit -F arch=b32 -S link,linkat,symlink,symlinkat -F auid!=-1 -k link_usage
# ===== SOCKET OPTIONS =====
-a always,exit -F arch=b64 -S setsockopt -F auid!=-1 -k setsockopt_usage
-a always,exit -F arch=b32 -S setsockopt -F auid!=-1 -k setsockopt_usage
-a always,exit -F arch=b64 -S getsockopt -F auid!=-1 -k getsockopt_usage
-a always,exit -F arch=b32 -S getsockopt -F auid!=-1 -k getsockopt_usage
-a always,exit -F arch=b64 -S listen -k listen_usage
-a always,exit -F arch=b32 -S listen -k listen_usage
-a always,exit -F arch=b64 -S accept,accept4 -k accept_usage
-a always,exit -F arch=b32 -S accept4 -k accept_usage
-a always,exit -F arch=b64 -S shutdown -k shutdown_usage
-a always,exit -F arch=b32 -S shutdown -k shutdown_usage
-a always,exit -F arch=b64 -S getpeername -k getpeername_usage
-a always,exit -F arch=b32 -S getpeername -k getpeername_usage
-a always,exit -F arch=b64 -S getsockname -k getsockname_usage
-a always,exit -F arch=b32 -S getsockname -k getsockname_usage
# ===== SIGNALS & IPC =====
-a always,exit -F arch=b64 -S getgroups -k groups_query
-a always,exit -F arch=b32 -S getgroups -k groups_query
-a always,exit -F arch=b64 -S kill,rt_sigqueueinfo,tgkill -k kill_signal_usage
-a always,exit -F arch=b32 -S kill,rt_sigqueueinfo,tgkill -k kill_signal_usage
-a always,exit -F arch=b64 -S futex -F auid!=-1 -k futex_usage
-a always,exit -F arch=b32 -S futex -F auid!=-1 -k futex_usage
-a always,exit -F arch=b64 -S shmget,shmctl,shmdt,shmat -k ipc_shm_usage
-a always,exit -F arch=b32 -S shmget,shmctl,shmdt,shmat -k ipc_shm_usage
-a always,exit -F arch=b64 -S semget,semctl,semop,semtimedop -k ipc_sem_usage
-a always,exit -F arch=b32 -S semget -k ipc_sem_usage
-a always,exit -F arch=b64 -S msgget,msgctl,msgsnd,msgrcv -k ipc_msg_usage
-a always,exit -F arch=b32 -S msgget,msgctl,msgsnd,msgrcv -k ipc_msg_usage
-a always,exit -F arch=b64 -S inotify_init,inotify_init1,inotify_add_watch,inotify_rm_watch -k inotify_usage
-a always,exit -F arch=b32 -S inotify_init,inotify_init1,inotify_add_watch,inotify_rm_watch -k inotify_usage
-a always,exit -F arch=b64 -S splice,tee,vmsplice -k splice_usage
-a always,exit -F arch=b32 -S splice,tee,vmsplice -k splice_usage
-a always,exit -F arch=b64 -S pipe,pipe2 -k pipe_usage
-a always,exit -F arch=b32 -S pipe,pipe2 -k pipe_usage
-a always,exit -F arch=b64 -S flock -F auid!=-1 -k flock_usage
-a always,exit -F arch=b32 -S flock -F auid!=-1 -k flock_usage
-a always,exit -F arch=b64 -S mlock,mlock2,munlock,mlockall,munlockall -k mlock_usage
-a always,exit -F arch=b32 -S mlock,mlock2,munlock,mlockall,munlockall -k mlock_usage
-a always,exit -F arch=b64 -S mremap -F auid!=-1 -k mremap_usage
-a always,exit -F arch=b32 -S mremap -F auid!=-1 -k mremap_usage
-a always,exit -F arch=b64 -S mincore -F auid!=-1 -k mincore_usage
-a always,exit -F arch=b32 -S mincore -F auid!=-1 -k mincore_usage
-a always,exit -F arch=b64 -S madvise -F auid!=-1 -k madvise_usage
-a always,exit -F arch=b32 -S madvise -F auid!=-1 -k madvise_usage
# ===== WATCH RULES (Конфигурационные файлы) =====
-w /etc/passwd -p wa -k passwd_changes
-w /etc/group -p wa -k group_changes
-w /etc/shadow -p wa -k shadow_changes
-w /etc/gshadow -p wa -k gshadow_changes
-w /etc/security/opasswd -p wa -k opasswd_changes
-w /etc/ssh/sshd_config -p wa -k sshd_config_changes
-w /etc/ssh/ssh_config -p wa -k ssh_config_changes
-w /root/.ssh -p wa -k root_ssh_changes
-w /home -p wa -k home_changes
-w /etc/pam.d/ -p wa -k pam_changes
-w /etc/security/pwquality.conf -p wa -k pwquality_changes
-w /etc/security/ -p wa -k security_config_changes
-w /etc/sudoers -p wa -k sudoers_changes
-w /etc/sudoers.d/ -p wa -k sudoers_d_changes
-w /etc/cron.d/ -p wa -k cron_d_changes
-w /etc/cron.daily/ -p wa -k cron_daily_changes
-w /etc/cron.hourly/ -p wa -k cron_hourly_changes
-w /etc/cron.monthly/ -p wa -k cron_monthly_changes
-w /etc/cron.weekly/ -p wa -k cron_weekly_changes
-w /etc/crontab -p wa -k crontab_changes
-w /var/spool/cron/ -p wa -k cron_spool_changes
-w /etc/systemd/ -p wa -k systemd_changes
-w /usr/lib/systemd/system/ -p wa -k systemd_system_changes
-w /lib/systemd/system/ -p wa -k systemd_lib_changes
-w /etc/init.d/ -p wa -k init_d_changes
-w /etc/rc.local -p wa -k rc_local_changes
-w /etc/profile -p wa -k profile_changes
-w /etc/profile.d/ -p wa -k profile_d_changes
-w /etc/bash.bashrc -p wa -k bashrc_changes
-w /etc/zsh/ -p wa -k zsh_changes
-w /etc/hosts -p wa -k hosts_changes
-w /etc/hostname -p wa -k hostname_changes
-w /etc/network -p wa -k network_config_changes
-w /etc/resolv.conf -p wa -k resolv_conf_changes
-w /sbin/insmod -p x -k insmod_execution
-w /sbin/rmmod -p x -k rmmod_execution
-w /sbin/modprobe -p x -k modprobe_execution
-a always,exit -F arch=b64 -S init_module,delete_module,finit_module -k kernel_module_operations
-a always,exit -F arch=b32 -S init_module,delete_module,finit_module -k kernel_module_operations
-w /etc/modprobe.conf -p wa -k modprobe_conf_changes
-w /etc/modprobe.d/ -p wa -k modprobe_d_changes
-w /boot -p wa -k boot_changes
-w /boot/grub -p wa -k grub_changes
-w /boot/grub2 -p wa -k grub2_changes
-w /etc/ld.so.preload -p wa -k ld_preload_changes
-w /etc/ld.so.conf -p wa -k ld_so_conf_changes
-w /etc/ld.so.conf.d/ -p wa -k ld_so_conf_d_changes
-a always,exit -F arch=b64 -S open,openat,openat2 -F dir=/tmp -k tmp_library_load
-a always,exit -F arch=b32 -S open,openat -F dir=/tmp -k tmp_library_load
-a always,exit -F arch=b64 -S open,openat,openat2 -F dir=/dev/shm -k shm_library_load
-a always,exit -F arch=b32 -S open,openat -F dir=/dev/shm -k shm_library_load
-w /etc/selinux -p wa -k selinux_changes
-w /usr/sbin/setenforce -p x -k setenforce_execution
-w /usr/sbin/semodule -p x -k semodule_execution
-w /etc/apparmor -p wa -k apparmor_changes
-w /etc/apparmor.d/ -p wa -k apparmor_d_changes
-w /etc/audit/ -p wa -k audit_config_changes
-w /etc/libaudit.conf -p wa -k libaudit_conf_changes
-w /sbin/auditctl -p x -k auditctl_execution
-w /sbin/auditd -p x -k auditd_execution
-w /var/log/audit/ -p wa -k audit_log_changes
-w /etc/locale.conf -p wa -k locale_changes
-w /etc/localtime -p wa -k localtime_changes
# ===== DANGEROUS TOOLS =====
-w /usr/bin/docker -p x -k docker_execution
-w /var/lib/docker/ -p wa -k docker_data_changes
-w /etc/docker/ -p wa -k docker_config_changes
-w /usr/bin/nc -p x -k nc_execution
-w /usr/bin/ncat -p x -k ncat_execution
-w /usr/bin/socat -p x -k socat_execution
-w /usr/bin/netcat -p x -k netcat_execution
-w /usr/bin/tcpdump -p x -k tcpdump_execution
-w /usr/sbin/tcpdump -p x -k tcpdump_sbin_execution
-w /usr/bin/ssh -p x -k ssh_execution
-w /usr/bin/scp -p x -k scp_execution
-w /usr/bin/sudo -p x -k sudo_execution
-w /usr/bin/su -p x -k su_execution
-w /usr/bin/python3 -p x -k python3_execution
-w /usr/bin/perl -p x -k perl_execution
-e 1
Если у вас ОС на базе RPM (Red Hat / CentOS), то в /etc/audit/rules.d/extended.rules помимо правил выше, укажите следующее содержимое:
-i
--reset-lost
-a always,exclude -F msgtype=CRYPTO_KEY_USER
-a always,exclude -F msgtype=CRYPTO_SESSION
-a always,exclude -F msgtype=NETFILTER_CFG
-a always,exclude -F msgtype=SYSTEM_RUNLEVEL
-a always,exclude -F msgtype=BPF
-e 1
Настройка плагина syslog для записи логов auditd
В файл /etc/audit/plugins.d/syslog.conf внесите следующие изменения:
Для Debian 10, CentOS, Fedora и Ubuntu:
# This file controls the configuration of the syslog plugin.
# It simply takes events and writes them to syslog. The
# arguments provided can be the default priority that you
# want the events written with. And optionally, you can give
# a second argument indicating the facility that you want events
# logged to. Valid options are LOG_LOCAL0 through 7, LOG_AUTH,
# LOG_AUTHPRIV, LOG_DAEMON, LOG_SYSLOG, and LOG_USER.
active = yes
direction = out
path = builtin_syslog
type = builtin
args = LOG_LOCAL6
format = string
Для Debian 11 и выше:
# This file controls the configuration of the syslog plugin.
# It simply takes events and writes them to syslog. The
# arguments provided can be the default priority that you
# want the events written with. And optionally, you can give
# a second argument indicating the facility that you want events
# logged to. Valid options are LOG_LOCAL0 through 7, LOG_AUTH,
# LOG_AUTHPRIV, LOG_DAEMON, LOG_SYSLOG, and LOG_USER.
active = yes
direction = out
path = /sbin/audisp-syslog
type = always
args = LOG_LOCAL6
format = string
Настройка журналирования bash-команд
Для реализации механизма журналирования может использоваться встроенная переменная bash PROMPT_COMMAND, которая выполняется перед выводом приглашения командной строки. Переменная записывает предыдущую выполненную команду в формате syslog key-value.
Подготовка к настройке журналирования bash-команд
Перед выполнением настройки журналирования bash-команд убедитесь, что соблюдены следующие условия:
- получен доступ root или права
sudoдля записи в/etc/profile.d/; - установлен
logger; - установлен Bash (не zsh, fish и др.) версии 4.3 или выше.
Шаги по настройке журналирования bash-команд
- Создайте файл
bash-syslog.shв каталоге/etc/profile.d. -
Укажите в файле следующие настройки:
#!/bin/bash # Логирование всей введённой пользователем строки через syslog (key=value формат) # Работает только в интерактивных сессиях bash __audit_logger() { local RETVAL=$? local CMD="$(history 1 | sed 's/^ *[0-9]* *//')" [[ -z "$CMD" && $RETVAL -eq 0 ]] && return local ESCAPED_CMD=${CMD//\"/\\\"} # Получаем системные данные local TS=$(date -u +"%Y-%m-%dT%H:%M:%SZ") local USER=$(whoami) local LOGIN_USER=$LOGNAME local USER_ID=$(id -u) local GID=$(id -g) local GROUP=$(id -gn) local PID=$$ local HOST=$(hostname) local IP=${SSH_CONNECTION%% *} IP=${IP:-"local"} local TTY=$(tty 2>/dev/null) local CWD=$(pwd) local SHELL_NAME=$0 local BASH_VER=$BASH_VERSION # Формируем и отправляем лог logger -t logger -p user.debug \ "logger: type=logger_audit_command timestamp=\"$TS\" UID=\"$USER\" AUID=\"$LOGIN_USER\" uid=$USER_ID gid=$GID GID=\"$GROUP\" cwd=\"$CWD\" tty=\"$TTY\" ip=\"$IP\" hostname=\"$HOST\" shell=\"$SHELL_NAME\" bash_version=\"$BASH_VER\" pid=$PID command=\"$ESCAPED_CMD\" exit_code=$RETVAL" } # Активируем только в интерактивных сессиях if [[ $- == *i* ]]; then export PROMPT_COMMAND=__audit_logger fiГде:
RETRN_VAL=$?— сохраняем код возврата предыдущей команды (на всякий случай, можно расширить);logger— отправляем сообщение в системный журнал;-p user.debug— используем syslog-фасилити user/debug (по умолчанию попадёт в /var/log/syslog);$(whoami)— кто выполнил команду.
-
Выдайте разрешение на исполнение этого файла:
# sudo chmod +x /etc/profile.d/bash-syslog.sh -
Запустите скрипт:
# sudo bash /etc/profile.d/bash-syslog.sh -
Перезапустите экземпляр Bash:
# exec bash -l
Проверка настройки журналирования bash-команд
Выполните команду:
# echo "Test command"
# tail -n 5 /var/log/syslog | grep "user.debug"
Ожидаемый результат:
<15>Aug 15 14:28:51 deb12-auditd logger: logger: type=logger_audit_command timestamp="2025-08-15T11:28:51Z" UID="root" AUID=\"root\" uid=0 gid=0 GID="root" cwd="/root" tty="/dev/pts/0" ip="172.30.253.1" hostname="deb12-auditd" shell="-bash" bash_version="5.2.15(1)-release" pid=6324 command="ls" exit_code=0
Откат изменений
-
Создайте файл скрипта в любой директории:
# nano /tmp/revert-bash-syslog.sh -
Укажите в файле
revert-bash-syslog.shследующие параметры:#!/bin/bash set -e # Завершить выполнение при любой ошибке # Путь к скрипту, который мы создавали для журналирования HOOK_FILE="/etc/profile.d/bash-syslog.sh" echo "[!] Откат журналирования bash-команд через syslog..." # Проверяем наличие файла if [ -f "$HOOK_FILE" ]; then echo "[+] Найден скрипт журналирования: $HOOK_FILE" echo "[+] Удаляю..." rm -f "$HOOK_FILE" echo "Скрипт удалён." else echo "[=] Файл $HOOK_FILE не найден — возможно, уже был удалён." fi # На всякий случай очищаем переменную окружения в текущей сессии unset PROMPT_COMMAND echo "PROMPT_COMMAND очищен из текущего окружения." echo " exec bash -l - выполнение" echo " echo \$PROMPT_COMMAND # ← должно быть пусто" echo " Для проверки, что команды больше не журналируются после перезагрузки:" echo " tail -f /var/log/syslog | grep logger" -
Установите права на выполнение:
# sudo chmod +x /tmp/revert-bash-syslog.sh -
Запустите скрипт:
# sudo bash /tmp/revert-bash-syslog.sh -
Перезапустите текущую оболочку:
# exec bash -l
Настройка журналирования UFW и firewalld
Для получения событий с межсетевого экрана uncomplicated firewall (UFW) или firewalld его необходимо подключить как отдельный источник.
Характеристики источника в Платформе Радар:
| Характеристика | Значение |
|---|---|
| Название | Uncomplicated-Firewall-UFW |
| Номер (Порт) | 2673 |
| Вендор | Linux |
| Тип | Firewall |
| Профиль сбора | tcp_input |
Настройка включает в себя следующие процессы:
Настройка firewalld
По умолчанию firewalld используется в следующих ОС:
- RHEL 7 и более новые версии;
- CentOS 7 и более новые версии;
- Fedora 18 и более новые версии;
- SUSE 15 и более новые версии;
- openSUSE 15 и более новые версии.
Настройка для rsyslog
Запустите сервис:
# service firewalld start
Выберите тип передачи данных:
# firewall-cmd --set-log-denied=all | unicast | broadcast | multicast
Где:
unicast– процесс отправки пакета от одного хоста к другому хосту;multicast– процесс отправки пакета от одного хоста к некоторой ограниченной группе хостов;broadcast– процесс отправки пакета от одного хоста ко всем хостам в сети.
Перезапустите службу:
# service firewalld restart
Чтобы журналирование пакетов было в отдельном файле, создайте файл /etc/rsyslog.d/10-fw_log.conf и укажите следующее содержимое:
:msg,contains,"_DROP" /var/log/firewalld.log
:msg,contains,"_REJECT" /var/log/firewalld.log
& stop
Для отправки событий firewalld на агент сбора лог-коллектора, создайте файл /etc/rsyslog.d/11-fw_lc.conf и укажите следующее содержимое:
module(load="imfile" PollingInterval="5")
input(type="imfile"
reopenOnTruncate="on"
File="/var/log/firewalld.log"
Tag="firewalld"
ruleset="sendlc")
template(
name = "logtemplate"
type = "string"
string = "<%PRI%> %msg%\n"
)
ruleset(name="sendlc")
{
action(type = "omfwd"
Template = "logtemplate"
Target="<IP-адрес агент сбора лог-коллектора>"
Port="<порт>"
Protocol="tcp"
ResendLastMSGOnReconnect="on"
action.resumeRetryCount="100"
queue.type="linkedList"
queue.size="10000")
stop
}
Где:
<IP-адрес агента сбора лог-коллектора>- IP-адрес агента сбора лог-коллектора;<порт>- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора.
Перезапустите службу rsyslog:
service rsyslog start
Откройте соответствующий порт:
# firewall-cmd --permanent --add-port=<номер порта>/tcp
Настройка для syslog-ng
Настроите перенаправление событий службы в файл /var/log/firewalld.
В директории /etc/syslog-ng/conf.d добавьте файл firewalld_messages.conf со следующими параметрами:
destination d_firewalld_net {
tcp (
"<IP-адрес агента сбора лог-коллектора>"
port (<номер порта>)
persist-name(d_firewalld_for_siem)
);
};
destination d_firewalld_file {
file(
"/var/log/firewalld.log"
);
};
filter f_firewalld {
message("^.*_REJECT:.*$")
};
log {
source(s_sys);
filter(f_firewalld);
destination(d_firewalld_file);
};
log {
source(s_sys);
filter(f_firewalld);
destination(d_firewalld_net);
};
Где, укажите следующие параметры:
- В параметре
destination d_firewalld_netукажите:<IP-адрес агента сбора лог-коллектора>- IP-адрес агента сбора лог-коллектора;<номер порта>- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора.
- В параметре
destination d_firewalld_fileукажите следующий путь к файлу:/var/log/firewalld.log.
Для включения отправки журналов службой firewalld выполните команду:
# firewall-cmd --set-log-denied=all
Для завершения настройки необходимо перезапустить службу firewalld и syslog-ng.
Настройка UFW
Настройка rsyslog
Проверьте статус службы UFW:
# ufw status
Если не служба не запущена, то включите ее
# ufw enable
Включите журналирование событий:
# ufw logging low | medium | high | full
Где:
low— регистрирует все заблокированные пакеты, не соответствующие заданной политике (с ограничением скорости), а также пакеты, соответствующие зарегистрированным правилам;medium— все то, что при значении low, а также все разрешенные пакеты, не соответствующие заданной политике, все недопустимые пакеты, и все новые соединения. Все записи ведутся с ограничением скорости;high— работает также как и medium. Плюс все пакеты с ограничением скорости;full— также как иhigh, но без ограничения скорости.
Примечание: рекомендуется использовать уровень логирования
medium.
Перезапустите службу:
# ufw reload
В конфигурационный файл /etc/rsyslog.conf добавьте строку, указав IP-адрес агента сбора лог-коллектора:
if $msg contains '[UFW ' then {
action(type="omfwd" target="IP-адрес агента сбора лог-коллектора" port="номер порта" protocol="протокол")
stop
}
Где:
<IP-адрес агента сбора лог-коллектора- IP-адрес агента сбора лог-коллектора;<номер порта>- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора;<протокол>- протокол (tcp или udp), по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора.
Перезапустите службу журналирования:
# systemctl restart rsyslog
Откройте соответствующий порт:
# ufw allow <номер порта>
Настройка syslog-ng
Перед настройкой службы syslog-ng задайте фильтр f_ufw в файле:
/etc/syslog-ng/conf.d/20-ufw.conf
Примечание: в ОС Astra Linux фильтр создан по умолчанию.
Содержимое файла:
filter f_ufw {
message("^.*UFW.*$")
};
destination d_ufw {
file("/var/log/ufw.log");
};
log {
source(s_src);
filter(f_ufw);
destination(d_ufw);
};
Для настройки службы syslog-ng добавьте в конфигурационный файл службы /usr/local/etc/syslog-ng.conf следующие параметры:
В блоке Destinations укажите пути для отправки сообщений в агент сбора лог-коллектора:
# Send the messages to an other host
#
destination d_net { tcp("<ip агента сбора лог-коллектора>" port(<номер порта>) log_fifo_size(1000)); };
destination d_ufw_net { tcp("<ip агента сбора лог-коллектора, на котором подключен ufw как источник>" port(<номер порта>) log_fifo_size(1000)); };
Где, укажите следующие параметры:
- В параметре
destination d_netукажите:<IP-адрес агента сбора лог-коллектора>- IP-адрес агента сбора лог-коллектора;<номер порта>- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора.
- В параметре
destination d_ufw_netукажите:<IP-адрес агента сбора лог-коллектора>- IP-адрес агента сбора лог-коллектора, на котором подключен UFW как источник;<номер порта>- порт, по которому агент сбора лог-коллектора будет принимать события. Должен совпадать со значением, указанным в настройках соответствующего профиля сбора.
В блоке Log path настройте фильтр для журналов от UFW:
log { source(s_src);
if {
filter(f_ufw);
destination(d_ufw_net);
} else {
destination(d_net);
};
};
Проверьте настройки UFW, выполнив следующие команды:
# sudo ufw enable
# sudo ufw logging on
# sudo ufw logging low | medium | high | full
Перезапустите службу syslog-ng:
# sudo service syslod-ng restart
Перезапуск служб
После настройки конфигурации любой службы, её необходимо перезапустить.
Если в ОС используется система инициализации Upstart, то выполните команду:
# service <Название службы> restart
Если System V, то выполните команду:
# /etc/init.d/<Название службы> restart
Настройка брандмауэра
Если используется брандмауэр, то необходимо открыть порт 2671/TCP.
Для этого выполните следующую команду:
- если используется служба
firewalld:
# firewall-cmd --permanent --add-port=2671/tcp
- если используется служба
iptables:
# iptables -A OUTPUT -p tcp --dport 2661 -j ACCEPT
- если в вашей ОС используется
SElinux, то чтобы проверить активен ли он выполните команду
# getenforce
Если был получен ответ Permissive, то служба остановлена; если Enforcing, то служба запущена и ее необходимо настроить следующим образом:
# semanage port -a -t syslogd_port_t -p tcp 2661
# ausearch -c 'audisp-remote' --raw | audit2allow -M my-audispremote
# semodule -X 300 -i my-audispremote.pp
При необходимости можно отключить службу командой:
# setenforce 0
Включение источника на платформе
Перейдите в веб-интерфейс платформы и включите источники:
- Unix/Linux;
- Uncomplicated-Firewall-UFW, если он подключен как отдельный источник.
Приложение A. Пример файла конфигурации службы syslog-ng
Пример файла /etc/syslog-ng/syslog-ng.conf:
@version: 3.35
@include "scl.conf"
# Syslog-ng configuration file, compatible with default Debian syslogd
# installation.
# First, set some global options.
#options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
# dns_cache(no); owner("root"); group("adm"); perm(0640);
# stats_freq(0); bad_hostname("^gconfd$"); mark-freq(0);
#};
options {
flush_lines (0);
time_reopen (10);
log_fifo_size (1000);
chain_hostnames (off);
use_dns (no);
dns-cache(no);
use_fqdn (no);
create_dirs (no);
keep_hostname (yes);
stats-freq(0);
mark-freq(0);
};
########################
# Sources
########################
# This is the default behavior of sysklogd package
# Logs may come from unix stream, but not from another machine.
#
source s_sys {
system();
internal();
};
# If you wish to get logs from remote machine you should uncomment
# this and comment the above source line.
#
#source s_net { tcp(ip(127.0.0.1) port(1000)); };
########################
# Destinations
########################
# First some standard logfile
#
destination d_auth { file("/var/log/auth.log"); };
#destination d_cron { file("/var/log/cron.log"); };
destination d_daemon { file("/var/log/daemon.log"); };
destination d_kern { file("/var/log/kern.log"); };
destination d_lpr { file("/var/log/lpr.log"); };
destination d_mail { file("/var/log/mail.log"); };
destination d_syslog { file("/var/log/syslog"); };
destination d_user { file("/var/log/user.log"); };
destination d_uucp { file("/var/log/uucp.log"); };
# This files are the log come from the mail subsystem.
#
destination d_mailinfo { file("/var/log/mail.info"); };
destination d_mailwarn { file("/var/log/mail.warn"); };
destination d_mailerr { file("/var/log/mail.err"); };
# Logging for INN news system
#
#destination d_newscrit { file("/var/log/news/news.crit"); };
#destination d_newserr { file("/var/log/news/news.err"); };
#destination d_newsnotice { file("/var/log/news/news.notice"); };
# Some 'catch-all' logfiles.
#
destination d_debug { file("/var/log/debug"); };
destination d_error { file("/var/log/error"); };
destination d_messages { file("/var/log/messages"); };
# The root's console.
#
destination d_mlal { usertty("*"); };
# Virtual console.
#
destination d_cons { file("/dev/console"); };
# The named pipe /dev/xconsole is for the nsole' utility. To use it,
# you must invoke nsole' with the -file' option:
#
# $ xconsole -file /dev/xconsole [...]
#
#destination d_xconsole { pipe("/dev/xconsole"); };
# Send the messages to an other host
#
destination d_net { tcp("<IP-адрес агента сбора лог-коллектора>" port log_fifo_size(1000)); };
# Debian only
#destination d_ppp { file("/var/log/ppp.log"); };
########################
# Filters
########################
# Here's come the filter options. With this rules, we can set which
# message go where.
filter f_dbg { level(debug); };
filter f_info { level(info); };
filter f_notice { level(notice); };
filter f_warn { level(warn); };
filter f_err { level(err); };
filter f_crit { level(crit .. emerg); };
filter f_debug { level(debug) and not facility(auth, authpriv, news, mail); };
filter f_error { level(err .. emerg) ; };
filter f_messages { level(info,notice,warn) and
not facility(auth,authpriv,cron,daemon,mail,news); };
filter f_audit { program("audit"); };
#filter f_auth { facility(auth, authpriv) and not filter(f_debug) and not filter(f_audit); };
filter f_auth { facility(auth, authpriv); };
#filter f_cron { facility(cron) and not filter(f_debug); };
filter f_daemon { facility(daemon) and not filter(f_debug); };
filter f_kern { facility(kern) and not filter(f_debug); };
filter f_lpr { facility(lpr) and not filter(f_debug); };
filter f_local { facility(local0, local1, local3, local4, local5,
local6, local7) and not filter(f_debug); };
filter f_mail { facility(mail) and not filter(f_debug); };
#filter f_news { facility(news) and not filter(f_debug); };
filter f_syslog3 { not facility(auth, authpriv, mail) and not filter(f_debug); };
filter f_user { facility(user) and not filter(f_debug); };
filter f_uucp { facility(uucp) and not filter(f_debug); };
filter f_cnews { level(notice, err, crit) and facility(news); };
filter f_cother { level(debug, info, notice, warn) or facility(daemon, mail); };
#filter f_ppp { facility(local2) and not filter(f_debug); };
filter f_console { level(warn .. emerg); };
########################
# Log paths
########################
log { source(s_sys); filter(f_auth); destination(d_auth); };
#log { source(s_sys); filter(f_cron); destination(d_cron); };
log { source(s_sys); filter(f_daemon); destination(d_daemon); };
log { source(s_sys); filter(f_kern); destination(d_kern); };
log { source(s_sys); filter(f_lpr); destination(d_lpr); };
log { source(s_sys); filter(f_syslog3); destination(d_syslog); };
log { source(s_sys); filter(f_user); destination(d_user); };
log { source(s_sys); filter(f_uucp); destination(d_uucp); };
log { source(s_sys); filter(f_mail); destination(d_mail); };
#log { source(s_sys); filter(f_mail); filter(f_info); destination(d_mailinfo); };
#log { source(s_sys); filter(f_mail); filter(f_warn); destination(d_mailwarn); };
#log { source(s_sys); filter(f_mail); filter(f_err); destination(d_mailerr); };
#log { source(s_sys); filter(f_news); filter(f_crit); destination(d_newscrit); };
#log { source(s_sys); filter(f_news); filter(f_err); destination(d_newserr); };
#log { source(s_sys); filter(f_news); filter(f_notice); destination(d_newsnotice); };
#log { source(s_sys); filter(f_cnews); destination(d_console_all); };
#log { source(s_sys); filter(f_cother); destination(d_console_all); };
#log { source(s_sys); filter(f_ppp); destination(d_ppp); };
log { source(s_sys); filter(f_debug); destination(d_debug); };
log { source(s_sys); filter(f_error); destination(d_error); };
log { source(s_sys); filter(f_messages); destination(d_messages); };
log { source(s_sys); filter(f_console); destination(d_cons); };
log { source(s_sys); filter(f_crit); destination(d_mlal); };
# All messages send to a remote site
#
log { source(s_sys); filter(f_auth); destination(d_net); };
###
# Include all config files in /etc/syslog-ng/conf.d/
###
@include "/etc/syslog-ng/conf.d/*.conf"
Приложение Б. Описание параметров файла auditd.conf
Перечень рекомендуемых параметров конфигурации приведен в таблице:
| Ключевое слово | Описание | Debian / Ubuntu | Red Hat / CentOS |
|---|---|---|---|
local_events |
Параметр определяет, необходимо ли службе собирать локальные события | yes |
yes |
write_logs |
Параметр определяет, необходимо ли службе записывать журналы | yes |
yes |
log_file |
Полный путь к файлу журнала, в котором будут храниться записи аудита | /var/log/audit/audit.log |
/var/log/audit/audit.log |
log_group |
Группа, которая применяется к разрешениям файла журнала | adm |
adm |
log_format |
Формат журнала. Параметр описывает, как информация должна храниться. Доступные значения - RAW - запись аудита будут храниться точно так, как его отправляет ядро;- NOLOG - запись аудита храниться не будет;- ENRICHED - запись аудита будет храниться с обогащением: добавится информация о uid, gid, системных вызовах, архитектуре и адресе сокета перед записью события на диск. |
ENRICHED |
RAW |
flush |
Команда сброса данных на диск. Допустимые значения: - none- incremental- data- sync |
INCREMENTAL_ASYNC |
INCREMENTAL_ASYNC |
freq |
Сколько записей следует записать перед выполнением команды flush. Доступно только, если flush имеет значение incremental |
50 |
50 |
max_log_file |
Максимальный размер файла журнала, в мегабайтах | 8 |
8 |
num_logs |
Количество сохраняемых файлов журнала | 5 |
5 |
priority_boost |
Необходимое повышение приоритета | 4 |
6 |
disp_qos |
Поведение службы при потерях между службой и диспетчером. Допустимые значения - lossy - блокировать связь;- lossless - не блокировать связь |
lossy |
параметр не указывается |
dispatcher |
Это программа, которая запускается службой при запуске. Она будет передавать копии всех событий аудита на стандартный ввод этого приложения. Убедитесь, что вы доверяете приложению, которое вы добавляете в эту строку, поскольку оно запускается с правами root | /sbin/audispd |
параметр не указывается |
name_format |
Формат наименования узлов (node) компьютеров, которые добавляются в поток событий аудита. Допустимые значения: - none - в событие аудита не указывается имя компьютера;- hostname - указывается имя, возвращаемое запросом gethostname- fqd - полное доменное имя компьютера- numeric - тоже что и fqd, но при этом определяется IP-адрес компьютера- user - наименование учетной записи пользователя компьютера |
NUMERIC |
HOSTNAME |
max_log_file_action |
Поведение службы при достижении максимального размера файла журнала. Допустимые значения: - ignore - ничего не делать;- syslog - выдать предупреждение в системный журнал;- suspend - прекратить запись;- rotate - последовательно менять журналы для записи;- keep_logs - аналогичен параметру Rotate, за исключением того, что он не использует параметр num_logs. Это предотвращает перезапись журналов аудита |
ROTATE |
ROTATE |
space_left |
Количество оставшихся на диске мегабайт, при достижении которых служба будет требовать выполнение параметра space_left_action, поскольку в системе начинает заканчиваться дисковое пространство |
75 |
75 |
space_left_action |
Поведение службы когда в системе начало заканчиваться дисковое пространство. Допустимые значения: - ignore - ничего не делать;- syslog - выдать предупреждение в системный журнал;- email - отправить предупреждение на адрес электронной почты, указанный в параметре action_mail_acct и в системный журнал;- exec - выполнить скрипт;- suspend - прекратить запись журналов- single - перевести компьютер в однопользовательский режим- halt - выключить компьютер. |
SYSLOG |
SYSLOG |
verify_email |
Поведение службы для проверки адреса электронной почты | yes |
yes |
action_mail_acct |
Адрес электронной почты или алиас. Значение по умолчанию - root |
root |
root |
admin_space_left |
Количество оставшихся на диске мегабайт, при достижении которых служба будет требовать выполнение параметра admin_space_left_action, поскольку в системе начинает критически не хватать дискового пространства |
50 |
50 |
admin_space_left_action |
Поведение службы когда в системе начинает критически не хватать дискового пространства. Допустимые значения те же, что и для space_left_action |
SUSPEND |
SUSPEND |
disk_full_action |
Какое действие следует предпринять, если служба обнаружила что диск, на который записываются файлы журналов, заполнен. Допустимые значения те же, что и для space_left_action |
SUSPEND |
SUSPEND |
disk_error_action |
Какие действия следует предпринять при возникновении ошибки при записи событий аудита на диск или изменении последовательности журналов. | SUSPEND |
SUSPEND |
use_libwrap |
Параметр определяет, следует ли использовать tcp_wrappers для обнаружения попыток подключения с разрешенных компьютеров |
yes |
yes |
tcp_listen_queue |
Параметр определяет количество допустимых ожидающих соединений в очереди | 5 |
5 |
tcp_max_per_addr |
Параметр определяет количество разрешенных одновременных подключений с одного IP-адреса | 1 |
1 |
tcp_client_max_idle |
Параметр определяет количество секунд, в течение которых допустимо бездействие клиента (не поступают данные), прежде чем служба подаст жалобу для закрытия неактивного подключения. Значение 0 отключает проверку. |
0 |
0 |
enable_krb5 |
Параметр определяет, использовать ли Kerberos 5 для аутентификации и шифрования |
no |
параметр не указывается |
krb5_principal |
Это принципал для этого сервера. По умолчанию используется auditd. Учитывая это значение по умолчанию, сервер будет искать ключ с именем вида Auditd/hostname@EXAMPLE.COM, хранящийся в /etc/audit/audit.key, для аутентификации, где имя хоста — это имя хоста сервера, возвращаемое DNS |
auditd |
auditd |
transport |
Протокол передачи данных. Если установлено значение TCP, будут использоваться только TCP-соединения в виде открытого текста. Если установлено значение KRB5, для аутентификации и шифрования будет использоваться Kerberos 5 |
параметр не указывается | tcp |
distribute_network |
Параметр определяет, используется ли распределенная сеть | no |
no |
q_depth |
Параметр определяет, насколько большой должна быть внутренняя очередь событий аудита | параметр не указывается | 1200 |
overflow_action |
Параметр определяет, какое действия нужно предпринять службе при переполнении внутренней очереди. Допустимые значения те же, что и для space_left_action |
параметр не указывается | SYSLOG |
max_restarts |
Параметр определяет, сколько раз служба может попытаться перезапустить вышедший из строя плагин | параметр не указывается | 10 |
plugin_dir |
Параметр определяет путь, по которому установлены плагины. | параметр не указывается | /etc/audit/plugins.d |
end_of_event_timeout |
Параметр определяет количество секунд, используемое библиотечными процедурами пользовательского пространства auparse() и утилитами aureport(8), ausearch(8) для того, чтобы считать событие завершенным при анализе потока журнала событий. |
параметр не указывается | 2 |