配置 selinux 以允许 nfs 共享上的 sudoers

配置 selinux 以允许 nfs 共享上的 sudoers

我们的系统如下:

  • CentOS7
  • 用于身份验证的 NIS
  • nfs 共享上的主文件夹
  • 所有机器的 NFS 共享上的单个 sudoers 文件。

到目前为止,第一项和第二项工作正常。但是,当我将sudo.conf文件更改为指向全局 sudo 文件时

/fs/global是 NFS 共享的挂载点

在文件内部/etc/sudo.conf

Plugin sudoers_policy sudoers.so sudoers_file=/fs/global/sudo/common/etc/sudoers

每当我尝试执行此操作时visudo,我都会被拒绝权限(以 root 身份登录控制台)

我认为我已经将问题缩小到 SELinux 不满意。我知道这一点是因为如果我禁用 SELinux,它就会起作用。但对于这组特定的服务器,我加载的应用程序需要 SELinux。那么,我必须施展什么魔法才能让它起作用呢?

我使用的 authconfig

/sbin/authconfig --enablenis
          --nisdomain="{{ pan_nis_domain }}"
          --nisserver="{{ pan_nis_fqdn }}"
          --passalgo="md5"
          --enablecache
          --update

以及我目前拥有的 SELinux 的 ansibles

- name: Set ypbind to allow NIS to run
  seboolean:
    name: allow_ypbind
    state: yes
    persistent: yes

- name: Allow home folders mapped across NFS drives
  seboolean:
    name: use_nfs_home_dirs
    state: yes
    persistent: yes

编辑:

审计日志未显示任何错误

[root@cent1 audit]# tail -5 audit.log
type=CRYPTO_KEY_USER msg=audit(1553186275.802:2494): pid=26871 uid=0 auid=800 ses=5 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=destroy kind=server fp=SHA256:79:94:71:c9:57:85:a7:cf:86:7c:ae:f7:29:7c:4c:16:75:33:a5:6f:17:e8:5e:f6:1c:73:75:56:e8:f1:91:17 direction=? spid=26875 suid=800  exe="/usr/sbin/sshd" hostname=? addr=? terminal=? res=success'
type=USER_AUTH msg=audit(1553186296.734:2495): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:authentication grantors=pam_unix acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
type=USER_ACCT msg=audit(1553186296.736:2496): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:accounting grantors=pam_unix,pam_localuser acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
type=CRED_ACQ msg=audit(1553186296.765:2497): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:setcred grantors=pam_unix acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
type=USER_START msg=audit(1553186296.776:2498): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:session_open grantors=pam_keyinit,pam_keyinit,pam_limits,pam_systemd,pam_unix,pam_xauth acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
[root@cent1 audit]# visudo
visudo: /fs/global/sudo/common/etc/sudoers: Permission denied
[root@cent1 audit]# tail -5 audit.log
type=CRYPTO_KEY_USER msg=audit(1553186275.802:2494): pid=26871 uid=0 auid=800 ses=5 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=destroy kind=server fp=SHA256:79:94:71:c9:57:85:a7:cf:86:7c:ae:f7:29:7c:4c:16:75:33:a5:6f:17:e8:5e:f6:1c:73:75:56:e8:f1:91:17 direction=? spid=26875 suid=800  exe="/usr/sbin/sshd" hostname=? addr=? terminal=? res=success'
type=USER_AUTH msg=audit(1553186296.734:2495): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:authentication grantors=pam_unix acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
type=USER_ACCT msg=audit(1553186296.736:2496): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:accounting grantors=pam_unix,pam_localuser acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
type=CRED_ACQ msg=audit(1553186296.765:2497): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:setcred grantors=pam_unix acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
type=USER_START msg=audit(1553186296.776:2498): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:session_open grantors=pam_keyinit,pam_keyinit,pam_limits,pam_systemd,pam_unix,pam_xauth acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
[root@cent1 audit]#

答案1

@Michael Hampton,事实证明你是对的。我是这个网络的新手,仍在学习,结果发现他们在这里使用的 sudo 的自定义版本删除了所有安全功能,例如对 sudoers 文件的访问。使用普通 sudo,如果失败,使用自定义版本,它就可以工作。所以我将一切都配置为使用我们的内部自定义版本。谢谢

相关内容