トラヒック 監視系のツール(ここを探すのが一番よい.)
http://www.switch.ch/network/projects/completed/TF-NGN/floma/software.html
プローブ系
VERMONT
Maji
softflowd
YAF
コレクタ型
Net::sFlow
Perl モジュール.いろいろ試すのに便利.
Net::Flow
Perl モジュール.いろいろ試すのに便利.
NFSEN
nfdump,nfcapdのツール類を使って、グラフィカルに表示.
NTOP
dumpするツール.NetFlowを受信するplugあり.
Net::sFlow
Perl モジュール AMS-IX Elisaさん作成.
sFlowを使っていろいろ遊ぼうと思うときに有効.
sFlowのペイロードを使って何かする!?
Brocade ACL-based sFlow もデコード可能.
my $sock = IO::Socket::INET->new( LocalPort => '6343',
Proto => 'udp')
or die "Can't bind : $@¥n";
while ($sock->recv($packet,1548)) {
&processPacket($packet);
}
die "Socket recv: $!";
sub processPacket {
my $sFlowPacket = shift;
my ($sFlowDatagramRef, $sFlowSamplesRef, $errorsRef) =
Net::sFlow::decode($sFlowPacket);
# print errors
foreach my $error (@{$errorsRef}) {
warn "$error";
}
略
ここでデコー
ドしてくれる
ので楽.
NetPacket::IPとかと一
緒に使えば、フローサン
プルのヘッダまで簡単
にデコードできる.
Net::Flow
Perl モジュール
NetFlow/IPFIXのデータ内容の確認に有効.
Cisco Flexible NetFlow もデコード可能.
Templateを作ってエンコードも可能.
my $sock = IO::Socket::INET->new( LocalPort => $port,
Proto => 'udp')
or die "Can't bind : $!¥n";
while ($sock->recv($packet,1548)) {
&processPacket($packet);
}
sub processPacket{
my ($pkt,$IPHeaderRef) = @_ ;
my ($NetFlowHeaderRef,$NetFlowRef, $errorsRef) = () ;
my $EncodeHeaderRef = undef ;
my $Session = $IPHeaderRef->{SrcIP} ;
($NetFlowHeaderRef,
$NetFlowTemplateRef->{$Session},
$NetFlowRef, $errorsRef)
= Net::Flow::decode(¥$pkt,$NetFlowTemplateRef->{$Session});
ここでデコー
ドしてくれる
ので楽.
NFSEN
いろいろなところで紹介.
RIPE,NANOG
NetFlowのコレクタ類の中でActivity が高
PHP, Perlを使用.コアのツールはc.
NetFlow v.5 , v.9に対応.
NetFlow v.9 でも取得できる情報は限られる.
IPv6もOK.MPLSでも受けられるが、情報は落ちる.
sFlow v.4 , v.5 に対応.
蓄積の形式は、
NetFlowと同じ.
収集可能な情報
NF9_LAST_SWITCHED
NF9_FIRST_SWITCHED
NF9_IN_BYTES
NF9_IN_PACKETS
NF9_FLOWS
NF9_IN_PROTOCOL
NF9_SRC_TOS
NF9_TCP_FLAGS
NF9_IPV4_SRC_ADDR
NF9_IPV6_SRC_ADDR
NF9_IPV4_DST_ADDR
NF9_IPV6_DST_ADDR
NF9_L4_SRC_PORT
NF9_L4_DST_PORT
NF9_INPUT_SNMP
NF9_OUTPUT_SNMP
NF9_SRC_AS
NF9_DST_AS
今後、
BGP Next-Hopはほしい部分.
NFSENの構成
nfsen: xfcapd, nfdumpをもとにWeb上でのグラフィカル表
示や
nfdumpを使ったクエリを可能とする.
nfcapd:NetFlowを受信して周期単位にファイルを蓄積.
sfcapd:NetFlowを受信して周期単位にファイルを蓄積.
Router-a
Router-b
Router-c
nfcapd
nfcapd
sfcapd
NetFlow
NetFlow
sFlow
フラットファイル構成
(
5分周期)
./profiles/live/router-x/2007/03/02
rounfcapd.200703020100
nfdump
RRDツール グラフィカル表示
クエリ内容の表示
Top 10 Port ordered by flows:
Date first seen Duration Proto Port Flows Packets Bytes pps
2007-03-01 13:14:59.994 262.741 any 135 257 282 17120 1 521 60 2007-03-01 13:15:00.106 270.105 any 53 192 459 70194 1 2079 152 2007-03-01 13:14:33.078 298.849 any 445 138 273 13136 0 351 48 2007-03-01 13:14:53.338 260.561 any 139 41 65 3143 0 96 48 2007-03-01 13:14:34.110 290.993 any 2967 20 37 1820 0 50 49 2007-03-01 13:14:52.090 277.625 any 1433 19 36 1792 0 51 49 2007-03-01 13:15:26.574 249.181 any 2703 17 108 7862 0 252 72 2007-03-01 13:14:38.074 285.581 any 1434 13 13 5252 0 147 404 2007-03-01 13:14:53.062 271.765 any 0 13 320 60275 1 1774 188 2007-03-01 13:15:18.038 210.149 any 2968 12 13 604 0 22 46
NFSEN
nfsen.conf による設定
各種の
DIRの設定.
DISK領域の制限.
ツール類(
pluginsなど)
フラットファイルの構成は、多彩.
# 0 default no hierachy levels - flat layout
# 1 %Y/%m/%d
year/month/day
# 2 %Y/%m/%d/%H year/month/day/hour
略
# 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
$SUBDIRLAYOUT = 0;
ルータ単位にポートを指定して
nfcapdを起動.
%sources = (
‘router-a' => { 'port' => '30002', 'col' => '#0000ff', 'type' => 'netflow' },
‘router-b' => { 'port' => '41001', 'col' => '#ff0000', 'type' => 'netflow' },
‘router-c' => { 'port' => '40000', 'col' => '#FFFF00', 'type' => 'netflow' },
Top画面
Flow
packets
Traffic
day
week
NetFlowのデータにフィルタをかけて
独自のプロファイルの作成が可能.
グラフの色は、ルータ別に表示.
ドリルダウン
詳細な情報検索が可能.
時間幅を指定して、生データ出力,TopN,集約.
ドリルダウン
詳細な情報検索が可能.
時間幅を指定して、生データ出力
,TopN,集約.
クエリ内容
指定
nfdumpの情報を出力
- 生
NetFlowを出力
-
TopNを出力(SrcIP,DstIP,Port…)
ドリルダウン
詳細な情報検索が可能.
時間幅を指定して、生データ出力
,TopN,集約.
IPv6 の出力もOK
プロファイルの作成
tcpdumpのようなフィルタで絞り込んだトラヒックの
動向を把握.
OUT IF 0 and proto TCP and
( flags S and not flags
AFRPU )
DARK.NETに飛んでくるTCP
DARKNETの分析
GWのACLでDropするパケットを集めてDARKNET分析.
PortScanの動向.
複数の
GW(”/24”)を跨る大きなSCAN.
Top 50 Dst Port ordered by flows:
Date first seen Duration Proto Dst Port Flows Packets Bytes 2007-03-01 05:39:32.252 65411.336 any 445 34155 653 2007-03-01 05:39:31.116 65404.120 any 135 25099 397 2007-03-01 05:39:38.800 65404.340 any 139 12895 223 2007-03-01 05:39:40.752 65385.443 any 1433 9699 180 2007-03-01 05:39:35.512 65397.236 any 2967 8848 156 2007-03-01 05:39:40.724 65410.452 any 2968 6632 72 2007-03-01 05:40:10.385 65363.942 any 1434 4204 2007-03-01 06:05:53.516 61047.275 any 137 4136 41 2007-03-01 05:39:59.249 65379.475 any 5900 3726 60 2007-03-01 06:50:54.140 60993.435 any 38293 2068 123 2007-02-21 10:39:44.757 3.236 TCP 203.130.207.70:4406 -> 192.16.178.96:445 2 96 1 2007-02-21 10:39:45.229 3.208 TCP 203.130.207.70:4425 -> 192.16.178.47:445 2 96 1 2007-02-21 10:39:48.097 3.296 TCP 203.130.207.68:41865 -> 192.16.178.180:445 2 96 1 2007-02-21 10:39:49.117 3.252 TCP 203.130.207.70:4570 -> 192.16.178.144:445 2 96 1 2007-02-21 10:39:50.321 3.232 TCP 203.130.207.68:41943 -> 192.16.178.79:445 2 96 1 2007-02-21 10:39:55.177 3.208 TCP 203.130.207.70:4817 -> 192.16.178.213:445 2 96 1 2007-02-21 10:39:55.381 3.208 TCP 203.130.207.68:42128 -> 192.16.178.215:445 2 96 1 2007-02-21 10:39:56.001 2.980 TCP 203.130.207.69:2169 -> 192.16.178.93:445 2 96 1 2007-02-21 10:39:57.117 3.236 TCP 203.130.207.70:1063 -> 192.16.178.145:445 2 96 1 2007-02-21 10:39:58.705 3.184 TCP 203.130.207.70:1109 -> 192.16.178.50:445 2 96 1 2007-02-21 10:40:02.677 3.236 TCP 203.130.207.68:42403 -> 192.16.178.254:445 2 96 1 2007-02-21 10:40:02.877 2.956 TCP 203.130.207.69:2522 -> 192.16.178.81:445 2 96 1