今年的315晚会,曝光了某省移动的一些违规操作后,移动集团公司对各地分公司都进行了安全检查。在进行一系列的安全加固操作后,我们发现,还是有部分之前很顺利的操作会受到影响。
问题的起因是这样的,某省的备份软件是HP的DP。DP能对数据库进行备份,也能对文件系统进行备份(这样的功能,我想一般的备份软件都能实现,既备份数据库,又能备份指定路径下的文件)。在一次工程之后,备份的server主机(即cell manager所在的机器)被更换了,现在需要在dp上配置原来备份文件系统的策略。在配置的时候,报错dp的客户端已经被安装。——这个比较好办,将原来的dp client 用swremove卸载掉之后重新安装即可。于是,卸载了原来的client。但是在再次安装的时候,发现报错密码不对。奇怪,明明是正确的root密码,为啥还报错呢?
dp在分发客户端的过程,是下图的一个结构:
我们在cell manager的图形化界面上操作,连接远程的Install Server,在我遇到的环境中,Install Server是一台HP-UX环境的db02主机,当在cell manager上运行分发命令后,install server会将client端分发到我们另一台远程主机,即需要备份文件系统的主机,在上面建立client。
但是,为啥我发起的分发命令,会报错用户密码不对呢?明明是正确的密码呀!
原来:
(1)cell manager对install manager发出要求install server分发client命令时,是要求有install server主机的root权限的,并且是要求root是能telnet到主机的。分发的第一步,是cell manager用root远程telnet到install sever上。而我们的主机安全加固取消了root的直接登录,是通过别的账户sudo到root用户。
(2)install server分发client的时候,是在install server发起的远程执行——rexec,通过rexec将install server上的相关信息拷贝到远端的机器上,使其成为client端。而我们的client主机上的安全加固取消了rexec的权限。不能在install server上对其rexec。
因此,我们要分别解决这2个问题。
对于第一个问题,我们需要修改/etc/securetty下的文件,或者直接把该文件改名;
对于第二个问题,之前我们做的操作是修改了/etc/inetd.conf文件。我们要重新修改这个文件:
……(省略前面部分内容)…… #bootps dgram udp wait root /usr/lbin/bootpd bootpd #finger stream tcp nowait bin /usr/lbin/fingerd fingerd #login stream tcp nowait root /usr/lbin/rlogind rlogind shell stream tcp nowait root /usr/lbin/remshd remshd #exec stream tcp nowait root /usr/lbin/rexecd rexecd #uucp stream tcp nowait root /usr/sbin/uucpd uucpd #ntalk dgram udp wait root /usr/lbin/ntalkd ntalkd #ident stream tcp wait bin /usr/lbin/identd identd ……(省略后面部分内容)……
注意这里的第6行,已经被注释掉了。因此我们执行rexec是失败的。我们需要先把这个注释取消之后,执行/usr/sbin/inetd -c使其生效。我们可以在install server上rexec remote_host date先试试看是否已经修改生效。
解决上面的2个问题之后,在cell manager的图形界面上运行分发client,就很顺利的成功了。
最后,将上面2个修改过的文件复原,本次分发client完成,client上的文件系统又能被dp顺利的备份了。