Назад | Перейти на главную страницу

Доступ к файлу Zabbix и SNMPTT.log запрещен

У меня проблема с файлом, который ZAbbix принял для обработки всех данных ловушек SNMP с помощью файла /var/log/snmptt/snmptt.log.

ZAbbix_proxy.log

 23323:20140430:105246.532 sleeping for 5 seconds
 23329:20140430:105247.070 cannot open [/var/log/snmptt/snmptt.log]: [13] Permission denied
 23329:20140430:105247.070 sleeping for 1 seconds
 23329:20140430:105248.070 cannot open [/var/log/snmptt/snmptt.log]: [13] Permission denied
 23329:20140430:105248.071 sleeping for 1 seconds
 23329:20140430:105249.071 cannot open [/var/log/snmptt/snmptt.log]: [13] Permission denied
 23329:20140430:105249.071 sleeping for 1 seconds

Журнал аудита SE Linux.

time->Wed Apr 30 09:58:11 2014
type=SYSCALL msg=audit(1398869891.560:41198): arch=c000003e syscall=2 success=no exit=-13 a0=16ffee0 a1=0 a2=1 a3=8 items=0 ppid=23309 pid=23329 auid=4294967295 uid=995 gid=996 euid=995 suid=995 fsuid=995 egid=996 sgid=996 fsgid=996 ses=4294967295 tty=(none) comm="zabbix_proxy" exe="/usr/sbin/zabbix_proxy_sqlite3" subj=system_u:system_r:zabbix_t:s0 key=(null)
type=AVC msg=audit(1398869891.560:41198): avc:  denied  { read } for  pid=23329 comm="zabbix_proxy" name="snmptt.log" dev="dm-5" ino=133641 scontext=system_u:system_r:zabbix_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=file
----
time->Wed Apr 30 09:58:12 2014
type=SYSCALL msg=audit(1398869892.560:41199): arch=c000003e syscall=2 success=no exit=-13 a0=16ffee0 a1=0 a2=1 a3=8 items=0 ppid=23309 pid=23329 auid=4294967295 uid=995 gid=996 euid=995 suid=995 fsuid=995 egid=996 sgid=996 fsgid=996 ses=4294967295 tty=(none) comm="zabbix_proxy" exe="/usr/sbin/zabbix_proxy_sqlite3" subj=system_u:system_r:zabbix_t:s0 key=(null)
type=AVC msg=audit(1398869892.560:41199): avc:  denied  { read } for  pid=23329 comm="zabbix_proxy" name="snmptt.log" dev="dm-5" ino=133641 scontext=system_u:system_r:zabbix_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=file

Я не понимаю SELinux.

Кто-нибудь знает, какой флаг мне нужно активировать в файле, чтобы избежать сообщений об отказе в доступе к файлу от SELinux ???

К сожалению, такого «флага» нет. Ближайшим был бы boolean, и согласно zabbix_selinux(8) manpage, нет boolean определен для предоставления доступа на чтение к файлу журнала в произвольном месте.

Вы не даете подробностей относительно фактической маркировки файлов под /var/log/snmptt/ каталог. Ожидаемая метка может совпадать или не совпадать с ожидаемой меткой других файлов журналов, связанных с SNMP, в соответствии с semanage():

# semanage fcontext -l | grep '/var/log/snmp'
/var/log/snmpd\.log.*           regular file       system_u:object_r:snmpd_log_t:s0

Тогда решением было бы предоставить zabbix доступ для чтения к этим файлам журнала. Отфильтруйте журнал аудита, используя audit2allow(1):

# echo "
> time->Wed Apr 30 09:58:11 2014
> type=SYSCALL msg=audit(1398869891.560:41198): arch=c000003e syscall=2 success=no exit=-13 a0=16ffee0 a1=0 a2=1 a3=8 items=0 ppid=23309 pid=23329 auid=4294967295 uid=995 gid=996 euid=995 suid=995 fsuid=995 egid=996 sgid=996 fsgid=996 ses=4294967295 tty=(none) comm="zabbix_proxy" exe="/usr/sbin/zabbix_proxy_sqlite3" subj=system_u:system_r:zabbix_t:s0 key=(null)
> type=AVC msg=audit(1398869891.560:41198): avc:  denied  { read } for  pid=23329 comm="zabbix_proxy" name="snmptt.log" dev="dm-5" ino=133641 scontext=system_u:system_r:zabbix_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=file
> ----
> time->Wed Apr 30 09:58:12 2014
> type=SYSCALL msg=audit(1398869892.560:41199): arch=c000003e syscall=2 success=no exit=-13 a0=16ffee0 a1=0 a2=1 a3=8 items=0 ppid=23309 pid=23329 auid=4294967295 uid=995 gid=996 euid=995 suid=995 fsuid=995 egid=996 sgid=996 fsgid=996 ses=4294967295 tty=(none) comm="zabbix_proxy" exe="/usr/sbin/zabbix_proxy_sqlite3" subj=system_u:system_r:zabbix_t:s0 key=(null)
> type=AVC msg=audit(1398869892.560:41199): avc:  denied  { read } for  pid=23329 comm="zabbix_proxy" name="snmptt.log" dev="dm-5" ino=133641 scontext=system_u:system_r:zabbix_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=file
> " | audit2allow


#============= zabbix_t ==============
allow zabbix_t var_log_t:file read;

Процедура создания настраиваемого модуля подробно описана в audit2allow(1) справочная страница.

Обычно вы создаете модуль, устанавливаете или обновляете его, тестируете поведение вашего приложения в соответствии с новыми ограничениями безопасности и дополнительно дорабатываете модуль. Это легко сделать, поставив машину в permissive режим, пока вы тестируете / разрабатываете новый модуль. Использовать setenforce(8) сделать это.