Board logo

标题: 增强 GPFS 中 SSH 配置的安全性方式方法 [打印本页]

作者: look_w    时间: 2018-1-8 10:24     标题: 增强 GPFS 中 SSH 配置的安全性方式方法

通过​​加强 SSH 配置来降低风险 前面描述的三个场景只是恶意用户通过滥用 GPFS 正常工作所需的配置而执行的行为的示例。
以后可能存在或者开发出可以利用此后门的更先进的替代品。我们的目标是针对当前和未来的未知恶意技术做好准备,将风险减轻到一个合理的范围内。
这里遵循的基本原理是,为了让 GPFS 安装能够正常工作,允许让 root 用户远程登录成为强制性的(截至 2013 年 8                月),因此,必须保持此配置。但是,也可以通过 SSH 配置对此进行限制,指定哪些 IP 地址允许直接使用 root                用户连接,哪些不允许直接使用。属于专用 GPFS 子网的那些 IP 地址(参见 图 1)将被允许直接使用 root 用户连接,其他 IP 可以继续连接到 SSH 服务,但不能直接使用 root 用户连接。
OpenSSH 和 Match 指令Match 指令只可在 4.3p2 之后的 OpenSSH 版本上使用。

有条件地控制 root 用户远程登录连接Match 指令允许包括一个条件验证。如果满足所建立的条件,那么可以在这里修改已被定义为特定值的参数。
该指令可以通过多种方式进行配置,也可以接收不同的参数,但是,因为目标是限制来自特定 IP 的连接,所以我们将重点关注                Address 参数。
使用 Match 指令根据 ,GPFS 专用子网的 IP 地址是 192.168.10.12(节点                A)和 192.168.10.13(节点 B),因此,从这些 IP 地址发起连接的用户能够使用 root 用户 ID                进行远程登录。需要重点考虑的是,所有 Match 指令都必须包含在                    sshd_config 配置文件的末尾处
节点 A 和节点 B 的 SSH 配置如清单 11 和清单 12 所示。
清单 11. 节点 A 的                    SSH                配置
1
2
3
4
5
# egrep -n "^PermitRootLogin|Match" sshd_config
38ermitRootLogin no
114:Match Address 192.168.10.13
115ermitRootLogin yes
#




清单 12. 节点 B 的                    SSH                配置
1
2
3
4
5
# egrep -n "^PermitRootLogin|Match" sshd_config
38ermitRootLogin no
114:Match Address 192.168.10.12
115ermitRootLogin yes
#




请注意,这里并没有显示 sshd_config 文件的完整内容,而是使用了 egrep                命令来查找文件中的字符串 PermitRootLogin 和 Match。(使用                -n 标志显示字符串所在的行的编号,以及 egrep                所返回的编号,这些编号不属于该文件的内容)。
在两个节点的配置文件的第 38 行上,请注意,PermitRootLogin 参数的值已被设置为                    no。由于此配置实际上出现在文件的开头处,所以被认为是一个全局设置。因此,该值适用于所有连接,这意味着在默认情况下,任何                root 用户远程登录连接都被拒绝。这是推荐的值。
激活 SSH 配置值得重点考虑的是,必须重新启动 SSH 服务器(例如,在 Linux 中运行                    service sshd restart 命令),以激活在配置文件上所做的更改。

然而,在第 114 行(在这两个文件的结尾)中,Match 指令出现了,并接收作为参数的字符串                Address 和各自对口集群节点专用 GPFS 子网上的 IP 地址。
如果 Match Address 指令中列出了试图直接使用 root 用户 ID 登录的连接的源 IP 地址,那么                PermitRootLogin 值是 yes(如第 115 行中所定义的那样),它覆盖在第 38                行中定义的全局值,并允许来自授权 IP 地址的连接使用 root 用户 ID 登录。
如果 GPFS 集群包含两个以上的节点,那么可以声明 Match Address                指令的多个段落,每一个段落包含集群的每一个节点的 IP 地址。
使用专门的加密密钥身份认证 当 PermitRootLogin 参数的值被配置为 yes 时,通过提供 root 用户                密码或使用 SSH 加密密钥,两种身份验证方法都可以用来连接到 SSH 服务器。
因为 GPFS 需要使用一些自动化的进程来运行和连接到其他节点(以 root                用户身份),所以加密密钥身份验证通常是替代选择方案,并且可以对其进行配置。GPFS 不需要使用 root 用户密码来启动连接,因此,可以将                PermitRootLogin 配置为 without-password 值。
乍一看,配置这个值似乎会造成混乱,但相反,它实际上是一个更严格的值,因为它会禁用 root 用户 ID 的密码身份认证,让加密密钥身份验证方法成为                root 用户的惟一可用选项。SSH 配置文件将会包含清单 13 中的代码。
清单 13. 限制                    root                用户连接只使用加密密钥
1
2
3
4
5
# egrep -n "^PermitRootLogin|Match" sshd_config
38ermitRootLogin no
114:Match Address 192.168.10.12
115ermitRootLogin without-password
#




图 3.  root 用户远程登录连接被限制为 GPFS IP                    地址专用GPFS adminMode                配置参数 在 GPFS 版本 3.3 或更高版本中,已经引入了 adminMode                配置参数,以控制和限制可以运行管理命令的节点数量,以及因此需要能够直接远程访问 root 用户的节点数量。
adminMode 参数有两个可能的值: allToall 和                central。
当 adminMode 被设置为 allToall 时,GPFS                就会明白,所有节点都有访问权限,因此,所有节点都可以在其集群同伴上运行管理命令。
当 adminMode 的值被设置为 central 时,GPFS                的行为就像是运行命令的节点是能够以 root 用户身份访问其他所有节点的惟一一个节点。这使得对哪些 GPFS 节点可以运行管理命令有了更多的控制。
请注意,通过将 adminMode 设置为                    central,安全性甚至得到了更大的强化,但这个参数本身不干涉 SSH                服务的行为,因此,应该一起使用这两个配置(来自 GPFS 方的 adminMode 参数和来自 SSH 方的                Match 指令)。
结束语和建议通过 SSH 中的 Match 指令实现 PermitRootLogin                参数的有条件配置,允许从非授权或者非 GPFS 集群服务器或网络进行 root                用户远程登录连接而造成的风险得到了缓解,并且只将访问权授予那些绝对需要它们的人。来自非授权位置的恶意用户如果尝试任何 ,那么他们不能直接以 root 用户身份建立连接。
请注意, root 用户登录访问控制并不是 SSH Match                指令的惟一可用条件控制。此外,在本文中描述的解决方案并非只适用于 GPFS。需要对 SSH                远程访问进行这种细粒度控制的任何系统或安装都可以从这个实现中获益。
最终的目标是平衡必须与它们有关联的生产力、自动化和安全性。不能从独立和对立的立场来看待它们。本文已展示,拥有比使用默认配置的安装更高效更安全的                GPFS 环境是完全可行的。
建议




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0