トラヒック 監 視 ツールの 紹 介 小 林 淳 史 akoba@nttv6.net 1
トラヒック 監 視 系 のツール(ここを 探 すのが 一 番 よい.) プローブ 系 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あり. 2
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とかと 一 緒 に 使 えば フローサン プルのヘッダまで 簡 単 にデコードできる. 3
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}); ここでデコー ドしてくれる ので 楽. 4
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と 同 じ. 5
収 集 可 能 な 情 報 今 後 BGP Next-Hopはほしい 部 分. 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 6
NFSENの 構 成 nfsen: xfcapd, nfdumpをもとにweb 上 でのグラフィカル 表 示 やnfdumpを 使 ったクエリを 可 能 とする. nfcapd:netflowを 受 信 して 周 期 単 位 にファイルを 蓄 積. sfcapd:netflowを 受 信 して 周 期 単 位 にファイルを 蓄 積. NFSEN Router-a NetFlow nfcapd./profiles/live/router-x/2007/03/02 rounfcapd.200703020100 RRDツール グラフィカル 表 示 Router-b NetFlow nfcapd nfdump クエリ 内 容 の 表 示 Router-c sflow sfcapd フラットファイル 構 成 (5 分 周 期 ) 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 7
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' }, ); 8
Top 画 面 NetFlowのデータにフィルタをかけて 独 自 のプロファイルの 作 成 が 可 能. Flow packets Traffic day グラフの 色 は ルータ 別 に 表 示. week 9
ドリルダウン 詳 細 な 情 報 検 索 が 可 能. 時 間 幅 を 指 定 して 生 データ 出 力,TopN, 集 約. 時 間 幅 の 設 定 10
ドリルダウン 詳 細 な 情 報 検 索 が 可 能. 時 間 幅 を 指 定 して 生 データ 出 力,TopN, 集 約. nfdumpの 情 報 を 出 力 - 生 NetFlowを 出 力 -TopNを 出 力 (SrcIP,DstIP,Port ) クエリ 内 容 指 定 11
ドリルダウン 詳 細 な 情 報 検 索 が 可 能. 時 間 幅 を 指 定 して 生 データ 出 力,TopN, 集 約. IPv6 の 出 力 もOK 12
プロファイルの 作 成 tcpdumpのようなフィルタで 絞 り 込 んだトラヒックの 動 向 を 把 握. DARK.NETに 飛 んでくるTCP SYN(SCANパケット)だけを 監 視. OUT IF 0 and proto TCP and ( flags S and not flags AFRPU ) 13
DARKNETの 分 析 GWのACLでDropするパケットを 集 めてDARKNET 分 析. PortScanの 動 向. 複 数 のGW( /24 )を 跨 る 大 きなSCAN. Top 50 Dst Port ordered by flows: 2007-02-21 10:39:44.757 3.236 TCP 203.130.207.70:4406 -> 192.16.178.96:445 2 96 1 Date first seen Duration Proto Dst Port Flows Packets Bytes 2007-02-21 10:39:45.229 3.208 TCP 203.130.207.70:4425 -> 192.16.178.47:445 2 96 1 2007-03-01 05:39:32.252 65411.336 any 445 34155 653 2007-02-21 10:39:48.097 3.296 TCP 203.130.207.68:41865 -> 192.16.178.180:445 2 96 1 2007-03-01 05:39:31.116 65404.120 any 135 25099 397 2007-02-21 10:39:49.117 3.252 TCP 203.130.207.70:4570 -> 192.16.178.144:445 2 96 1 2007-03-01 05:39:38.800 65404.340 any 139 12895 223 2007-02-21 10:39:50.321 3.232 TCP 203.130.207.68:41943 -> 192.16.178.79:445 2 96 1 2007-03-01 05:39:40.752 65385.443 any 1433 9699 180 2007-02-21 10:39:55.177 3.208 TCP 203.130.207.70:4817 -> 192.16.178.213:445 2 96 1 2007-03-01 05:39:35.512 65397.236 any 2967 8848 156 2007-02-21 10:39:55.381 3.208 TCP 203.130.207.68:42128 -> 192.16.178.215:445 2 96 1 2007-03-01 05:39:40.724 65410.452 any 2968 6632 72 2007-02-21 10:39:56.001 2.980 TCP 203.130.207.69:2169 -> 192.16.178.93:445 2 96 1 2007-03-01 05:40:10.385 65363.942 any 1434 4204 2007-02-21 10:39:57.117 3.236 TCP 203.130.207.70:1063 -> 192.16.178.145:445 2 96 1 2007-03-01 06:05:53.516 61047.275 any 137 4136 41 2007-02-21 10:39:58.705 3.184 TCP 203.130.207.70:1109 -> 192.16.178.50:445 2 96 1 2007-03-01 05:39:59.249 65379.475 any 5900 3726 60 2007-02-21 10:40:02.677 3.236 TCP 203.130.207.68:42403 -> 192.16.178.254:445 2 96 1 2007-03-01 06:50:54.140 60993.435 any 38293 2068 123 2007-02-21 10:40:02.877 2.956 TCP 203.130.207.69:2522 -> 192.16.178.81:445 2 96 1 2007-03-01 05:39:31.937 65403.326 any 2048 1539 65 2007-02-21 10:40:04.813 2.924 TCP 203.130.207.69:2587 -> 192.16.178.42:445 2 96 1 scan 14
何 か 機 能 を 追 加 (plugin) Pluginするのもそれほど 難 しくなさそう. Backend plugins: 周 期 単 位 で 特 定 のpluginをKick.(Perl) 引 数 に profile 名, 時 間 を 教 えてくれるので それをもとにnfdump 可 能. Frontend plugins: ポート 毎 の 状 況 を 表 示 するなどのこともできそう.そ の 他 時 系 列 分 析 など.(PHP) Frontend Plugin Backend Plugin - nfsen.conf - @plugins = ( # profile # module [ '*', 'demoplugin' ], ); sub run { } my $profile = shift; my $timeslot = shift; 略 15
NTOP もともとは キャプチャツール. NetFlow 受 信 のpluginを 動 かしてみる. sflowもある. HOST 毎 にどことつないでいるかの 情 報 がまるわかり ルータ 単 位 に 色 分 け March 2, 2007 xflow Operators Meeting 16
NTOP セグメント 単 位 (ルータ 単 位 )の 接 続 情 報 がわかる. 逆 引 きで 調 べ 尽 くす. 17
NTOP HOST 単 位 の 接 続 情 報 がわかる. 何 をしてるかわかっちゃう. 18