3.10 ロギングサービス
PacketiX VPN Server 2.0 は動作状況や仮想 HUB
を流れるパケットのログをログファイルとして自動的に書き出すことにより、後から正常動作の確認やトラブルの追跡および不正アクセスやポリシー違反の発見などを容易かつ確実に行うことができるようになっています。ここでは、PacketiX
VPN Server 2.0 に組み込まれているロギングサービスについて解説します。
3.10.1 ログの保存形式と保存周期
保存されるログの種類
VPN Server は VPN Server 全体のログとして「サーバーログ」を自動的に書き出します。
また、各仮想 HUB は仮想 HUB に関する管理や VPN
接続の記録、その他重要な動作状況の記録として「セキュリティログ」を書き出すと共に、予め仮想 HUB
の管理者が指定した種類のパケットについて「パケットログ」を書き出します。
すべてのログファイルは 1 項目につき 1
行が使用されるテキストファイルとして書き出されます。また、ログファイルの内容にひらがな・漢字などの多バイト文字が使用される場合は、エンコード方式は
UTF-8 で統一されます。
ログファイルの保存場所と保存形式
すべてのログファイルは、vpnserver プロセス (VPN Bridge にあたっては、vpnbridge プロセス)
の実行可能ファイルが設置されているディレクトリに「server_log」、「security_log」および「packet_log」の
3 つのサブディレクトリを作成し、そこにサーバーログ、セキュリティログおよびパケットログをそれぞれ書き出します。なお、仮想 HUB
ごとに書き出されるセキュリティログおよびパケットログについては、さらに仮想 HUB 名のサブディレクトリが作成され、そこに書き出されます。
ログファイルの切り替え周期
仮想 HUB
の管理者は、「セキュリティログ」および「パケットログ」について、ログファイルの切り替え周期を設定することができます。ログファイルの切り替え周期に基づいて新しいファイル名が生成されます。設定することができる切り替え周期およびその規則を適用した場合に生成されるログファイルのファイル名は次のとおりです。なお、仮想
HUB 全体のログは常に 1 日周期で切り替えられて保存されるようになっています。
切り替え周期 |
ファイル名の日時部分の命名規則
(例: 2005年12月7日 午後1時45分10秒の場合) |
切り替えを行わない |
なし (同一ファイルに対して永久に追記されます) |
1 秒単位 |
20051207_014510 |
1 分単位 |
20051207_0145 |
1 時間単位 |
20051207_01 |
1 日単位 |
20051207 |
1 ヶ月単位 |
200512 |
仮想 HUB に関するログファイル設定の変更方法
仮想 HUB の管理者は、VPN サーバー管理マネージャの [ログ保存設定] をクリックすることにより、その仮想 HUB
に関するセキュリティログおよびパケットログの切り替え周期を設定することができます。また、ログファイルの保存を希望しない場合はチェックボックスをオフにすることによりその種類のログファイルを一切保存しないように設定することができます。また、パケットログについては保存すべきパケットログの種類を詳細に選択することもできます。
デフォルトでは、仮想 HUB のすべてのログは 1 日ごとにファイルを切り替えて保存する設定になっています。
vpncmd では、LogEnable コマンド、LogDisable コマンド、LogSwitchSet
コマンドおよび LogPacketSaveType コマンドを使用してください。

図3-10-1 ログ保存設定画面 |
各ログファイルのファイルサイズが 2Gbytes を超えた場合の措置
各ログファイルはログの内容や量に応じて増加しますが、ログファイルサイズが 2Gbytes を超える場合 (厳密には
2,147,483,648 Bytes を超える場合) はそのログファイルは自動的に分割されて約 2Gbytes ごとに保存されます。1
つ目のファイルはそのままのファイル名ですが、2 つ目以降のファイル名には自動的に "~01"、"~02" というような連番が付きます。
3.10.2 サーバーログ
サーバーログは「server_log」ディレクトリの下に保存されます。サーバーログには VPN Server
全体の動作ログが保存されており、VPN Server
の起動や終了の際のイベント記録およびいつどのようなコネクションを受け付けたかなどといった詳細な動作記録が保存されています。そのため、後からサーバーログを解析して不正アクセスやトラブル原因の追跡を行うことができます。
また、サーバーログには各仮想 HUB で保存されるセキュリティログの写しがまとめてすべて保存されるようになっています。各仮想 HUB
の管理者が仮にセキュリティログを保存しないような設定にしていても、サーバーログには必ず自動的に保存されます。これによって、VPN Server
の管理者はたとえ仮想 HUB のログが保存されていなかったり削除されてしまったりした場合でも、VPN Server
のサーバーログからその内容を確認することが簡単にできます。
3.10.3 仮想 HUB セキュリティログ
仮想 HUB セキュリティログは「security_log/仮想 HUB 名」ディレクトリの下に保存されます。セキュリティログには仮想
HUB に接続してきたセッションに関する情報や仮想 HUB 内での記録 (アドレステーブルデータベースの更新など) および仮想 HUB
に対する管理記録 (ユーザーの作成など) が記録されます。
3.10.4 仮想 HUB パケットログ
仮想 HUB パケットログは「packet_log/仮想 HUB 名」ディレクトリの下に保存されます。パケットログには仮想
HUB 内を流れるすべてのパケットのヘッダ部分、またはペイロード全体を保存することができます。
ただし、すべての種類のパケットログを保存した場合は、ログファイルのデータ量が膨大になってしまいます。そのためパケットログについてはどのような種類のパケットを登録するのかを仮想
HUB の管理者が選択することができるようになっています。[ログ保存設定]
画面で選択することができるパケットの種類とその内容は下記のとおりです。
パケットの種類名 |
この種類を選択した場合に保存されるパケット |
TCP コネクションログ |
TCP/IP プロトコルのパケットのうち、TCP/IP
コネクションがクライアントとサーバーとの間で確立または切断される際のパケット。 |
TCP パケットログ |
すべての TCP/IP プロトコルのパケット。 |
DHCP パケットログ |
UDP/IP プロトコルのパケットのうち、DHCP プロトコルのための制御データであるパケット。 |
UDP パケットログ |
すべての UDP/IP プロトコルのパケット。 |
ICMP パケットログ |
すべての ICMP プロトコルのパケッし。 |
IP パケットログ |
すべての IP プロトコルのパケット。 |
ARP パケットログ |
すべての ARP プロトコルのパケット。 |
Ethernet パケットログ |
すべてのパケット。 |
パケットログを保存するように設定されている場合、仮想 HUB は仮想 HUB 内を流れたすべての仮想 Ethernet フレームのうち仮想
HUB の管理者があらかじめ設定した種類のものについてパケットログを保存します。それぞれの Ethernet フレームは VPN Server
が内部で持っている高レベルのパケット解析エンジンを用いることによって、レイヤ 2 からレイヤ 7
までのうちできるだけ高いレイヤまで解析を行い、重要なヘッダ情報をパケットログとして保存します。
また、仮想 HUB 管理者はヘッダ情報だけではなくパケットのすべての内容 (ビット列) を 16
進ダンプの形式でパケットログに書き出すこともできます。この場合は実際に通信が行われたパケットの合計サイズに比例するような大量のディスク容量が必要となりますのでご注意ください。
デフォルト設定では、パケットログのうち「TCP コネクションログ」および「DHCP パケットログ」の 2
種類のパケットのヘッダ情報のみを保存するようになっています。多くの環境ではこの設定値で十分です。もし、より細かいパケットを保存したい場合は、必要なものについてのみ保存するように設定を変更してください。すべてのパケットのログを保存することは、通信回線が広帯域になった現在は現実的ではありませんのでご注意ください。
3.10.5 ログ書き込み時のパフォーマンスの最適化
VPN Server
はログファイルに書き出すべきデータがある場合、それをすぐに直接ディスクに対して書き出すのではなく、下記のような方法を用いて 2
段階の制御によって書き出しを行います。この仕組みにより、特にパケットログの書き出しにおいて大量のパケットが瞬時に流れた場合に通信パフォーマンスを低下させず、かつすべてのパケットをログに書き出すことができるようになっています。
パケットログの中間データ形式の生成
すべてのログ保存対象となるパケットは、直ちにパケットログに書き出されるのではなく、一旦コンピュータの CPU
が扱いやすい中間データ形式に変換されます。この処理はリアルタイムで行われます。中間データ形式に変換されたパケットログデータはログバッファと呼ばれる一時的なメモリ領域に追加されます。このようなパケット内容の中間データ形式への変換処理は非常に高速に行うことができるため、仮想
HUB の通信速度はそれほど低下しません。
中間データ形式のテキスト形式への変換とディスクへの書き出し
一度ログバッファに追加された中間データ形式のパケットデータは、ディスクに対して書き出す前にはログファイルに書き出す内容であるテキストデータに変換する必要があります。しかし、このようなテキストデータへの変換処理は多くの
CPU 時間を消費するコストの高い処理です。
そこで、ロギングサービスプログラムはログへの書き込み対象となる中間データ形式のパケットデータを、仮想 HUB
の実際の通信サービスに負荷がかかってある場合は一時的に処理せずにバッファ内に貯蓄していきます。しばらくして、仮想 HUB
内を流れるパケット数が減って CPU
時間が余った場合に、貯蓄していた中間データ形式を一気にテキストデータへと変換します。この変換処理はバッチ状に行われるので高速です。最後に、テキストデータへ変換したものを一定量ごとにディスク上へ書き込み
(フラッシュ) します。
ログバッファの空き容量が不足する場合の仮想 HUB の通信速度の自動調整
仮想 HUB のパケットログサービスは上記のような仕組みによって仮想 HUB
に保存対象となる大量のパケットがバースト的に大量発生した場合は、そのログデータの生成処理およびディスクへの書き込み処理を後回しにすることによって
CPU 時間を仮想 HUB に対して優先的に割り当て、仮想 HUB がその通信パフォーマンスを最大限に発揮できるように自動調整しています。
しかし、一時的な中間形式データの保存場所であるログバッファ自体もメインメモリを使用しているため、空き容量には限界があります。もし仮想
HUB
に保存対象となる大量のパケットが長期間連続して流れ続けると、ロギングサービスが管理するログバッファが溢れてしまい、新しいパケットを取りこぼす可能性が発生します。
このような場合は、ログバッファの空き容量が少なくなると自動的に仮想 HUB
の通信速度を調整し、常にログバッファの空き容量が一定以上の余裕を持つように自動調整されます。この機能によって、仮想 HUB
に保存対象となる大量のパケットが長期間連続して流れ続けた場合もすべてのパケットログを確実に保存しつつ、できるだけ仮想 HUB
の通信速度を低下させないような努力が行われます。
3.10.6 リモート管理端末でのログファイルの取得
VPN Server や仮想 HUB が書き出すログファイルは、その VPN Server
が動作している物理的なコンピュータ上のディスクに書き出されます。しかし、通常物理的なディスクに書き出されたファイルを読んだりダウンロードしたりすることができるのは、そのコンピュータの管理者やローカルログオンすることができるユーザーに限定されています。
PacketiX VPN Server では、VPN Server や各仮想 HUB の管理者が VPN Server
を動作させているコンピュータのシステム管理者とは異なる場合も考慮し、実際にコンピュータにローカルログオンしなくてもログファイルをリモートから読み出すことができる仕組みを組み込んでいます。これがリモートログ読み出し機能です。
リモートログ読み出し機能は非常に簡単に使用することができます。VPN サーバー管理マネージャを使用している場合は [ログファイル一覧]
ボタンをクリックすると、現在の権限で読み出し可能なログファイルのファイル名一覧、ファイルサイズおよび最終更新日時が表示されます。ここから任意のログファイルを選択し、そのログファイルを管理端末にダウンロードすることができます。ログファイルの転送には管理接続と同じ
TCP/IP コネクションが使用されるため、データ内容は SSL で自動的に暗号化され安全です。
vpncmd では LogGet コマンドでこの機能を使用することができます。
なお、VPN Server の管理者は VPN Server のサーバーログおよびすべての仮想 HUB
のセキュリティログ・サーバーログをリモートから取得することができます。各仮想 HUB の管理者は、管理権限を持っている仮想 HUB
のセキュリティログ・サーバーログのみをリモートから取得することができ、それ以外のログファイルは取得することができません。
また、クラスタリング環境の場合においてクラスタコントローラに接続した場合は、クラスタコントローラを含めたすべてのクラスタメンバサーバー上のログファイルを一括して列挙し、指定したものをダウンロードすることが可能です。

図3-10-2 ログファイル一覧表示画面 |
|