Ubuntu 16.04に2.4系の最新なOpenVPNを導入する

2018年6月5日金盾対策Linux, Ubuntu, VPN, OpenVPN, プロキシ

先日、UbuntuにOpenVPNを入れてみたが、入っているバージョンはかなり古いもので、なんと2.3.10であった。

# openvpn --version
OpenVPN 2.3.10 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Jun 22 2017

2.4系になると、圧縮アルゴリズムや暗号化アルゴリズムが新しくなっているとのことで、最新版であるOpenVPN 2.4.5のインストールを行う。

リポジトリの登録

OpenVPNの公式サイトが、最新版のOpenVPN用リポジトリを提供している。
次の方法で、これをaptに加える。

$ curl -s https://swupdate.openvpn.net/repos/repo-public.gpg | apt-key add
$ sudo echo "deb http://build.openvpn.net/debian/openvpn/stable xenial main" > /etc/apt/sources.list.d/openvpn-aptrepo.list

その後、apt-get update && apt-get upgradeをすると、openvpnがupgradeされる。

openvpn --version
OpenVPN 2.4.5 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Mar  1 2018

無事、2.4.5になった。

OpenVPNの設定ファイルを変更する

2.3系用に作っていた設定ファイルの一部を変更する。具体的には次の通りだ。

圧縮アルゴリズムの変更

comp-lzoは段階的に廃止され、今後はlz4-v2というものがメジャーになっていくとのこと。
従って、comp-lzoは外してしまい、代わりに以下を記入。

compress lz4-v2
push "compress lz4-v2"

暗号化方式をGCMに変更

OpenVPNは2.4系からGCMに対応した。これを明示的に記載する。

cipher AES-256-GCM
ncp-ciphers AES-256-GCM

TLSバージョンの変更と強度の変更

TLSについても、1.2以上を原則とし、さらにECDHという方式を利用することにする。これによって、非常に強い強度で通信を守ることが出来る。

tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384
reneg-sec 60

ここまで行ったら、サーバーの再起動をする。

$ sudo service openvpn@server restart

正常に稼働していることを確認しよう。

$ sudo systemctl status openvpn@server
● openvpn@server.service - OpenVPN connection to server
   Loaded: loaded (/lib/systemd/system/openvpn@.service; enabled; vendor preset: enabled)

クライアント側の.ovpnファイルの変更

サーバー側の変更に伴い、クライアント側の.ovpnファイルも変更する必要がある。
次のような形にした。

client
dev tun
proto udp
remote addr port
remote-cert-tls server
cipher AES-256-GCM
ncp-ciphers AES-256-GCM
auth SHA512
compress lz4-v2
<ca>
-----BEGIN CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
</key>
key-direction 1
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
</tls-auth>

つなげてみる

実際につなげてみると、正直2.3系のときとの違いはさほど分からない(ちょっと早い気もするが、インターネットへのアクセスなので、他の要因に左右されている可能性がたぶんにある)。
しかし、暗号強度が増したことによって、中国からのアクセスはより行いやすくなっているだろう……ということで、Ubuntuに最新版のOpenVPNを入れる話であった。