目次
ここでは、「VPN Bridge」を、Linux オペレーティングシステムにインストールする際の操作方法について解説します。なお、Linux オペレーティングシステムの状態は、システムをクリーンインストールした直後の、余分なアプリケーションソフトウェアなどが一切インストールされていない状態を仮定しています。また、Linux ディストリビューションに含まれているファイアウォールなどの機能が、原則として使用されておらず、外部からの TCP/IP ポートに対する通信のブロック機能 (ファイアウォール機能) が、無効になっている状態を仮定しています。
9.3.1 推奨システム
推奨するオペレーティングシステムの構成
「SoftEther VPN Bridge」の Linux 版は、Linux カーネル 2.4 以降であれば大抵の場合は動作しますが、ソフトイーサ株式会社が推奨する環境は、下記のディストリビューションによる Linux を使用する環境のみです (マニュアル執筆時(2024-02-14)の推奨環境であり、推奨環境は今後増える場合があります)。
- Ubuntu 22.04 (x86 版または x64 版)
システム要件の詳細については、「仕様」 を参照してください。
この章におけるインストール方法の解説では、上記のいずれかのオペレーティングシステムを使用していることを仮定し、「/usr/local/vpnbridge/」ディレクトリを新しく作成してそこに VPN Bridge をインストールすることを仮定しています。
Linux のインストール
Linux を使用する場合は、下記の方法によってシステムをクリーンインストールした後の環境のみサポート対象となっております。
- Linux ディストリビューションはクリーンインストールしてください。以前のバージョンの Linux からのアップグレードなどによって、ライブラリなどの整合性がとれない状態はできる限り避けてください。
- ハードディスクのパーティションを作成する場合は、/usr/ ディレクトリが入るパーティションに、十分な空き容量を割り当ててください。この解説の例では、VPN Bridge を /usr/local/vpnbridge / にインストールすることを仮定しており、また VPN Bridge が書き出すログファイルも、同じディレクトリ内に書き出されるため、パーティションには十分な容量を割り当てることを推奨します。
- インストールするコンポーネントを選択するフェーズでは、少なくとも「開発ツール (コンパイラなど)」、「開発用ライブラリ」などを同時にインストールしてください。VPN Server のインストール時には make や gcc、binutils などのユーティリティと、libc (glibc)、zlib、openssl、readline および ncurses の各開発用ライブラリバージョン (devel と呼ばれる場合もあります) が必要です。
- オペレーティングシステムのインストール後、 Linux カーネルのバージョンを最新のものにアップデートしてください。
- ファイアウォール機能や SELinux 機能などは最初は無効の状態でインストールを完了させてください。これらの機能は、VPN Bridge が正しくインストールできたことを確認してから、必要な場合のみ有効にしてください。
9.3.2 インストールモードの選択
「3.1 動作環境」 および 「3.2 動作モード」 で解説したように、VPN Bridge は「サービスモード」と「ユーザーモード」の 2 種類のモードで動作させることができます。システム管理者が、社内業務で使用することを目的とした VPN Bridge を構築するような場合には、通常は「サービスモード」でインストールすることを推奨します。Linux では、VPN Bridge プログラムを「サービスモード」でシステムにインストールするには、Linux の「スタートアップスクリプト」に「vpnbridge」プログラムをデーモンプログラムとして登録する必要があります。
9.3.3 必要なソフトウェアおよびライブラリの確認
VPN Bridge を Linux にインストールするには、下記のようなソフトウェアおよびライブラリが必要です。これらのソフトウェアやライブラリがシステムにインストールされており使用可能なことを確認してください (推奨環境のディストリビューションを 「7.3.1 推奨システム」 で指定された方法でインストールした場合は、これらのライブラリもインストールされています)。
- gcc ソフトウェア
- binutils ソフトウェア
- パッケージファイル展開用の tar や gzip などのソフトウェア
- chkconfig システムユーティリティ
- cat や cp などの基本的なファイル操作ユーティリティ
- 日本語環境で使用するための EUC-JP や UTF-8 などのコードページテーブル
- libc (glibc) ライブラリ
- zlib ライブラリ
- openssl ライブラリ
- readline ライブラリ
- ncurses ライブラリ
- pthread ライブラリ
9.3.4 パッケージの解凍
インストール用ファイルの準備
VPN Bridge をインストールするには、VPN Bridge プログラムが格納されているファイル (tar.gz 形式で圧縮された パッケージファイル) を準備する必要があります。
最新のインストーラを SoftEther VPN プロジェクトの Web サイト(ダウンロード)からダウンロードして入手いただけます。
インストール用パッケージファイルの展開
インストール用のパッケージファイルを tar コマンドによって展開します。適当なディレクトリに tar.gz ファイルをコピーし、下記のように展開してください。
[root@machine root]# tar xzvf vpnbridge-5070-rtm-linux-x86.tar.gz vpnbridge/ vpnbridge/vpnbridge.a vpnbridge/vpncmd.a vpnbridge/hamcore.se2 vpnbridge/libcrypto.a vpnbridge/Makefile vpnbridge/libssl.a vpnbridge/License_ReadMeFirst.txt vpnbridge/License_ReadMeFirstUtf.txt vpnbridge/License_ReadMeFirstSjis.txt vpnbridge/.install.sh |
パッケージを展開すると、「vpnbridge」という新しいディレクトリが作業フォルダに作成され、インストールに必要な各種ファイルが展開されます。
9.3.5 実行可能ファイルの生成
make の実行
VPN Bridge をインストールするには、make という操作を行って vpnbridge 実行可能ファイルを生成する必要があります。
まず、先ほど展開した「vpnbridge」ディレクトリに移動し、「make」と入力します。
すると、下記のように英語のメッセージで「使用権許諾契約書を読みますか?」という内容の質問が画面に表示されます。ここで 1 を選択してください。
[root@machine vpnbridge]# make ./.install.sh SoftEther VPN Software Install Utility Do you want to read the License Agreement for this software ? 1. Yes 2. No Please choose one of above number: 1 |
すると、画面上に「使用権許諾契約書」が表示されます。この使用権許諾契約書を注意してお読みください。なお、使用権許諾契約書は何画面にも渡って表示されますので、画面スクロール機能のあるターミナルエミュレータ 、または SSH クライアントソフトウェアを使用してください。もし使用権許諾契約書の内容をすべて読むことができない場合は、一度 Ctrl+C キーを押して make を中断し、テキストエディタなどで vpnbridge ディレクトリ内の使用権許諾契約書が書かれたテキストファイルを直接開き、内容をご確認ください。
使用権許諾契約書に続き、英語のメッセージで「使用権許諾契約書を読みましたか?」という内容の質問が画面に表示されますので、 使用権許諾契約書を読んだ場合は「1」を選択してください。
EULA Did you read and understand the License Agreement ? (If you couldn't read above text, Please read License_ReadMe.txt file with any text editor.) 1. Yes 2. No Please choose one of above number: 1 |
次に、英語のメッセージで「使用権許諾契約書に同意しますか?」という内容の質問が画面に表示されますので、使用権許諾契約書に同意する場合は「1」を選択してください。
Did you agree the License Agreement ? 1. Agree 2. Do Not Agree Please choose one of above number: 1 |
使用権許諾契約書に同意すると、自動的に「vpnbridge」プログラムの生成処理が行われます。
make[1]: Entering directory `/root/vpnbridge' ranlib libssl.a ranlib libcrypto.a ranlib vpnbridge.a gcc vpnbridge.a -pthread -lrt -lm -lz libssl.a libcrypto.a -lpthread -ldl -lreadline -lcurses -o vpnserver strip vpnbridge ranlib vpncmd.a gcc vpncmd.a -pthread -lrt -lm -lz libssl.a libcrypto.a -lpthread -ldl -lreadline -lcurses -o vpncmd strip vpncmd make[1]: Leaving directory `/root/vpnbridge' [root@machine vpnbridge]# |
もしこの処理の過程でエラーが発生した場合は、vpnbridge プログラムの生成処理に失敗しています。そのような場合は 「7.3.1 推奨システム」 および 「7.3.3 必要なソフトウェアおよびライブラリの確認」 をもう一度確認し、必要なライブラリなどが不足していないかどうか確認してください。
9.3.6 VPN Bridge の配置
vpnbridge プログラムの生成が完了したら、パッケージを解凍した際に作成された vpnbridge ディレクトリを、/usr/local/ ディレクトリにそのまま移動することをお勧めします。下記の方法で vpnbridge ディレクトリを /usr/local/ に移動してください。 なお、これ以降の作業には「root」権限が必要です。
[root@machine vpnbridge]# cd .. [root@machine root]# mv vpnbridge /usr/local [root@machine root]# ls -l /usr/local/vpnbridge/ Total 13000 -rwxrwxrwx 1 root root 20245 12ŒŽ 8 16:14 License_ReadMeFirst.txt* -rwxrwxrwx 1 root root 20317 12ŒŽ 8 16:14 License_ReadMeFirstSjis.txt* -rwxrwxrwx 1 root root 30210 12ŒŽ 8 16:14 License_ReadMeFirstUtf.txt* -rwxrwxrwx 1 root root 609 12ŒŽ 8 16:14 Makefile* -rwxrwxrwx 1 root root 4018399 12ŒŽ 8 16:14 hamcore.se2* -rwxrwxrwx 1 root root 1942994 12ŒŽ 9 02:23 libcrypto.a* -rwxrwxrwx 1 root root 336070 12ŒŽ 9 02:23 libssl.a* -rwxr-xr-x 1 root root 1814216 12ŒŽ 9 02:23 vpncmd* -rwxrwxrwx 1 root root 1630858 12ŒŽ 9 02:23 vpncmd.a* -rwxr-xr-x 1 root root 1814120 12ŒŽ 9 02:23 vpnbridge* -rwxrwxrwx 1 root root 1630304 12ŒŽ 9 02:23 vpnbridge.a* [root@machine root]# |
上記のように /usr/local/vpnbridge/ ディレクトリにすべてのファイルが移動したことが確認されれば、配置は完了しています。
次に、この vpnbridge ディレクトリ内のファイルを「root 権限」でなければ読み書きすることができないように、パーミッションを変更して保護します。
[root@machine root]# cd /usr/local/vpnbridge/ [root@machine vpnbridge]# chmod 600 * [root@machine vpnbridge]# chmod 700 vpncmd [root@machine vpnbridge]# chmod 700 vpnbridge [root@machine vpnbridge]# ls -l Total 13000 -rw------- 1 root root 20245 12ŒŽ 8 16:14 License_ReadMeFirst.txt -rw------- 1 root root 20317 12ŒŽ 8 16:14 License_ReadMeFirstSjis.txt -rw------- 1 root root 30210 12ŒŽ 8 16:14 License_ReadMeFirstUtf.txt -rw------- 1 root root 609 12ŒŽ 8 16:14 Makefile -rw------- 1 root root 4018399 12ŒŽ 8 16:14 hamcore.se2 -rw------- 1 root root 1942994 12ŒŽ 9 02:23 libcrypto.a -rw------- 1 root root 336070 12ŒŽ 9 02:23 libssl.a -rwx------ 1 root root 1814216 12ŒŽ 9 02:23 vpncmd* -rw------- 1 root root 1630858 12ŒŽ 9 02:23 vpncmd.a -rwx------ 1 root root 1814120 12ŒŽ 9 02:23 vpnbridge* -rw------- 1 root root 1630304 12ŒŽ 9 02:23 vpnbridge.a [root@machine vpnbridge]# |
これで vpnbridge プログラムの配置は完了です。
9.3.7 vpncmd の check コマンドによる動作チェック
vpnbridge の動作を開始する前に、お使いのコンピュータシステム上で VPN Bridge を正しく動作させることができるかどうかの最終確認を行うことをお勧めします。
「vpncmd コマンドライン管理ユーティリティ」(詳細は 「第6章 コマンドライン管理ユーティリティマニュアル」 を参照してください) の「check」コマンドを使用すると、システムが VPN Bridge を動作させることができる十分な能力を持っているかどうかを自動的に検査することが可能です。
まず「./vpncmd」と入力して「vpncmd」を起動してください。次に「3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)」を選択し、「check」コマンドを実行してください。
[root@machine vpnbridge]# ./vpncmd vpncmd command - SoftEther VPN Command Line Management Utility SoftEther VPN Command Line Management Utility (vpncmd command) By using vpncmd program, the following can be achieved. 1. Management of VPN Server or VPN Bridge 2. Management of VPN Client 3. Use of VPN Tools (certificate creation and communication speed measurement) Select 1, 2 or 3: 3 VPN Tools was launched. By inputting HELP, you can view a list of the commands t hat can be used. VPN Tools>check Check command - Check if SoftEther VPN Operation is Possible --------------------------------------------------- SoftEther VPN Operation Environment Check Tool If this operation environment check tool is run on a system and that system pass es, it is highly likely that SoftEther VPN software can operate on that system. T his check may take a while. Please wait... Checking 'Kernel System'... [Pass] Checking 'Memory Operation System'... [Pass] Checking 'ANSI / Unicode string processing system'... [Pass] Checking 'File system'... [Pass] Checking 'Thread processing system'... [Pass] Checking 'Network system'... [Pass] All checks passed. It is highly likely that SoftEther VPN Server / Bridge can ope rate normally on this system. The command terminated normally. VPN Tools>exit [root@machine vpnbridge]# |
check コマンドを実行した結果、上記のように画面上に「すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。」と表示された場合は、お使いのシステムは VPN Bridge の動作要件を満たしている可能性が高いため、安心して VPN Bridge をお使いいただくことができます。
もし、上記のチェック結果でいずれかのチェック項目に失敗してしまった場合は、「7.3.1 推奨システム」 および 「7.3.3 必要なソフトウェアおよびライブラリの確認」 をもう一度ご確認いただくことをお勧めします。
9.3.8 スタートアップスクリプトへの登録
上記の方法で vpnbridge を /usr/local/vpnbridge/ ディレクトリにインストールした後は、/usr/local/vpnbridge/vpnbridge プログラムをデーモンプロセスとして Linux が起動している間は常にバックグラウンドで動作し続けるプログラムとして登録する必要があります。この登録作業によって、初めて vpnbridge プログラムは「サービスモード」として動作することができるようになります。
vpnbridge をデーモンプロセスとして Linux に登録するには、下記のようなスタートアップスクリプトを /opt/vpnbridge.sh という名前で作成してください (下記のスタートアップスクリプトは記述例であり、お使いのシステムによっては、一部を書き換えなければ動作しない場合があります)。
#!/bin/sh # description: SoftEther VPN Server DAEMON=/usr/local/vpnbridge/vpnbridge LOCK=/var/lock/subsys/vpnbridge test -x $DAEMON || exit 0 case "$1" in start) $DAEMON start touch $LOCK ;; stop) $DAEMON stop rm $LOCK ;; restart) $DAEMON stop sleep 3 $DAEMON start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0 |
上記のスクリプトをテキストファイルとして /opt/vpnbridge.sh に書き込むには、テキストエディタを使用することもできますが、cat コマンドを使用することもできます。cat コマンドを使用してスクリプトを作成するには下記のようにし、最後の行の改行の後に Ctrl+D キーを押します。
[root@machine vpnserver]# cat > /opt/vpnbridge/ #!/bin/sh # description: SoftEther VPN Bridge DAEMON=/usr/local/vpnbridge/vpnbridge LOCK=/var/lock/subsys/vpnbridge test -x $DAEMON || exit 0 case "$1" in start) $DAEMON start touch $LOCK ;; stop) $DAEMON stop rm $LOCK ;; restart) $DAEMON stop sleep 3 $DAEMON start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0 |
/opt/vpnbridge.sh スタートアップスクリプトを作成した後、このスクリプトのパーミッションを変更して、root 権限を持たないユーザーによって書き換えられないようにします。
[root@machine vpnbridge]# chmod 755 /opt/vpnbridge.sh |
次にSystemdの設定ファイルを /etc/systemd/system/vpnbridge.service に下記のように記述します。
[Unit] Description = vpnbridge daemon [Service] ExecStart = /opt/vpnbridge.sh start ExecStop = /opt/vpnbridge.sh stop ExecReload = /opt/vpnbridge.sh restart Restart = always Type = forking [Install] WantedBy = multi-user.target |
最後に、「systemctl」コマンドを使用して、上記のスタートアップスクリプトが Linux カーネル起動時に、自動的にバックグラウンドで起動するようにします。
[root@machine vpnserver]# systemctl enable vpnbridge |
これで VPN Server を「サービスモード」として動作させる準備が整いました。
9.3.9 サービスの開始と停止
サービスモードとして登録された VPN Bridge は、Linux の起動時に自動的に起動し、また Linux のシャットダウン時に自動的に機能を停止します。管理上の理由があり、VPN Bridge サービスを一時的に停止したり、後から再開したりしたい場合は、手動でサービスを停止または開始することができます。
「サービスモード」として登録された VPN Bridge を開始または停止したい場合は、次のように入力します。
VPN Bridge サービスを開始させたい場合
VPN Bridge サービスが動作していない状態で「root 権限」で以下のように入力すると、VPN Bridge サービスが開始されます。
[root@machine vpnbridge]# systemctl start vpnbridge |
VPN Bridge サービスを停止させたい場合
VPN Bridge サービスが動作している状態で「root 権限」で以下のように入力すると、VPN Bridge サービスが停止されます。
[root@machine vpnbridge]# systemctl stop vpnbridge |
VPN Bridge サービスを停止させる必要がある状況
VPN Bridge サービスを手動で停止させる必要があるのは、下記のような場合だけです。
- 手動でコンフィグレーションファイルを編集したり置き換えたりする場合。
- VPN Bridge の新しいバージョンが公開されたため、vpnbridge プログラムやその他のファイルなどを、最新版にアップデートする場合 (vpnbridge、vpncmd および hamcore.se2 ファイルを置換する場合は、事前に必ずサービスを停止させてください)。
- 万一動作中の VPN Bridge の挙動が不安定になった場合などでサービスを再起動したい場合。
vpnbridge プロセスの強制終了
滅多に発生しませんが、コンピュータの物理メモリの障害やソフトウェアのバグなどによって、VPN Bridge の動作が異常になることがあります。このような場合、上記の方法で VPN Bridge サービスを停止しようとしても応答がない場合は、vpnbridge プロセスを強制終了することによってサービスを停止させることができます。vpnbridge プロセスを強制終了する具体的な方法については、「3.2.2 ユーザーモード」 の 「kill」コマンドの使用方法を参照してください。
9.3.10 一般ユーザー権限で起動する場合の制限事項
Linux 版 VPN Bridge は一般ユーザー権限で起動することもできます。一般ユーザー権限で「ユーザーモード」として起動する場合、システムのサービスとして登録することはできませんが、一般ユーザーが 「./vpnbridge start 」と入力して VPN Bridge プログラムをバックグラウンドで起動した場合は、Windows 版と異なりそのユーザーがログアウトした後も vpnbridge プロセスは動作を続けることができます。なお、ソフトイーサ株式会社は、以下のような理由で VPN Bridge をユーザーモードで本格的に運用することを推奨していません。
- 「ローカルブリッジ機能」(詳しくは 「3.6 ローカルブリッジ」 を参照してください) が使用できなくなります。そのため、VPN Bridge の機能の価値が半減します。
- システム起動後、ユーザーがログインして手動で vpnbridge プロセスを起動しなければならないため、運用性が低下します。