Raspberry Pi + noip + PiVPNのセットアップ

# MacでRaspberry Pi + noip + PiVPNの設定を行った時のメモです

この記事では以下の環境で行っています
- Raspberry Pi3 Model A+
- MacOS Ventura
- Macbook Pro 14inch 2021 (M1)

行ったことは以下です
- Raspberry Pi OSのインストール
- noipの設定
- PiVPNのインストール

# Raspberry Pi OSのインストール

以下のURLより、Raspberry Pi Imagerをインストールします

https://www.raspberrypi.com/software/

Imagerの中から以下を行います

- microSDをFAT32でフォーマット
- Raspberry OSのインストール

32bit OSを選びました
Wi-Fi/SSH/ユーザとpassword/Keyboard/Localeも設定から登録します

## FTDIドライバのインストール

以下のURLを参照してください

http://blueeyes.sakura.ne.jp/2021/06/17/4045/

## HW接続

- microSDカードを差し込みます
- 3.3V対応USB-UARTケーブルを、差し込みます
![IMG_8089.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263486/3c3bd4e2-805f-6e0d-9d00-1a808aa3d4e9.jpeg)
ピン配置は以下のURLを参照してください

https://www.abelectronics.co.uk/kb/article/1035/serial-port-setup-in-raspberry-pi-os

## Raspbeery Pi3 model A+起動

最初はHDMIモニターとキーボードが必要です。

```
## sudo raspi-config
```
でUARTポートをenableにします

![IMG_8094.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263486/09bbeaa6-c9a1-ff20-24ef-25dadbc8ca50.jpeg)

## minicom 設定

Macでminicomを設定します

![スクリーンショット 2023-01-08 13.52.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263486/7292544e-d42e-957e-dfad-a96cfaf5837f.png)

Raspberry Piを再起動すると、シリアルにコンソールが現れます

## NTPの設定

以下のURLを参照

https://arakoki70.com/?p=5691

## 固定IPへの変更

/etc/dhcpcd.confを以下のように変更します

```
interface wlan0
static ip_address=<your ipv4>/24
static ip6_address=<your ipv6>/64
static routers=<your router>
static domain_name_servers=192.168.0.1 8.8.8.8 2001:4860:4860::8888
```

再起動します

:::note info
MACがわかればルーターで固定IPにするのもいいです。私はこれでやっています
:::


## sshの設定

Imagerでsshをenableにしてあるので、一度sshログインします

```
local PC$ ssh <your id>@<your ipv4>
```

local PCの~/.ssh/configを修正します

```
Host rasp
 HostName <rasp ipv4>
 User <rasp user>
 IdentityFile ~/.ssh/id_rsa
```

次回から`ssh rasp`でログイン可能です

## Sleepのdisable

デフォルトだとキー操作なし10分でsleepしてしまいます。以下のコマンドでdisableします

```
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
```

# Noip

https://www.noip.com/support/knowledgebase/install-ip-duc-onto-raspberry-pi/

このページでこちらのリンクを参照するように推奨されるので、そちらに移動します。
![スクリーンショット 2023-01-09 12.54.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263486/2b862e97-0036-87a8-ea83-5ebdbc5fea43.png)

https://www.noip.com/support/knowledgebase/install-linux-3-x-dynamic-update-client-duc/#install_from_source

ビルドが終わったらファイルをコピーします
```
sudo cp target/release/noip-duc /usr/local/bin
cd /usr/local/bin
sudo chown root:root noip-duc
```

以下のファイルを作成します
```
cd /usr/local/bin
sudo touch noip-duc.sh
```

```noip-duc.sh
#!/bin/sh
exec /usr/local/bin/noip-duc -g DDNS.net -u USERID -p PASSWORD &
```

実行します
再起動のあとには再度実行してください

:::note info
ここのサイトを参照しましたが、
https://www.noip.com/support/knowledgebase/running-linux-duc-v3-0-startup-2/
サービスの登録はうまく動きませんでした
:::

# PiVPN

## ルータのport forwarding

![スクリーンショット 2023-01-09 15.02.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263486/9221a1be-5f96-65ff-be3b-72a3b1ef5c3b.png)

## インストール

https://pivpn.io

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

あとはメニューに従って設定しました

## user.ovpnのiPhoneへのコピー

FinderからOpenVPNのフォルダーにコピーします

![スクリーンショット 2023-01-09 16.08.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263486/3f38bdeb-8393-3a85-dec5-15c064ca484a.png)

OpenVPNをONにすれば、接続できます

:::note alert
なぜか最初は、iPhoneのSafariでインターネットに繋がらないという症状が出ました。raspberry piで`pivpn -c`で確認してもエラーはなさそうです。試行錯誤して`pivpn -d`を行ったら以下のエラーがでました
```
:: [OK] IP forwarding is enabled
:: [ERR] Iptables MASQUERADE rule is not set, attempt fix now? [Y/n] Y
Done
```
これを自動修正したあと、問題がなくなりました
:::

## 結果

以下のようにモバイル通信なのに、dion.ne.jp（auひかり）にIPが変わりました


![IMG_8102.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263486/70d19c85-7c94-0d37-1226-4a201191c408.png)