我的目标是实现以下目标:
>从FreeBSD系统提供的文件
>唯一的安全模型应该是krb5p
>客户端是Linux(Ubuntu)和OSX
目前,我已设法进行设置,以便我需要一个有效的TGT才能访问文件系统.在尝试访问这些文件后,我可以在客户端上运行klist,我可以看到已经检索到nfs / domainname主体.这表明NFS挂载的Kerberos部分是正确的.
我的问题是仍然使用nobody用户执行所有客户端访问.当我执行ls -l时,我可以看到权限.即使用户映射工作正常,但除非没有人对文件执行任何操作,否则我会获得权限拒绝.
这是来自客户端的示例交互(在这种情况下是Ubuntu,但同样的事情发生在OSX上).在这个例子中,/ export / shared / testshare是FreeBSD服务器的共享目录:
(我已将实际域名更改为域,将Kerberos域名更改为REALM)
$kinit Password for elias@REALM: $klist Ticket cache: FILE:/tmp/krb5cc_1000_GBjtDP Default principal: elias@REALM Valid starting Expires Service principal 09/02/2013 09:40:47 10/02/2013 09:40:44 krbtgt/REALM@REALM $sudo mount -t nfs4 -osec=krb5p,vers=4 lion:/export/shared/testshare /mnt $ls -l /mnt total 4 -rw-r--r-- 1 nobody nogroup 5 Feb 7 18:17 bar.txt -rw------- 1 elias nogroup 4 Feb 5 23:09 foo.txt $cat /mnt/bar.txt blah $echo foo >>/mnt/bar.txt bash: /mnt/bar.txt: Permission denied $cat /mnt/foo.txt cat: /mnt/foo.txt: Permission denied $klist Ticket cache: FILE:/tmp/krb5cc_1000_GBjtDP Default principal: elias@REALM Valid starting Expires Service principal 09/02/2013 09:40:47 10/02/2013 09:40:44 krbtgt/REALM@REALM 09/02/2013 09:41:56 10/02/2013 09:40:44 nfs/lion.domain@REALM
服务器配置
我在找到一个在FreeBSD上设置NFSv4的综合指南时遇到了一些问题.这本身有点令人惊讶,因为我发现有关如何在FreeBSD中做事的信息非常好.
以下是/etc/rc.conf中的相关行:
rpcbind_enable="YES" nfs_server_enable="YES" nfsv4_server_enable="YES" nfsuserd_enable="YES" nfscbd_enable="YES" mountd_enable="YES" gssd_enable="YES" rpc_lockd_enable="YES" rpc_statd_enable="YES" zfs_enable="YES"
这是/ etc / exports的内容:
/export/shared/testshare -sec=krb5p V4: / -sec=krb5p
另一个有趣的方面是,当我使用tcpdump记录客户端和服务器之间的NFS网络流量时,我看到了NFS3数据包和NFS4数据包.这两种数据包类型都包含加密数据,所以我仍然认为使用了Kerberos,但考虑到上面的配置,我原本预计除了NFS4流量之外什么也没有.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。