[Raspberry Pi] PiVPN

Raspberry Pi に SoftEther を使った VPN を構築しようとしてうまくいかなかった。

Raspberry Pi で SoftEther(失敗) – with a Christian Wife
https://wacw.cf/2017/05/18/softether-with-raspberry-pi/

さらに、Mac に VPN Activator を使った VPN もうまくいかなかった。

[Mac] VPN Activator(失敗) – with a Christian Wife
https://wacw.cf/2017/05/19/mac-vpn-activator/

次に挑戦したのが PiVPN を使った方法である(環境は Raspberry Pi Zero の Raspbian)。これは Raspberry Pi に簡単に OpenVPN を導入できるツールである。

私の利用する楽天ブロードバンドでは固定 IP アドレスを付与されないので、下準備としてパブリック DNS を取得する必要がある。そのため、No-IP を利用することにした。

(1)No-IP へ登録する。

Remote Access with Dynamic DNS – 100% DNS Uptime – No-IP
https://www.noip.com/remote-access

(2)ルーターのポートフォワードの設定をする。私の所有するルーターの NetGenesis GigaLink1000 の場合、http://192.168.0.1/ へアクセスし、「WAN ポートの設定>IP マスカレードテーブル設定」をクリック。

(3)以下の4つの登録リストが並んでいてよく分からないけど、おそらくルーターで使用中の LAN ポートの番号と対応していると勝手に予想する。私は LAN ポート1を使っているので、「PPPoE ポート1(セッション1) 登録リスト」だと思う。

PPPoE ポート1(セッション1) 登録リスト
PPPoE ポート2(セッション2) 登録リスト
PPPoE ポート3(セッション3) 登録リスト
PPPoE ポート4(セッション4) 登録リスト

(4)「PPPoE ポート1(セッション1) 登録リスト」の編集ボタンを押す。OpenVPN では UDP 1194 のポートを使うので以下のように入力し追加する。「設定の更新」でルーターを再起動。

プロトコル:UDP
変換 IP アドレス:Raspberry Pi の IP アドレス(あらかじめ固定しておく)
先頭ポート番号:1194
終了ポート番号:1194

参考:
よくある質問 | OpenVPN.JP
https://www.openvpn.jp/faq/

(5)No-IP のサイトからダウンロードできる Dynamic DNS Update Client (DUC) をダウンロード、インストールする。No-IP のアカウントでログイン。このアプリによって動的に変化する IP アドレスとパブリック DNS が紐付けされる。私は常時起動している Mac Mini にインストールした。

(6)PiVPN のインストールは、具体的には以下のサイトに従った。実際の手順とサイトの説明で少し違う部分があるが、このサイトが一番詳しく、分かりやすいと思う。

Raspberry Piで安く手軽に自宅用VPNサーバーを作る方法 – WPJ
https://www.webprofessional.jp/setting-up-a-home-vpn-using-your-raspberry-pi/

(7)私は VPN クライアントとして iPad を使うので、iPad に OpenVPN アプリをインストールする。

(8)OpenVPN アプリからの接続は以下のページを参考にする。PiVPN のインストールが終わると生成される .ovpn ファイルを iPad へ転送。OpenVPN アプリで開く。PK Password(Private Key Password)に PiVPN でクライアントを作成時のパスワードを入力。

iPhoneやiPad (iOS) でOpenVPNを使ってみよう! | OpenVPN.JP
https://www.openvpn.jp/document/ios-openvpn/

これで Connection のトグルをオンにすると、VPN にアクセスできるはずが・・・接続できず。一応は VPN に繋がるけれど、例えばウェブページを見たりできないのだ。

そこで試しに Raspberry Pi に以下のコマンドでデバッグを実行。

$ pivpn -d

すると何か問題があると出てきた。修正するかと聞かれたので yes を選ぶ。

その後再び VPN の接続に挑戦してみたら、うまくいった!

ただ、やはりあまり速度は出ない。実用的な利用は難しいのかも。

参考:
(NAS設定編3)No-IPとダイナミックDNSの設定: 優柔不断流の買物道
http://kaimonodou.yuujuu.net/article/175583917.html

NO-IP ダイナミックドメイン登録方法
https://www.akakagemaru.info/port/noip.html

DDNSの無料サービスでオススメな3つの「ieServer」「mydns」「No-IP」の特徴と利用手順をまとめてみた
http://viral-community.com/other-it/ddns-praise-service-2065/