OpenVPN on Raspberry Pi

昨日から今日にかけて、とりあえずテストの意味で Raspberry PiVPN を導入してみた。
その名も、PiVPN。


本当に「動くかなぁ」なんて軽い気持ちでやっていたので、途中の画面キャプチャをとってなかったりする。
うん、あとで別途纏めよう。

手順

詳細手順は、自分用にあとで纏めるとして、基本的には参考サイト様の言う通り。


注意点としては、最新の Raspbian を使った環境じゃないとダメだったよ……と。
コレ、テスト環境として作っておいた Raspbian サーバで、www.pivpn.io に書いてある通りの、次の PiVPN インストールコマンドを打ってみた。

$ curl -L https://install.pivpn.io | bash

You are on an OS that we have not tested but MAY work.
Currently this installer supports Raspbian and Debian (Jessie and
Stretch), Devuan (Jessie) and Ubuntu from 14.04 (trusty) to 17.04
(zesty).
Would you like to continue anyway?


ざくっと言えば、Jessie か Stretch じゃないとサポートしてない?
うーん、この環境は何だったかなぁと思って確認。

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 7 (wheezy)"
NAME="Raspbian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=raspbian
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"


うん、wheezy だね。


ダメだこりゃ。
次行ってみよう。


最近テスト環境に放り込んでみたやつならどうだ……

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"


おっけー。


じゃ、インストール始めよう……となるんだけど、昨日は途中の dhcpcd.conf で躓いた。


Raspbian だと、IPアドレスの静的設定を dhcpcd でやるので、その作法に則ってコンフィグを書き換えている。
サーバとして扱っているので、すでに静的 IP アドレスを割り振る設定をしていたんだけど、インストーラが必要なアプリをインストール中、どう処理していいか判断に迷って、ハングアップしたっぽい……
続け方に迷って、一度 upgrade してみる。

$ sudo apt-get upgrade
(中略)
E: dpkg は中断されました。問題を修正するには 'sudo dpkg --configure -a' を手動で実行する必要があります。
(以下略)


なるほど。
では、実行してみる。

$ sudo dpkg --configure -a
dhcpcd5 (1:6.11.5-1+rpt4) を設定しています ...

設定ファイル '/etc/dhcpcd.conf'
 ==> これはインストールしてから (あなたかスクリプトによって) 変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : 状況を調査するためにシェルを開始する
 デフォルトでは現在使っている自分のバージョンを残します。
*** dhcpcd.conf (Y/I/N/O/D/Z) [デフォルト=N] ? 
openvpn (2.4.0-6+deb9u2) を設定しています ...
[....] Restarting virtual private network daemon.:[ ok .
Created symlink /etc/systemd/system/multi-user.target.wants/openvpn.service → /lib/systemd/system/openvpn.service.


自分の設定を残すために、何も入力せず(デフォルト N なので)Enter キーを押した。
もう一度 PiVPN インストールコマンドを実行したら、ようやくインストーラが起動してくれた……。


あとは、説明通りにインストールを進めていって、アカウントやらポートやら設定。


設定が終わって Raspberry Pi を再起動。
起動してきた Raspberry Pi で、/var/log 配下を見ると openvpn.log と openvpn-status.log が出来てた。
なので、tail -f /var/log/openvpn.log させて次の作業へ。


VPN ポートへのアクセスが出来るように、ダイアルアップルータでネットワークの穴開け。


PiVPN のインストール時に出来たファイル (.ovpn) をコピーした 2 in 1 ネットタブレット (Windows 10) に OpenVPN のアプリを入れて、ログイン設定。
この 2 in 1 ネットタブレットを、スマホ (テザリング) でのインターネット接続へ切り替える。
こうして目の前の Raspberry Pi に、ドコモネットワークや、契約 ISP 等の外部ネットワークを経由してアクセスしてみる。
難なく成功。
で、割り振られた IP アドレスを見てみると、妙な帯域の IP アドレスが割り振られてた。
うーん……?
それで、改めて /var/log/openvpn.log を見てみると、そこに書いてある IP アドレスだった。


さて、テザリング経由で自宅 LAN に繋がったことが分かったので、いつもの様に NAS にアクセス……してみたら、繋がらない。
そのホストへ ping してみても繋がらないので、IP アドレスで指定してみたら、応答あり。
LAN 内 DNS は参照してないのね……。


とりあえず、IP アドレスで指定すれば、全ての自宅内サーバや PC にアクセス出来た。
思ったよりも楽だったなぁという印象。