openvpn v2.3からv2.4への更新
経緯
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不具合(?)への対応
- ;tls-auth ta.key 0 # This file is secret
+ tls-auth ta.key 0 # This file is secret
- ;cipher AES-256-CBC
+ cipher AES-256-CBC
なぜか更新時にCRL(Certificate Revocation Lists);作成した証明書の失効リストが原因でエラーが出るので、以下のサイトの方法でCRLを再作成します(※サーバサイドを更新しただけでCRLが失効するのはなんかおかしいので、たぶんopenvpnの不具合だと思う…自信なし)。
とりあえずここまでで、openvpnを再起動すればサーバサイドの設定は終わりです。
クライアントサイドの変更
サーバサイドで設定したtls-auth用に, vpnux Client - OpenVPN client for Windowsの設定を追加します。
ここに関してはクラスメソッドさんのブログ記事が詳しいため、それを見ていただきたい。OpenVPN 2.4によるVPN接続環境をAWSで構築する, 記事の"クライアント設定", 以降を参照せよ。
Author And Source
この問題について(openvpn v2.3からv2.4への更新), 我々は、より多くの情報をここで見つけました https://qiita.com/hiroyuki-nagata/items/cfd03cf60efd75737cda著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .