Raspberry Pi ＋ PiVPN ＋ 固定IP でVPNサーバー構築

VPNサーバーを構築した記録です。

当初は、障害を起こしているモデムは、リモートからでは手も足もでないので、
電源ON OFFをリモートで行うために、別回線でスマートプラグやカメラを運用して…
と考え、始めたことですが、既存の安価なIOT製品やサービスがありました。
[Tapo P105 ミニスマートWi-Fiプラグ](https://www.tp-link.com/jp/home-networking/smart-plug/tapo-p105/)
[Tapo C200 パンチルト ネットワークWi-Fiカメラ](https://www.tp-link.com/jp/home-networking/cloud-camera/tapo-c200/)
アプリと会員登録で外部からアクセス可能です、便利です。

でもローカルNWに着地したいのでVPNです。

* [固定IP付きSIMカード イプシム](https://ipsim.net/)
* [モバイルルーター AtermMR03LN](https://www.aterm.jp/product/atermstation/product/mobile/mr03ln/)
* Raspberry Pi
* [PiVPN](https://www.pivpn.io/)
* [OpenVPN](https://www.openvpn.jp/)

##固定IP付きSIMカード
[イプシム](https://ipsim.net/)を契約しました。

##モバイルルーター
[AtermMR03LN](https://www.aterm.jp/product/atermstation/product/mobile/mr03ln/)を中古で購入しました。

##Raspberry Pi
###インストール
他に親切なサイトがあるので割愛します。

###アップデート
低速回線でPiVPNインストール中にアップデートが走り出すと、１日かかってしまう（200kbpsで実体験）ので、普通の速度の回線であらかじめ済ませておくべきです。

```
sudo apt update
sudo apt full-upgrade -y
sudo apt autoremove -y
sudo apt clean
sudo reboot
```

###ローカルIPを固定
この段階で固定しておきます。
[参考サイト](https://homemadegarbage.com/raspi-staticip)

##PiVPN

**インストール開始**

```
curl -L https://install.pivpn.io | bash
```
**ローカルIPの表示は例です。**
![00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/0d005d40-3419-1156-0f20-02825014f4fe.png)

**Ok**
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/afb0c722-78b8-cf78-43f6-2268d6c057ae.png)

**Ok**
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/b64c4e34-1aa7-3686-769c-973526f55bac.png)

**No**
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/24c233d6-e01b-e9db-2235-8b1354eda03d.png)

**Yes**
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/352eeeb5-94d4-e723-f66e-fa9765e1b1c2.png)

**Ok**
![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/75683508-a658-479c-5a12-7f97ce2d8cce.png)

**Ok**
![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/bc379cc3-6de7-1bb3-8b96-13a6de4906da.png)

**piを選択してOk**
![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/6e8d49bf-fa58-9c44-efc6-5a31f9f0d9a9.png)

**OpenVPNを選択してOK**
WireGuardがカッコイイので、そちらにしたかったのですが、上手く行かずOpenVPNで。
![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/8f525b2e-028d-8788-03bb-3c2a0dd6bc1e.png)

**No**
![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/1581ac91-0aeb-972f-8747-509f58230f37.png)

**インストール中**
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/24ab0f86-b02b-01a2-4314-cdd7ee6fb5e5.png)

**デフォルト値でOk**
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/a1b7b665-6999-20ac-7b35-0aa8860bf8f4.png)

**Yes**
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/514b3792-eddc-dab2-e574-aef4dd6c5587.png)

**Customを選択してOk**
![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/10189bd0-e351-7369-f29a-c898009d7ff1.png)

**固定IPを入力してOk**
![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/cdbe5685-6e5a-1477-9f33-eb74dd2e3681.png)

**Yes**
![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/c2ca81ed-b0a5-5a99-8fbe-1566a1a584ac.png)

**固定IPを選択してOk**
![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/e1c09e4b-e229-4b5c-bb40-e979698bb64a.png)

**Ok**
![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/3484ca43-2ed8-1b6a-135a-7ad4ac712d6f.png)

**Ok**
![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/0ee4bd56-63b3-0f6b-0cc0-a3787dcc24ce.png)

**Yes**
![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/1c756aa6-ccfa-bbf3-60ba-a9b3c8d1c3a6.png)

**アップグレード中**
![20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/139529cb-07ef-b550-78c1-5a5b57e40e76.png)

**Ok**
![21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/2648594f-3ff3-2502-d25b-d861acb2b39a.png)

**Yes（念のため）**
![22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/b254f884-1dbe-dc56-68e9-96d1ceca3194.png)

**Ok**
![23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/79c67fe8-f1ca-ebc9-febc-38e5507063b1.png)

##ポート開放（モバイルルーター）##
1194ポートをあけます。
（プロトコルはUDPです）
![192.168.179.1_index.cgi_ipnat_add(iPad Pro).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/395e7496-bcf4-2b6c-df39-e45262800156.png)

##OpenVPN##
再起動後に以下を実行します。

```
pi@raspberrypi:~ $ pivpn add
Enter a Name for the Client: 任意の名前
How many days should the certificate last?  1080 そのままEnter
Enter the password for the client: パスフレーズ
Enter the password again to verify: パスフレーズ
```

/home/pi/ovpns/任意の名前.ovpn が生成されているので、クライアント（PCやスマホ）に移送します。

[OpenVPN](https://www.openvpn.jp/)からダウンロードしてインストールします。
参考：[OpenVPN GUI for Windows](https://www.openvpn.jp/document/openvpn-gui-for-windows/)（少し前のバージョン？）
アイコンがタスクトレイにあるので、
右クリックでメニューを表示し、任意の名前.ovpnをImport fileして接続します。

スマホアプリでも手順は同じです。

##感想##
手順さえ間違えなければ簡単に構築できます。
何でもクラウド クラウドという世の中ですが、こういうかわいいオンプレは、個人的にはありだと思います、好きです。