天天看点

panabit虚拟机安装以及实现的细节研究

    panabit是国内协议识别性能最高的厂商,作为一个安全开发者,确实很有理由去研究下。

    panabit一般运行在freeBSD系统下,但是最近的版本都有liveCD这也省去了我很多下在系统的时间。直接用vmware新建一个虚拟机,如果需要功能正常的话,至少需要3块网卡,通过liveCD启动,然后运行./setup, 虚拟机的安装就搞定了。panabit的数据网卡只能运行在2层模式(网桥模式), 不支持路由,有点遗憾。

    安装完成后重起系统,执行/usr/panabit/bin/ipectrl start启动panabit服务。如果安装时配置的IP为192.168.80.123,那么就可以在主机上通过IE查看管理页面了。访问方式为https://192.168.80.123, 注意是https。

    panabit系统将硬盘分为以下几个分区

Filesystem     Size    Used   Avail Capacity  Mounted on

/dev/da0s1a     91M     21M     62M    25%    /

devfs          1.0K    1.0K      0B   100%    /dev

/dev/da0s2a     15M    4.8M    9.0M    35%    /usr/panabit      //主程序

/dev/da0s3a     23M     22K     21M     0%    /usr/panaetc      //配置文件

/dev/da0s4a     19G     40K     18G     0%    /usr/panalog     //纪录日志信息

/dev/md1        31M    4.7M     24M    17%    /usr/ramdisk      //这是一个内存镜像, 应该是升级的时候用到

在目录/usr/panabit目录下

2       ./.snap

2       ./rdf

32      ./kernel/joskm.ko

352     ./kernel/if_em.ko

114     ./kernel/ixgbe.ko

10      ./kernel/josnet.ko

510     ./kernel

2       ./etc/version

2       ./etc/localtime

2       ./etc/panabit.inf

8       ./etc

4       ./bin/natcfg

608     ./bin/floweye

128     ./bin/ipe_datamon

256     ./bin/ipe_xping

272     ./bin/ipe_mgd

64      ./bin/ipe_httpd

8       ./bin/ipe_monitor

10      ./bin/ipectrl

2       ./bin/natinit

1280    ./bin/panaos

190     ./bin/lcdshow

2824    ./bin

admin目录下存放的是web后台, etc下存放的version是特征库的版本,localtime是本地时间配置。

kernel下是内核模块,if_em.ko应该是内核的接口驱动,josnet应该就是说的内核网口调度相关的实现了,好像是重写了poll接口。我很高兴看到ixgbe.ko,至少让我明白panabit也用到了UIO来优化性能(ixgbe是一个开源项目)。老版本没有ixgbe.ko文件,这个文件应该是为了应付i386多核的性能优化加入的,同时也可以猜测出多核模式下panaos进行的多线程绑定关系。

bin目录下我就我个人理解来说下都是干嘛用的。

         floweye   流量分析展示

        ipe_datamon 数据中心

        ipe_xping       不明白,有谁知道可以告知下

        ipe_mgd       应该是消息中心

        ipe_httpd      web服务器

        ipe_monitor   监控

        ipectrl            启动脚本

        panaos         这个应该是流量解析的主程序。

我很遗憾没有看到真实的特征库,而是一个个的可执行文件。

为了分析是否真的有特征库, 我特意到panabit官网下载了个特征库Panabit_20100524_FreeBSD7x_new.pdb,以为能看出点端倪,结果很失望。

Panabit_20100524_FreeBSD7x_new.pdb就只是一个gz格式的tar压缩包。

通过以下命令就能解压

mv Panabit_20100524_FreeBSD7x_new.pdb Panabit_20100524_FreeBSD7x_new.tar.gz

tar -zxvf Panabit_20100524_FreeBSD7x_new.tar.gz

解压后只有floweye  ipe_datamon  panaos  version这个文件。所以可以肯定是panabit执行代码和库是绑定的。这有别于传统的协议识别引擎,

传统的识别引擎和库是分离的, 也就是说引擎一般是一个可执行的程序或者代码段,而特征库在引擎启动时进行加载,库一般是一个加密文件。

那么我觉得一种就是在代码中通过if else这种逻辑去判断是什么协议,这种实现效率和代码逻辑感觉都不好。

那另外一个就是代码中已经将特征进行了预编译,启动时直接使用内存镜像,省去了预编译等等工作。

个人觉得应该是第二种情况。

在panabit的官网中也提到了特征库的描述语言。“协议特征描述语言”——PSDL(Protocol Signature Description Language)“

继续阅读