さくらVPSでのVPN構築方法


# 環境
```
OS:Windows
さくらVPS　石狩第一512MB 
           SSD 25GB    //3人などの少人数で使用する場合には問題ありませんが
　　　　　　　　　　　　　 8人などの人数で使用する場合にはプランを考える必要性があると思います。
              
Ubuntu 20.04(amd64)　//2022年9月12日にさくらインターネットからの発表で512MBにおいてUbuntu 
                       22.04でカーネルアップデートを行うとメモリ容量不足に陥るそうです。
                       Ubuntuを利用したい方は1GBにしましょう。
SoftEther VPN　Server　ver 4.38
```
# 大まかな手順
1, さくらVPS初期設定
2, VPSへSoftEtherをインストール
3, SoftEther初期設定
4, VPN接続

# さくらVPS初期設定
さくらVPSのサーバーを開始し、最初に行うこととしてサーバーコンソールを用いてサーバーに接続していきます。
OSがWindowsなのでTeraTermを使用していますが自分の環境にあったソフトを使用することを推奨します。

![TeraTrem.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776357/78d381ba-dd16-df9a-9fb8-6d17c7ebeb92.png)

サービスをSSHが選択されていることを確認し、ホストの欄にサーバーのIPアドレスを入れます。
ログインに使用するユーザ名とパスワードは管理ユーザ名とパスワードになっています。
Ubuntuの場合、ユーザ名は` ubuntu `となっているはずです。

サーバー接続ができると初期設定に入っていき、入力ができる状況になるまで待ちましょう。
最初にパッケージを更新しときましょう。
```
$ sudo apt install gcc
$ sudo apt install make //gccとmakeが入ってない場合に入力
　　　　　　　　　　　　　　下記のコマンドを入力して

$ sudo apt update
$ sudo apt upgrade
```

# SoftEtherのインストール
下記のリンクからインストールパッケージをダウンロードを行っていきます。

https://www.softether-download.com/ja.aspx?product=softether

![softether.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776357/647e4084-9316-13b2-8060-2df1f904c07a.png)

上記のように設定を行っていきます。
プラットフォームはサーバー側のプラットフォームを選ぶため、UbuntuならLinuxとなります。
CPUに関してですが、ご自身の環境によって選んでいってください。

次にサーバー側でダウンロードしたファイルを展開していきます。
```
$ tar xzvf "ファイル名"
$ cd vpnserver //展開が完了後入力
$ make
```
上記の入力が完了以降はrootユーザーでの作業になります。
```
$ sudo passwd root
$ su
```
rootユーザーへの切替が行えたらディレクトリを移動していきます。
```
$ cd ..
$ mv vpnserver /user/local
```
vpncmdコマンドで正常に動くか確認しときましょう。
```
# ./vpncmd
```
いくつか選択肢が表示されると思いますが 通信速度などの確認を行いたいので、VPN.Toolsを選び、checkを入力します。
```
# VPN Tools>check
```
全て成功したらインストール完了です！
再起動もしときましょう。
```
# reboot
```

# SoftEther VPN Serverの自動起動設定
何らかのトラブルが起きた際に自動起動するように設定していきます。
```
$ sudo nano /etc/systemd/system/vpnserver.service

//入力ができる状態になったらユニットファイル作成
[Unit]
Description = SoftEther VPN Server
After = network.target

[Service]
Type = forking
User = root
ExecStart = /usr/local/vpnserver/vpnserver start
ExecStop = /usr/local/vpnserver/vpnserver stop
Restart = on-failure
RestartSec = 3s

[Install]
WantedBy = multi-user.target
```
上記のユニットファイルを作成してください。
恐らく初期の状態ではなにもない状態だと思いますのでそのまま貼り付けて大丈夫です。
作成できたら正常に実行できるか確認しましょう。
```
$ sudo systemctl daemon-reload
$ sudo systemctl enable vpnserver
$ sudo systemctl start vpnserver
$ sudo systemctl status vpnserver
```
正常に完了したらTeraTermからSoftEtherのサーバー管理マネージャーへ切り替えていきます。

![softether_vpn.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776357/b7655258-8fa0-71c7-d9e3-49ae3b52b777.png)

接続設定名、管理パスワードは任意で大丈夫です。ホスト名にはさくらVPSのホスト名を入力してください、また、ポート番号は443になります。

次にセットアップを行っていきます。
用途次第によって設定を変更する場合があると思いますが、今回は学内LANでの使用を目的としているためリモートアクセスVPNサーバーを選択していきます。
以降の設定においては用途に合わせて設定をお願い致します。

ユーザー作成まで行うことができれば、SecureNAT機能を有効にしていきます。

![仮想NAT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776357/fb0987ee-77d1-4c99-462c-ac82f1148559.png)

仮想NATおよび仮想DHCPサーバー機能を選択し、SecureNAT機能を有効にするを選択し、有効にします。

![SecureNAt.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776357/1b77be1f-a2bb-79b3-ac12-68abcc90cf92.png)

次にSecureNATの設定を開き、仮想DHCPが有効になっているか確認します。もし、無効になっていたら有効化しときましょう。

以上でVPNが接続確認できれば終了です。
セキュリティ対策のポート変更やホスト名の変更などはこの記事に載せていませんがしといた方が良いと思います。

# つまずいた点
・さくらVPS上にSoftEther VPN Serverを展開のエラーを吐いたこと
→初期のgccとmakeをアップデートできてないことに気づいてなかった
・SSH接続がうまくいかなかった
→root以外からのユーザー接続を拒む設定にしていたのにroot以外で行っていた。
　自分の権限をしっかり確認しようみんな