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地址可同步至迪普系統。無重複,迪系統能夠正常使用。監控信息記錄用戶與導入用戶信息一致。

最終程序展現以下:
 圖片
算法

相關文章
相關標籤/搜索