クラウドサーバと結ぶVPN環境を「OpenVPN」で構築する(前編):DRBDの仕組みを学ぶ(8)(2/3 ページ)
万一の時にも、業務に影響を与えない/自動的に復旧することを目指す「災害対策システム」。今回はオープンソースのVPNソフトウェア「OpenVPN」を使い、遠隔地のサーバとのVPN環境を構築する具体的な方法を説明します。
証明書と秘密鍵を作成する
VPN通信に必要な「証明書」と「秘密鍵」を作成します。
まず、一号機、二号機のそれぞれで証明書と秘密鍵を格納するディレクトリを作成しておきます。
# mkdir -p /etc/openvpn/keys
証明書と秘密鍵は一号機で作成します。作成する証明書と秘密鍵は以下の通りです。
ファイル名 | 用途 | 格納先サーバ |
---|---|---|
ca.crt | CA証明書 | VPNサーバ/VPNクライアント |
ca.key | CAキー | VPNサーバ/VPNクライアント |
ta.key | TLS認証鍵 | VPNサーバ/VPNクライアント |
server.crt | VPNサーバ証明書 | VPNサーバ |
server.key | VPNサーバ秘密鍵 | VPNサーバ |
dh2048.pem | DHパラメーター | VPNサーバ |
client.crt | VPNクライアント証明書 | VPNクライアント |
client.key | VPNクライアント秘密鍵 | VPNクライアント |
CA証明書を作成する
では、CA証明書から作成していきましょう。まず、ディレクトリを移動します。
cd /etc/openvpn/easy-rsa/2.0
「vars」ファイルを修正します。修正するのは、64〜69行目にあるサーバ情報の部分です。こちらは自身の環境に合わせて適宜入力してください。
# vi vars <省略> export KEY_COUNTRY="JP" #国名 export KEY_PROVINCE="Tokyo" #都道府県 export KEY_CITY="Sumida-Ku" #町 export KEY_ORG="bk-proxy" #システム名 export KEY_EMAIL=xxx@xxxx.xxx #メールアドレス export KEY_OU=”ThirdWare Inc.“ #組織名 <省略>
続いて、以下のコマンドを順番に実行していきます。
# source ./vars # ./clean-all # ./build-ca
# source ./vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys # ./clean-all # ./build-ca <表示省略> #
./build-caのコマンド実行後に幾つかの設問がありますが、そのまま「Enter」で進めて問題はありません。
TLS鍵を作成する
TLS鍵を作成します。
# openvpn --genkey --secret /etc/openvpn/easy-rsa/2.0/keys/ta.key
サーバ用証明書と秘密鍵を作成する
サーバ用証明書と秘密鍵を作成します。
# cd /etc/openvpn/easy-rsa/2.0 # ./build-key-server server
先ほどと同様に、./build-key-server serverコマンドの実行後に幾つかの設問がありますが、途中まで「Enter」で進めて問題ありません。最後に2つの設問では、「y」を入力します。
<省略> Certificate is to be certified until Mar 4 07:00:20 2026 GMT (3650 days) Sign the certificate? [y/n]:y #yと入力 1 out of 1 certificate requests certified, commit? [y/n]y #yと入力 Write out database with 1 new entries Data Base Updated #
DHパラメーターを作成する
DHパラメーターを作成します。
# openssl dhparam -out /etc/openvpn/keys/dh2048.pem 2048
DHパラメーターは、作成に少し時間がかかります。コマンドプロンプトが返ってくるまで数十秒待ちましょう。
クライアント用証明書と秘密鍵を作成する
クライアント用の証明書と秘密鍵を作成します。
# cd /etc/openvpn/easy-rsa/2.0 # ./build-key client
サーバ用証明書の作成時と同様に、./build-key clientコマンドの設問も、途中まで「Enter」で進め、最後に2つの設問で「y」を入力します。
<省略> Certificate is to be certified until Mar 4 07:04:58 2026 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated #
証明書と秘密鍵を配置する
以上で証明書と秘密鍵を作成できました。これらを適切なディレクトリへ配置します。
一号機で実行します。
# cd /etc/openvpn/easy-rsa/2.0/keys # cp ca.crt ca.key server.crt server.key ta.key /etc/openvpn/keys/
作成した証明書と秘密鍵を、二号機へscpコマンドでコピーします。
# cd /etc/openvpn/easy-rsa/2.0/keys # scp ca.crt ta.key client.crt client.key root@<二号機のIPアドレス>:/etc/openvpn/keys/
上記ではrootユーザーを使っていますが、自身の環境に合わせて読み替えて実行してください。
なお、クラウド環境ではrootでのログインを禁止していることがあります。この場合は、ログイン可能なユーザーのホームディレクトリなどに一度ファイルを置いて、最終的に「/etc/openvpn/keys/」へ配置するようにします。
AWS環境へコピーする
参考として、Amazon Web Services(AWS)環境での方法を説明します。コピー先のOSとしてRed Hat Enterprise Linux 7を想定しています。ec2-userが存在しない場合は、ログイン可能なユーザーのhome領域にコピーしてください。
# cd /etc/openvpn/easy-rsa/2.0/keys # scp -i <ログイン用の鍵ファイル> ca.crt ta.key client.crt client.key ec2-user@<AWS環境のグローバルIPアドレス>:/home/ec2-user
# cd /home/ec2-user # cp ca.crt client.crt client.key ta.key /etc/openvpn/keys/
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 障害時にサブサーバへ自動で切り替える「高可用性WordPressシステム」の作り方 前編
サービスを止めてはならない環境で活躍する冗長化支援ツール「DRBD」。今回は、CMSツールとして多くのWebサイトで利用されている「WordPressサーバ」の高可用性をDRBDで確保する方法を解説します。前編は、必要なソフトウェアのインストールと初期設定までを説明します。 - DRBD(Distributed Replicated Block Device)とは何か
障害監視ツールなどと一緒に使うことで、サービスの継続提供を助けるDRBD。Linuxカーネルに統合されている機能ですが、上手に使いこなしているでしょうか? 本連載では、DRBDの動作や使いどころを順を追って紹介していきます。 - ミラーリングツール「DRBD」によるデータ保護
「Heartbeat」の適切な導入によってHAクラスタを構成し、Linux上で動作しているサービスの可用性を上げることができます。続いて、肝心のデータそのものを保護できるツール「DRBD」について紹介しましょう。 - ここが変わったCentOS 7──「新機能の概要とインストール」編
「CentOS 7」を皆さんどれだけ理解していますでしょうか。CentOS 7は、以前のバージョンから使い勝手がかなり変わりました。本連載では、今さら聞けない/おさらいしたいというインフラエンジニアに向け、CentOS 7の概要と基礎から活用Tipsまでを紹介していきます。 - DRBD+iSCSI夢の共演(前編)〜 Windowsドライブをミラーリングで保護 〜
Linux上で動作するオープンソースソフトウエア「DRBD」とiSCSIを組み合わせ、部門内のWindows端末のデータをバックアップするシステムを構築してみよう - OSSとLinuxで高可用システム構築を支援、サードウェア
- Sambaサーバー構築、5つのべからず− 若葉マーク管理者に捧げる
LinuxやUNIXをWindowsのファイルサーバー/プリントサーバーとしてしまうことができる「Samba」は、手軽にファイル共有環境を構築することができ、サーバー管理入門にもぴったりです。インターネット上の関連情報も豊富ですが、しっかり出所を確かめないと誤った設定を招く恐れがあります。