博客主机
A-A+

suricata 3.1 源码分析8

2017年08月22日 suricata 暂无评论
博客主机

CSetStartTime(&suri);

设置记录开始时间

    SCDropMainThreadCaps(suri.userid, suri.groupid);

去除主线程的权限。这个是通过libcap-ng实现的,首先调用capng_clear清空所有权限,然后根据运行模式添加一些必要权限(主要是为了抓包),最后调用capng_change_id设置新的uid和gid。主线程的权限应该会被新建的子线程继承,因此只需要在主线程设置即可。

    if (suri.run_mode != RUNMODE_UNIX_SOCKET) {
        RunModeInitializeOutputs();

初始化所有Output模块。这些模块之前在线程模块注册函数里已经都注册了,这里会根据配置文件再进行配置和初始化,最后把当前配置下启用了的output模块放到RunModeOutputs链表中。目前我了解到的全部的log都是在这里初始化的,包括自己扩展的log模块也在这里。

        StatsSetupPostConfig();

根据配置初始化stats的各项内容,stats主要用于统计收发包的数量,从2~4层全部都有。自己添加的统计也在这里面。

    }

    if (suri.run_mode == RUNMODE_CONF_TEST){
        SCLogNotice("Configuration provided was successfully loaded. Exiting.");
        MagicDeinit();

初始化Magic模块。Magic模块只是对libmagic库进行了一层封装,通过文件中的magic字段来检测文件的类型(如”PDF-1.3“对应PDF文件)。

        exit(EXIT_SUCCESS);
    }
标签:
博客主机

给我留言

Copyright © 九毛的官方博客 保留所有权利.   Theme  Ality

用户登录

分享到: