余っているPCにLubuntuを入れて、VPNサーバーを作ってみた(準備編)

ずいぶん前に、Lubuntuインストールしていたんだけど、放置していたまんまになっていました。
というわけで、再度、インストールし、VPNサーバーを立ててみたいと思います。

# もう約4年前の話か…
[Dell INSPIRON 2200にLubuntuを入れてみた | すらっしゅほーむ レバレッジ人生](http://kwd.blog.jp/archives/1793390.html)
この記事から、もう4年になってしまいました。
今入れているバージョンは、14.04LTSだったので、もうサポート切れ。

ということで、新規にインストールをしたいと思います。

# Dell INSPIRON 2200のスペックを確認
[Inspiron2200.pdf](http://www.dell.com/downloads/jp/products/inspn/Inspiron2200.pdf)
このカタログに最低スペック(だと思う)。
…確認してみたところ、
CPU: Intel(R) Celeron(R) M processor 1.30GHz
Memory: 1280MiB(1.2GB) (256MB + 1GB)
HDD: 37GiB (40GB)
です。

# バージョンは「16.04LTS」にした
バージョンを「17.10」にしようか「16.04LTS」にするか悩んだ挙句、「16.04LTS」にしました。
理由は、簡単。

**サポートしている時期が長いから**

「17.10」をインストールしても、2018年7月でサポートが切れてしまう。
「16.04LTS」のサポート期限は、2019年4月までなので、ずぼらな私としては、長いほうがいいと思う次第であります(意味不明

# なぜ、CentOSじゃなくて、Lubuntuなのか?
理由は2つあります。
1. 最新版のCentOSは32bit版がない
2. Desktopも使いたい

まず、「1」の理由ですが、CentOS7から、64bit版のみのリリースになりました。
非公式ながら、32bit版もあるのですが、仕事で散々使っているし、もうCentOSはいいかな?って、思ったりもします。

そして、「2」の理由ですが、実は、FX取引ツール「MT4」も常時動かしてみたいのです。
[Linux(Lubuntu)で艦これ&FX環境を整えてみた | すらっしゅほーむ レバレッジ人生](http://kwd.blog.jp/archives/1793691.html)
の時に、本当は、VPSでやろうと思ったんだけど、CentOSでは、ちょっと無理(単に力尽きた)だったので、諦めていましたが、ちょっとやってみたくなり、Lubuntuを選択しました。

# Lubuntuのインストール
まず、
[Lubuntu | The official Lubuntu home](http://lubuntu.me/)
に行き、DOWNLOADSをクリックして、該当のバージョン(Version 16.04.3 LTS)のDeskとp 32-bitをクリックして、isoをダウンロード。
んで、DVDに焼いて、Dell INSPIRON 2200(以下、DELL)に、焼いたDVDをブートして、日本語を選択して、あれやこれやして、完了する。
＃ここら辺は、いいよね?

# sshdが標準でインストールされていない?
さっそく、sshで接続しようとしたんだけど、できませんでしたorz
どうやら、sshdがインストールされていなかったので、「Synaptic パッケージマネージャ」を使い、sshdをインストールしました。

# いろいろ設定
IPアドレスを固定にしないと、NATの設定の時に困るので、設定。
ついでに、Wi-Fiが有効になっていたので、無効にする。
makeとgccが入っていないので、両方インストールしておく。
あと、ファイル編集用にvimも入れておく。
＃あとで気が付いたorz

```
sudo apt-get -y install make gcc vim
```

# SoftEther Serverをインストール!
さて、メインのSoftEtherをインストールしてみたいと思います。
## SoftEtherのダウンロード
[SoftEther VPN プロジェクト - SoftEther VPN プロジェクト](http://ja.softether.org/)
のダウンロードに行って、「SoftEther VPNのダウンロード」をクリックして、
コンポーネントを「SoftEther VPN Server」
プラットホームを「Linux」
CPUを「Intel x86 (32bit)」
で、最新版をダウンロード。

## SoftEtherインストール
rootで入り、/usr/localにパッケージを移動し、解凍(展開)する。

```
$ sudo su -
パスワード:
# cd /usr/local
/usr/local# mv /home/karkwind/softether-vpnserver-v4.24-9652-beta-2017.12.21-linux-x86-32bit.tar.gz .
/usr/local# tar -zxvf softether-vpnserver-v4.24-9652-beta-2017.12.21-linux-x86-32bit.tar.gz
vpnserver/
vpnserver/Makefile
vpnserver/.install.sh
vpnserver/ReadMeFirst_License.txt
vpnserver/Authors.txt
vpnserver/ReadMeFirst_Important_Notices_ja.txt
vpnserver/ReadMeFirst_Important_Notices_en.txt
vpnserver/ReadMeFirst_Important_Notices_cn.txt
vpnserver/code/
vpnserver/code/vpnserver.a
vpnserver/code/vpncmd.a
vpnserver/lib/
vpnserver/lib/libcharset.a
vpnserver/lib/libcrypto.a
vpnserver/lib/libedit.a
vpnserver/lib/libiconv.a
vpnserver/lib/libintelaes.a
vpnserver/lib/libncurses.a
vpnserver/lib/libssl.a
vpnserver/lib/libz.a
vpnserver/lib/License.txt
vpnserver/hamcore.se2
/usr/local#
```

vpnserverに行き、.install.shを実行する

```
/usr/local# cd vpnserver/
/usr/local/vpnserver# ./.install.sh
--------------------------------------------------------------------

SoftEther VPN Server (Ver 4.24, Build 9652, Intel x86) for Linux Install Utility
Copyright (c) SoftEther Project at University of Tsukuba, Japan. All Rights Reserved.

--------------------------------------------------------------------


Do you want to read the License Agreement for this software ?

 1. Yes
 2. No

Please choose one of above number:
1

SoftEther VPN Server, Client and Bridge are free software, and released as open-source. You can redistribute them and/or modify them under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

Copyright (c) Daiyuu Nobori.
Copyright (c) SoftEther Project at University of Tsukuba, Japan.
Copyright (c) SoftEther Corporation.
All Rights Reserved.
http://www.softether.org/

…(略)

Did you read and understand the License Agreement ?
(If you couldn't read above text, Please read 'ReadMeFirst_License.txt'
 file with any text editor.)

 1. Yes
 2. No

Please choose one of above number:
1(選択)


Did you agree the License Agreement ?

1. Agree
2. Do Not Agree

Please choose one of above number:
1(選択)

Preparing SoftEther VPN Server...
ranlib lib/libcharset.a
ranlib lib/libcrypto.a
ranlib lib/libedit.a
ranlib lib/libiconv.a
ranlib lib/libintelaes.a
ranlib lib/libncurses.a
ranlib lib/libssl.a
ranlib lib/libz.a
ranlib code/vpnserver.a
gcc code/vpnserver.a -O2 -fsigned-char -pthread -m32 -lm -ldl -lrt -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a lib/libintelaes.a -o vpnserver
ranlib code/vpncmd.a
gcc code/vpncmd.a -O2 -fsigned-char -pthread -m32 -lm -ldl -lrt -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a lib/libintelaes.a -o vpncmd
./vpncmd /tool /cmd:Check
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.24 Build 9652   (Japanese)
Compiled 2017/12/21 11:24:41 by yagi at pc33
Copyright (c) SoftEther VPN Project. All Rights Reserved.

VPN Tools を起動しました。HELP と入力すると、使用できるコマンド一覧が表示できます。

VPN Tools>Check
Check コマンド - SoftEther VPN の動作が可能かどうかチェックする
---------------------------------------------------
SoftEther VPN 動作環境チェックツール

Copyright (c) SoftEther VPN Project.
All Rights Reserved.

この動作環境チェックツールを実行したシステムがテストに合格した場合は、SoftEther VPN ソフトウェア が動作する可能性が高いです。チェックにはしばらく時間がかかる場合があります。そのままお待ちくださ い...

'カーネル系' のチェック中...
              [合格] ○
'メモリ操作系' のチェック中...
              [合格] ○
'ANSI / Unicode 文字列処理系' のチェック中...
              [合格] ○
'ファイルシステム' のチェック中...
              [合格] ○
'スレッド処理システム' のチェック中...
              [合格] ○
'ネットワークシステム' のチェック中...
              [合格] ○

すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。

コマンドは正常に終了しました。


--------------------------------------------------------------------
The preparation of SoftEther VPN Server is completed !

…(略)

--------------------------------------------------------------------

/usr/local/vpnserver#
```

そして、 `ls -la` を実行して、vpncmdとvpnserverがあるのを確認する。

```
/usr/local/vpnserver# ls -la
合計 8740
drwxrwxrwx  5 root root    4096  1月 13 00:28 .
drwxr-xr-x 11 root root    4096  1月 13 00:19 ..
-rwxrwxrwx  1 root root    1525 12月 21 12:13 .install.sh
-rwxrwxrwx  1 root root    2955 12月 21 12:13 Authors.txt
-rwxrwxrwx  1 root root    2892 12月 21 12:13 Makefile
-rwxrwxrwx  1 root root   30801 12月 21 12:13 ReadMeFirst_Important_Notices_cn.txt
-rwxrwxrwx  1 root root   36296 12月 21 12:13 ReadMeFirst_Important_Notices_en.txt
-rwxrwxrwx  1 root root   50695 12月 21 12:13 ReadMeFirst_Important_Notices_ja.txt
-rwxrwxrwx  1 root root   58902 12月 21 12:13 ReadMeFirst_License.txt
drwx------  2 root root    4096  1月 13 00:28 chain_certs
drwxrwxrwx  2 root root    4096  1月 13 00:28 code
-rwxrwxrwx  1 root root 1296250 12月 21 12:13 hamcore.se2
-rw-------  1 root root     867  1月 13 00:28 lang.config
drwxrwxrwx  2 root root    4096  1月 13 00:28 lib
-rwxr-xr-x  1 root root 3713668  1月 13 00:28 vpncmd
-rwxr-xr-x  1 root root 3713728  1月 13 00:28 vpnserver
root@dell:/usr/local/vpnserver#
```

## サービス登録をする
[艦これのためにVPN(2014/4/6追記) | すらっしゅほーむ レバレッジ人生](http://kwd.blog.jp/archives/1760262.html)
ここに書かれている通りなんだけど、CentOS用なので、多少の変更があるはず…

```
#cd /etc/init.d
/etc/init.d# vim vpnserver
```

以下の構文をコピペ

```bash:/etc/init.d/vpnserver
#!/bin/bash

name="vpnserver"

start(){
    /usr/local/vpnserver/vpnserver start
}
stop(){
    /usr/local/vpnserver/vpnserver stop
}

case "${1}" in
    start)
            start
            ;;
    stop)
            stop
            ;;
    restart)
            stop
            start
            ;;
    *)
            echo "Usage: ${0} {start|stop|restart}"
            ;;
esac
```

できたファイルを実行可能にする

```
/etc/init.d# chmod 755 vpnserver
```

サービス登録をするんだけど、ubuntuには、`chkconfig`がない…orz
とググってみたら、以下のサイトがあったので、さっそく実行。
[ubuntu版chkconfigのsysv-rc-confを使う - Qiita](https://qiita.com/muraikenta/items/df0082b7f7d0f310d942)

```
apt-get -y install sysv-rc-conf
```

そして、サービス登録を行う。

```
# sysv-rc-conf vpnserver on
# sysv-rc-conf --list
…(略)
vpnserver    0:off      1:off   2:on    3:on    4:on    5:on    6:off
…(略)
#
```

そして、`/etc/init.d/vpnserver start`を実行して、vpnserver完了。

## SoftEther VPN Server Manager for Windowsをインストール
ここからは、Windowsの操作。
vpncmdでいろいろやろうと思ったんだけど、これが一番楽なので…
[SoftEther ダウンロード センター](http://www.softether-download.com/ja.aspx?product=softether)で、「SoftEther VPN Server Manager for Windows」を選択して、プラットホームやCPUも選択して(1つしかない)、最新版をダウンロードする。
セットアップファイルをダブルクリックし、次へをクリックし、SoftEther VPN サーバー管理マネージャ(管理ツールのみ)」を選択して、次へ
![wm01.png](https://qiita-image-store.s3.amazonaws.com/0/221663/8108f529-f816-4716-7424-c6bd73bf0b34.png)
んで、いろいろ次へをクリック(同意)して、完了をクリックする。
そうすると、SoftEther VPN Server Managerが起動されるので、新しい接続をクリックする。
![wm02.png](https://qiita-image-store.s3.amazonaws.com/0/221663/7fef85e1-f850-35bb-02d0-ca48ae7ca792.png)
＃この画面には、あらかじめ入っていますが、普通は、何も入っていません。

## VPNサーバーの管理パスワードを設定
![wm03.png](https://qiita-image-store.s3.amazonaws.com/0/221663/339ebac1-ca25-d953-f176-07a875d28d39.png)

接続名は、適当に。
ホスト名は、dellのIPアドレス
ポートは443で。
でOKをクリックする。
そうすると、さっきの画面に、追加した接続設定名ができる。
![wm04.png](https://qiita-image-store.s3.amazonaws.com/0/221663/893d4ca5-caed-d56a-786c-65c99f4ebf69.png)

接続をクリックすると、以下の画面が出るので、なるべく複雑なパスワードを設定しておく。
![wm05.png](https://qiita-image-store.s3.amazonaws.com/0/221663/1406e9a4-969f-4080-09fb-a59b40bc401e.png)

パスワードを設定したら、簡易セットアップ画面が出るけど、閉じる。
次に別の画面が出るけど「いいえ」をクリックする。
＃次回の設定編で、解説する予定。

以下の画面が出たら、とりあえず、準備は完了です。
![wm06.png](https://qiita-image-store.s3.amazonaws.com/0/221663/3f95c4b9-bf9f-06b8-296c-8cf54c84643f.png)

# とりあえず、ここでいったん切ります
次回は、設定編です。
[艦これのためのVPN(導入編)(2014/4/13訂正) | すらっしゅほーむ レバレッジ人生](http://kwd.blog.jp/archives/1789185.html)
たぶん、上記の記事の焼き回しになりそうですが、違うところは
1. ローカルブリッジを使用する
2. ちょっとだけ、セキュリティ強化
3. 接続アドレスをもっと短くする
4. VPNAzureは今回も使用しない
です。

まず「1」ですが、ローカルブリッジを利用して、自宅のネットワークに直結(同じネットワーク内)させます。
それによって、外出しててもスマホで、自宅の電話の発着信ができる(かも
~~「2」は、「証明書」を使用して、接続してみたいかなぁ～って思っています。~~
追記：オープンソース版SoftEtherVPNには、実装されていませんでした…

「3」は、～.softether.netが長いので、もうちょっと短くするようにDNSサーバーを設定。
種明かしをすると、CNAMEを使用します。
「4」は、4年前は、VPNAzureの使い方がいまいちわかっていませんでした。
VPNAzureを使用すれば、わざわざ、グローバルアドレスが取得できるプロバイダじゃなくてもいいし、ルータのポート解放もしなくてもよくなります。
最悪、IPアドレス固定にしなくても、動作します。
インターネットに接続できる環境(正確には、外部のhttps(TCP:443)に接続できる環境)があれば、ほかに、何もしなくても、VPNサーバーに接続できます。

**VPNAzure超便利**

でも、今回は(も)、あえて使用しません。
理由は、いろいろありますが、一番の問題はトラフィックが、いったんVPNAzureサーバーに行くので、経路的に多少遠回りになってしまいます。
まぁ～時間があったら、VPNAzureを使用した、VPNサーバーの運用とか、書いてみたいと思います。

# ネットワーク構成図書くの忘れてた…
次回書きます。

# 構築編ができました(2018/01/14追記)
[余っているPCにLubuntuを入れて、VPNサーバーを作ってみた(構築編) - Qiita](https://qiita.com/karkwind/items/0e05a7661197f50cf536)