有谁有使用经验3ware 的 SNMP 库在 SELINUX 下?我收到以下错误:
snmpget -v 2c -c pub hostname TW-RAID-MIB::twRaidUnitStatus.1
Error in packet
Reason: noCreation (That table does not support row creation or that object can not ever be created)
Failed object: TW-RAID-MIB::twRaidUnitStatus.1
如果禁用 selinux 并重新启动 snmpd,snmpget 就可以正常工作。
我已采取以下步骤,但均未能解决问题:
- yum 更新 net-snmp
- yum 更新 selinux 策略
- /sbin/restorecon -R -v /etc/snmp /var/net-snmp /usr/share/snmp /dev/twa*
答案1
以下策略允许 net-snmp + 3ware snmp 与 selinux 协同工作。这不是一个理想的解决方案,因为它允许 snmpd 访问所有类型的 device_t 和 var_t 文件。它实际上只需要访问 /dev/twa*、/var/net-snmp、/usr/share/snmp 和一些其他库和配置文件。如果有人能制定更好的策略,我希望看到它。
policy_module(snmp, 1.0)
require {
type snmpd_exec_t;
type snmpd_t;
type device_t;
type var_t;
}
allow snmpd_t device_t : file rw_file_perms;
allow snmpd_t device_t : chr_file rw_file_perms;
allow snmpd_t device_t : dir rw_dir_perms;
allow snmpd_t var_t : file rw_file_perms;
allow snmpd_t var_t : file create_file_perms;
allow snmpd_t var_t : dir rw_dir_perms;
allow snmpd_t var_t : lnk_file { getattr read write create };