Linux
VPN
Lubuntu
SoftEther
自宅サーバー

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

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

もう約4年前の話か…

Dell INSPIRON 2200にLubuntuを入れてみた | すらっしゅほーむ レバレッジ人生
この記事から、もう4年になってしまいました。
今入れているバージョンは、14.04LTSだったので、もうサポート切れ。

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

Dell INSPIRON 2200のスペックを確認

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環境を整えてみた | すらっしゅほーむ レバレッジ人生
の時に、本当は、VPSでやろうと思ったんだけど、CentOSでは、ちょっと無理(単に力尽きた)だったので、諦めていましたが、ちょっとやってみたくなり、Lubuntuを選択しました。

Lubuntuのインストール

まず、
Lubuntu | The official Lubuntu home
に行き、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 プロジェクト
のダウンロードに行って、「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追記) | すらっしゅほーむ レバレッジ人生
ここに書かれている通りなんだけど、CentOS用なので、多少の変更があるはず…

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

以下の構文をコピペ

/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

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 ダウンロード センターで、「SoftEther VPN Server Manager for Windows」を選択して、プラットホームやCPUも選択して(1つしかない)、最新版をダウンロードする。
セットアップファイルをダブルクリックし、次へをクリックし、SoftEther VPN サーバー管理マネージャ(管理ツールのみ)」を選択して、次へ
wm01.png
んで、いろいろ次へをクリック(同意)して、完了をクリックする。
そうすると、SoftEther VPN Server Managerが起動されるので、新しい接続をクリックする。
wm02.png
#この画面には、あらかじめ入っていますが、普通は、何も入っていません。

VPNサーバーの管理パスワードを設定

wm03.png

接続名は、適当に。
ホスト名は、dellのIPアドレス
ポートは443で。
でOKをクリックする。
そうすると、さっきの画面に、追加した接続設定名ができる。
wm04.png

接続をクリックすると、以下の画面が出るので、なるべく複雑なパスワードを設定しておく。
wm05.png

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

以下の画面が出たら、とりあえず、準備は完了です。
wm06.png

とりあえず、ここでいったん切ります

次回は、設定編です。
艦これのためのVPN(導入編)(2014/4/13訂正) | すらっしゅほーむ レバレッジ人生
たぶん、上記の記事の焼き回しになりそうですが、違うところは
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