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

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

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

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