NEW

centos7 部署shadowsocks服务端

centos7 部署shadowsocks服务端
首先说一下写这篇博客的原因,洒家最近告了个vps,无奈系统与业务不匹配,重装了多次。每次恢复shadowsocks找到的文档和方法都不尽相同。为了后续遇到类似情况不至再费诸多功夫,特意整合和参考的几篇文档。 1、关闭防火墙 #查看所有的可用服务 systemctl list-unit-files |grep service |grep enable #关闭服务 systemctl stop ipatables# 开机不启动 systemctl disable iptables 2、安装ShadowSocks ...

suricata 3.1 源码分析12

suricata 3.1 源码分析12
int engine_retval = EXIT_SUCCESS; while(1) { if (sigterm_count) { suricata_ctl_flags |= SURICATA_KILL; } else if (sigint_count) { suricata_ctl_flags |= SURICATA_STOP; } if (suricata_ctl_flags & (SURICATA_KILL | SURICATA_STOP)) { SCLogNotice("Signal Received. Stoppi...

suricata 3.1 源码分析11

suricata 3.1 源码分析11
/* Wait till all the threads have been initialized */ if (TmThreadWaitOnThreadInit() == TM_ECODE_FAILED) { SCLogError(SC_ERR_INITIALIZATION, "Engine initialization failed, " "aborting..."); exit(EXIT_FAILURE); } 等待子线程初始化完成。检查是否初始化完成的方式是遍历tv_root,调用TmThreadsCheckFlag检查子线程的状...

suricata 3.1 源码分析10

suricata 3.1 源码分析10
/* In Unix socket runmode, Flow manager is started on demand */ if (suri.run_mode != RUNMODE_UNIX_SOCKET) { /* Spawn the unix socket manager thread */ int unix_socket = 0; if (ConfGetBool("unix-command.enabled", &unix_socket) != 1) unix_socket = 0; if (unix_socket == 1) { Unix...

suricata 3.1 源码分析9

suricata 3.1 源码分析9
RunModeDispatch(suri.run_mode, suri.runmode_custom_mode) 初始化运行模式。首先,根据配置文件和程序中的默认值来配置运行模式(single、auto这些),而运行模式类 型(PCAP_DEV、PCAPFILE这些)也在之前已经确定了,因此运行模式已经固定下来,可以从runmodes表中获取到特定的RunMode 了,接着就调用RunMode中的RunModeFunc,进入当前运行模式的初始化函数。以PCAP_DEV类型下的autofp模式为例,该模...

suricata 3.1 源码分析8

suricata 3.1 源码分析8
CSetStartTime(&suri); 设置记录开始时间 SCDropMainThreadCaps(suri.userid, suri.groupid); 去除主线程的权限。这个是通过libcap-ng实现的,首先调用capng_clear清空所有权限,然后根据运行模式添加一些必要权限(主要是为了抓包),最后调用capng_change_id设置新的uid和gid。主线程的权限应该会被新建的子线程继承,因此只需要在主线程设置即可。 if (suri.run_mode != RUNMODE_UNIX_...

suricata 3.1 源码分析7

suricata 3.1 源码分析7
DetectEngineCtx *de_ctx = NULL; if (!suri.disabled_detect) { //detect设为启用 SCClassConfInit(); 解析Class相关正则 SCReferenceConfInit(); 解析Refference相关正则 SetupDelayedDetect(&suri); 设置是否延迟检测。若delayed-detect为yes,则系统将在载入规则集之前就开始处理数据包,这样能够在IPS模式下减少系统的down time(宕机时间)。 ...

suricata 3.1 源码分析6

suricata 3.1 源码分析6
if (suri.run_mode != RUNMODE_UNIX_SOCKET) { FlowInitConfig(FLOW_VERBOSE); 初始化Flow engine。用来表示一条TCP/UDP/ICMP/SCTP流的,程序当前所记录的所有流便组成了流表,在flow引擎中,流表为flow_hash这个全局变量,其类型为FlowBucket *,而FlowBucket中则能够存储一个Flow链表,典型的一张chained hash Table。在初始化函数FlowInitConfig中,首先会使用配置文件信息填充flow_...

suricata 3.1 源码分析5

suricata 3.1 源码分析5
if (PostConfLoadedSetup(&suri) != TM_ECODE_OK) { exit(EXIT_FAILURE); } 执行PostConfLoadedSetup,即运行那些需要在配置载入完成后就立马执行的函数。这里面涉及的流程和函数非常多 /** * This function is meant to contain code that needs * to be run once the configuration has been loaded. */ static int PostConfLoadedSetup(SCInstance *su...

suricata 3.1 源码分析4

suricata 3.1 源码分析4
GlobalInits(); 初始化全局变量。包括:数据包队列trans_q、数据队列data_queues(干嘛的?)、对应的mutex和cond、建立小写字母表。 TimeInit(); 初始化时间。包括:获取当前时间所用的spin lock,以及设置时区(调用tzset()即可)。 SupportFastPatternForSigMatchTypes(); 为快速模式匹配注册关键字。调用SupportFastPatternForSigMatchList函数,按照优先级大小插入到sm_fp_support_smlis...
Copyright © 九毛的官方博客 保留所有权利.   Theme  Ality

用户登录