Pritunl で簡単にVPNサーバを構築する

VPN

概要

Printunlという簡単にVPNサーバの構築&管理のできるOSSがあったので使い方を紹介します。

環境

サーバ側

  • Ubuntu 14.04
  • pritunl 0.10.12
  • 開放ポート(管理用) 9700/tcp
  • 開放ポート(VPN用、任意) 12345/udp

クライアント側

  • OSX
  • TunnelBlick 3.4

インストール

依存ファイル、鍵の登録をしてインストールできます。

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository -y ppa:pritunl
$ sudo apt-get update
$ sudo apt-get install pritunl

VPNサーバの構築

ログイン

Webの管理画面が自動で作られるのでそちらにアクセスしてください。
自分のサーバのホスト名を

example.com

とすると、

https://example.com:9700

にアクセスします。するとSSLの警告とともに以下の様なサイトが表示されます。

f:id:quoll00:20141101002518p:plain

初期のID,パスワードは

ID:admin
PW:admin

です。
ログインすると以下の様な画面が表示されます。

f:id:quoll00:20141101002722p:plain

初回起動時ではパスワードの再設定をするように言われます。
してもしなくてもどちらでもOKです。

各種設定

まずはOrganization, Userを設定します。上部メニューのUsersをクリックします。

f:id:quoll00:20141101132639p:plain

Add Organizationをクリックします。

f:id:quoll00:20141101132720p:plain

今回は example という名前で設定します。 もちろん任意です。

f:id:quoll00:20141101132814p:plain

次に Add User をクリックします。

f:id:quoll00:20141101132851p:plain

名前は test としておきましょう。こちらも好きな名前をつけてください。

f:id:quoll00:20141101132943p:plain

サーバの構築

上部メニューの Servers をクリックします。

f:id:quoll00:20141101133346p:plain

Add Server でサーバを追加します。

f:id:quoll00:20141101133417p:plain

主に設定する項目は

  • 名前(任意)
  • 開放ポート(任意)
  • Public IP(自分のサーバのFQDN

です。

f:id:quoll00:20141101133607p:plain

追加できたら先ほど作ったOriganizationにAttachします。
Attach Organization をクリックしてください。

f:id:quoll00:20141101133858p:plain

するとスタートボタンを押せるようになるので、Start を押したらVPNサーバが起動してくれます。

f:id:quoll00:20141101133949p:plain

クライアントから接続

OpenVPNを使うので、まずはOpenVPNの設定ファイルをUser画面からダウンロードしましょう

f:id:quoll00:20141101134227p:plain

こちらの「↓」マークがダウンロードボタンです。

ダウンロードできたら

TunnelBlick を使って OpenVPN で接続する

を参考にVPN接続の設定を行ってください。
接続が完了すると、中のプライベートIPでちゃんと接続できることがわかります。

$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=63 time=173.865 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=63 time=134.951 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=63 time=114.486 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=63 time=264.054 ms

ソース