ifmodule mod php5.c,mod_sflow 轻量、实时的流量分析 Apache 模块

mod_sflow是一个基于 Apache 的轻量、持续、实时的 sFlow 模块。

bVb6R2

什么是 sFlow

sFlow 是一种网络流量分析的协议。通过流量分析,可以实现更有效地监控网络的状况。例如,最近爆出的OpenSSL心脏出血漏洞,由于是通过 OpenSSL 漏洞直接读取内存信息,而不是直接入侵系统,因此服务器日志上不会有相关的记录,使用常规手段难以难以追查。但是,由于来回通信包的长度等特征非常明显,因此利用sFlow之类的技术分析流量特征,就可以追溯攻击流量和攻击历史。特别是,这次的 OpenSSL 漏洞可以无限制反复利用,这既方便了攻击者,不用依靠精妙的技巧来操控读取地址,反复读取即可获得大量内存片段,另一方面也使攻击行为更容易被侦测到。

目前已有大量设备支持sFlow协议。sFlow协议的以下特性使其非常适合监测大流量传输的网络:

使用内置在硬件中的专用芯片,减轻路由器或交换机的CPU、内存负担。

通过分布在网络不同位置的 sFlow agent 将数据传送给中央 sFlow 采集器,由中央采集器进行分析。

使用采样分析技术。大部分的包被丢弃,只留下样本被传送给采集器。sFlow 协议也支持 1:1 的采样,也就是收集每个包的信息。只不过具体的芯片实现的最大采样率有所不同。

mod_sflow 就是一个开源的 sFlow 中央采集器,可以实时分析收到的 sFlow 数据。

安装

编译安装此模块于 Apache 的模块目录,同时在 apache httpd.conf 目录中添加此项:

rm -f `apxs -q LIBEXECDIR`/mod_sflow.so

apxs -c -i -a mod_sflow.c sflow_api.c

重启 Apache 服务:

apachectl restart

注意,rm -f那一步很重要。这是 Apache #47951 问题的临时解决方案。

配置

mod_sflow 会读取 /etc/hsflowd.auto的信息。这个文件会在你运行hsflowd服务时自动生成。

你也可以在httpd.conf 或 ../httpd/conf.d/sflow.conf 中配置:

SetHandler sflow

重启 Apache 后,你可以访问 http:///sflow/ 来查看状态:

counter method_option_count 0

counter method_get_count 34

counter method_head_count 0

counter method_post_count 0

counter method_put_count 0

counter method_delete_count 0

counter method_trace_count 0

counter method_connect_count 0

counter method_other_count 0

counter status_1XX_count 0

counter status_2XX_count 17

counter status_3XX_count 0

counter status_4XX_count 17

counter status_5XX_count 0

counter status_other_count 0

string hostname 10.0.0.119

gauge sampling_n 400

输出

mod_sflow 的会在 UDP 端口输出内容。你可以使用支持 sFlow 协议的工具查看,例如,免费软件 sflowtool。

sflowtool的会输出类似如下的内容:

startDatagram =================================

datagramSourceIP 10.0.0.150

datagramSize 192

unixSecondsUTC 1294168545

datagramVersion 5

agentSubId 32576

agent 10.0.0.150

packetSequenceNo 7

sysUpTime 25000

samplesInPacket 1

startSample ----------------------

sampleType_tag 0:1

sampleType FLOWSAMPLE

sampleSequenceNo 1

sourceId 3:65537

meanSkipCount 400

samplePool 124

dropEvents 0

inputPort 0

outputPort 1073741823

flowBlock_tag 0:2100

extendedType socket4

socket4_ip_protocol 6

socket4_local_ip 10.0.0.150

socket4_remote_ip 10.0.0.70

socket4_local_port 80

socket4_remote_port 63023

flowBlock_tag 0:2201

flowSampleType http

http_method 2

http_protocol 1001

http_uri /membase.php

http_host 10.0.0.150

http_useragent Java/1.6.0_22

http_bytes 3487

http_duration_uS 24278

http_status 200

endSample ----------------------

endDatagram =================================

startDatagram =================================

datagramSourceIP 10.0.0.150

datagramSize 116

unixSecondsUTC 1294168501

datagramVersion 5

agentSubId 32576

agent 10.0.0.150

packetSequenceNo 3

sysUpTime 42000

samplesInPacket 1

startSample ----------------------

sampleType_tag 0:2

sampleType COUNTERSSAMPLE

sampleSequenceNo 3

sourceId 3:65537

counterBlock_tag 0:2201

http_method_option_count 0

http_method_get_count 113

http_method_head_count 0

http_method_post_count 0

http_method_put_count 0

http_method_delete_count 0

http_method_trace_count 0

http_methd_connect_count 0

http_method_other_count 0

http_status_1XX_count 0

http_status_2XX_count 112

http_status_3XX_count 0

http_status_4XX_count 1

http_status_5XX_count 0

http_status_other_count 0

endSample ----------------------

endDatagram =================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值