H3C(华三)IMC与网络行为管理系统用户集成

公司为增强网络信息安全管理,监控并审计用户网络行为(WEB应用、游戏、P2P、IM、数据库、远程访问、FTP等),计划完成网络行为管理系统实施。

1.背景
A.
当前公司网络核心设备是H3C 7506E-S,双电源双引擎,上了防火墙板和交换板。因此要实施网络行为管理系统,到底以何种方式接入是个头痛的问题;
B.用户接入网络使用H3C的Portal认证。

2.选型
首次邀约的供应商包括:网康科技、杭州迪普科技、上海互普。深信服以前有接触过,他们产品经理连本身产品功能也讲不清楚,价格也不便宜,本次就不考虑了。
至日志发布时止,已通过“讲方案 > 功能测试 > 性能测试 ” 三个阶段,入围的是:杭州迪普科技、上海互普。商务谈判、实施还在进行中。

3.接口开发
几家供应商的系统都有本身有用户管理模块。咱们300多接入用户,近千MAC地址,若是在IMC系统和网络行为管理系统中都维护一次,人力成本过高。加之IMC为JAVA写的WEB系统,开通一个帐号还要切换几个页面,操做起来也不简捷。因此我考虑开发一个工具将这些数据统一块儿来管理,同时实现IMC用户管理的功能,提升工做效率。
开发目标:
A.程序
实现IMC用户管理:平台用户的建立、接入用户建立、服务开通、服务注销、接入用户密码修改、接入用户最大链接数修改、用户绑定MAC地址增长和删除。
B.同步
用户、MAC地址至网络行为管理系统。


3.1 实现IMC用户管理功能
首先,Profiler了一下IMC用户管理的整个过程,涉及2个数据库2个架构5张表:
平台用户:config_db.imc_config.tbl_user
接入用户:ead.ead.TBL_ACM_USER
接入服务:ead.ead.TBL_ACM_SERVICE
产品:ead.ead.TBL_USER_PRODUCTS
MAC地址:ead.ead.TBL_USER_IP_MAC_INFO
其关系以下图(下图为本人自行绘制,仅列出关键字段,外键名为绘制时系统生成):

图片
IMC系统中操做步骤为:建立平台用户 > 建立接入用户 > 开通服务,参照此过程,开发实现过程以下:

建立平台用户:计划将certification(IMC中为证件号)利用起来,能够看成接入用户登陆名。

建立接入用户:直接将建立的平台用户资料写入接入用户表。
        plat_user_id对应平台用户表的user_id;
        user_name为登陆名,对应平台用户表certification;
        full_name为姓名,对应平台用户表user_name;
        online_limit为最大链接数,即容许同一用户同时有几个设备能够登陆;
        user_password为密码,由于不知道加密算法,此处有点问题。有2个解决办法:
                 A.写固定密码(从数据库抄) 
                 B.经过IMC的dbman(命令提示符运行)生成密码,命令格式:dbman -encrypt 密码明文。
        C#版密文生成类以下:dbman.exe去IMC服务器上找,里面的ACE.dll以及上层目录中的log目录也一块儿拿下来,不然会报错。
  string GenPassWord(string para)
  {
   System.Diagnostics.Process p = new System.Diagnostics.Process();
   p.StartInfo.WorkingDirectory= Environment.CurrentDirectory+"\dbman";
   p.StartInfo.FileName="cmd.exe";   
   p.StartInfo.UseShellExecute = false;  //不用Shell启动
   p.StartInfo.RedirectStandardInput = true; //输入重定向
   p.StartInfo.RedirectStandardOutput = true; //输出重定向
   p.StartInfo.CreateNoWindow = true;    //不显示窗口
   
   p.Start();
   p.StandardInput.WriteLine("dbman -encrypt "+para);
   p.StandardInput.WriteLine("exit");
   string s= p.StandardOutput.ReadLine();
   s= p.StandardOutput.ReadLine();
   s= p.StandardOutput.ReadLine();
   s= p.StandardOutput.ReadLine();
   s= p.StandardOutput.ReadLine();
   p.Close();
   return s;
  }


开通服务:仿照数据库跟踪数据写入ead.ead.TBL_ACM_SERVICE表和ead.ead.TBL_USER_PRODUCTS表
开发完成后经测试,用户可使用此工具建立的帐号正常登陆并经过Poral认证。

3.2. 同步IMC用户、MAC地址至网络行为管理系统
入围的2个网络行为管理系统都使用MySQL数据库。互普用户资料中要求必须包含如下信息:用户名、IP地址、MAC地址。由于咱们用户IP地址是经过H3C 7506E-S上的DHCP服务动态分配的。即便是作了MAC、IP绑定,咱们须要维护DHCP、IMC上的信息,工做量较大,因此暂时不考虑将IP、MAC地址绑定起来。因此互普这部分的接口先就不作了。

迪普用户资料只须要用户名、MAC地址,IP地址能够自动反解,不须要保存在用户资料中。其用户表主要字段以下:
图片
 咱们公司上网用户存在1人有多个上网设备的状况,即一个用户对应多个MAC地址。由于迪普系统前台建立用户不容许重复,因此前台很差操做。在迪普数据库dp_sys_org_users表中ID为主键,因此经过数据库写入应该是没问题的。

IMC用户、MAC地址同步至迪普系统的业务逻辑处理过程以下:
 A.取IMC用户及MAC地址。此处在ead数据库中写了一个视图,考虑到同一个MAC地址可能会绑定给多个用户(设备会回收并从新发放),致使有MAC地址重复的状况,查询最后绑定的MAC地址,并取惟一值;
 B.逐Mac地址进行检查,是否存在于dp_sys_org_users表中
    如存在且绑定用户与IMC相同,不处理;绑定用户与IMC不一样,以IMC中用户信息为准更新dp_sys_org_users用户信息;
    如不存在此MAC地址,将MAC地址及绑定用户信息插入dp_sys_org_users。
程序实现后经测试,用户、MAC地址可同步至迪普系统。无重复,迪系统能够正常使用。监控信息记录用户与导入用户信息一致。

最终程序展现以下:
 图片
算法

相关文章
相关标签/搜索