おはようございます!マネジメントオフィスいまむらの今村敦剛です。
この度、IDCフロンティアのIaaS型パブリッククラウドサービスを使い、OpenVPNサーバを構築しました。その構築方法を記録する第7回目です。今回は、サーバの設定(server.conf作成)をします。
この連載の全体的な構成
この連載は、全10回を予定しています。今回は第7回目「server.conf作成」です。
連載記事一覧
- 全体構想
- IaaS設定 - 仮想マシン作成
- IaaS設定 - IaaSネットワーク設定
- IaaS設定 - 操作環境整備
- IaaS設定 - DDNS設定
- VPNサーバ設定 - インストール
- VPNサーバ設定 - 鍵・証明書作成
- VPNサーバ設定 - server.conf作成
- VPNクライアント設定 - 鍵・証明書作成
- VPNクライアント設定 - client.ovpn作成
- VPNクライアント設定 - windows自動起動設定
鍵・証明書ファイルのコピー
OpenVPNで通信をするには、通信相手が正しいことを確認するために、いくつかの鍵・証明書の作成が必要です(イメージは下記の図のとおり)。そして前回の記事では、これらの鍵・証明書のうち、クライアント証明書・クライアント秘密鍵以外の鍵・証明書を作成しました。
前回の記事で作成した鍵・証明書と、それらのファイルのありかは下記の通りのはずです。
- ca.crt /usr/share/easy-rsa/3.0.8/pki/
- server.key /usr/share/easy-rsa/3.0.8/pki/private
- server.crt /usr/share/easy-rsa/3.0.8/pki/issued
- dh.pem /usr/share/easy-rsa/3.0.8/pki/
- ta.key /usr/share/easy-rsa/3.0.8/
- ca.key /usr/share/easy-rsa/3.0.8/pki/private
- client.key /usr/share/easy-rsa/3.0.8/pki/private
- client.crt /usr/share/easy-rsa/3.0.8/pki/issued
このうち、上記の赤字の5つのファイル(ca.crt、server.key、server.crt、dh.pem、ta.key)は、etc/openvpnにコピーをします。(サーバが保持すべき鍵・証明書ファイルなので)
コピーは、本連載の第3回で設定をしたWinSCPでやるのが簡単です。
OpenVPNサーバの設定①(server.confサンプルファイルのコピーと前準備)
続いて、OpenVPNサーバの設定をします。ここがOpenVPN設定の本丸と言ってもいいくらい重要な部分です。設定を間違えたらうまく動作しません。難しそうだなあと思われるかもしれませんが、実はお手本となるサンプルのファイルがすでに仮想マシン(linux)上にあります。ですので、サンプルファイルのうち、変更すべき箇所だけ変更をすればOKです。
お手本となるサンプルファイルは、/usr/share/doc/openvpn-2.4.12/sample/sample-config-filesというディレクトリにあるserver.confというファイルです。(openvpnのバージョンによっては、2.4.12の数字の部分が異なりますので注意をしてください)。まずはこのディレクトリにWinSCPで移動をして、そしてserver.confのファイルをetc/openvpnにコピーします。(さきほど、a.crt、server.key、server.crt、dh.pem、ta.keyの5つのファイルをコピーしたのと同じ場所です)
etc/openvpnにコピーをしたら、コピーをしたそのファイルを、WinSCPでダブルクリックして、いつも使っているエディタで編集するのが楽でしょう(viコマンドでlinux標準のエディタを起動して編集してもいいですが、慣れたエディタを使うのが楽です)。WinSCPでのエディタの設定は、オプション(O)→環境設定(P)を押したら出てくる下記のウィンドウでできます。
OpenVPNサーバの設定②(server.confの修正)
etc/openvpnにコピーしたserver.confをエディタで開いて修正をしていきます。今回の目的(VPNサーバはIaaS(今回のケースではIDCフロンティアを利用)の仮想マシンにインストール。そして、自宅PCと事務所PCをそれぞれVPNクライアントとして設定。それぞれがVPNサーバとVPNを貼る)にそった設定は下記のとおりです。行数は、サンプルファイルでのserver.confの行数を示しています。
openvpnサーバの起動
これで設定完了なので、最後にサーバを起動します。次の2つのコマンドを叩いてください。
まずはOpenVPNサーバサービスの起動。
command
systemctl start openvpn@server
そしてサービスの自動起動を有効にします。これをやると、仮想マシンを再起動したときに、OpenVPNサーバが自動で起動します。
command
systemctl enable openvpn@server
どうでしょう?できましたか?