RHEL AUDIT BASELINE

Конфигурация аудита в RedHat/CentOS server

В этой статье описывается детальная информация о конфигурировании аудита в “RedHat Linux Enterprise” (далее ПО) при помощи Linux Audit Framework (LAF) для последующего анализа данных событий аудита решением QRadar SIEM.

  1. Настройки демона auditd

Для получения событий аудита системой QRadar SIEM, необходимо сконфигурировать настройки демона аудита auditd на целевой системе:

  • Модифицируйте содержимое файла управления подсистемой аудита /etc/audit/auditd.conf таким образом, чтобы он содержал следующие строки (оставьте другие значения установленными по умолчанию):
Файл /etc/audit/auditd.conf
# This file controls the configuration of the audit daemon
#
log_file = /var/log/audit/audit.log
log_format = RAW
log_group = root
priority_boost = 4
flush = INCREMENTAL
freq = 20
num_logs = 5
disp_qos = lossy
dispatcher = /sbin/audispd
name_format = NONE
##name = mydomain
max_log_file = 6
max_log_file_action = ROTATE
space_left = 75
space_left_action = SYSLOG
action_mail_acct = root
admin_space_left = 50
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND
##tcp_listen_port =
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
  • Модифицируйте содержимое файла управления объектами аудита /etc/audit/audit.rules таким образом, чтобы он содержал следующие строки:
Файл /etc/audit/audit.rules
# First rule — delete all
-D

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

# Feel free to add below this line. See auditctl man page
-e 1

# Audit configuration changes
-w /etc/audit/auditd.conf -p w -k RHEL_AUDIT_WRITE
-w /etc/audit/audit.rules -p w -k RHEL_AUDIT_WRITE

# Identity management configuration changes
-w /etc/group -p w -k RHEL_IDM_WRITE
-w /etc/passwd -p w -k RHEL_IDM_WRITE
-w /etc/gshadow -p w -k RHEL_IDM_WRITE
-w /etc/shadow -p w -k RHEL_IDM_WRITE
-w /etc/sudoers -p w -k RHEL_IDM_WRITE
-w /etc/security/group.conf -p w -k RHEL_IDM_WRITE
-w /etc/security/opasswd -p w -k RHEL_IDM_WRITE

# Identity management tools use
-w /usr/sbin/groupadd -p x -k RHEL_IDM_EXEC
-w /usr/sbin/groupmod -p x -k RHEL_IDM_EXEC
-w /usr/sbin/groupdel -p x -k RHEL_IDM_EXEC
-w /usr/sbin/useradd -p x -k RHEL_IDM_EXEC
-w /usr/sbin/usermod -p x -k RHEL_IDM_EXEC
-w /usr/sbin/userdel -p x -k RHEL_IDM_EXEC

# PAM configuration changes
-w /etc/pam.d/ -p w -k RHEL_PAM_WRITE

# Login logs changes
-w /var/log/faillog -p w -k RHEL_LOGS_WRITE
-w /var/log/lastlog -p w -k RHEL_LOGS_WRITE

# System configuration changes
-w /etc/init.d/ -p w -k RHEL_SYSTEM_WRITE
-w /etc/inittab -p w -k RHEL_SYSTEM_WRITE
-w /etc/ssh/ -p w -k RHEL_SYSTEM_WRITE
-w /etc/hosts -p w -k RHEL_SYSTEM_WRITE
-w /etc/sysconfig/ -p w -k RHEL_SYSTEM_WRITE
-w /etc/security/ -p w -k RHEL_SYSTEM_WRITE
-w /etc/login.defs -p w -k RHEL_SYSTEM_WRITE

# System calls (exclude users without login UID)
-a exit,always -F arch=b64 -S adjtimex -F auid!=4294967295 -k RHEL_SYSTEM_CALL
-a exit,always -F arch=b64 -S settimeofday -F auid!=4294967295 -k RHEL_SYSTEM_CALL

# Cron configuration changes
-w /var/spool/cron/root -p w -k RHEL_CRON_WRITE
-w /etc/at.allow -p w -k RHEL_CRON_WRITE
-w /etc/at.deny -p w -k RHEL_CRON_WRITE
-w /etc/cron.deny -p w -k RHEL_CRON_WRITE
-w /etc/cron.d/ -p w -k RHEL_CRON_WRITE
-w /etc/cron.hourly -p w -k RHEL_CRON_WRITE
-w /etc/cron.dayly -p w -k RHEL_CRON_WRITE
-w /etc/cron.weekly -p w -k RHEL_CRON_WRITE
-w /etc/cron.monthly -p w -k RHEL_CRON_WRITE
-w /etc/crontab -p w -k RHEL_CRON_WRITE
-w /etc/anacrontab -p w -k RHEL_CRON_WRITE

# Critical directories changes
-w /var/www/html -p w -k RHEL_CRITICAL_DIR_CHANGE

При необходимости добавьте дополнительные объекты для мониторинга в соответствующие категории, используя шаблоны категорий.

2. Настройки демона RSyslog

Необходимо сконфигуровать демон rsyslog таким образом, чтобы в  сообщениях использовался параметр hostname. Данный параметр служит для определения идентификатора источника событий (LSI). При использовании других syslog демонов, обратитесь к документации поставщика услуг для выполнения необходимых операций. Файл конфигурации для внесения изменений (каждая команда одной строкой): /etc/rsyslog. conf

Файл /etc/rsyslog. conf
#### MODULES ####

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
#$ModLoad immark  # provides —MARK— message capability

# Provides access to files
$ModLoad imfile

# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514

#### GLOBAL DIRECTIVES ####

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on

# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf

#### RULES ####

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don’t log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog

# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 *

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log

# ### begin forwarding rule ###
# The statement between the begin … end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$WorkDirectory /var/lib/rsyslog # where to place spool files
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList   # run asynchronously
#$ActionResumeRetryCount -1    # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
# ### end of the forwarding rule ###

# Audit logging via syslog setup
$WorkDirectory /var/lib/rsyslog
$InputFileName /var/log/audit/audit.log
$InputFileStateFile audit.stat
$InputFileTag audit:
$InputFileSeverity debug
$InputFileFacility local0
$InputFilePollingInterval 10
$InputRunFileMonitor

# Template for QRadar syslog message
$template RFC3164fmt,»<%PRI%>%TIMESTAMP% %HOSTNAME%-os %syslogtag%%msg%»

# Send local0.debug to QRadar
local0.debug            @@<QRADAR_HOSTNAME>:514;RFC3164fmt

<QRADAR_HOSTNAME> — имя хоста QRadar или его IP адрес.

Перезагрузите rsyslog:
service rsyslog restart

3. Настройка модуля ядра SELinux

Для успешного доступа к файлу аудита, модуль политики используемого демона RSyslog необходимо включить в системную политику операционной системы. Ниже приведен пример конфигурации модуля политики демона rsyslog для доступа к файлу аудита. При использовании других Syslog демонов, обратитесь к документации SELinux для выполнения необходимых операций.
1. Проверьте состояние SELinux, при помощи выполнения следующей команды в интерфейсе командной строки целевой системы:

sudo sestatus
Пример вывода при включенном состоянии:
# SELinux status: enabled

2. Скопируйте следующие файлы (rhel_audit_baseline):

rsyslogd.pp – Модуль политики демона rsyslog
rsyslogd.te – Тип принуждения модуля политики демона rsyslog

в любой доступный каталог по усмотрению на целевую систему, например, в домашний каталог пользователя.

3. Перейдите в каталог, куда были скопированы файлы поставки и установите модуль политики демона rsyslog при помощи выполнения следующей команды в интерфейсе командной строки:
sudo semodule -i rsyslogd.pp

4. Убедитесь в успешной установке модуля политики демона rsyslog при помощи выполнения следующей команды в интерфейсе командной строки:
sudo semodule –l | grep rsyslog

Пример вывода при успешной установке:
# rsyslogd 1.0

5. Перезапустите SELinux при помощи выполнения следующей команды в интерфейсе командной строки:
setenforce 0 && sleep 10 && setenforce 1

 

Обнаружение вторжений HIDS OSSEC

Хостовая система обнаружения вторжений (англ. Host-based intrusion detection system, HIDS) — это система обнаружения вторжений, которая ведет наблюдение и анализ событий, происходящих внутри системы, а также отслеживает целостность файлов.

За все время работы в сфере информационной безопасности неоднократно возникали задачи по:

— проверке контроля целостности файлов,

— получению и анализу событий безопасности,

— централизованному оповещению об этих событиях,

— генерации отчетов.

Для реализации этих задач было изучено большое количество open source решений и результатом этого анализа стал HIDS OSSEC.

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

— система всегда должна получать на регулярной основе обновления,

— система всегда должна передавать свои события в SIEM (Security Information and Event Management),

— решение должно быть кроссплатформенное.

— по всем событиям безопасности от системы необходимо проводить исследования (расследования).

Перейдём к практике по установке и настройке клиент серверной архитектуры HIDS OSSEC.

 

Подготовительный этап:

Скачиваем реполист с официального сайта

[root@pdc-tst-sec-1 ~]# wget -q -O – http://www.atomicorp.com/installers/atomic | sh

При возникновении проблем с закачкой, предлагаю быструю установку в ручном режиме.

[root@pdc-tst-sec-1 yum.repos.d]# cd /etc/yum.repos.d/

[root@pdc-tst-sec-1 ~]# yum —nogpgcheck localinstall atomic-release-1.0-19.el6.art.noarch.rpm

С обязательной проверкой импорта открытых ключей.

[root@pdc-tst-sec-1 yum.repos.d]# rpm -q gpg-pubkey —qf ‘%{name}-%{version}-%{release} —> %{summary}n’ | grep Atomicorp

check_pub_key

А также с проверкой состояния подключения к репозиторию (Check connect to atomic.repo)

[root@pdc-tst-sec-1 yum.repos.d]# yum clean all

[root@pdc-tst-sec-1 yum.repos.d]# yum repolist all

check_repo

Если сервер использует выход в интернет через прокси, необходимо добавить запись.

[root@pdc-tst-sec-1 ~]# nano /etc/yum.repos.d/atomic.repo

Вставляем запись:

proxy=http://ip-proxy:port-proxy

Для выхода из редактора нажимаем «Ctrl+x» затем «Y» и после «Enter»

edit_repo

Серверная часть:

Устанавливаем пакеты и зависимости в автоматическом режиме.

[root@pdc-tst-sec-1 ~]# yum install ossec-hids-server

Соглашаемся с установкой.

……Is this ok [y/N]: y

Установка завершена.

……Complete!

Приступаем к настройке OSSEC – server.

(configuration OSSEC – server)

[root@pdc-tst-sec-1 ~]# /var/ossec/bin/ossec-configure

OSSEC Configuration utility v0.1

1- What kind of installation do you want? (server, agent, local) [Default: server]: server

2- Setting up the configuration environment.

3- Configuring the OSSEC HIDS.

3.1- Do you want e-mail notification? (y/n) [Default: y]: n ## отказ от получения уведомлений на почтовый ящик, ввиду дальнейшей интеграции с SIEM

3.2- Do you want to run the integrity check daemon? (y/n) [y]: Press Enter

3.3- Do you want to run the rootkit detection engine? (y/n) [y]: Press Enter

3.4- Active response allows you to execute a specific command based on the events received. For example, you can block an IP address or disable access for a specific user. More information at:

http://www.ossec.net/en/manual.html#active-response

— Do you want to enable active response? (y/n) [y]: Press Enter

— Active response enabled.

— By default, we can enable the host-deny and the firewall-drop responses. The first one will add a host to the /etc/hosts.deny and the second one will block the host on iptables (if linux) or on ipfilter (if Solaris, FreeBSD or NetBSD).

— They can be used to stop SSHD brute force scans, portscans and some other forms of attacks. You can also add them to block on snort events, for example.

— Do you want to enable the firewall-drop response? (y/n) [y]: Press Enter

— Do you want to add more IPs to the white list? (y/n)? [n]: y

— IPs (space separated): 10.33.**.** ## добавляем ip адреса в «белый лист»

3.5- Do you want to enable remote syslog (port 514 udp)? (y/n) [y]: Press Enter

— /var/log/messages (syslog)

— /var/log/secure (syslog)

— /var/log/maillog (syslog)

Configuration complete.

Клиентская часть:

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

Устанавливаем и настраиваем необходимые пакеты.

[root@ pdc-vmw-hdpl-1 ~]#  yum install ossec-hids ossec-hids-client

[root@pdc-vmw-hdpl-1 ~]# /var/ossec/bin/ossec-configure

OSSEC Configuration utility v0.1

1- What kind of installation do you want? (server, agent, local) [Default: server]: agent

2- Setting up the configuration environment.

3- Configuring the OSSEC HIDS.

3.1- Do you want e-mail notification? (y/n) [Default: y]: n

3.2- Do you want to run the integrity check daemon? (y/n) [y]: Press Enter

3.3- Do you want to run the rootkit detection engine? (y/n) [y]: Press Enter

3.4- Active response allows you to execute a specific command based on the events received. For example, you can block an IP address or disable access for a specific user. More information at:

http://www.ossec.net/en/manual.html#active-response

— Do you want to enable active response? (y/n) [y]: Press Enter

— Active response enabled.

— By default, we can enable the host-deny and the firewall-drop responses. The first one will add a host to the /etc/hosts.deny and the second one will block the host on iptables (if linux) or on ipfilter (if Solaris, FreeBSD or NetBSD).

— They can be used to stop SSHD brute force scans, portscans and some other forms of attacks. You can also add them to block on snort events, for example.

— Do you want to enable the firewall-drop response? (y/n) [y]: Press Enter

— Do you want to add more IPs to the white list? (y/n)? [n]: Press Enter

3.5- Do you want to enable remote syslog (port 514 udp)? (y/n) [y]: Press Enter

— /var/log/messages (syslog)

— /var/log/secure (syslog)

— /var/log/maillog (syslog)

Configuration complete.

[root@pdc-vmw-hdpl-1 ~]# nano /var/ossec/etc/ossec-agent.conf

<client>

<server-ip>10.33.**.**</server-ip>

</client>

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

  1. Создаем запись на сервере OSSEC;

[root@pdc-sec-1 ~]# /var/ossec/bin/manage_agents

****************************************

* OSSEC HIDS v2.8 Agent manager.     *

* The following options are available: *

****************************************

(A)dd an agent (A).

(E)xtract key for an agent (E).

(L)ist already added agents (L).

(R)emove an agent (R).

(Q)uit.

Choose your action: A,E,L,R or Q: a

— Adding a new agent (use ‘q’ to return to the main menu).

Please provide the following:

* A name for the new agent: pdc-vmw-hdpl-1

* The IP Address of the new agent: 10.33.**.**

* An ID for the new agent[028]: Press Enter

Agent information:

ID:028

Name:pdc-vmw-hdpl-1

IP Address:10.33.**.**

  1. Генерируем на сервере OSSEC ключ;

****************************************

* OSSEC HIDS v2.8 Agent manager.     *

* The following options are available: *

****************************************

(A)dd an agent (A).

(E)xtract key for an agent (E).

(L)ist already added agents (L).

(R)emove an agent (R).

(Q)uit.

Choose your action: A,E,L,R or Q: e

Available agents:

ID: 028, Name: hostname, IP: 10.33.**.**

Provide the ID of the agent to extract the key (or ‘q’ to quit): 028

Agent key information for ‘028’ is:(ЭТО КЛЮЧ)

MDI4IHBkYy12bXctaGRwbC0xIDEwLjMzLjEwLjMxIGJiZjZhOWJlOTM1M2Y4NWViNjliMDdkZGM0OGVhNmNkOWM1MWNmMjBmZjRkYjU4ZTIxMzBlMTYyYzc5ODU2Njc=

Обязательно скопируйте его и сохраните!

** Press ENTER to return to the main menu.

Confirm adding it?(y/n): y

Agent added.

  1. Импортируем сгенерированный ключ клиенту;

[root@pdc-vmw-hdpl-1 ~]# cd /var/ossec/bin/

[root@pdc-vmw-hdpl-1 bin]# ./manage_client

****************************************

* OSSEC HIDS v2.8 Agent manager.     *

* The following options are available: *

****************************************

(I)mport key from the server (I).

(Q)uit.

Choose your action: I or Q: i

* Provide the Key generated by the server.

* The best approach is to cut and paste it.

*** OBS: Do not include spaces or new lines.

*********Вставьте см. ниже

Paste it here (or ‘q’ to quit): MDI4IHBkYy12bXctaGRwbC0xIDEwLjMzLjEwLjMxIGJiZjZhOWJlOTM1M2Y4NWViNjliMDdkZGM0OGVhNmNkOWM1MWNmMjBmZjRkYjU4ZTIxMzBlMTYyYzc5ODU2Njc=

Agent information:

ID:028

Name:pdc-vmw-hdpl-1

IP Address:10.33.**.**

Confirm adding it?(y/n): y

Added.

** Press ENTER to return to the main menu.

****************************************

* OSSEC HIDS v2.8 Agent manager.     *

* The following options are available: *

****************************************

(I)mport key from the server (I).

(Q)uit.

Choose your action: I or Q: q

** You must restart OSSEC for your changes to take effect.

manage_agents: Exiting ..

Теперь рестарт сервиса

[root@pdc-vmw-hdpl-1 etc]# /var/ossec/bin/ossec-control restart

Немного о конфигурационном файле

/var/ossec/etc/ossec.conf

В самом начале включить отсылку алертов на почту [email protected] , указывая адрес сервера, почтовый адрес и максимально возможное количество писем в час. По умолчанию, OSSEС группирует события, чтобы не заваливать потоком писем.

<global>

<email_notification>yes</email_notification>

<email_to>[email protected]</email_to>

<smtp_server>10.33.**.**</smtp_server>

<email_from>[email protected]</email_from>

</global>

Дальше идет блок rules, в котором описывается, на что и как OSSEC будет реагировать. Секция syscheck — это настройки так называемого integrity check. Смысл ее заключается в том, что IDS подсчитывает хэш каждого файла в указанных директориях и периодически их сверяет. Тут необходимо задать, какие директории нужно контролировать и через какое время будет проводиться проверка.

<!— Directories to check  (perform all possible verifications) —>

<directories check_all=»yes»>/etc,/usr/bin,/usr/sbin</directories>

<directories check_all=»yes»>/bin,/sbin</directories>

В секции command описываются скрипты, которые может применять IDS при наступлении определенных условий. Секция active-response как раз и использует эти команды. Например, при срабатывании определенного правила firewall-block занесет src ip в iptables на 600 секунд. В самом конце идут собственно лог-файлы, которые необходимо анализировать и сопоставлять с правилами.

Специфические настройки

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

  1. Отправка событий по rsyslog на SEIM.
  • Находим или создаем секцию <syslog_output> в конфигурационный файле (/var/ossec/etc/ossec.conf), где указываем следующие параметры:

<syslog_output>

<server>10.33.**.**</server>

<port>514</port>

<format>default</format>

</syslog_output>

  • Затем включить клиент rsyslog

/var/ossec/bin/ossec-control enable client-syslog

  • И затем перезапустить ossec

/var/ossec/bin/ossec-control restart

  • При успешном старте клиент rsyslog должен отобразиться в запущенных модулях

Starting OSSEC HIDS v2.7.1 (by Trend Micro Inc.)

Started ossec-csyslogd…

  1. Создание глобальных исключения для собственного IP, IP reverse proxy, а также IP сканеров уязвимостей и сервера мониторинга PTRG.
  • Находим секцию <global>, где указаны IP адреса, которым разрешён доступ.

<global>

<white_list>127.0.0.1</white_list>

<white_list>10.33.**.**</white_list>

<white_list>10.33.**.**</white_list>

<white_list>64.39.**.**/20</white_list>

<white_list>62.210.**.**/25</white_list>

<white_list>167.216.**.**/26</white_list>

<white_list>10.33.**.**</white_list>

</global>

  • Сохраняем изменения, выходим и перезагружаем демон OSSEC:

service ossec-hids restart

  1. Real-time мониторинг
  • Находим секцию <syscheck>, где указаны директории, которые мониторятся:

syscheck_ossec

  • Добавляем параметр realtime=»yes», для тех, которые нужно мониторить в режиме real-time, если необходимо, добавляем новые директории с данным параметром:

<syscheck>

<directories realtime=»yes» check_all=»yes»>/etc,/usr/bin,/usr/sbin</directories>

<directories check_all=»yes»>/bin,/sbin</directories>

<directories report_changes=»yes» check_all=»yes»>/etc</directories>

</syscheck>

syscheck_ossec_real

  • Сохраняем изменения, выходим и перезагружаем демон OSSEC:

service ossec-hids restart

Real-time мониторинг начнет работу после того, как просканирует файлы в указанных директориях и добавит их поддиректории. О начале работы данного режима будет свидетельствовать запись в логе в “ossec-syscheckd: INFO: Starting real time file monitoring”. Учтите, что данный режим не работает с отдельными файлами, а только с директориями.

TROUBLESHOOT

  1. Обнаружено, что может забиваться место в разделе.

error_space_ossec

В логах можно видеть следующие сообщения

error_ossec_log

Даже если служба стартовала ОК, то работать корректно она не будет.

Может быть две причины:

  • забито место базой /var/lib/mlocate/mlocate.db, которая содержит имена файлов.
  • забито место базой syscheck

В первом случае, необходимо подправить конфиг /etc/updatedb.conf, который обновляет базу mlocate.db

Добавим в строке PRUNEFS параметр fuse.sshfs

error_ossec_fuse

Таким образом, мы исключаем из индексации файловую систему fuse.sshfs. Сохранить конфиг и рестарт сервера.

После перезагрузки база оптимизируется.

Во втором случае, необходимо очистить базу syscheck и оптимизировать правила для мониторинга меньшего количества файлов (или расширить дисковое пространство).

Очистка базы данных о файлах определенного агента производится командой, где 001 – номер агента.

error_syscheck_ossec

Для очистки всей базы syscheck используем команды:

/var/ossec/bin/ossec-control stop
/var/ossec/bin/syscheck_update -a
/var/ossec/bin/ossec-control start

error_ossec_control

2. Проблема взаимодействия с SElinux

Парсим лог на предмет ошибок с OSSEC

[root@pdc-tst-sec-1 ~]# grep –i setroubleshoot /var/log/messages

setroubleshoot: SELinux is preventing /usr/sbin/logrotate from read access on the directory /var/ossec/logs. For complete SELinux messages. run sealert -l a9f06615-4b82-4247-b690-866ec8e6f45e

setroubleshoot: SELinux is preventing /usr/sbin/logrotate from ‘read, write’ accesses on the file /var/ossec/logs/ossec.log. For complete SELinux messages. run sealert -l 610bb8b3-820d-4656-bb33-7f277042c906

Используя пакет sealert, вставляем код ошибки и получаем порядок и варианты действий.

[root@pdc-tst-sec-1 ~]#sealert -l 610bb8b3-820d-4656-bb33-7f277042c906

SELinux is preventing /usr/sbin/logrotate from ‘read, write’ accesses on the file /var/ossec/logs/ossec.log.

 

Первый вариант – изменение контекста для файлов и директорий

*****  Plugin catchall_labels (83.8 confidence) suggests  ********************

If you want to allow logrotate to have read write access on the ossec.log file

Then you need to change the label on /var/ossec/logs/ossec.log

Do

semanage fcontext -a -t FILE_TYPE ‘/var/ossec/logs/ossec.log’

where FILE_TYPE is one of the following: varnishlog_log_t, openshift_var_lib_t, wtmp_t, logrotate_var_lib_t, afs_cache_t, logrotate_tmp_t, logfile, named_cache_t, acct_data_t, virt_cache_t, logrotate_lock_t, var_spool_t, abrt_var_cache_t, logrotate_t, mailman_log_t.

Then execute:

restorecon -v ‘/var/ossec/logs/ossec.log’

Второй вариант – создание политики исключений для SElinux

*****  Plugin catchall (17.1 confidence) suggests  ***************************

If you believe that logrotate should be allowed read write access on the ossec.log file by default.

Then you should report this as a bug.

You can generate a local policy module to allow this access.

Do

allow this access for now by executing:

# grep logrotate /var/log/audit/audit.log | audit2allow -M mypol

# semodule -i mypol.pp

Применяю первый вариант

[root@pdc-tst-sec-1 ~]# semanage fcontext -a -t var_log_t /var/ossec/logs/ossec.log

[root@pdc-tst-sec-1 ~]# restorecon -v -F /var/ossec/logs/ossec.log

restorecon reset /var/ossec/logs/ossec.log context unconfined_u:object_r:var_t:s0->system_u:object_r:var_log_t:s0