Help us understand the problem. What is going on with this article?

openvpn v2.3からv2.4への更新

More than 1 year has passed since last update.

経緯

Amazon Linuxのパッケージアップデート

以前、以下の記事を参考にVPNサーバを構築していた

しばらくこれで動いていたのだが、パッケージを以下のように更新したところVPNクライアントでエラーが出るようになった。

(旧)openvpn-2.3.12-1.16.amzn1.x86_64
(新)openvpn-2.4.4-1.21.amzn1.x86_64

原因はおそらくopenvpn2.4からtls-auth認証を必須とするようになったからです。OpenVPN側のリリースノートの和訳がありました↓

2017/5/11にOpenVPN 2.4.2がリリースされました。

このバージョンはいくつかのバグフィックスに加えて、以下の2つのDOS攻撃対策が行われています。

  • 巨大なサイズのコントロールパケットを送り込むことにより、ASSERT() が発生して OpenVPN プロセスが停止させられる可能性があります(CVE-2017-7478)。対象となるバージョンは OpenVPN 2.3.12以降 です。なお、 --tls-auth か --tls-crypt が設定されている場合、攻撃を成功させるには攻撃側が正しいTLS鍵を>保持している必要があるため、危険性は大幅に低下します。
  • 認証済みクライアントがサーバーのパケットIDカウンタをロールオーバーを引き起こし、ASSERT() が発生して OpenVPN プロセスが停止させられる可能性があります(CVE-2017-7479)。この攻撃を成功させるには、クライアントはサーバーに対して最低でも 196GB のデータを送り付ける必要があります。

設定変更作業

サーバサイドの変更

tls-authの有効化, 暗号化アルゴリズムの設定

  • そもそもtls-authを有効化してないので有効化する
/etc/openvpn/server.conf
- ;tls-auth ta.key 0 # This file is secret
+ tls-auth ta.key 0 # This file is secret
  • サーバサイドで使う暗号化方法を設定
/etc/openvpn/server.conf
- ;cipher AES-256-CBC
+ cipher AES-256-CBC

アップデート時のopenvpn不具合(?)への対応

なぜか更新時にCRL(Certificate Revocation Lists);作成した証明書の失効リストが原因でエラーが出るので、以下のサイトの方法でCRLを再作成します(※サーバサイドを更新しただけでCRLが失効するのはなんかおかしいので、たぶんopenvpnの不具合だと思う…自信なし:sweat:)。

とりあえずここまでで、openvpnを再起動すればサーバサイドの設定は終わりです。

クライアントサイドの変更

サーバサイドで設定したtls-auth用に, vpnux Client - OpenVPN client for Windowsの設定を追加します。

ここに関してはクラスメソッドさんのブログ記事が詳しいため、それを見ていただきたい。OpenVPN 2.4によるVPN接続環境をAWSで構築する, 記事の"クライアント設定", 以降を参照せよ:point_up:

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away