連載
» 2016年03月17日 05時00分 公開

DRBDの仕組みを学ぶ(9):クラウドサーバと結ぶVPN環境を「OpenVPN」で構築する(後編) (2/3)

[澤田健,株式会社サードウェア]

OpenVPNを起動する

 これでOpenVPNの初期設定は完了です。

 早速、動作テストを行いましょう。一号機でVPNサーバを起動します。

# openvpn /etc/openvpn/server.conf
VPNサーバを起動するコマンド
# openvpn /etc/openvpn/server.conf
<省略>
Sat Mar  5 10:43:05 2016 us=125018 Initialization Sequence Completed
コマンド実行時の表示

 実行すると多くのログメッセージが出力されますが、最後に「Initialization Sequence Completed」と表示されれば完了です。

 続いて、二号機でVPNクライアントを起動します。

# openvpn /etc/openvpn/client.conf
VPNクライアントを起動するコマンド
# openvpn /etc/openvpn/client.conf
<省略>
Sat Mar  5 10:44:48 2016 us=162042 Initialization Sequence Completed
コマンド実行時の表示

 こちらも同様に、最後に「Initialization Sequence Completed」と表示されれば完了です。

 それぞれが正常に起動したかどうかを、別のターミナルを開いて確認します。

# ip addr show
一号機と二号機、それぞれで実行します
  • 一号機での表示例
photo
  • 二号機での表示例
photo

 コマンド実行後、「tun0」というデバイスが表示され、それぞれで指定した「10.0.0.1」と「10.0.0.2」が見えていますでしょうか。

 念のため、お互いpingコマンドを打って疎通確認もしておきましょう。一号機からは「ping 10.0.0.2」、二号機からは「ping 10.0.0.1」を入力します。疎通も問題がなければ、VPN接続のテストは完了です。

ログ出力の設定を追加する

 テスト起動が済んだら、それぞれの設定ファイルにログ出力先の記述も追加しておきます。

  • 一号機の作業 「/etc/openvpn/server.conf」の301行目
log /var/log/openvpn.log
/etc/openvpn/server.conf :301
  • 二号機の作業 「/etc/openvpn/client.conf」の122行目
log /var/log/openvpn.log
/etc/openvpn/client.conf :122

自動起動の設定を行う

 テストで問題なくVPN接続ができることを確認できました。次は運用のためにsystemctlコマンドで起動し、さらに自動起動の設定をしていきます。

# systemctl start openvpn
systemctlコマンドでOpenVPNを起動する

 しかし……

# systemctl start openvpn
Failed to start openvpn.service: Unit openvpn.service failed to load: No such file or directory.

 と表示され、起動できません。2016年3月現在、systemctlからOpenVPNはうまく起動できないようです。こちらは今後改善されると思いますので、今回は暫定的にスクリプトを作成し、このスクリプトをsystemctlから利用することにします。

(暫定版)OpenVPNの起動スクリプトを作る

 暫定版のスクリプトを作成しましょう。……と言っても簡単なものです。viエディタなどで「/opt/openvpn-server.sh」を作成し、先ほどのテスト起動で用いたコマンドを記述するだけです。

# vi /opt/openvpn-server.sh
#!/bin/bash
openvpn /etc/openvpn/server.conf
「/opt/openvpn-server.sh」の内容

 作成したスクリプトに実行権限を付与します。

# chmod 755 /opt/openvpn-server.sh
「/opt/openvpn-server.sh」に権限「755」を付与する

 なお、今回の例では「/opt」ディレクトリにファイルを置きましたが、任意の場所で構いません。

 二号機も同様にスクリプトを作り、実行権限を付与します。

# vi /opt/openvpn-client.sh
#!/bin/bash
openvpn /etc/openvpn/client.conf
「/opt/openvpn-client.sh」の内容
# chmod 755 /opt/openvpn-client.sh
「/opt/openvpn-client.sh」に権限「755」を付与する

systemdでサービス登録する

 作成したスクリプトをsystemdのサービスとして登録しましょう。一号機では「/etc/systemd/system/openvpn-server.service」を、二号機では「/etc/systemd/system/openvpn-client.service」を作成して登録します。

  • 一号機の作業
# vi /etc/systemd/system/openvpn-server.service
[Unit]
Description = OpenVPN-Server daemon
[Service]
ExecStart = /opt/openvpn-server.sh
Restart = always
Type = simple
[Install]
WantedBy=multi-user.target
「/etc/systemd/system/openvpn-server.service」の内容
  • 二号機の作業
# vi /etc/systemd/system/openvpn-client.service
[Unit]
Description = OpenVPN-Client daemon
[Service]
ExecStart = /opt/openvpn-client.sh
Restart = always
Type = simple
[Install]
WantedBy=multi-user.target
「/etc/systemd/system/openvpn-client.service」の内容

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。