読者です 読者をやめる 読者になる 読者になる

Tech Beans

Web企業で働くエンジニアのBlog


PPTP vs L2TP/IPSec vs OpenVPN vs IKEv2

iOS10からPPTPクライアントが廃止されてしまい、 家のバッファロールータで動いていたPPTPサーバにアクセスできなくなってしまったので、この際きちんとVPNサーバーを立ててみる。

まずはVPNの方式について調査。

VPN方式の違い

PPTP

古くからある方式だが、脆弱性があるため現在は基本的に使用しない。

  • メリット
    • 歴史が古く、多くのクライアントがある。
    • 構築がかんたん
    • 高速
  • デメリット
    • 安全ではない(が、今でも広く使われている)

L2TP or L2TP/IPsec

現在一般的な方式。L2TP単体ではなくIPsecと組み合わせて構築する。

  • メリット
    • 安全(と思われる)
    • 構築がかんたん
    • 対応クライアントが多い
    • OpenVPNより高速
  • デメリット
    • クラック済みといううわさがある(詳しくは参考記事を参照)
    • UDP:500を使用するためポートフォワーディングが必要

OpenVPN

SSLの仕組みに乗っかる形のVPN. 

  • メリット
    • 柔軟な設定
    • 高い安全性(ここで比較しているどの方式と比較しても安全)
    • SSLポートを使用しているのでファイヤウォールに穴をあける必要がない
    • 暗号化アルゴリズムを選択できる
    • オープンソース実装がベース
  • デメリット
    • 標準で対応しているクライアントが少ない
    • 設定難
    • バイルデバイス(iOS, Android)対応がいまいち

SSTP

Microsoftが開発した比較的新しい方式。

  • メリット

    • 高い安全性
    • Windowsとの親和性が高い
    • ほとんどのファイヤウォールを通過できる
  • デメリット

IKEv2

MicrosoftCiscoが開発した方式

  • メリット
    • 一時的な接続断があっても再接続を行うなど、安定性が高い。モバイル向き(←これ、ポイント高い)
    • PPTP, SSTP, L2TPより高速
    • 高い安全性
    • 構築がかんたん
  • デメリット
    • クライアントが限られる(とはいえ、最近のiOS, macOSでは対応済み)
    • 実装が難しく、開発が難しい(潜在的なバグのリスク?)

まとめ

参考サイトにある通り、OpenVPN > iKEv2 > L2TP/IPsec >> SSTP >>>>> PPTP(論外) という感じかな。

  • サードパーティ製のクライアントが必要な点を除けば、OpenVPNが最良
  • 不安定な接続環境下であればiKEv2
  • それ以外はやや安全性が劣るもののL2TP/IPsec

クライアントは主にiOS, macOSだし、外出先からつなぎたいケースがほとんどだから、IKEv2で作ってみよう。

参考

非常にわかりやすい解説だった。