それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

LinuxでOpenVPNの暗号化通信をする。

OpenVPNで通信を暗号化したい。

OpenVPNをつかって、通信を暗号化したい。とくに、検閲への不安が一番大きい。最近のLTE回線はどう運用されているのか、ほんとうにわからないよね。インターネットもCDN経由で通信はどこで見られてるのか想像がつかない。CDN事業者がサーバー鍵を漏らさない保証は何処にもないわけで。NSAがその気になればサーバー鍵を取り押さえたり、CDNにデータ提供を強制する悪夢も考えられる。本邦の捜査機関は、自由闊達というか自由奔放なので、無限ループすら逮捕してて、昨今の事情を考えると、セキュリティ関連のあれこれを試すのに、VPNくらい持っておいたほうが良いかなと。

OpenVPNで暗号化通信。

OpenVPNは、小規模なネットワークに最適な、VPN構築ツール。

TUN/TAP を使える

tunでトンネルを使える。tapでイーサネットブリッジを使える

UDP/TCPを選べる

パケットを転送を選べる

NAT/DHCPなど

OpenVPNは通常のルータと同等に、DHCPやNATを使えるし、ルーティングテーブルの書き換えもやってくれる。

多様なOS

Windowsはもちろんのこと、LinuxmacOSも、iOSでもソフトウェアが用意されている。

情報が多い

玉石混淆だけど、情報は多い。

GPL

ソフトウェアはGNU Public License で提供されてる

TLS

TLSによる暗号化をサポートしている。HTTPSと同じなのでHTTPSが通ればパケットフィルタリングされない。

https://wiki.archlinux.jp/index.php/OpenVPN

特に問題なのは、ソフトウェアが多くて情報が過多になっている。あれれと思ったときに調べるのに苦労する。

とりあえずインストールしたいとき

openvpn-install.sh が一番らくちんで何も考えずにできる。あとは1194 ポートを開けるだけ。

# curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
# chmod +x openvpn-install.sh
# ./openvpn-install.sh

情報が多すぎるOpenVPN

  • 認証方式に、共有鍵、鍵交換、TLSなど、多岐にわたる
  • 接続に、tun/tap と peer to peer など多岐にわたる
  • サーバーOSに、WindowsやらQNAPやOpenWRTやUbuntuなど多岐にわたる
  • クライアントに、WindowsMaciOSなど多岐にわたる
  • 差異を吸収するために、自動化ツールが多種多様ある。
  • これらの設定を簡便化するために、*.ovpn ファイルを多様な方法で作成してる。
  • OpenVPNで設定してくれるけどiptablesやetables やルーティングテーブルでも設定できる。
  • 速度が出ないからチューニングも多岐にわたる

ほんと、多種多様な設定方法があって、ちょっとググってもほんとうにわからないよね。。。。

openvpn-install.shとかあるしさー

OpenVPNを難しいと感じたわけ。

いろいろ試しているうちに、OpenVPNが難しいなと感じたのは、次の点でした。

  • サーバー設定とクライアント設定がある
  • ルーティング関連
  • TLS 関連

サーバーとクライアントを別個に設定を作っていると何処で間違えたのかとか、自動生成に頼ってると見失いそうです。

そこで、シンプルなところから初めて、徐々に慣れていければと思って調べました。

コマンドから試すOpenVPN

まずはじめに、コマンドからシンプルに使います。そこから順に試していきたいと思います。

それぞれ、長いので、別記事になっています。

  1. OpenVPNコマンドで直接起動して接続される状態を体験する。 - それマグで!
  2. OpenVPNのシンプルな接続に共通鍵(鍵ファイル)による認証を加える - それマグで!
  3. OpenVPNの起動オプションをovpnファイルのconfig にまとめる。 - それマグで!
  4. OpenVPNでeasy-rsaを使ったCA構築でTLS接続の準備をする - それマグで!