CentOS6 で構築 OpenVPN 2.4.2 (1. インストール編)

 

 

VPN接続のスタンダードともいえるOpenVPN(https://openvpn.net/)ですが先月(2017.5)最新版2.4.2がリリースされました。

既にOpenVPN環境を構築してVPN接続を利用している法人/個人の方も多くいらっしゃると思います。勿論、コールセンター / テレフォニーシステムにおいても各拠点間をセキュアに結ぶためにVPN接続は欠かせません。
今回はバージョンが古いままOpenVPNを使い続けている方、これから使ってみようという方を対象として、最新版2.4.2のセットアップ方法を紹介します。

 

 

なぜ今、OpenVPNへのアップグレードが必要?

勿論、セキュリティ強化のためなのですが、いくつかの大きな理由があります。

 

1.鍵のサイズは現在2048が主流

->昔からVPNを使用している場合、鍵の長さが短いまま使い続けている可能性があります。鍵が短いと多くのマシンリソースを使用されると簡単に解読される場合があります。

 

2.発見されたクリティカルな脆弱性への対応。

->近年FLEAKをはじめいくつかの大きな脆弱性が指摘されています。バージョンが古いまま使い続けることはこれらの危険にさらされていることになります。
FLEAKについてはこちらが参考になります。(http://itpro.nikkeibp.co.jp/atcl/idg/14/481542/030600084/?ST=cm-cloud&P=1)



 

OpenVPN(2.4.2)のインストール

 

1. OpenVPNのダウンロード

OpenVPN公式ダウンロードサイトからダウンロードできます。
https://openvpn.net/index.php/open-source/downloads.html

注意:yum コマンドを利用して直接openvpnをインストールした場合、最新版を導入することができません。
そのためここではwget コマンドを利用してOpenVPN 2.4.2のソース(tar.gzファイル)をダウンロードする例を紹介します。

# wget https://swupdate.openvpn.org/community/releases/openvpn-2.4.2.tar.gz

 

2.RPMパッケージの作成

ダウンロードしたソースファイル”openvpn-2.4.2.tar.gz”からRPMパッケージを作成します。

 # rpmbuild -tb openvpn-2.4.2.tar.gz

 上記ビルドコマンドが正常終了しない場合、以下をチェックしてください。

 

2-1. ビルドに必要なコマンドはインストール済みか?
参考までに、一般的にbuild/makeに必要なコマンドのインストール方法をあげておきます。ご自身の環境と比較してください。

# yum install gcc
# yum install gcc-c++
# yum install autoconf
# yum install automake
# yum install rpm-build


2-2. 前提条件として必要なモジュールは既にあるか?
詳細はビルド中のエラーメッセージを確認してください。以下はインストールが必要なモジュールの例です。

# yum install openssl-devel
# yum install lzo-devel
# yum install pam-devel

 

3. 作成したRPMパッケージのインストール

# rpm -ivh openvpn-2.4.2-1.x86_64.rpm

インストールが完了すると、/etc/openvpnディレクトリが作成されます。

簡単ですが、これでOpenVPNのインストールは完了です。しかしながら、実際の運用に必要なキーを管理するツール“easy-rsa”がOpenVPN 2.4.2には同梱されていません。
こちらは別途、ダウンロードする必要があります。以下は”easy-rsa 2″をダウンロードした場合の例です。

 

4. easy-rsaのダウンロード

 以下のサイトからeasy-rsa ディレクトリ以下を丸々ダウンロードできます。
https://github.com/OpenVPN/easy-rsa-old

 

5. ダウンロードしたeasy-rsaディレクトリ以下を全て/etc/openvpn/ 以下へコピー

# cp -r easy-rsa /etc/openvpn/

 

これで本当に必要なモジュールのインストールは全て完了です。次回は実際にVPN接続をするために必要なサーバ側/クライアント側の設定について説明します。