#author("2018-07-08T07:59:15+00:00","default:masatomix","masatomix")
#topicpath
----

#ref(top.png)


#contents

PritunlはいわゆるOpenVPN ServerのWrapperで、なかなかめんどくさかったOpenVPN サーバの構築をあっという間におこなう事が出来る便利ライブラリです。公式を見るとAWS上にいれてEC2への接続をセキュアにするなんて事も出来るようです。

https://pritunl.com/


フリープランとか有料プランとかあるっぽいですが、フリーのプランではOpenVPNのブリッジ接続はつかえないようで、NAT接続( VPN接続はすべてOpenVPNサーバがNAT変換する) となるようです。ようするに

#ref(before.png)


こんなネットワークに対して、

#ref(after.png)

こんなネットワークが構築され、Pritunl Server(192.168.0.50 のサーバ)が、クライアントの接続を中継する形となります。((通信的には微妙に異なるけどまあ概念的にあってればヨシとする))



**やってみる [#j1073c22]

今回は下記の Ubuntu Server にインストールします
 $ cat /etc/lsb-release
 DISTRIB_ID=Ubuntu
 DISTRIB_RELEASE=16.04
 DISTRIB_CODENAME=xenial
 DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"

VPNサーバにしたいサーバのIPは以下の通り
 $ ifconfig
 enp0s8    Link encap:Ethernet  HWaddr 08:00:27:c3:3f:4d
           inet addr:192.168.0.50  Bcast:192.168.0.255  Mask:255.255.255.0

その他、
 ルータのそとのグローバルアドレス: 111.101.12.xxx
 ルータのなかのネットワーク: 192.168.0.0/24
 Pritunlサーバが構築する仮想ネットワーク: 192.168.238.0/24  ← Pritunlサーバが勝手に決めるぽい
 PritunlのWEB画面のSSLポート番号:443
とします。

OpenVPNサーバは ルータのなかに存在するので、 ルータのポート443 → 192.168.0.50のポート443 にPort Forwardingする設定などを、そとのルータに入れておきましょう。((WEBさーばとしてほかで使ってたら、そのポート番号は適宜空きポートを使用してください))





公式が超ていねいなので順次ソコを追っかけます。

https://docs.pritunl.com/docs/installation




**インストール [#qe391bb5]
下記のshをつくって実行しなさいとあるのでその通りに。下記のshは 2018/07/08時点なので、適宜公式を確認してください。

 $ cat  install.sh
 #!/bin/bash
 echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" > /etc/apt/sources.list.d/mongodb-org-3.6.list
 echo "deb http://repo.pritunl.com/stable/apt xenial main" > /etc/apt/sources.list.d/pritunl.list
 apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
 apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292A
 apt-get --assume-yes update
 apt-get --assume-yes upgrade
 apt-get --assume-yes install pritunl mongodb-org
 systemctl start pritunl mongod
 systemctl enable pritunl mongod

 $ chmod 755 install.sh
 $ sudo ./install.sh

インストールは完了です。

 $ sudo systemctl status mongod
 $ sudo systemctl status pritunl

でサービスがrunningになってればOkです。


*** セットアップキーを取得 [#o731d83a]
ブラウザで、 https://192.168.0.50/ にアクセスすると、データベースのセットアップ画面が表示されます。

#ref(01.png)

Setup Keyというのが必要なのですが、画面に書いてあるとおり

 $ sudo pritunl setup-key
 xxxxxxxxxxxxxxxxxxxxx

と打つことでキーが取得できるので、その値を使用すればOKです。


DBセットアップが完了すると、ログイン画面が表示されます。

#ref(02.png)

初回は pritunl/pritunl でログインします。


ログインすると、初期セットアップ画面が表示されます。
#ref(03.png)


UsernameとNew Password は適宜入力、Public Addressは、OpenVPNクライアントが接続するIPとなるので、今回の例だとルータの外の111.101.12.xxx を入力。ポート番号は、このサーバが起動しているSSLのポート番号(通常443)を指定します。

以上で基本的な初期セットアップは完了です。

**環境設定 [#t862391a]
Pritunlは OpenVPNサーバ(Servers) を立てて、また組織(Organizations )を作成し、そこにユーザ(Users)を作成します。Server にOrganization をAttach することで、そのユーザがそのOpenVPNサーバを利用出来るようになります。

#ref(dashboard.png)


*** 組織とユーザを作成する [#h7940496]
右上の 「Users」をクリックし、「Add Organization」を選択。適当な名前(ここではtestOrg)を入れて「Add」を押します。

#ref(04.png)

つづいてユーザの作成です。「Add User」を選択。Nameはとりあえず「user01」、Organizationはさきほどの「testOrg」を選択、Pinはパスワードなので任意の文字(数字のみ?っぽい)を入れておきます。

#ref(05.png)


下記の通りなればユーザ作成は完了です。

#ref(06.png)


*** サーバを作成する [#q07d0f5c]
ようやくOpenVPNサーバを作成します。 右上の「Servers」をクリックし「Add Server」を選択します。
Nameは「test server」Portは自動選択されルっぽいですが、18680/udpを選択しました。

このUDPポートはOpenVPNとの通信に使用するので、さきほど外のルータに443のPort Forwadingを設定しましたが、このポート番号18680/UDPもPort Forwardingに設定しておきましょう。

Virtual Networkはさきほど OpenVPNサーバが適当に設定されます。ここでは 192.168.238.0/24  となっていました。

最後に「Add」を押せばOK。

#ref(07.png)

下記のようになっていればOKですね。

#ref(08.png)

つづいてこのサーバがNATするネットワークを指定します。今回はこのOpenVPNサーバは、なかのネットワーク: 192.168.0.0/24にNATすればよいので、「Add Route」をクリックし、Networkに 192.168.0.0/24 を記述し「Attach」をおせばOKです。

#ref(09.png)

下記の通りRouteが設定されました。

#ref(10.png)


*** ServerとOrganizationを関連付け [#m596b5be]
さいごに ServerとOrganization を Attach します。右上の「Attach Organization」を選択し、organizationとserverをそれぞれえらんで Attachを押せばOK。

#ref(11.png)


右上の「Start Server」が押せるようになったので、押下してサーバを起動してください。

#ref(12.png)


サーバの構築は以上です。


** クライアント側の環境構築 [#mecc7d42]
OpenVPNの公式のクライアントでもよいんですが、ここでは http://client.pritunl.com/ よりPritunl Clientを使用します。OSにあったインストーラを使用してインストールしてください。

***プロファイルの取得 [#hda1475d]
さきほどのユーザ画面よりユーザのプロファイルを取得します。右上の Users をクリックし、画面の 下矢印アイコンをクリックして、プロファイル( testOrg_user01_testserver.ovpn をアーカイブしたtarファイル)をダウンロードします。

#ref(user01.png)

このファイルは、さきほどインストールしたアプリに ドラッグ & ドロップするか「Import Profile」などで取り込んでください。


最後に、GUIからConnectを選択し、さきほど設定したPIN番号を入力すればOK.

#ref(13.png)

接続できたら、
 ping 192.168.0.50
 ping 192.168.0.12 ← 初めの図のWEBサーバです 

などに疎通ができればOKです。


おつかれさまでした。
 



 



----
この記事は
#vote(おもしろかった,そうでもない)

#comment

#topicpath

SIZE(10){現在のアクセス:&counter;}

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS