Cra*_*sta 7 ssh nfs ssh-tunnel
我正在阅读http://nfs.sourceforge.net/nfs-howto/ar01s06.html试图理解为什么当我到达“6.4. 通过 SSH 隧道传输 NFS”部分时 localhost 导出很糟糕。该部分中关于导出本地主机的可能安全漏洞的所有内容,因为它允许其他人通过 ssh 端口转发并访问共享是有意义的。
这是我的问题,如果用户可以通过 ssh 连接到可以连接到 NFS 服务器的机器,如何防止 ssh 隧道破坏系统的安全性?例如,想象一下计算机 A( 192.168.1.1
)、B( 192.168.1.2
) 和 C( 192.168.1.3
)。让 A 成为具有以下导出文件的服务器:
/home 192.168.1.2(rw)
Run Code Online (Sandbox Code Playgroud)
如您所见,A 授予 B 使用 /home 共享的权限。现在,让 C ssh 进入 B:
$ ssh 192.168.1.2 -L 250:192.168.1.1:2049 -f sleep 60m
$ ssh 192.168.1.2 -L 251:192.168.1.1:32767 -f sleep 60m
Run Code Online (Sandbox Code Playgroud)
似乎 A 的股票出口到 B 容易受到任何可以通过 ssh 进入 B 的人的攻击。是这种情况吗?除了简单地确保可以登录到 B 的任何人都是非常值得信赖的用户之外,还有什么方法可以防止这种情况发生?
您强调的问题不是缺陷,而是功能!是的,这是 SSH 协议的一个特性,如果配置不当的 SSH 服务可用于广泛的漏洞利用,例如:
mysql
?]作为常见错误配置和安全问题的一个示例,将/sbin/nologin
shell设置为用户并不会阻止它使用 OpenSSH 守护程序的大多数默认配置生成 ssh 隧道!
根据您的问题,您应该避免使用 NFSv2/NFSv3 并使用更安全的 NFSv4,它转向不同的安全模型,它对单个用户而不是主机进行身份验证。或者,通过正确配置 OpenSSH 服务,禁止普通用户使用 SSH 隧道。
这是一份非常古老的文档,您可以看到它谈论的是 2001 年发布的内核版本 2.4,在过去 12 年中发生了很多变化。尽管有些事情还是一样。
我只有 CentOS 6.x 机器可以玩,默认情况下使用 nfsv4。为了允许通过中间机器进行连接,我必须使用insecure
set 导出文件系统。
因此,要回答您的问题,请使用 nfsv4 并使用默认secure
模式。如果你对B有足够的权限,你还可以设置
AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)
在 /etc/ssh/sshd_config 中。
与安全一样,如果你给予人们特权,你就必须信任他们。
归档时间: |
|
查看次数: |
3871 次 |
最近记录: |