nfdump软件使用总结

时间:2022-08-14 20:18:49

nfdump是一款开源的netflow收集、存储、过滤、统计分析软件。目前支持 netflow v5、v7和v9版本.

软件地址:http://nfdump.sourceforge.net/

一 . nfdump安装

首先下载软件nfdump-1.6.4.tar.gz。

http://sourceforge.net/projects/nfdump/

目前最新版本为1.6.4.

# tar zxvf nfdump-1.6.4.tar.gz

# cd nfdump-1.6.4

# ./configure --prefix=/usr/local/nfdump

# make

# make install


将nfdump可执行文件加入到PATH目录中。

export PATH=/usr/local/netflow/bin:$PATH


二. nfdump使用

nfdump包含了五个命令,nfanon, nfcapd, nfdump, nfexpire和nfreplay,其中比较常用的只有nfcapd和nfdump。

下面就分别介绍这五个命令。

1.nfanon

nfanons使用CryptoPan模块实现netflow记录中所有IP地址(源 IP、目的IP、下一条、路由器IP)的匿名。

用法:

-r inputFile :指定单个输入文件, 如 -r nfcapd.201109020900

-R expr :指定一个目录或一组输入文件,如 -R /data/flows/nfcapd.201109020900:nfcapd.201109201000

-M expr :指定多个目录下的输入文件,如 -M /data/flows/router1:router2:router3

-w outputfile :指定输出文件

-K key :指定key, key用来初始化Rijndael加密算法,是一个32个字符的字符串,或64个以0x十六进制数值串。


2.nfexpire

nfexpire: 用于历史netflow数据文件到期的管理。文件的到期管理可以使用nfcapd的自动到期模式或nfexpire实现。

用法:

-l directory :列出directory datadir的当前数据统计;

-r directory :重扫描指定目录以更新统计文件;

-e datadir :指定到期文件目录

-s maxsize :设置目录的大小限制,接收如下格式参数, 100M, 100MB, 1.5G, 1.5T, 1.5TB等,0取消最大尺寸限制。

-t maxlife_time :设置目录下文件的最大存活期。接收如下格式参数,31d, 240H, 4w,0取消最大时间限制。

-u datadir :更新尺寸和生命期限制。

-w watermark :设置过期数据的百分比%, 默认为95%。

-h :帮助

-Y :将结果以可解析方式输出。


3.nfreplay

nfreplay :netflow的重放程序。从nfcapd存储的文件读取数据,将其发送到其他主机或广播组。过滤器语法与 nfdump相同。

用法:

-H remotehost :远程主机

-j mcastgroup :广播组

-p port :远端端口,默认为9995

-4 :强制将流发送到IPv4地址;

-6:强制将流发送到IPv6地址;

-v num :发送netflow的版本号(5, 9),默认为版本5.

-d usec :每条记录延迟usec毫秒,默认为0

-b buffersize: 设置发送缓冲区大小

-r inputfile :输入文件

-t timewin : 记录的时间窗,YYYY/MM/dd.hh:mm:ss-YYYY/MM/dd.hh:mm:ss

-c num :只发送前num条记录

-V :输出nfreplay版本

-h :帮助

4. nfcapd

nfcapd :netflow接收守护进程。从网络上读取netflow数据,并存出到文件。每个n分钟(通常是5分钟)自动生成文件。

用法:

-p portnum :指定接收端口号, 默认为9995

-b bindhost :绑定监听主机地址。

-4 :强制只监听IPv4地址;

-6 :强制只监听IPv6地址;

-j MulticastGroup :加入广播组监听;

-R host[/port] :开启数据包中继,将收到的所有包发送到另一台设备;

-I IdentString :指定标识字符串,用于统计记录中区分源。默认为none

-l base_directory :指定输出文件存储根目录;

-n <Ident, IP, base_directory> :通过源IP地址指定Ident

-f <pcap_file> :读取pcap_file

-s <rate> :指定netflow记录的采样比。

-S <num> :指定文件存储目录结构。

0  default     没有层级结构

1 %Y/%m/%d year/month/day

2 %Y/%m/%d/%H year/month/day/hour

3 %Y/%W/%u year/week_of_year/day_of_week

4 %Y/%W/%u/%H year/week_of_year/day_of_week/hour

5 %Y/%j year/day-of-year

6 %Y/%j/%H year/day-of-year/hour

7 %Y-%m-%d year-month-day

8 %Y-%m-%d/%H year-month-day/hour


-T <extension list> :指定存放在netflow文件中的扩展信息,;
-t interval :轮转文件的间隔,秒为单位,默认为300秒
-w 实现文件输出时间对齐,如5分钟为输出间隔时,将时间对齐为0, 5, 10... 默认不对齐
-x cmd 每个间隔的最后,当新文件可用时运行cmd命令
-X 收集并嵌入扩展统计信息。
-e :自动文件过期;
-P pidfile :指定pid文件名
-D :指定为守护进程模式
-u userid
-g groupid
-B bufflen:指定socket缓冲区
-E 将netflow记录以nfdump原始格式输出到标准输出。
-z 压缩
-V :输出nfcapd版本
-h :输出帮助信息

实例:
nfcapd -z -w -D -T all -p 9995 -l /data/flows -S 0 -P nfcapd.pid


5. nfdump

nfdump是nfdump软件包中最重要也是最复杂的程序。实现了netflow记录的过滤、聚合、top统计、排序等功能。

用法:

1>输入

-r inputfile :单个文件

-R expr : 同一目录下多个文件

-M expr :多个目录下多个文件

2>输出

-w outputfile :指定将二进制netflow记录输出到outputfile以便nfdump进一步处理。如果不指定,则以文本方式输出到标准输出。

-I :输出流统计信息;

-o format :指定输出格式

raw :将每条流记录多行输出;

line :将每条流记录单行输出,默认格式;

long :将每条流单行输出,有更加详细信息;

biline :和line相同,用于双向流

bilong :和long相同,用于双向流

extended :扩展模式

csv :csv逗号分割文本

pipe :字段通过|分割

fmt:format :自定义输出格式

-q :禁用首行和尾部统计信息;

-N :输出中输出普通数值,即不用M, G等表示

-v file :验证文件版本等信息;

-V :输出nfdump版本;

-h :帮助


3>过滤

-f filterfile :指定过滤配置文件

此外过滤可以直接在命令行指定。

过滤器语法如下:

expr and expr, expr or expr, not expr

include

@include <file>

protocol version

inet or ipv4 : IPv4

inet6 or ipv6 :IPv6

protocol

proto <protocol> : <protocol>可以是字符串tcp, udp等,也可以是6, 17等;

IP address

[SourceDestination] ip <ipaddr>

[SourceDestination] host <ipaddr>

[SourceDestination] ip in [, <iplist> ]

[SourceDestination] host in [ <iplist> ]

<iplist>用空格分割




4>聚合

-A aggregation

aggregation是逗号分割的tags,tags包含如下:

proto           IP协议

srcip 

dstip

srcip4/net

srcip6/net

dstip4/net

dstip6/net

srcnet

dstnet

srcport

dstport

srcmask

dstmask

srcvlan

dstvlan

srcas

dstas

inif

outif

next

bgpnext

insrcmac

outdstmac

indstmac

outsrcmac

tos

srctos

dsttos

mpls1 --- mpls10


5>统计

-s statistic[:p][/orderby] 提供Top统计



6>其它


实例:

nfdump -r nfcapd.201109020900 'net 192.168.1.0/24 and proto tcp' -o line