麒麟开源堡垒机帐号同步模块用于同步堡垒机到应用发布服务器之间的帐号
1. 相关软件:
如上图所示,一共四个文件,分为两部分,其中:
(1)ClientSocket.php和ClientTest.exe,是客户端软件,模拟账号同步命令的发送,用于测试服务。前台调用方式请参考文件ClientSocket.php里的函数;
(2)ServicInstall.msi和setup.exe是账号同步软件的安装文件
2. ODBC数据配置:
请确保本地配置好了ODBC源,数据源名称为“audit”,数据库名为“audit_sec”,如果已经配置好,则可跳过此步:
3. 安装账号同步软件:
将文件夹“Freesvr”复制到C盘,进入该文件夹,直接双击“setup.exe文件即可”
注:双击setup.exe会自动检查依赖库,有可能会提示安装.net4.0 client profile简体中文语言包,安装即可。
安装好后,打开本地服务,可以看到名称为“AccountsSyncService”的服务,请重启该服务器,以确保程序可用,如果如下图所示
重启服务:
4. 测试服务
4.1 用ClientText.exe进行测试
双击文件夹中的“ClientText.exe”文件,如下图所示:
程序一共可以处理四种命令:
命令一:扫描全表,同步账号;命令格式:async <ip> <port>,此命令会一次性同步数据库表中的所有账号到本地,此命令返回结果:
(1) 成功,返回字符串:"1,已成功同步数据库的所有账号到本地!"
(2) 失败,返回字符串:"0,同步数据库的所有账号到本地失败!"
命令二:添加指定的账号;命令格式:async <ip> <port> <username> 1,此命令只会在本地添加指定username的账户,此命令返回结果:
(1) 成功,返回字符串:"1,添加账号成功!"
(2) 失败,返回字符串:"0,添加账号失败!"
命令三:禁用指定的账号;命令格式:async <ip> <port> <username> 2,此命令只会在本地禁用指定username的账户,此命令返回结果:
(1) 成功,返回字符串:"1,禁用账号成功!"
(2) 失败,返回字符串:"0,禁用账号失败!"
命令四:生成BHO配置文件;令格式:async <ip> <port> 3,此命令用于生成BHO配置文,此命令返回结果:
(1) 成功:返回字符串:"1,生成BHO配置文件成功,文件所在目录:"
(2) 失败:返回字符串:"0,生成BHO配置文件失败!"
注:返回的字符串中,有返回码0和1代表执行失败和成功,以及对应的信息,二者用逗号隔开。
(1) 我们先测试命令2:添加用户
输入命令: async 10.11.0.59 8888 adminTest 1
命令说明:一共五个参数,各个参数用空格隔开,10.11.0.59为安装同步服务的主机IP,默认端口是8888,如果配置文件中配置了端口,则用配置文件中的端口!
该命令会自动在本地添加账号,但是会先查询数据库中该账号是否存在,以及获取该账号的密码;如果获取失败,则不添加;获取成功后,若本地没有该账号则添加,如果有则重新启用,并将密码修改会数据库中的密码。
由于数据库中并不存在账号,adminTest,所以结果如上。
(2) 我们再测试命令1:扫描数据库全表,同步本地账号
输入命令: async 10.11.0.59 8888
同步方式:数据库中有,本地没有,则新建;数据库没有,本地有则禁用;数据库中有,本地也有,则修改默认密码。
执行命令前,本地的账号和分组如下:
执行命令后:
会发现自动多了数据库中的账号(为了简单测试下,我只从数据库中读了两条记录),其余账号均被禁用。
多了一个组freesvr:
同时会把账号添加到远程登录的组中
(3) 我们再测试命令3
输入命令:async 10.11.0.59 8888 admin 2
禁用掉用户“admin”;结果如下:
发现amdin账号已经被禁用(那个红色的叉会不会立即显示,需要刷新下才能看到,不过直接看amdin属性发现已经被禁用);
(4) 我们再测试命令2,添加账号admin
输入命令:async 10.11.0.59 8888 admin 1
因为数据库中,已经有该账号,所以判断本地是否有该账号,如果没有则新建;如果有,判断是否被禁用,如果被禁用则重新启用,否则只修改密码。
因为本地已经有了,所以则会重新启用,然后修改密码。
可以发现admin账号被重新启用。
(5) 测试命令4
输入命令:async 10.11.0.59 8888 3
执行完同步命令后会自动同步bho.xml文件,文件默目录是“C:\ Freesvr\BHO”,如果配置文件中进行了配置,则会使用配置文件中的目录,需要注意的是,该目录的配置与应用程序发布中BHO文件夹中配置文件的目录要相同,这样BHO钩子才能读取到文件:
4.2用ClientSocket.php进行测试
该php文件里,只有一个函数,用于向服务器端发送账号同步的请求,如下图所示,详细代码请参考文件:
这里简单展示一下测试结果:
(1) 首先测试命令2,
执行如下函数:
命令2是添加指定用户,执行结果:
如果命令2换成
执行结果:由于数据库中不含有该账号,因此添加失败。
(2) 测试命令3:
执行如下函数
执行结果:
账号禁用成功!
命令1这里就不在测试,前面已经用“ClientText.exe”测试过了。
5. 修改配置文件
账号同步服务程序的默认安装目录是:
“C:\Program Files\Freesvr\AccountsSyncService”
如果修改了配置文件,重新启动服务后才能生效,配置文件内容如下:第一个是默认密码的开关,取值有两个:“ON”代表采用默认密码,“OFF”代表采用数据库中的密码