如何使用 samba 配置 SELinux?科学的Linux?

如何使用 samba 配置 SELinux?科学的Linux?

当我尝试挂载只读 samba 共享时,我在 samba 服务器上收到此消息(客户端超时)

Nov  5 18:45:49 localhost kernel: type=1400 audit(1352137549.469:17): avc:  denied  { module_request } for  pid=3046 comm="smbd" kmod="net-pf-10" scontext=unconfined_u:system_r:smbd_t:s0 tcontext=system_u:system_r:kernel_t:s0 tclass=system

我已经尝试过:

setsebool -P samba_export_all_ro 1
getsebool -a | egrep -i 'smb|samba'
yum install policycoreutils-python
semanage fcontext -a -t samba_share_t '/PATH/TO/SAMBASHARE(/.*)?'
restorecon -R /PATH/TO/SAMBASHARE
/etc/init.d/smb restart

如何配置 SELinux 以允许只读 samba 共享?关闭 SELinux 简直是愚蠢之举。

更新:

[root@SERVER ~]# getsebool -a|grep -i smbd
allow_smbd_anon_write --> off
[root@SERVER ~]# setsebool -P smbd_disable_trans 1
libsemanage.dbase_llist_set: record not found in the database
libsemanage.dbase_llist_set: could not set record value
Could not change boolean smbd_disable_trans
Could not change policy booleans

答案1

看来 smbd 正在尝试自动加载内核模块net-pf-10,该模块是ipv6.这显然在 SELinux 中是不允许的,因为没有合理地预期该模块不会被加载(或者您会要求在禁用 IPv6 的情况下进行 IPv6 绑定)。

至少有两种可能的方法来解决这个问题。

  1. 在系统范围内重新启用 IPv6(因为几乎可以肯定您已禁用它;这只是禁用 IPv6 会导致的众多问题之一)。
  2. 重新配置 Samba,使其不尝试绑定到任何 IPv6 地址。更改interfaces线路smb.conf以仅绑定到您所需的 IPv4 地址。一个例子:

    interfaces = 127.0.0.1 198.51.100.87
    bind interfaces only = yes
    

相关内容