服务器: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
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中安装仍有问题.
解决方法
正如我的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风格.