3.2 動作モード
ユーザーは PacketiX VPN Server を「サービスモード」と「ユーザーモード」という 2 種類のモードで動作させることができます。以下では、それらの 2 種類のモードについて説明します。
3.2.1 サービスモード
「サービスモード」は通常の動作モードです。PacketiX VPN Server
を、サービスモードでインストールし動作させると、PacketiX VPN Server
はオペレーティングシステムの一部としてバックグラウンドで動作するようになり、オペレーティングシステムの起動時に、ユーザーがログオンする前に起動して
VPN サーバーとして VPN
セッションの接続を待機する状態になります。また、オペレーティングシステムがシャットダウンする際に、自動的にシャットダウン処理が行われます。
ここで「サービス」と呼ぶ用語は Windows や一部の UNIX
系オペレーティングシステムにおいて「バックグラウンドシステムサービス」という意味を指しており、他のオペレーティングシステムでは「デーモン」と呼ぶ場合もあります。
サービスモードで VPN Server
が動作している場合、その動作は現在オペレーティングシステムにログオンしているユーザーに依存されません。したがって、多くの場合はサービスモードとして
VPN Server を稼動させることを推奨します。
また、サービスモードで VPN Server を使用する場合、一般的に VPN Server のプロセス (vpnserver
という実行可能ファイル名です) はシステム権限または root 権限で動作します。
Windows 版 PacketiX VPN Server
については、32 bit 版の実行可能ファイル名は "vpnserver.exe" であり、64 bit
版の実行可能ファイル名は "vpnserver_x64.exe" となっています。本マニュアルでの解説は 32 bit
版の使用を前提としていますので、64 bit 版を使用している場合は該当する部分を読み替えてください。 |
サービスモードとして VPN Server をインストールする方法
サービスモードとして 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 版の PacketiX 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
を起動している場合は、ローカルブリッジ機能が使用できない場合があります。 |
|