ATS标准插件( 4 ) Cache Key Manipulation Plugin

ATS标准插件( 4 ) Cache Key Manipulation Plugin
这个插件十分有用,可以对http请求中的一些值进行过滤,从而控制对于http请求的缓存,如: 对请求参数进行排序,以防止由于请求参数重新排序引起的缓存未命中。 通过名称或正则表达式的设置使得某些请求不被缓存(黑名单)。 忽略全部请求,即让所有资源都不缓存。 通过名称或正则表达式的设置使得某些请求被缓存(白名单)。 按名称包含标题或Cookie。 通过User-Agent获取值。 使用User-Agent和正则表达...

ATS标准插件( 3 ) Background Fetch Plugin

ATS标准插件( 3 ) Background Fetch Plugin
这个插件使得ATS可以直接从原始服务器上获取完整的视频资源或文件资源到缓存中。因为ATS默认情况下不缓存响应为206的资源,所以在客户端请求资源带byte-Range(http协议头中包含的字段)的时候,此插件可以让ATS缓存整个目标资源。 引用官方原文: Using the plugin 做全局插件使用是,在plugin.config文件中进行如下设置: background_fetch.so --config <config-file>   做remap插件时,在remap.c...

ATS标准插件( 2 ) AWS S3 Authentication

ATS标准插件( 2 ) AWS S3 Authentication
这个插件可以支持对Amazon S3身份验证(具体使用场景我还没有遇到,留待后续补充)。官方文档的意思是,当你用S3作为原始服务器,但又不想别人直接访问这台服务器时,可以使用这个插件(细细品味之后还是没懂)。 引用官方原文: Using the plugin 该插件在remap规则中使用: # remap.config ...  @plugin=s3_auth.so @pparam=--access_key @pparam=my-key \ @pparam=--secret_key @pparam=my-secret \ @pp...

ATS标准插件( 1 ) AuthProxy

ATS标准插件( 1 ) AuthProxy
这个插件可以将请求授权交给其他http服务。 说实话,我对于http授权这事还不是很明白,仅仅了解到没有授权会返回401。所以这个插件的用途也还没弄清楚。先放在这里,以后用到再做适当补充。 引用官方原文: Plugin Options --auth-transform=TYPE 这个选项可以设置两个值,head或redirect。 当使用head时,会把请求转成HEAD请求(只请求头信息),如果返回的是200 OK,再进行后续请求。 当使用range时,将...

写给自己的话

写给自己的话
还记得大概两年前,也是初夏时节。我在csdn上写了第一篇激励自己学习的文章,之后便开始了每天更新一篇suricata源码分析。用了近一月的时间,把自己从suricata的门外带了进来。回想那时,学习是痛苦的,但进步也是飞速的。 之后很长的一段时间里,虽偶有更新,但大多都只是做个记录或随笔。没有成系统的进行学习。一年多的积累,居然不及当初一个月的成果显著。想想之前虚度的光阴,不免令人唏嘘。 时隔两...

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_...
Copyright © 九毛的官方博客 保留所有权利.   Theme  Ality

用户登录