构建 ntop 流量捕捉/记录/分析环境


免费许可

ntop 免费提供给学校以及研究机构使用。

申请地址:https://www.ntop.org/support/faq/do-you-charge-universities-no-profit-and-research/

发邮件即可

安装

可以参考 Pf_ring 安装和使用教程

好处是中文,但不全。

从源代码构建

使用包安装

开始抓包!

过滤规则

ntop 使用的是 BPF 过滤规则

BPF简介

BPF(Berkeley Packet Filter) 全称为伯克利包过滤,是一种功能非常强大的过滤语法.这个语法被广泛应用于多种数据包嗅探软件,因为大部分数据包嗅探软件都依赖于使用 BPF 的 libpcap/WinPcap 库.诸如 tcpdump, wireshark 等等

BPF详解

使用BPF语法创建的过滤器被称为表达式,并且每个表达式包含一个或多个原语.每个原语包含一个或多个限定词,然后跟着一个ID或者数字

BPF限定词:

限定词 说明 例子 Type 指出ID或数字所代表的含义 host, net, port Dir 指明数据包传输方向 src, dst Proto 限定所要匹配的协议 ether, ip, tcp, udp, http, ftp 表达式示例:

过滤器示例

该表达式的含义是只捕获目的地址为192.168.0.10以及端口为80的tcp流量

可以使用以下3种逻辑运算符,对原语进行组合,从而创建出更高级的表达式

  • &&: 连接运算符 与
  • ||: 选择运算符 或
  • !: 否定运算符 非
主机名和地址过滤器

大多数过滤器都专注于一个特定的网络设备.这种情况下,可以根据设备的MAC地址,IPv4地址,IPv6地址或者DNS主机名配置过滤规则

host限定词用于捕获特定主机名或IP地址的流量:

host 192.168.10.1
host fe80::3c42:d5ff:fe22:1d63
host testserver

如果考虑到一台主机的IP地址会变化,可以加入ether限定词对MAC地址进行过滤:

ether host 3e:42:d5:22:1d:63

传输方向限定词可以用来捕获流入或流出某台主机的流量:

src host 192.168.10.1

当一个原语中没有指定一种类型限定符时,host限定词将作为默认选择:

src 192.168.10.1

端口和协议过滤器

不仅仅可以基于主机过滤,也可以基于端口进行过滤:

port 80

如果想要捕获非80端口的流量:

!port 80

端口限定符可以和传输方向限定符一起使用:

dst port 80

端口限定符也可以和某些基于端口之上的协议一起过滤:

tcp port 8080

另外一些协议并不能简单的使用端口定义:

icmp
!ip6
协议域过滤器

协议域过滤器是BPF语法的一个强大的功能,我们可以通过检查协议头的限定字节来创建基于某些数据的过滤器

代表目标不可达(类型3)信息的ICMP数据包:

icmp[0]==3 // ICMP 协议头的第一个字节是否等于3

代表echo请求(类型8)或echo回复(类型0)的ICMP数据包:

icmp[0]==8||icmp[0]==0

可以在偏移值的后面以冒号分隔加上一个数值,代表数据长度:

icmp[0:3]==0x030104

还有一种情况是一个字节中每一个比特位都是标志位,这样我们需要先引用相关的字节,再使用”位掩码”逐位地把我们需要检查的位分离出来:

tcp[13]&4==4
ip[0] & 0x0F > 0x05
文档

文章作者: sfc9982
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 sfc9982 !
  目录