存档

文章标签 ‘nf_conntrack’

Linux下如何在应用层获取连接跟踪事件

2018年2月23日 没有评论 336 次浏览

承接上一篇,如果不仅仅只是需要系统当前连接跟踪的静态信息,而需要及时获取连接跟踪的事件信息,又该怎么做? 有两个示例可以获取Linux系统当前的连接跟踪信息,并在连接跟踪事件发生(例如新建连接,断开连接)时进行及时回调: 这里有一个go语言实现的程序:https://github.com/akashihi/conntrack-logger 在源码包libnetfilter_conntrack-1.0.6的utils目录下也有几个类似的实现: conntrack_events.c、ctexp_events.c、expect_events.c。 以conntrack_events.c为例看看效果: 1,先看看代码: #include... [阅读更多]

Linux下如何在应用层获取连接跟踪信息

2018年1月28日 没有评论 74 次浏览

一,办法1 写个内核模块,吧啦吧啦,这个看上去比较容易,但缺陷是: 1,如果要支持的系统环境比较复杂,比如有Ubuntu、CentOS、Fedora等不同的发行版,各个发行版还有不同的版本如Ubuntu12.04、Ubuntu14.04等,那么维护的工作量非常巨大。 2,内核代码一出错就宕机,风险极大。 二,办法2 采用pcap将数据包抓到应用层,分析数据包来进行连接跟踪,缺陷是包分析的工作量极大,抓包的对系统性能的极大损耗,而且万一有漏包,会导致连接跟踪信息不准确。 因此比较好的方式是直接利用系统自带的接口来获取,而Linux系统的nf_conntrack模块就提供了这个接口: #... [阅读更多]