nfs kerberos:多个客户端不同的目录

nfs kerberos:多个客户端不同的目录

我已经使用 NFS 设置了 kerberos 并且它运行良好。

然而,它的工作方式似乎存在问题,任何 Kerberos 客户端似乎都能够访问任何目录(如果他们使用正确的 IP)

在 NFS 服务器(192.168.1.12)上:

$ exportfs -v
/data/mail 192.168.1.13(rw,wdelay,root_squash,no_subtree_check,mountpoint,sec=krb5,rw,secure,no_all_squash)
/data/web  192.168.1.14(rw,wdelay,root_squash,no_subtree_check,mountpoint,sec=krb5,rw,secure,no_all_squash)

我在不同的服务器上托管邮件和网站。这样一来,如果其中一个服务器被攻破,攻击者就无法访问另一个服务器。

因此,我设置了 nfs 和 kerberos,这样 mail.example.com (.13) 可以挂载 /data/mail,web.example.com (.14) 可以挂载 /data/web,而两者都无法挂载对方。到目前为止一切顺利。但是,我随后将 web.example.com 上的 IP 更改为 .13,然后我就可以挂载 /data/mail。

它在 web.example.com 上的样子如下:

ktutil:  rkt /etc/krb5.keytab
ktutil:  list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    2      nfs/[email protected]
   2    2      nfs/[email protected]

在 mail.example.com 上:

ktutil:  rkt /etc/krb5.keytab
ktutil:  list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    2     nfs/[email protected]
   2    2     nfs/[email protected]

/etc/hosts 在 NFS 服务器上的样子如下:

192.168.1.11 kdc.example.com
192.168.1.13 mail.example.com
192.168.1.14 web.example.com

我原本以为,由于 web.example.com 有一个标识为 web.example.com 的票据,因此即使它使用了 mail.example.com 的 IP,也无法挂载 /data/mail。但似乎只要您有任何有效的 kerberos 票据和正确的 IP,您就可以挂载任何目录。这对我来说有点违背了 kerberos 的意义,因为这不是我期望有人接入的网络。这真的是 NFS 的 kerberos 所能防范的唯一威胁吗?还是我配置错误了?

答案1

sec=krb5不会阻止任何系统安装有效票证,但这不是它的工作。

它将阻止未经授权的客户端(基于 uid/gid 而不是 ip)访问文件。 假设您做了像 make a 这样愚蠢的事情[email protected],您可能只需要加强您的文件权限。

即使是root_squash远程 root 也可以将其 euid 更改为具有适当访问权限的某个值sec=sys。对于任何 krb5 选项来说,情况并非如此。当然,这一切都不适用于文件/目录是否具有允许其他人的权限,例如 775 将允许读取,但 770 则不允许。


sec=krb5i旁注:如果没有,您至少应该使用sec=krb5p

相关内容