Fedora

Zabbix & SNMPTT.log 文件訪問被拒絕

  • May 12, 2014

我在使用 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???的此文件訪問被拒絕消息

不幸的是,沒有這樣的“旗幟”。最接近的是 a boolean,並且根據zabbix_selinux(8)手冊頁,沒有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)做那個。

引用自:https://serverfault.com/questions/592317