[VPN]グローバルIPが振られてない自宅のネットワークにVPNを引っ張る(2/4)


# お知らせ
こんにちは、愛知工業大学システム工学研究会です。
この記事は、2018-10-10に書かれた記事です。
間違った内容や古い内容が紛れていますが、過去の記事を残す一環として記事を書きます。
よろしくおねがいします。

# はじめに

[前回](https://qiita.com/ait-sysken/items/810070c9e28a40088071)の続きです。

ここでは、自宅のLANとVPSに建てたVPNサーバーをつなぐVPNブリッジをRaspberry Pi上に建てていきます。  

VPNのセットアップ自体はVPN Serverを建てたときとほとんど同じです。  

## セットアップ {#toc_1}

### Raspberry Piに必要なパッケージのインストール {#toc_2}

まずはVPNを導入する上で必要なパッケージをインストールします。

最初はaptリポジトリの更新とパッケージのアップグレードです

<div>

```
$ sudo apt-get update && sudo apt-get -y upgrade
```

</div>

VPNを導入する上で必要なパッケージはいくつかありますが、そのほとんどをまとめてインストールできるパッケージがあるので、それを使っていきます。  

<div>

```
$ sudo apt-get install build-essential
```

</div>

あとは任意のテキストエディタをインストールしてください。

### SoftEtherVPN Bridgeのインストール {#toc_3}

SoftEther VPNのインストール方法は大きく２通りの方法があります。

* 公式サイトのインストーラを使った方法
* GitHubからソースコードをダウンロードして直接ビルドする方法

今回は公式サイトのダウンロードセンターからインストーラをダウンロードしていきます。  

#### ソフトウェアのダウンロード {#toc_4}

（ここはPCでの操作です）  

[SoftEther ダウンロードセンター](http://www.softether-download.com/ja.aspx?product=softether "Download")から、ソフトウェアをダウンロードします。

構成は以下のように選択してください。

* ダウンロードするソフトウェアを選択…「SoftEther VPN(freeware)」
* コンポーネントを選択…「SoftEther VPN Bridge」
* プラットフォームを選択…「Linux」
* CPUを選択…「ARM EABI(32bit)」

ここまで選択するとダウンロードリンクが出てくるので、URLを控えておいてください。

（[GitHubのリリースノート](https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases)から最新版のバージョンを確認することができるので、気になった方は確認してください。）

先ほどのファイルをRaspberry Pi上にダウンロードしていきます。

**※Raspberry PiとSSH接続できる環境でインストールする事をお勧めします。**

（なくてもインストールはできますが、URLを直接打ち込む必要があるため面倒な作業が増えます。）

ダウンロード方法をいくつか挙げておくので、お好みの方法でダウンロードしてください。

#### Raspberry Piにデータ転送する方法(SSH必須) {#toc_5}

<div>

```
$ scp [USERNAME]@xxx.xxx.xxx.xxx:/home/pi ~/Downloads/softether-vpnbridge-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz
```

</div>

USERNAME、ipアドレスは自身の環境ごとに変えてください。  

#### Raspberry Piをリモート操作してダウンロードする方法(SSH必須) {#toc_6}

SSH接続した状態のターミナルで以下のコマンドを入力します。

<div>

```
$ wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.28-9669-beta/softether-vpnbridge-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz
```

</div>

``

#### SSH環境がない場合の方法 {#toc_7}

Raspberry Pi上のターミナルで以下のコマンドを入力します。

<div>

```
$ wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.28-9669-beta/softether-vpnbridge-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz
```

</div>

``

#### インストール {#toc_8}

ダウンロードしたファイルを解凍して、インストールします。

<div>

```
$ tar -zxvf softether-vpnbridge-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz $ cd vpnbridge $ make
```

</div>

ライセンス同意に関するメッセージが出てくるので、全て「１」を選択して進みます。（3回ほど入力を求められます。）

その後コンパイルが始まり、動作環境のチェックが始まります。

全て「合格」と出ればOKです。

先ほどできた「vpnbridge」フォルダを /usr/local/ フォルダに移動させます。

<div>

```
$ sudo mv ~/vpnbridge /usr/local/
```

</div>

権限を修正します。

<div>

```
$ cd /usr/local/vpnbridge/ $ sudo chmod 600 * $ sudo chmod 700 vpncmd vpnbridge
```

</div>

#### 確認 {#toc_9}

きちんと動くかどうかを確認します。

<div>

```
$ sudo /usr/local/vpnbridge/vpncmd vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド) Version 4.27 Build 9668 (Japanese) Compiled 2018/05/29 21:51:20 by yagi at pc33 Copyright (c) SoftEther VPN Project. All Rights Reserved. vpncmd プログラムを使って以下のことができます。 1\. VPN Server または VPN Bridge の管理 2\. VPN Client の管理 3\. VPN Tools コマンドの使用 (証明書作成や通信速度測定) 1 - 3 を選択:
```

</div>

ここで「3」を選択します。

<div>

```
1 - 3 を選択: 3 VPN Tools を起動しました。HELP と入力すると、使用できるコマンド一覧が表示できます。 VPN Tools>
```

</div>

「check」と入力します。

<div>

```
VPN Tools> check Check コマンド - SoftEther VPN の動作が可能かどうかチェックする --------------------------------------------------- SoftEther VPN 動作環境チェックツール Copyright (c) SoftEther VPN Project. All Rights Reserved. この動作環境チェックツールを実行したシステムがテストに合格した場合は、SoftEther VPN ソフトウェアが動作する可能性が高いです。チェックにはしばらく時間がかかる場合があります。そのままお待ちください... 'カーネル系' のチェック中... [合格] ○ 'メモリ操作系' のチェック中... [合格] ○ 'ANSI / Unicode 文字列処理系' のチェック中... [合格] ○ 'ファイルシステム' のチェック中... [合格] ○ 'スレッド処理システム' のチェック中... [合格] ○ 'ネットワークシステム' のチェック中... [合格] ○ すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。 コマンドは正常に終了しました。 VPN Tools>
```

</div>

動作確認ができたので。起動します。
`$ sudo /usr/local/vpnbridge/vpnbridge start SoftEther VPN Bridge service has been started.`
ブリッジサーバーが立ち上がりました。

#### 自動起動の設定 {#toc_10}

再起動時にも自動でアプリケーションが立ち上がるように設定をします。

お好みのテキストエディタで /etc/init.d/vpnbridge を新規作成し、以下のテキストを入力します。

<div>

```
$ sudo nano /etc/init.d/vpnbridge
```

</div>

<div>

```
:/etc/init.d/vpnbridge #!/bin/sh ### BEGIN INIT INFO # Provides: vpnserver # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: SoftEther VPN Server ### END INIT INFO DAEMON=/usr/local/vpnserver/vpnserver LOCK=/var/lock/vpnserver vpn_start() { ${DAEMON} start } vpn_stop() { ${DAEMON} stop } test -x ${DAEMON} || exit 0 case "$1" in start) vpn_start touch ${LOCK} ;; stop) vpn_stop rm ${LOCK} ;; restart) vpn_stop sleep 3 vpn_start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0
```

</div>

作成したファイルに権限を付与します。

<div>

```
$ sudo chmod a+x /etc/init.d/vpnbridge
```

</div>

自動起動するように設定します。（RaspbianはCentOSのchkconfigが使えません。なのでここは前回の記事とコマンドが異なります。）

<div>

```
$ sudo update-rc.d vpnbridge defaults
```

</div>

Raspberry Piを再起動します

<div>

```
$ sudo reboot
```

</div>

次回からここまで建てたサーバーとブリッジを接続して、自宅内のLANに接続できるようにしていきます。


# 過去の記事

https://qiita.com/ait-sysken/items/810070c9e28a40088071