pritunl
https://pritunl.com/
https://opensource.com/article/19/1/pritunl-vpn-raspberry-pi
pritunl はVPN サーバの構築と管理をしてくれるOSSで、OpenVPN を使っています。
Raspberry Pi 4 に環境を構築して、OpenVPN クライアントから接続してみました。
操作が簡単で便利ですね。

環境

  • Raspberry Pi 4B
  • Ubuntu Server 19.10 aarch64

構築

以下の手順に従って構築します。いくつかカスタマイズしています。
https://opensource.com/article/19/1/pritunl-vpn-raspberry-pi

前提パッケージ

$ sudo apt-get -y install build-essential git bzr python python-dev python-pip net-tools openvpn bridge-utils psmisc golang-go libffi-dev mongodb libssl-dev

openssl のヘッダ参照でエラーになったのでlibssl-dev を追加しています。

pritunl の最新バージョンの確認

https://github.com/pritunl/pritunl/releases

1.29.2145.25 が最新でした。

pritunl のインストール

環境変数VERSION1.29.2145.25 を指定します。

$ sudo su -
# cd /opt
# export VERSION=1.29.2145.25
# tee -a ~/.bashrc << EOF
export GOPATH=\$HOME/go
export PATH=/usr/local/go/bin:\$PATH
EOF
# source ~/.bashrc
# mkdir pritunl && cd pritunl
# go get -u github.com/pritunl/pritunl-dns
# go get -u github.com/pritunl/pritunl-web
# sudo ln -s ~/go/bin/pritunl-dns /usr/bin/pritunl-dns
# sudo ln -s ~/go/bin/pritunl-web /usr/bin/pritunl-web
# wget https://github.com/pritunl/pritunl/archive/$VERSION.tar.gz
# tar -xf $VERSION.tar.gz
# cd pritunl-$VERSION
# python2 setup.py build
# pip install -r requirements.txt
# python2 setup.py install --prefix=/usr/local

起動

# systemctl daemon-reload
# systemctl start mongodb pritunl
# systemctl enable mongodb pritunl

運用

サーバの設定

http://192.168.11.19
画面の指示に従ってログインした後、サーバを設定します。

  1. Users >> Add Organization
  2. Users >> Add User
  3. Servers >> Add Server
  4. Servers >> Attach Organization
  5. Servers >> Start Server

ルータ、ファイアウォールの設定

指定されたUDP ポートを通過させます。
Servers の各サーバのPort 表示でもポート番号を確認できます。

クライアント設定ファイル

  1. Users >> Click to download profile
  2. username.tar から.ovpn ファイルを抽出

クライアント設定と接続

  1. 各デバイスのOpenVPN アプリで.ovpn ファイルを取り込み
  2. 接続

接続するとダッシュボート画面のUsers のカウントが増えます。