在FreeBSD上,Kerberised NFSv4的权限不会生效

前端之家收集整理的这篇文章主要介绍了在FreeBSD上,Kerberised NFSv4的权限不会生效前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在尝试在FreeBSD上设置NFSv4服务器.我在其他Unices(Solaris和 Linux)上有这方面的丰富经验,但我对FreeBSD还不熟悉.

我的目标是实现以下目标:

>从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流量之外什么也没有.

解决方法

>需要使用vfs.nfsd.server_min_nfsvers = 4禁用nfs3. >为避免“nobody”,NFSv4客户端和服务器应位于同一域域中.
原文链接:https://www.f2er.com/linux/400223.html

猜你在找的Linux相关文章