LoginSignup
12
20

More than 5 years have passed since last update.

OpenVPNのTLSと暗号化を強くする

Last updated at Posted at 2016-12-11

主に暗号化の面で。

OpenVPN > 2.4

man→ https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage

GCMがサポートされた。ECDHもサポートされた。
ので、以下がとりあえず2.4系の最強設定。2.3系のクライアントはつなげないかも。
cipherのかわりにncp-ciphersをつかいましょう。

cipher AES-256-GCM
ncp-ciphers AES-256-GCM
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

; compress lz4
compress lz4-v2

おまけとしてlz4対応も!comp-lzoはもう古い。

ログがこのようになっていればPFS対応です。(ECDH*E*のEがついている)

Control Channel: TLSv1.2, cipher TLSv1/SSLv3 ECDHE-RSA-AES256-GCM-SHA384, 2048 bit RSA

おまけ

  • cipher や ncp-ciphers は openvpn --show-ciphers で出てくる中から選べます
  • tls-cipher は openvpn --show-tls コマンドの実行結果中から選べます
  • 楕円曲線の曲線の種類を選びたいなら openvpn --show-curves から選んで ecdh-curve に設定しましょう

OpenVPN < 2.3

TLSバージョンと暗号化アルゴリズムを強化

https://gist.github.com/pwnsdx/8fc14ee1e9f561a0a5b8#file-openvpn-conf
ここでは、以下のような設定が推奨されている。

こちらは、サーバ側に書く。

tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384

reneg-sec 60

以下はクライアントとサーバーに書く。

cipher AES-256-CBC
auth SHA512
  • 参考にしたURLに記載されていた以下の行は、試しても接続ができなかった。ECDHは未対応か?
;tls-cipher TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384

全バージョン共通

TLS Auth (Static PSK)

https://community.openvpn.net/openvpn/wiki/Hardening
また公式ドキュメントでは、tls authを使うことが推奨されている。これは事前共有の全クライアント・サーバーの共通鍵で、DoSなどにより強くなる。

12
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
20