Raspberry Pi に SoftEther_VPN Client をインストール

Raspbian (4.19.66-v7+) に SoftEther_VPN Client をインストール方法です。

>softether-vpnclient-v4.31-9727-beta-2019.11.18-linux-arm_eabi-32bit.tar.gz
をダウンロードします。

```bash
tar xvfz softether-vpnclient-v4.31-9727-beta-2019.11.18-linux-arm_eabi-32bit.tar.gz
cd vpnclient
make
```

次のコマンドが出来ます
>vpnclient
>vpncmd

クライアントサービスのスタート

```bash
sudo ./vpnclient start
```

>バージョンの確認

```text
$ ./vpncmd /client

VPN Client>VersionGet
VersionGet command - Get Version Information of VPN Client Service
Item               |Value
-------------------+----------------------------------------------------
Product Name       |SoftEther VPN Client
Version Information|Version 4.31 Build 9727   (English)
Build Information  |Compiled 2019/11/18 11:14:51 by buildsan at crosswin
Process ID         |0
OS Type            |Linux
The command completed successfully.
```

vpn_tun0 というデバイスを作ります。
>コマンドを起動します。
>>Hostname of IP Address of Destination:
には、Enter を入れて下さい。

```text
$ ./vpncmd /client
vpncmd command - SoftEther VPN Command Line Management Utility
SoftEther VPN Command Line Management Utility (vpncmd command)
Version 4.25 Build 9656   (English)
Compiled 2018/01/15 10:17:04 by yagi at pc33
Copyright (c) SoftEther VPN Project. All Rights Reserved.

Specify the host name or IP address of the computer that the destination VPN Client is operating on. 
If nothing is input and Enter is pressed, connection will be made to localhost (this computer).
Hostname of IP Address of Destination: 

Connected to VPN Client "localhost".
```

>Nic の作成

```text
VPN Client>NicCreate tun0
NicCreate command - Create New Virtual Network Adapter
The command completed successfully.
```

>アカウントの作成
>>vpn サーバーが、 153.10.25.41:5555 の時の例です。 サーバーにユーザー　scott パスワード　tiger で接続できるとします。

```
VPN Client>AccountCreate tun0 /SERVER:153.10.25.41:5555 /HUB:DEFAULT /USERNAME:scott /NICNAME:tun0
AccountCreate command - Create New VPN Connection Setting
The command completed successfully.
```

>Nic を有効にします。

```text
VPN Client>NicEnable tun0
NicEnable command - Enable Virtual Network Adapter
The command completed successfully.
```

>サーバーのユーザー名をセットします。

```text
VPN Client>AccountUsernameSet tun0 /USERNAME:scott
AccountUsernameSet command - Set User Name of User to Use Connection of VPN Connection Setting
The command completed successfully.
```

>パスワードをセットします。

```text
VPN Client>AccountPasswordSet tun0 /PASSWORD:tiger /TYPE:standard
AccountPasswordSet command - Set User Authentication Type of VPN Connection Setting to Password Authentication
The command completed successfully.
```

>接続します。

```text
VPN Client>AccountConnect tun0
AccountConnect command - Start Connection to VPN Server using VPN Connection Setting
The command completed successfully.
```

>アドレスを取得します。

```bash
sudo dhclient vpn_tun0
ip addr show vpn_tun0
```

vpn_tun0 というデバイスを作る為の操作をまとめたスクリプトです。
>Nic の作成
アカウントの作成
Nic を有効にします。
サーバーのユーザー名をセットします。
パスワードをセットします。
接続します。
アドレスを取得します。


```bash:vpn_create.sh
#
#       vpn_create.sh
#
#                                       Dec/13/2019
#
VPNCMD='/opt/vpnclient/vpncmd /client localhost'
#
$VPNCMD /cmd NicCreate tun0
$VPNCMD /cmd AccountCreate tun0 /SERVER:153.10.25.41:5555 /HUB:DEFAULT /USERNAME:scott /NICNAME:tun0
$VPNCMD /cmd NicEnable tun0
$VPNCMD /cmd AccountUsernameSet tun0 /USERNAME:scott
$VPNCMD /cmd AccountPasswordSet tun0 /PASSWORD:tiger /TYPE:standard
#
$VPNCMD /cmd AccountConnect tun0
#
#
sudo dhclient vpn_tun0
ip addr show vpn_tun0
#
#
```



設定が終わって、再起動後に接続する手順

>1)　クライアントサービスのスタート
>2)　アカウントの接続
>3)　アドレスを取得

```bash
cd vpnclient
sudo ./vpnclient start
./vpncmd /client localhost /cmd AccountConnect tun0
sudo dhclient vpn_tun0
```

自動起動の設定

>1)　vpnclient のフォルダーを /opt の下に移動

>2) 次のスクリプトを作成

```bash:/opt/vpnclient/dhclient_start.sh
#
#	dhclient_start.sh
#
#					Mar/22/2018
sleep 10
#
/opt/vpnclient/vpncmd /client localhost /cmd AccountConnect tun0
#
sleep 1
#
dhclient vpn_tun0
#
```

>3)　サービスのファイルを作成
> Raspberry Pi 0 の時は、eth0 を wlan0 にして下さい。

```text:/etc/systemd/system/vpnclient.service
[Unit]
Description=Softether VPN Client Service
After=network.target

[Service]
Type=forking
User=root
ExecStart=/opt/vpnclient/vpnclient start
ExecStop=/opt/vpnclient/vpnclient stop
Restart=on-abort
WorkingDirectory=/opt/vpnclient
ExecStartPre=/sbin/ip link set dev eth0 promisc on

[Install]
WantedBy=multi-user.target
```

```text:/etc/systemd/system/dhclient.service
[Unit]
Description=Softether VPN Client DHCP
After=vpnclient.service

[Service]
Type=oneshot
User=root
ExecStart=/bin/bash /opt/vpnclient/dhclient_start.sh
WorkingDirectory=/opt/vpnclient
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
```

>4) Systemd を有効にする

```bash
sudo chmod 0755 /etc/systemd/system/vpnclient.service
sudo chmod 0755 /etc/systemd/system/dhclient.service
sudo systemctl daemon-reload
sudo systemctl start vpnclient
sudo systemctl enable vpnclient
sudo systemctl start dhclient
sudo systemctl enable dhclient
```

>5)　再起動

```bash
sudo shutdown -r now
```