×××帐号同步模块用于同步堡垒机到应用发布服务器之间的帐号
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”代表采用数据库中的密码