5.2 動作モード
ユーザーは PacketiX VPN Bridge を 2 種類のモードで動作させることができます。
5.2.1 サービスモード
「サービスモード」は通常の動作モードです。PacketiX VPN Bridge をサービスモードでインストールし動作させると、PacketiX VPN
Bridge はオペレーティングシステムの一部としてバックグラウンドで動作するようになり、オペレーティングシステムの起動時にユーザーがログオンする前に起動して
VPN サーバーとして VPN
セッションの接続を待機する状態になります。また、オペレーティングシステムがシャットダウンする際に自動的にシャットダウン処理が行われます。
ここで「サービス」と呼ぶ用語は Windows や一部の UNIX
系オペレーティングシステムにおいて「バックグラウンドシステムサービス」という意味を指しており、他のオペレーティングシステムでは「デーモン」と呼ぶ場合もあります。
サービスモードで VPN Bridge が動作している場合、その動作は現在オペレーティングシステムにログオンしているユーザーに依存されません。したがって、多くの場合はサービスモードとして
VPN Bridge を稼動させることを推奨します。
また、サービスモードで VPN Bridge を使用する場合、一般的に VPN Bridge のプロセス (vpnbridge
という実行可能ファイル名です) はシステム権限または root 権限で動作します。
サービスモードとして VPN Bridge をインストールする方法は、Windows 版と他の UNIX 版で異なります。
- Windows 版 PacketiX VPN Bridge をインストーラからインストールすると、サービスモードとしてインストールされ自動的にバックグラウンドサービスとして動作が開始されます。詳しくは、「9.2 Windows へのインストールと初期設定」
をお読みください。
- Linux 版およびその他の UNIX 版 PacketiX VPN Bridge をサービスモードとしてインストールするには、システムにデーモンプロセスとして登録する必要があります。詳しくは、「9.3 Linux へのインストールと初期設定」
をお読みください。
サービスモードは下記のような場合には使用できません。このような場合は、ユーザーモードで VPN Bridge を使用してください。
- PacketiX VPN Bridge を動作させたいシステムのシステム管理者権限を持っていない場合。
- PacketiX VPN Bridge を継続的ではなく一時的にインストールして使用したい場合。
- セキュリティ上の理由により、一般ユーザー権限で PacketiX VPN Bridge を起動したい場合。
Windows 版 PacketiX VPN Bridge のサービスモードに関する説明事項
Windows 版の VPN Bridge をサービスモードでインストールするには、インストーラから VPN Bridge をインストールすることを推奨いたします。この場合は、特別な操作を行うことなく自動的に VPN
Bridge がサービスとして起動し、動作を開始します。その後システムを再起動しても、システム起動時に自動的に VPN Bridge の動作が開始されます。VPN
Bridge はバックグラウンドタスクとして起動するので、VPN Bridge をインストールしたコンピュータを他の目的で操作する場合でも VPN
Bridge がインストールされていることは意識する必要はありません。
また、Windows 版 PacketiX VPN Bridge の実行可能ファイル (vpnbridge.exe)
にコマンドライン引数を付けることによって、PacketiX VPN Bridge サービスを開始 / 停止したり、また Windows
システムのサービス一覧から PacketiX VPN Bridge サービスを削除したり、登録しなおしたりすることが可能です。
PacketiX VPN Bridge サービスが Windows システムに登録される短いサービス名は「vpnbridge」です。長いサービス名は、「PacketiX
VPN Bridge」です。
現在 Windows システムに PacketiX VPN Bridge サービスがインストールされていない場合、vpnbridge.exe をサービスとして登録するには、コマンドプロンプトなどから下記のように入力して
vpnbridge.exe を実行します (システム管理者権限が必要です)。
すでに Windows システムに PacketiX VPN Bridge サービスがインストールされており、これを削除したい場合は、コマンドプロンプトなどから下記のように入力して
vpnbridge.exe
を実行します (システム管理者権限が必要です)。
また、vpnbridge に /start または /stop
という引数を付けることによって、サービスを開始または停止することができます。その他 vpnbridge
プログラムに指定することができる引数については、vpnbridge.exe
を直接実行したときに表示されるメッセージボックスの内容を参照してください。
また、サービスの開始と停止は Windows の [コントロールパネル] の [管理ツール] にある [サービス] 一覧 (Windows
NT 4.0 の場合は [コントロールパネル] にある [サービス] 一覧) から行うことも可能です。この [サービス]
一覧画面を操作して、PacketiX VPN Bridge サービスの [スタートアップの種類] を [自動] から [手動]
に変更することもできます。[手動]
に変更したサービスはシステム起動時に自動的に起動せず、後で管理者権限を持つユーザーがサービスを開始するまで動作しません。
「net」コマンドを用いて、PacketiX VPN Bridge サービスを開始または停止することも可能です。サービスを開始するには、「net
start vpnbridge」と入力します。サービスを停止するには、「net stop vpnbridge」と入力します。
Windows における「サービス」という概念は、Windows NT
以降のオペレーティングシステムにのみ導入されています。PacketiX VPN Bridge は Windows
のサービスシステムに依存しています。サービスシステムがない古い Windows (Windows 98、Windows 98
Second Edition、Windows Millennium Edition) 上に PacketiX VPN
Bridge
をサービスモードでインストールしバックグラウンドタスクとして起動させておくことができるようになっています。この場合、PacketiX
VPN Bridge はこれらの古いオペレーティングシステム上で、Windows NT
以降のサービスシステムをエミュレーションしています。ただし、この場合はユーザーがログオフする際にプロセスが終了する場合があるなど、いくつかの制限事項があります。 |

図5-2-1 サービスとして登録された PacketiX VPN Bridge |
UNIX 版 PacketiX VPN Bridge のサービスモードに関する説明事項
Linux を含む UNIX 版の VPN Bridge をサービスモードでインストールおよび起動する方法については、「9.3 Linux へのインストールと初期設定」
をお読みください。
5.2.2 ユーザーモード
「ユーザーモード」は特殊な動作モードです。PacketiX VPN Bridge をユーザーモードで動作させると、PacketiX VPN
Bridge はユーザーのプロセスとしてバックグラウンドで動作するようになります。ユーザーモードで PacketiX VPN Bridge を動作させるには、起動する都度、そのユーザーとしてシステムにログオンして、vpnbridge
実行可能ファイルを起動する必要があります。また、オペレーティングシステムによって下記のように動作が異なります。
- Windows オペレーティングシステムでは、ユーザーモードで起動した VPN Bridge プロセスはそのユーザーがログオンしている状態でのみバックグラウンドで稼動し続けますが、ユーザーがログオフすると同時にプロセスは終了します。
- UNIX 系オペレーティングシステムでは、ユーザーモードが起動した VPN Bridge プロセスはその時点で子プロセスを生成しそれをバックグラウンドプロセス化し、ユーザーのセッションから切り離すことができます。したがって、ユーザーがログアウトした場合でもシステム上に
VPN Bridge のプロセスは残り、システムがシャットダウンしたり再起動されるまで VPN Bridge プロセスはバックグラウンドで稼動し続けます。
Windows 版 PacketiX VPN Bridge のユーザーモードに関する説明事項
Windows 版の VPN Bridge をユーザーモードで起動するには、vpnbridge.exe 実行可能ファイルに /usermode
オプションを付けて起動します。
起動が完了するとタスクトレイ上にアイコンが表示され、VPN Bridge がユーザーモードで起動したことになります。このモードでは VPN
Bridge のプログラムは他のユーザーモードで動作するアプリケーションプログラム (Word や電卓など)
と同じような、一般のユーザー権限で実行することができるプログラムとして動作していることになります。したがって、ユーザーモードで VPN
Bridge を起動するためにシステム管理者権限などは一切不要です。ただし、ユーザーがログオフすると同時に VPN Bridge プロセスも終了してしまいます。頻繁に VPN
Bridge をユーザーモードで起動するためには、上記の /usermode
オプションを付けたコマンドラインをショートカットファイルとしてデスクトップまたは [スタートアップ] フォルダに設置しておくことを推奨します。

図5-2-2 ユーザーモードとして起動した PacketiX VPN Bridge のタスクトレイアイコン |
また、一度起動したユーザーモードのプロセスを終了するには、タスクトレイのアイコンを右クリックして [PacketiX VPN Bridge の終了] をクリックします。
さらに [タスクトレイアイコンを非表示にする]
をクリックすると、タスクトレイにアイコンが表示されなくなります。この機能は、常時ユーザーモードで VPN Bridge を起動していてアイコンが邪魔な場合に使用してください。ただし、タスクトレイアイコンを非表示にした場合はメニューから VPN
Bridge を終了することができなくなります。そのような場合は、Ctrl + Alt + Del
キーを押してタスクマネージャを開き、vpnbridge.exe プロセスを終了してください。なお、vpnbridge.exe
を次回ユーザーモードで起動する際に /usermode_showtray
オプションを付けることで、タスクトレイのアイコンを復活させることが可能です。

図5-2-3 タスクトレイアイコンを非表示にするためのメニュー |
大変便利なことに、Windows
オペレーティングシステムでは一般ユーザー権限で動作するプロセスに対してすべての TCP/IP
ポートを待機状態にして使用することが許可されています。したがって、PacketiX VPN Bridge
を使用する場合にシステム管理者権限を使用してシステムサービスとして登録し動作させずに、あえて一般ユーザー権限でユーザーモードとして動作させておくことにより、セキュリティを強化することができる場合があります。ただし、ユーザーモードで
PacketiX VPN Bridge を起動している場合はローカルブリッジ機能が使用できない場合があります。 |
UNIX 版 PacketiX VPN Bridge のユーザーモードに関する説明事項
Linux を含む UNIX 版の VPN Bridge をユーザーモードで起動するには、vpnbridge
実行可能ファイルをシステムにデーモンとして登録せずに、通常のアプリケーションコマンド (ls や cat など)
を起動するのと同様にコマンドラインから下記のように start 引数を付けて vpnbridge を起動します。
$ ./vpnbridge start
PacketiX VPN Bridge Service Started.
$
|
「PacketiX VPN Bridge Service
Started.」というメッセージが出力された後に制御がシェルに戻れば、ユーザーモードで正しく VPN Bridge を起動することができたことを意味します。なお、一度起動した VPN
Bridge を終了するには、次のように stop 引数を付けて
vpnbridge を起動します。
$ ./vpnbridge stop
PacketiX VPN Bridge Service Stopped.
$
|
VPN Bridge を UNIX
上でユーザーモードで起動した場合は、そのユーザーの権限でプロセスが動作し、バックグラウンドプロセス化します。したがって、そのユーザーがログアウトしたり、SSH
接続を切断したりした場合でも vpnbridge プロセスは依然として動作し続けます。プロセスの動作は、システムが再起動したり、root
によってそのプロセスが強制終了されてしまうまで続きます。
なお 「9.3 Linux へのインストールと初期設定」 でも解説されていますが、UNIX 系オペレーティングシステムでは vpnbridge
プロセスをデーモン化して使用する場合は、オペレーティングシステムのスタートアップスクリプトに単純に vpnbridge start
の呼び出しを行わせるように指示するよう登録するだけですので、もしサービスモードとして VPN Bridge を稼動させる場合でも、ここでの手順と同等のことが root
権限を持つシステムによって自動的に行われるだけに過ぎませんので、本質的な違いはほとんどありません。したがってデーモン化した VPN Bridge においても、下記で説明する事項は一般的に当てはまります。
UNIX 版 VPN Bridge では下記のように vpnbridge プロセスは 2 段階に分けて起動しています。まず execsvc
と書かれた 1 個目のプロセスがバッグラウンドプロセスとして起動し、次にそのプロセスが子プロセスを fork()
システムコールによって生成し、子プロセスが実際の VPN 処理を行います。親プロセス (下記の例ではプロセス ID が 1549) は子プロセス
(下記の例ではプロセス ID が 1550)
を常に監視し、万一異常なエラーが発生した場合は直ちにプロセスを終了してからもう一度プロセスを起動し回復を試みます (この動作は PacketiX
VPN Server と同様です。詳しくは 「3.3.12 障害回復」
をお読みください)。なお下記の例は Linux の特定のシステムでの実行例であり、別の Linux
や他のオペレーティングシステムでは表示が異なる場合があります。また Linux カーネルの古いバージョン
(ネイティブスレッドに対応していないバージョン) では、複数のスレッドを複数のプロセスとして表示するため、実際には vpnbridge
プロセスが下記よりも多く生成されている場合がありますが、それは表示上の問題であり正常な動作です。
$ ps auxf
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
neko 1549 0.0 0.8 5188 560 ? S< Nov24 0:00 /tmp/vpnbridge execsvc
neko 1550 0.0 4.0 11888 2520 ? S< Nov24 0:08 \_ /tmp/vpnbeidge execsvc
|
滅多に発生することではありませんが、ハードウェアの故障 (たとえばメモリの不良) などの何らかの原因によってユーザーモードで起動した
VPN Bridge プロセスが暴走してしまい、vpnbridge /stop
で停止できなくなってしまった場合は、まず親プロセスである vpnbridge プロセス (上記の例ではプロセス ID が 1549) を
kill -KILL でシグナルを送信することによって強制終了し、次に残りのプロセス (上記の例ではプロセス ID 1550) を
kill -KILL
でシグナルを送信することによって強制終了してください。子プロセスを先に強制終了すると、親プロセスは子プロセスが異常終了したと判断しもう一度子プロセスを起動する場合があります。システムによっては、killall
-KILL vpnbridge によってすべての vpnbridge プロセスを同時に終了することができる場合もあります。
また、vpnbridge プロセスは TERM シグナル (通常の終了要求シグナル) を受信すると正常終了処理を行います。
UNIX 系オペレーティングシステムでは一般ユーザー権限で動作するプロセスに対して
、1024 番以下の TCP/IP
ポートを待機状態にして使用することが許可されていません。したがって、PacketiX VPN Bridge を使用する場合にシステム管理者権限を使用してシステムサービスとして登録し動作させずに一般ユーザー権限でユーザーモードとして動作させ
た場合は、1024 番以下の TCP/IP リスナーポートを開くことができません。PacketiX VPN Bridge ではデフォルトでは 443 番、992 番、8888 番の 3
つのポートをリスナーポートとして開くように試みますが、これをユーザーモードを動作させると 8888
番のポートのみがリッスン状態となりますのでご注意ください。また、ユーザーモードで PacketiX VPN Bridge を起動している場合はローカルブリッジ機能が使用できない場合があります。 |
|