• 文章搜索:
  • 灵犀一指

        • 分享到...

        • 新浪微博
        • 腾讯微博
        • 推荐到豆瓣 豆瓣空间
        • 分享到搜狐微博 搜狐微博
        • 分享到QQ空间 QQ空间
        • 分享到腾讯朋友 腾讯朋友
        • 网易微博分享 网易微博
        • 添加到百度搜藏 百度搜藏
        • 转贴到开心网 开心网
        • 转发好友 告诉聊友
    • 推荐
    • 打印
    • 收藏

    十年磨一剑,MSR userlog的点点滴滴

    作者:  |  上传时间:2014-11-26  |  关键字:十年磨一剑,MSR userlog的点点滴滴

    一、 组网:

    图1

    私网上的PC通过MSR-NAT设备访问公网上的设备MSR;

    MSR-NAT上配置NAT功能,它对私网用户和公网设备之间往来的报文做地址转换,并将NAT日志以UDP报文方式送往NAT日志服务器;

    二、 问题描述:

    问题一:

    通过在syslog server上抓包显示,发现MSR-NAT设备传过来的报文通过wireshark打开只能看到源端口为40000,目的端口为30017的UDP报文,看不到正常的userlog报文,如图2所示:

    图2

    问题二:

    解决了问题一之后,发现通过抓包看不到报文的目的地址字段填写的是NAT转换后的源地址,而报文访问的真正的目的地址却看不到,如图3所示:

    图3

    三、 过程分析:

    问题一分析:

    问题原因为userlog报文输出为私有格式,必须在wireshark中导入我司的专用插件userlog.lua才能解读。

    问题二分析:

    问题原因为MSR系列路由器只持支userlog V1版本,此版本只能支持记录源地址和目的地址两个字段,而我们的userlog.lua插件实际上是对报文的顺序读取来取值,所以导致信息填写位置错误,如下:

    Userlog原始信息:

    %%10USERLOG/6/USERLOG_NAT(l):-protType(1001)=ICMP-

    insideIPAddr(1003)=3.3.3.3- //源地址

    insidePortNum(1004)=8-insideNatIPAddr(1005)=1.1.1.1- //转换后地址

    insideNatPortNum(1006)=12296-destIPAddr(1019)=1.1.1.2- //目的地址

    destPortNum(1020)=8-beginTime_e(1013)=01012007034813-

    endTime_e(1014)=01012007034927-Operator(1112)=(1)Normal over

    在提取数据的时候,顺序提取,将源地址3.3.3.3放到了Source Address中,将转换后的地址1.1.1.1放到了Destination Address中,而真正的目的地址1.1.1.2由于没有地方可放置而丢弃,如图4所示:

    图4

    四、 解决方法:

    问题一解决方法:

    将插件userlog.lua按照如下方法安装:

    1、 将userlog.lua文件放到在wireshark安装目录(如C:/Program Files/Wireshark),如图5所示:

    图5

    2、 然后修改wireshark安装目录下的init.lua文件,如图6所示:

    图6

    (1) 把disable_lua = true; do return end;这行注释掉:在前面加“--”,如图7所示:

    图7

    如果原本为--disable_lua = false,则不用修改,如图8所示:

    图8

    (2) 然后在init.lua文件最后面加一句:dofile("userlog.lua"),如图9所示:

    图9

    (3) 如上操作完成后,关闭wireshark软件,重新打开抓包,就可以看到userlog报文了,如图10所示:

    图10

    问题二解决方法:

    MSR只支持userlog V1版本,这个版本和日志服务器配合使用的时候,只能上传源地址和目的地址,无法上传nat转换后的地址,比如源地址为3.3.3.3,访问1.1.1.2地址,nat转换后为1.1.1.1访问1.1.1.2,userlog V1版本只能上传源地址为3.3.3.3,目的地址为1.1.1.2,看不到转换后的1.1.1.1这个地址。

    而且,MSR的userlog无法和SecCenter配合,缺少相应的特征库,在PC上抓包可以看到报文,但是SecCenter无法写入到NAT日志中。

    可以使用如下方法解决以上问题:

    首先将userlog日志放入到设备的logbuffer中,然后部署一台syslog服务器,实时读取logbuffer的内容,这样既省去了部署复杂的userlog服务器,也解决了userlog V1版本的限制。

    配置userlog放入logbuffer方法:

    userlog nat syslog //将nat session放入syslog中

    nat log enable //开启nat日志功能

    info-center loghost 2.1.1.2 //配置syslog 服务器地址

    syslog服务器部署方法,下面以3CDaemon软件为例:

    1、 打开3CDaemon软件,选择syslog server选项,如图11所示:

    图11

    2、 选择Configure Syslog Server选项,设置syslog日志的存放路径和文件名称,如图12所示,选择的路径为C:\Users\PC\Desktop\盘,也就是桌面,文件名称为syslog.log

    图12

    3、 点击图标,运行syslog server,当图标变为后,说明软件已经运行,如图13所示:

    图13

    4、 点击view log file按钮,打开日志记录,可查阅记录的内容,如图14、图15所示:

    图14

    图15

    logbuffer中的内容:

    May 28 15:04:14 2.1.1.1 Jan 1 03:49:27 2007 H3C %%10USERLOG/6/USERLOG_NAT(l): -protType(1001)=ICMP-insideIPAddr(1003)=3.3.3.3-insidePortNum(1004)=8-insideNatIPAddr(1005)=1.1.1.1-insideNatPortNum(1006)=12296-destIPAddr(1019)=1.1.1.2-destPortNum(1020)=8-beginTime_e(1013)=01012007034813-endTime_e(1014)=01012007034927-Operator(1112)=(1)Normal over

    上述标蓝的地方分别为:

    协议、源地址、转换后的源地址、目的地址

    附:userlog v1报文头格式:

    图16

    五、 附件