如何使用AutoSSH及CaclMgr来实现UNIX/Linux服务器的集中管理?
在网络服务商及证券交易所的计算中心, 有几百台甚至数千台的UNIX/Linux服务器运行相同版本的操作系统及应用软件。当这些机器上的软件需要更新时, 对于负责软件更新的系统管理员们来说,这是一份既费时又十分无聊的工作。
使用WZIS软件公司的AutoSSH和CaclMgr,您可实现对同类UNIX/Linux服务器的集中管理, 既可提高工作效率,又可使口令保密更出色。
我们的AutoSSH有着极佳的口令防窃功能,可以避免在直接使用SSH进行远程登录时,口令被不良人员使用系统调用示踪器,Solaris 10+上的dtrace,或经由读取您用于输入口令的TTY,以及用特洛伊木马所窃取。
CaclMgr则有着许多安全特性,能帮助极大地减低任何特权用户由于安全知识的匮乏使用授权软件所可能造成的系统安全问题。它不仅能被用于交互式作业,也可用于后台作业,是用户在UNIX/Linux机器上实现最小权限原则的最佳工具。
asshc是AutoSSH中的一个用于远程作业自动化的工具,经由asshc递交的命令会被记录到命令日志中,供审计。
如何使用asshc来实现对多台同类机器的集中管理? 首先,您必须为asshc设置好用于自动登录的加密口令或密码:
1.
在用于管理其它机器的中心机上,建一普通用户,我们切将其称为sshdo。
2.
登录sshdo,并运行
$ ssh-keygen
以产生一对新的公钥/私钥,并将密码双人控制,避免任何个人知道完整的密码。
3.
将私钥文件名改成asshc.key, 公钥文件名改成asshc.pub.
4.
将公钥加到其它机器的/.ssh/authorized_keys或/root/.ssh/authorized_keys文件中。
5.
运行
$ asshckey root@remote-server-name
生成加密的口令或密码文件供asshc自动登录remote-server-name服务器的root用户。
若您购买了足够多的AutoSSH联接许可,您可用以下命令来生成一个通用的加密口令或密码文件:
$ asshckey user@server
之后,该用户便可用以下命令来执行远程作业:
$ asshc root@remote-server-name ls –l /
6.
由于sshdo现在能无须知晓如何登录远程机器便能在远程机器执行命令,该用户安全也变得非常重要。所以,该用户现在应被双人控制。
那么,如何才能安全的实现多机集中管理?
让我们以一个常见的任务来说明如何用asshc和CaclMgr来安全的进行远程管理:
假设,您的数据处理中心有一千台运行相同版本Linux的服务器,现在有一个重要的软件补丁需要安装到这一千台机器上。
首先,您会在一台试验用机器上安装这一补丁,以了解该补丁的安装过成,并确认其效用。
现在,您应当写一个脚本程序,可命名为patchjob.sh:
#!/bin/sh
mkdir /tmp/patchlog
for SRV in 机器1
机器2 …机器n
do
cat AppXYZ补丁.rpm|asshc root@$SRV dd of=/root/ AppXYZ补丁.rpm
asshc root@$SRV “cd /root; rpm –Uvh AppXYZ补丁.rpm" >/tmp/patchlog/$SRV.log 2>&1
done
然后,登录sshdo,运行
$ cacl –a 另一用户 /path/to/patchjob.sh
之后,您就该用这” 另一用户”来运行
$ cacl –e sshdo patchjob.sh
请参考案例研究下的“UNIX系统上跨机作业的安全隐患极其解决方案”,来进一步加深对我们的解决方案的理解。