ラズパイでsoftether-VPNによるVPNの構築


ラズパイでVPNの構築をしたので備忘録としてまとめておきます。
ラズパイではLANケーブルでネットに接続して設定しました。(試してないですが、wifiでも問題ないかもしれません)
また、すでにラズパイにはSSH接続できるものとして進めます。
softether-VPNのVPN azureを用いて設定をしました。
VPN azureを用いることでルータのポート開放しなくても構築できるので、いじるのが怖い人とか面倒な人にはお勧めです。

#全体の流れ

①ラズパイにsoftetherサーバーのダウンロード
②ラズパイ側での設定
③パソコンにsoftetherマネージャーのダウンロード
④softetherマネージャーを用いてsoftetherサーバーの設定
⑤VPNに接続





##①ラズパイにsoftetherサーバーのダウンロード
パソコンで予めsoftetherサーバーをダウンロードしておき、Tera Termを通して、ラズパイに保存します。(ラズパイ側でダウロードするとOSをクリーンインストールした時いちいちダウンロードしなおさないといけないので面倒です)
公式からダウンロードします。今回はラズパイ用なのでコンポーネントはサーバー、プラットフォームはlinux、CPUはARM EABI(32bit)を選択します。検索結果が下に出ますので、一番上のbeta版でも大丈夫だとは思いますが、心配な方はRTM版をダウンロードしておきましょう。

![Screenshot from 2021-08-10 22-19-12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1712899/d933eb07-1cea-cc10-43d7-8d2d2ab4dbee.png)


次にTera Termでラズパイ接続し、Tera Termの画面にダウンロードしたsoftetherサーバーをマウスを用いてドロップしします。そうするとどこに保存するか聞かれるので、/home/pi/Downloadsに保存します。

##②ラズパイ側での設定
次にTera Termを通してラズパイ側での設定を行っていきます。

```
$ cd /home/pi/Downloads
$ tar xf softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-arm_eabi-32bit.tar.gz
$ cd vpnserver
$ make
```
makeを実行すると何度か質問がありますが、すべて１で大丈夫です。

```
$ cd ..
$ sudo mv vpnserver /usr/local
$ cd /usr/local/vpnserver/
$ chmod 600 *
$ chmod 700 vpncmd vpnserver
```

次に

```
$ sudo nano /etc/systemd/system/vpnserver.service
```
で

```
[Unit]
Description=SoftEther VPN Server
After=network.target network-online.target

[Service]
User=root
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
Type=forking
RestartSec=3s
WorkingDirectory=/usr/local/vpnserver/
ExecStartPre=/sbin/ip link set dev eth0 promisc on

[Install]
WantedBy=multi-user.target
```
を書き込み保存します。ctrl+sで保存、ctrl+xで閉じます。

```
$ sudo systemctl start vpnserver
$ sudo systemctl enable vpnserver.service
```
で設定終了です。
最後に再起動し上手く設定できているか確認します。

```
$ sudo reboot
$ sudo systemctl status vpnserver.service
```

activeになっていればOKです。

##③パソコンにsoftetherマネージャーのダウンロード
softetherサーバーの設定をパソコンからsoftetherマネージャーを通して設定していきます。そのためまずsoftetherマネージャーをパソコンに公式からダウンロードします。
https://ja.softether.org/5-download
コンポーネントはManager for Windowsを、プラットフォームはWindows、CPUはIntel(x64)にしました。適宜自分のOSとCPUに合わせ変更してください。


##④softetherマネージャーを用いてsoftetherサーバーの設定
　③でダウンロードしたsoftetherマネージャーを解凍し、vpnsmgr.exeをダブルクリックで実行します。
新しい接続設定を選び、接続設定名、ホスト名を入力します。接続名は適当で大丈夫です。
ホスト名はラズパイのIPアドレスを入力します。イーサネットのIPアドレスを用いました。OKを押します。

　作成されたものを選択し、接続を押します。パスワードの入力が求められますが未入力でOKします。次にパスワードの設定の画面が出るので、ここで好きなパスワードを入力しOKをクリックします。

　簡易セットアップに入るので設定していきます。まずリモートアクセスVPNサーバにチェックを入れ、閉じる。確認が出るので、はいを押します。

　仮想HUB名の設定を求められますが適当で大丈夫です。

　ダイナミックDNS機能の設定画面になりますが特に変更せずに、閉じるを押します。

　次にIPsec/L2TP/EtherIP/L2TPv3の設定画面が出ますが、今回はVPN azureを使うので何もせず、OKを押す。

　VPN azureの設定画面になるので有効化にチェックします。またここで表示されている、VPN azure ホスト名は接続時に使うのでメモをしておきましょう。メモをしたらOKを押す。

　次の画面ではまずユーザを作成するを選択しユーザの追加をしていきます。ユーザ名とパスワードを入力します。ここで設定したユーザ名とパスワードはVPNの接続時に使うのでメモをしておくようにしましょう。メモをしたらOKを押します。

　ユーザ一管理の画面が出ますが特に設定せずに、閉じるを押します。元の画面に戻るので、下の方にあるローカルブリッジの設定でeth0の選択し、閉じるを押します。

これで設定終了です。



##⑤VPNに接続
windowsの設定→ネットワークとインターネット→VPNにいきVPNの登録を行います。
追加を押し設定していきます。
VPNプロバイダーはWindows(ビルトイン)
接続名は適当
サーバ名またはアドレスは先ほどメモをしたVPN azure ホスト名を入力します
VPNの種類は自動のまま
ユーザ名とパスワードは簡易セットアップで作成したユーザ名とパスワードを入力します
入力し終わったら保存を押します。

そうするとデスクトップに右下にあるwifiマークを押すとvpnが追加されているのでこれをクリックすることで接続することができます。スマホでテザリングしたうえで接続することで実際の環境での接続を確かめることができます。接続に失敗するときはラズパイやパソコンを再起動するとうまくいったりすることがあります。

softetherクライアントを使った方が接続は安定している気がするので、一度試してみるのもありな気がします。


お疲れさまでした。





***
参考サイト
https://chibashi.me/development/softether-vpn-server-201902/#index7
https://www.youtube.com/watch?v=475-Tw01WdM&list=LL&index=1&t=410s