首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

增强 GPFS 中 SSH 配置的安全性

增强 GPFS 中 SSH 配置的安全性

概述IBM GPFS 是一个高性能企业文件管理平台,被广泛应用于商业和科学应用程序。作为 GPFS 配置的一部分,它要求启用 root                用户远程连接,以便属于 GPFS 集群的节点之间能够彼此通信,运行需要 root 用户权限的命令。
不建议允许使用 root 用户远程连接作为安全最佳实践。通常,必须从控制台专门执行 root                用户登录连接,或者通过一个可以维护这类连接的个人责任的方法(例如,sudo)来执行。
必须采取一些措施来减轻这种情况为整个环境带来的风险。
本文介绍的更改可应用于每一个 GPFS 节点上的 Secure Shell(SSH)配置文件,以便允许 root 用户只从 GPFS                节点建立远程登录操作。
基本的 GPFS 网络配置下图显示了一个基本的 GPFS 网络配置。它由两个节点组成,每个节点配置了两块网卡:一块连接到企业网络,另一块被分配用于 GPFS。
图 1. 基本的 GPFS 网络配置两个节点都运行了 Linux® 操作系统(本文的建议适用于所有类似 UNIX® 的操作系统),并且已确定节点之间的通信机制是 SSH                [GPFS 支持其他通信机制,如远程 shell (rsh)]。
sshd_config 文件是 SSH 的配置文件,允许或拒绝 root 用户连接的参数被称为                PermitRootLogin。对于典型的 GPFS 安装,该参数的值是                yes,如下面的示例所示。
1
2
3
# grep ^PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin yes
#




此值以全局方式被应用于所有 SSH 行为,这意味着在 SSH 侦听的所有网络接口上都允许建立远程 root 用户登录连接                (一般允许在所有可用接口上建立该连接)。
风险场景访问日志的记录和维护有助于根据访问计算机系统的个人来关联在任何计算机系统上执行操作的责任。通过允许建立 GPFS 所要求的 root                用户远程登录连接,为潜在的攻击或未经授权的访问打开了一扇门。因为没有追究使用 root                用户凭据访问系统的用户的责任的机制,所以很难进行调查。
下列场景显示了一些情况,这些情况可能发生在未采取适当行动来减低允许建立 root 用户远程登录连接所造成的风险的系统上。
场景 1:拥有 root 用户密码的个人某人知道 root                用户的用户密码的方式可能是获得批准的(例如,提出有效业务需求的系统管理员),也可能是未经授权的(例如,前雇员记住了这一信息,而新的系统管理员并没有立刻修改密码,或者有人在共享文件夹中的未受保护的文本文件中发现了该密码)。
由于用户持有此信息,用户可以采用 root 用户身份在企业网络上对两个 GPFS 节点发起远程连接。
清单 1. 连接到节点                    A
1
2
3
4
5
$ ssh -l root 172.19.230.35
root@172.19.230.35's password:**********
Last login:Mon Jul 29 11:14:07 2013 from gpfsnodeb
=== Welcome to GPFS Node A
#




清单 2. 连接到节点                    B
1
2
3
4
5
$ ssh -l root 172.19.230.36
root@172.19.230.36's password:**********
Last login:Mon Jul 29 11:30:16 2013 from gpfsnodea
=== Welcome to GPFS Node B
#




如果 SSH 连接的特征与前面所解释的类似,那么可以从节点本身发起该 SSH 连接。用户可以从用户的个人计算机或从其他非 GPFS                服务器发起针对其中某个节点的 SSH 连接,使用自己的个人用户 ID(或者,如果该连接是攻击的一部分,那么使用的将是被劫持的用户                ID),在获得访问权限后,用户很快就可以使用 root 用户凭据跳转到其他节点。
清单 3. 连接到节点                    A,然后跳转到节点                B
1
2
3
4
5
6
7
8
9
10
$ ssh -l kath1406 172.19.230.35
kath1406@172.19.230.35's password:**********
Last login:Thu Aug 15 11:30:16 2013 from pc0212
=== Welcome to GPFS Node A
[kath1406@gpfsnodea ~]$
[kath1406@gpfsnodea ~]$ ssh -l root 192.168.10.13
root@192.168.10.13's password:**********
Last login:Mon Jul 29 13:26:19 2013 from gpfsnodea
=== Welcome to GPFS Node B
#




清单 4. 连接到节点                    B,然后跳转到节点                A
1
2
3
4
5
6
7
8
9
10
$ ssh -l kath1406 172.19.230.36
kath1406@172.19.230.35's password:**********
Last login:Thu Aug 15 11:03:10 2013 from pc0212
=== Welcome to GPFS Node B
[kath1406@gpfsnodeb ~]$
[kath1406@gpfsnodeb ~]$ ssh -l root 192.168.10.12
root@192.168.10.12's password:**********
Last login:Mon Jul 29 14:02:02 2013 from gpfsnodeb
=== Welcome to GPFS Node A
#




可以看出,来自任何地方(企业网络或专用 GPFS 子网)的 root 用户远程登录连接都会被接受,不存在限制,因此可能会有未经授权的 root                用户访问的潜在风险。
图 2. 可以从网络中的任何点发起不受限制的 SSH 连接
返回列表