linux – NFS.非root挂载请求

前端之家收集整理的这篇文章主要介绍了linux – NFS.非root挂载请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试让我的NFS服务器允许非root用户安装请求.

服务器:Debian Squeeze,内核2.6.32-5-686

我现在拥有的:root(或sudoes)可以挂载NFS文件系统,但普通用户不能.

为什么我认为这是可能的:

> FreeBSD文档:http://www.unix.com/man-page/FreeBSD/8/mountd/选项-n
>关于面向Linux的论坛的问题,如:http://www.linuxquestions.org/questions/linux-software-2/non-root-account-unable-to-mount-a-nfs-connection-926985/

I. Debian服务器(10.18.51.1)

已安装的软件包:nfs-kernel-server,nfs-common,portmap

1)/ etc / exports:

/usr/appl/ 10.18.51.0/24(ro,no_subtree_check)
/usr/private/ 10.18.51.11(rw,sync,no_subtree_check)

2)/ var / lib / nfs / etab

/usr/private 10.18.51.11(rw,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534)
/usr/appl 10.18.51.0/24(ro,anongid=65534)

3)导出文件夹的权限:

$ls -lh -d /usr/appl
drwxr-xr-x 3 root root 4.0K Feb 25 17:16 /usr/appl
$ls -lh -d /usr/private
drwxrwxrwx 4 root root 4.0K Feb 27 12:19 /usr/private

II. Ubuntu客户端(10.18.51.11)

已安装的软件包:nfs-common portmap

$mount 10.18.51.1:/usr/appl /mnt/nfs/appl
mount: only root can do that

尽管/ etc / fstab中有用户标记

10.18.51.1:/usr/appl    /mnt/nfs/appl      nfs   ro,async,nodev,nosuid,user  0   0
10.18.51.1:/usr/private /mnt/nfs/private   nfs rw,rsize=8192,hard,intr,nfsvers=3,tcp,noatime,user 0  0

III. FreeBSD客户端(10.18.51.3)

1)

$cat /etc/rc.conf
...
nfs_client_enable="YES"

2)

$mount 10.18.51.1:/usr/appl /mnt/nfs/appl
[tcp] 10.18.51.1:/usr/appl: Permission denied
[tcp] 10.18.51.1:/usr/appl: Permission denied
[tcp] 10.18.51.1:/usr/appl: Permission denied
...

有趣的是,在按Enter后它打印Permission denied,然后等待一段时间,然后尝试连接到10.18.51.1,然后再次打印Permission denied.我知道有关服务器的连接,因为我在服务器上使用了tcpdump(tcpdump host 10.18.51.3):

$sudo tcpdump host 10.18.51.3
[sudo] password for sukharevd: 
tcpdump: verbose output suppressed,use -v or -vv for full protocol decode
listening on eth0,link-type EN10MB (Ethernet),capture size 65535 bytes
23:32:28.029560 ARP,Request who-has msiuioo.local tell 10.18.51.3,length 28
23:32:28.029598 ARP,length 28
23:32:28.029661 ARP,Reply msiuioo.local is-at 00:21:85:51:44:02 (oui Unknown),length 28
23:32:28.031075 IP 10.18.51.3.35034 > msiuioo.local.sunrpc: UDP,length 56
23:32:28.031401 IP msiuioo.local.sunrpc > 10.18.51.3.35034: UDP,length 28
23:32:28.033275 IP 10.18.51.3.17157 > msiuioo.local.<b>nfs</b>: Flags [S],seq 4085518488,win     65535,options [mss 1460,nop,wscale 3,sackOK,TS val 405930 ecr 0],length 0
23:32:28.033326 IP msiuioo.local.nfs > 10.18.51.3.17157: Flags [S.],seq 1703965537,ack 4085518489,win 5792,TS val 2186703 ecr 405930,wscale 6],length 0
23:32:28.034717 IP 10.18.51.3.17157 > msiuioo.local.nfs: Flags [.],ack 1,win 8326,options [nop,TS val 405930 ecr 2186703],length 0
23:32:28.034912 IP 10.18.51.3.4026012106 > msiuioo.local.<b>nfs</b>: 40 null
23:32:28.034978 IP msiuioo.local.nfs > 10.18.51.3.17157: Flags [.],ack 45,win 91,TS val 2186704 ecr 405930],length 0
23:32:28.035063 IP msiuioo.local.nfs > 10.18.51.3.4026012106: reply ok 24 null
23:32:28.036892 IP 10.18.51.3.17157 > msiuioo.local.nfs: Flags [F.],seq 45,ack 29,TS val 405930 ecr 2186704],length 0
23:32:28.036986 IP msiuioo.local.nfs > 10.18.51.3.17157: Flags [F.],seq 29,ack 46,length 0
23:32:28.039021 IP 10.18.51.3.17157 > msiuioo.local.nfs: Flags [.],ack 30,win 8325,length 0
23:32:28.039124 IP 10.18.51.3.40381 > msiuioo.local.sunrpc: UDP,length 56
23:32:28.039426 IP msiuioo.local.sunrpc > 10.18.51.3.40381: UDP,length 28

有什么建议?

UPD:解决了一半的问题.我应该用过

mount /mnt/nfs/appl

代替

mount 10.18.51.1:/usr/appl /mnt/nfs/appl

在Linux(Ubuntu)客户端上.

但在FreeBSD中安装仍有问题.

解决方法

您遇到非root挂载问题的最可能原因是“安全”导出选项,默认情况下处于启用状态.它不允许使用大于1024的源端口进入的挂载请求.在大多数系统上,绑定到小于1024的端口需要root访问权限,因此这是确保挂载由root创建的相当不错的方法.

正如我的NfSpy渗透测试工具README中所解释的那样,该问题是NFS协议(版本2,3,甚至4,没有正确的配置)完全信任来自客户端机器的请求中发送的用户ID.通过将请求限制为仅由root创建的请求,您将信任限制为仅具有root访问权限的客户端计算机上的用户.如果没有此设置(在导出文件中使用“insecure”),任何用户都可以声称拥有任何UID并访问导出中的任何文件.

它在Linux上工作的原因可能是因为/ bin / mount是setuid root:

~$ls -l /bin/mount
-rwsr-xr-x 1 root root 72188 2011-01-20 13:54 /bin/mount

只是预感,但检查FreeBSD系统上mount二进制文件的权限.如果它是setuid,那么你仍然有问题,我不知道它是什么.如果没有,那就可以解释发生了什么.

祝你好运,但请考虑允许系统上的任何用户访问服务器上的任何文件的安全隐患.我建议使用带有GSS身份验证机制的NFS4而不是传统的AUTH_SYS风格.

猜你在找的Linux相关文章