Welcome to SapporoWorks! We create stimulating network programs.
By a demand from user, SapporoWorks evolves.
トップページ| ソフトウエア| シェアウエア登録| セキュリティ情報| 開発情報| ドキュメント|
ドキュメント > ネットワークスニッファVIGILで学ぶ TCP/IP+Ethernet ネットワーク管理講座 > 第3回



--- 出典(ネットワークマガジン)7月号より ---

ネットワークスニファVIGILで学ぶ TCP/IP + Ethernet ネットワーク管理講座

前回はデフォルトルーティング及びネットマスクの検出などについて学習した。今回は、「ネットワーク資源の使用状況確認」「端末の接続状況の確認」「ネットワーク内のルータの検出」について、作者の古谷誠進氏がVIGILでの実装方法を交えながら解説する。



文○古谷誠進 (furuya@sapporoworks.ne.jp)


短期集中連載 第3回

今回の講義内容
1.ネットワーク資源の利用状況確認
2.端末の接続状況確認
3.ネットワーク内のルータの検出



ネットワーク資源の利用状況確認

 企業内のPCの普及やネットワーク化が急速に進行したため、現在では従業員が一人1台のコンピュータを利用できる環境も珍しくありません。しかし、PCやネットワークに関する考え方や習熟度に差があるために、ユーザーのモラルにはかなりの格差があるのも事実です。仕事に使うために整備されたインフラが、ほとんど私的にしか使われていない実態もあるようです。

 一般に、ネットワークを流れるデータを見ることができません。そのため、ユーザーは会社の設備を無駄使いしているという感覚は持っていないのが普通でしょう。しかし、監視されていないからといってネットワークを私的に利用することは、単なる資源の無駄使い以上にもっと危険性の高い問題の原因になります。

 たとえば、社内外の連絡に電子メールを使えば仕事の効率は高まります。現在、電子メールは企業活動にとって必要不可欠のものといっていいでしょう。しかし、個人のPCから簡単にメッセージを送信できてしまうため、とても外部には漏れないような情報でも簡単に漏れてしまいます。勤務先のメールアドレスでメーリングリストに投稿したら、口げんかになってしまうトラブルもあるでしょう。Webの掲示板に勤務先の機密情報を書きこんでしまう人もいるようです。

 いずれにしても、このようなネットワークの使用方法は、企業のイメージダウンにもなりかねません。本来は、ユーザのモラルに任されるべき話ですが、ネットワークを自由に利用できる環境が、一部のユーザによるモラルのない行動を生み出しているのも事実です。実際には、それぞれのネットワークのポリシーの問題になりますが、私的利用や問題ある行為を禁止したり制限したりするには、ネットワークを流れるデータをしっかりと監視することがもっとも有効な手段であることは間違いありません。実際には監視しなくても、「ネットワークの利用状況をすべて監視しています」というアナウンスだけでも、かなりの効果があります。

 前置きが長くなりましたが、VIGILを使えばネットワークの利用状況を監視できます。VIGILは、アプリケーション層のプロトコルのうち、HTTP、SMTP、POP3、UDPを利用しているLAN内向けのインターネットメッセージングである「IP Messenger」などのプロトコルやアプリケーションに対応しています。これらのプロトコルであれば、トラフィックデータからパケットを再構築し、、デコード処理することで、実際にユーザがやりとりしているデータを監視できます。

 なお、HTTP、SMTP、POP3は標準のポート番号ではなく、そのプロトコルの内容で検出しています。たとえば、WWWの標準ポート番号である80/TCP以外のポートを使ってHTTPのプロキシ(トンネル)接続をしていても、通信の内容を見ているのでHTTPとして検出できるわけです。

 ただし、HTTPでは、ブラウザが要求したデータは必ずしもネットワーク経由で取得されるわけではありません。すでにWebブラウザ側にキャッシュがあると、Webブラウザはキャッシュ内容が更新されたかどうかを確認するためにHTTPヘッダに「If-Modified-Since」フィールドをつけてHTTPリクエストを発行します。このときデータが更新されていない場合はWebサーバから「304 Not Modified」の応答があり、データはローカルで処理されます。ネットワークのトラフィックを抑えるためにこのようなキャッシュの仕組みがあるわけですが、VIGILを使ってもローカルで完結する処理までは監視できません。SMTPやPOP3にはキャッシュの仕組みがありませんので、プロトコルどおりであればVIGILで検出できます。

 電子メールについては、現在、MIMEに完全対応していないため、マルチパート(添付ファイル)やHTMLメールは正しく表示できません。

やってみよう!−ネットワーク資源の利用状況確認


 VIGILの一覧ウインドウから監視対象のPCのアイコンをクリックすると、そのPCの通信内容が、アイコンの下にパケットの種類やポート番号ごとにツリー表示されます。アプリケーション層レベルのプロトコルで解釈できたものは、その種類ごと、まとめてツリー状に表示されています。項目ごとアイコンを選択するとで、デコードできた内容が表示ウインドウ(右上)に表示されます。

 継続して監視をするには、すべての通信をハードディスクに保存する事になります。しかし、ハードディスクの要領には限りがありますので、VIGILでは、次のようなデータ保存量の調整方法を用意しています。監視のポリシーを決めて使用してください。

(1) フィルタ

 監視対象とする特定のプロトコルのみをフィルタして保存する。

(2)指定時間を経過したデータの自動削除

 監視の時間を決め、一定の時間を経過したデータを自動的に削除する。

(3)データの最大サイズ

 解釈したデータが、指定したサイズより大きい場合に切り捨てる。ある程度、最初の部分が表示できれば、だいたい通信内容を把握できるので、極端に大きいサイズのデータは、古い通信内容から切り捨てる。


HTTPプロトコルの解析
Webブラウザが見たままの状態で表示できる(画像は表示されない)

 

SMTP、POPプロトコルの解釈
SMTP、POP3のメッセージは、コード変換をして通常のテキストとして表示できる。



Telnet接続を表示
Telnet接続では行単位で送受信されないが、VIGILでは送受信を行ごとに色分けして表示できる




端末の接続状況確認

 最近のインテリジェントなスイッチングハブやルータでは、登録されたMACアドレス以外の通信を遮断できる製品もあります。しかし、低価格な製品の場合、単に空いているポートにケーブルを差し込むだけで通信できてしまいます。 便利だからといって、勤務先のネットワークに個人のPCを接続したり、管理者の知らないPCを接続できることは、セキュリティ対策上、大きなリスクになります。大げさに思えるかもしれませんが、官公庁や国際競争の激しい企業分野であれば、いつの間にかサーバルームに盗聴装置が仕掛けられていることもあり、あり得ない話とはいえません。 また、無線LANを使ってネットワークを拡張する事例が増えているようですが、無線LANにも特有のセキュリティ対策が必要です。アクセスポイントの設定がいい加減だと、見ず知らずの人間が簡単にネットワークに参加できてしまうのです。無線LANでは、アクセス制御や暗号化の設定が特に重要な作業ですが、市販されている製品では家庭での利用を考慮して、デフォルトではアクセス制御や暗号化が設定されていないものが多いようです。「つながったのでOK」というような使い方は、家庭のネットワークですら危険な使い方です。

 以上のリスクはいつ発生するが予測できません。そこで、ネットワーク管理者は、許可されない端末がネットワークを利用していないかどうか、つねに監視している必要があるわけです。VIGILを使えば、TCP/IPのレベルでネットワークを利用している端末を確認できます。

 TCP/IPのすべてのパケットには、送信元のIPアドレスが含まれていますので、そのIPアドレスを見ればどの端末がネットワークを利用しているか確認できます。VIGILは1つのIPアドレスごとに1つの端末が存在すると仮定して、ネットワーク内の端末をリスト化します。したがって、1回でもIPを使って通信した端末は、すべてリストに表示されます。ネットワークで他のPCと通信していなくても、たとえそのネットワークで無効なIPアドレスでも構いません。間違った設定や、無効な設定をしていても、パケットを検出したものはすべて表示されます。

 なお、ホスト名の表示は、列挙されたIPアドレスに対する、DNSのPTR検索(53/UDP)に対する応答パケットやWindowsのNBNS(137/UDP)の名前解決応答パケットから抽出して表示しています。そのため、これらのパケットを検出していない状態ではIPアドレスのみの表示になります。

やってみよう!−端末の接続状況確認

ネットわーウ内にある192.168.1.1〜20の端末を検出したところ


 メニューから「表示」−「表示形式」−「IPアドレス」を選択するかツールボタンを使用して、表示形式を「IPアドレス」にして一覧ウインドウ(左上)に列挙されている端末を見ることで確認が可能です。
 VIGILの起動当初、ルータを検出できるまでの間は、外部のネットワークの端末も並列に表示されているため、しばらくの時間モニタを続けて全部のルータが検出されるのを待って下さい。ルータ検出が出来ると外部の端末は、その階層下に移動するため一番上の階層に並んでいる端末が当該ネットワークに接続されている端末だと判断できます。
なお、視覚的に不正端末を検出しやすくするためには、分かりやすい命名規約などを決め許可された端末を全てhosts ファイルに記述しておけば、「表示形式」を「名前表示」にした時に、指定された名前で表示されるため、一覧から許可されたものとそれ以外を簡単に識別できるようになります。



ネットワーク内のルータの検出

 セキュリティの対策として、営業系、人事系などのように業務別にルータやレイヤ3スイッチでパケットのやり取りを制限することがあります。ネットワークの設計としては非常に有効な手段なのですが、セキュリティ対策はユーザの利便性と引き替えになります。

 ユーザにとってはネットワークが直接つながっている方が便利なので、せっかくのセキュリティ対策を無視して、無断でつながれてしまうことがあるのです。特に最近では、一般のPC誌でもネットワーク構築について解説していますので、管理者以外のユーザが「現場の判断」でつないでしまうわけです。また、勝手にRASサーバやVPNサーバを構築して、社内に自宅から接続できる環境を作ってしまう「ネットワーク通」のユーザもいます。

 しかし、勝手にネットワークの構成が変更されてしまっていた場合、トラブル発生時の対処やセキュリティ対策として問題であることは明白です。ネットワーク管理者は、ネットワークの構成を常に把握し、変更されていないかどうかを監視することが重要です。

 VIGIL では、パケットが経由したルータを検出し、その構成を表示できます。



 TCP/IPの通信では、送信元と送信先の指定にEthernetではMACアドレス、IPではIPアドレスが使われます。同じネットワーク内での通信ではMACアドレスだけで送信元から宛先にデータが届きます。一方、ネットワークが異なる場合はIPアドレスを使ってルータに中継してもらうわけですが、送信元からルータまでの経路と、ルータから宛先までの経路では、やはりMACアドレスを使った通信になっています。

 ルータが異なるネットワークで間の通信を中継するときの働きをもう少し詳しく見てみましょう。まず、TCP/IPの通信では、ルータを経由しようがしまいが、送信元と宛先のIPアドレスは変わりません。ルータは受信したEthernetのMACアドレスについて、送信元を自分のMACアドレス、宛先を本来の宛先のMACアドレス(=宛先IPアドレスの端末に割り当てられたMACアドレス)に書き換えています。さらに別のルータに転送を依頼するときも、IPアドレスには手をつけず、送信元と宛先のMACアドレスだけを書き換えます。

 この原理を利用すると、あるMACアドレスを持つ端末がルータなのかどうか判別できます。ルータ以外の端末は、宛先IPアドレスとMACアドレスはつねに一致します。一方、ルータは他のネットワークに所属するためにMACアドレスだけでは届けられない宛先に届けるのが仕事ですから、宛先IPアドレスとMACアドレスが一致しない場合があります。

 たとえば、「AA:AA:AA:AA:00:00:01」というMACアドレスの端末に送信されるブロードキャストでないIPパケットがつねに「10.11.12.13」であれば、その端末はルータではありません。逆に「BB:BB:BB:00:00:01」というMACアドレスの端末に「20.21.22.23」や「30.31.32.33」など、異なるIPアドレスのパケットが送信されていれば、その端末はルータだと判断できます。

 しかし、この段階ではルータ自身のIPアドレスが何なのかがまだ分かりません。もちろん、IPアドレスとMACアドレスの関係を調べるにはARPを使えばよいのですが、ネットワークスニッファはネットワークのトラフィックを傍受するためのソフトなので、自分自身で何かのパケットを送信するわけにはいきません。そこで、他の端末が送信したARPパケットを検出して調べるというテクニックを使うことになります。

 ARPパケットは、問い合わせ時も応答時も同じメッセージ形式が使われます。ARPメッセージの中にはIPアドレスとMACアドレスの対応が入っています。したがって、ARPパケットを送信したのがルータでも、ルータ以外の端末でも、ARPパケットを検出できればIPアドレスとMACアドレスの対応を取得できるわけです。あとは、ルータかどうかを判断したい端末に関するARPパケットが流れてくるまで待っていればよいことになります。




 ところが、実際のネットワークでは、ルータのMACアドレスを問い合わせているわけではないのに、ルータが、自身のMACアドレスを応答することがあります。これは、ARPプロキシによるものです。ARPプロキシが機能しているルータがあると、ARPの応答パケットは必ずしもIPアドレスとMACアドレスの正しい組み合わせになっているとはいえません。そこで、ARP問い合わせパケットだけを使ってルータを検出する仕組みになっています。

 VIGIL では、ルータとなっている端末のアドレスが分かるまでの間、トラフィックに現れるIPアドレスの端末は、すべて同じネットワーク上に存在すると仮定して、一覧ウインドウに表示します。その後、ルータのMACアドレスに関するARP問い合わせパケットを検出すると、外部ネットワークにあると判断された端末をルータの階層下に移動します。

 なお、Windows のPCでネットワークカードを2枚差して、別々のネットワークに所属している場合(マルチホーム)、からりの頻度で一方のネットワーク宛てのパケットがもう一方に送出されることがあります。(IPフォワーディングがオンの場合など)。

 この場合、MACアドレスが同じなのにIPアドレスは違うパケットになるため、VIGILはルータだと判断します。誤動作ともいえますが、ユーザがそのPCを使って勝手に外部のネットワークに接続していることを検出したいときに使える現象です。

やってみよう!−ネットワーク内のルータの検出
ネットわーウ内にある192.168.1.10のル−タを検出したところ


 一覧ウインドウ(左上)には、「 一般的な端末 」「 何らかのサービスを提供している端末 」「 ルータとなっている端末 」の3種類のアイコンが最上位の階層に並んでいます。ルータのアイコンを展開すると、そのルータ自身の通信のほかに、「端末」のアイコンが表示されています。ルータの階層下に表示された端末は、すべてこのルータを経由して通信しているものです。

 ただし、同一ネットワーク以外の端末がすべて1つのルータの下に表示されているとしても、すべてが同じネットワークに所属しているのではありあません。パケットを見ただけでは、そのルータへ到達するまでに、どのルータを経由しているかどうかは分からないので、このような表示になっているわけです。



HTTP HyperText TransferProtocol

WWWでデータを送受信するためのプロトコル

SMTP Simple Mail Transfer Protocol

電子メールを送受信し、サーバ間を中継させて、宛先のメールボックスに配信するためのプロトコル

POP3 Post Office Protocol version 3

電子メールの受信用プロトコル

UDP User Datagram Protocol

IPによる通信をアプリケーションから使えるようにしただけのプロトコル。
パケットが相手に確実に届く保証はないが、DNSのように小さなデータを扱うときに向いている。

IP Messenger

TCP/IPを使用した、LAN用のメッセージ送受信ソフト。
http://www.asahi-net.or.jp/~VZ4H-SRUZ/ipmsg.html

If-Modified-Since

HTTPヘッダフィールドの一つ。Webブラウザのローカルキャッシュが最新かどうかを確認するために使う。

304 Not Modified

「If-Modified-Since」など、更新の問い合わせに対して、更新されていないことを示すHTTPの応答

MIME Multipurpose Internet Mail Extensions

英文しか扱えなかった電子メールの仕様を拡張することで、日本語や画像の送受信を可能にするためにプロトコル。

HTMLメール
本文がHTML形式の電子メール。
RFC2557として標準化提案されている。

MACアドレス Media Access Control Address

Ethernetで使われる物理アドレス。16進数、6桁の数値で、上3桁はベンダー固有のID。

PTR検索

PTRはPonterの略。DNSのPTRレコードにIPアドレスに対応するFQDNを登録することで逆引き検索ができる。

NBNS NetBIOS Name Servise

WINSのRFC名。Windowsネットワークで使われるNetBIOSのコンピュータ名とIPアドレスの対応を管理する。

hostsファイル

IPアドレスとホスト名の対応を記録したファイルのこと。DNS以前にIPアドレスとホスト名対応を管理するために使われていた。
Windows2000の場合、C:\Winnt\System32\Drivers\Etc\hosts に保存する。

RAS Remote Access Servise

ダイアルアップ接続。またはWindowsでダイアルアップ接続を管理するOSの機能のこと。

VPN Virtual Private Network

仮想プライベートネットワーク。インターネットなど共有ネットワークを使って、専用線やリモートアクセスなどのプライベートネットワークを実現するための技術。

ARP Adress Resolution Protocol

IPアドレスに対応するMACアドレスを取得するためのプロトコル。

ARPプロキシ

PPPなどで物理的に異なるネットワーク間の通信を実現するために、別のネットワークにある端末のIPアドレスに対応するMACアドレスのARP問い合わせについて、ルータが代理(プロキシ)して応答すること。
ネットワーク内にサブネットマスクに対応していない古いネットワーク機器がある場合、ARPプロキシを使うことで通信できるようになる。

マルチホーム

2つ以上のネットワークに所属していること。
または、1枚のネットワークカードに2つ以上のIPアドレスを割り当てること。







ドキュメント > ネットワークスニッファVIGILで学ぶ TCP/IP+Ethernet ネットワーク管理講座 > 第3回

copyright(c) 1995- SapporoWorks
当サイトはリンクフリーです。リンク時に連絡などは必要有りません。また、どのページにリンクして頂いても構いません。