原材料の空間

チョコの原材料が語ってます

ConoHaのVPSを借りてSoftEtherでVPN接続したときの備忘録

タイトルの通りです。Qiitaに書くか悩みましたがブログに書くことにします。

proxyのせいで開発に必要なツールの導入がブロックされたりして煩わしいことが多々あったため構築しようと思いました。ゲームとかTwitterもしたいしね 

 

 

環境・前提

[Client]

OS :Windows 10 pro

作業OS :Ubuntu 18.04 LTS(WSL)

 

[Server]

OS :CentOS 7.6(64bit)

プラン :630円/月

リージョン :東京

接続許可ポート :全て許可

 

[前提]

ConoHaサーバーを契約済み

Ubuntuが使えるpcがある

SSH接続ができる状態(私は設定がめんどくさかったのでテザリングでやりました)

Linuxコマンドについてcdとかだけでいいので少しは知識がある

 

まだConoHaサーバーを契約していなければ契約しましょう。このリンクから契約すると1000円のクーポンがもらえます。約1ヶ月半分のサーバー代ですね。

 

www.conoha.jp

 

 

サーバー初期設定

サーバーへのSSH接続ができたところから初めます。

SSH接続のコマンドは

[Client:~]$ ssh root@IPアドレス -p 22
password:

 ですね。

で、設定に移るんですが既にQiitaに書いてしまったのでそちらを見てください()
qiita.com

 

CentOSにSoftEtherをダウンロード

準備

SoftEtherをCentOSにダウンロードするのに必要なソフトをインストールします。

途中、インストールするかどうか聞かれたらyを入力しましょう。

[User@IP :~]$ sudo yum install zlib-devel.x86_64 
password:
[User@IP :~]$ sudo yum install gcc.x86_64

次にWindowsにSoftEtherのダウンロードをします。

f:id:kakao1839:20190217084108p:plain

このように選択し、好きなバージョンのSoftEther VPN Serverを選択してください(一番上ので問題ないと思います)。

ダウンロードが完了したらこれをサーバー上のCentOSに転送します。

WSL Ubuntuなのでmntを挟んでいますがmacやLinuxの場合は不要です。

[Client:~]$ scp /mnt/e/Documents/server/softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz conoha:/tmp

password:
softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz   100% 6135KB 2.0MB/s 00:04

解凍・パーミッション付与

サーバー上で転送したファイルを解凍してビルドします。

[User@IP :~]$ cd /tmp
[User@IP :~]$ ls -l soft*
-rw-r--r--. 1 User wheel 6275265  Feb 19 14:36 softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz
[User@IP :tmp]$ tar zxvf softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz
:
:
:
vpnserver/lib/License.txt
vpnserver/hamcore.se2
[User@IP :tmp]$ ls -l
# vpnserverが出現していることを確認する
total 6156
-rwxr-xr-x 1 User wheel 6281445 Feb 18 15:32 softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz
drwxrwxr-x. 4 User wheel 4096 Feb 18 15:32 vpnserver


# makeコマンドでビルドする
[User@IP :tmp]$ cd vpnserver/
[User@IP :vpnserver]$ sudo make
# ライセンス読むかとか理解できたかとか同意するかしないかとか聞かれるので全部1を入力

SoftEtherのマニュアルに従い /usr/local にSoftEther VPNを移動しパーミッションを付与する。

[User@IP :vpnserver]$ cd ..

# ファイルの移動
[User@IP :tmp]$ sudo mv vpnserver/ /usr/local
password: 
[User@IP :tmp]$ ls -l /usr/local/vpnserver/
total 10512
-rw------- 1 User User    2955 Sep 11 12:35 Authors.txt
-rw------- 1 User User    3010 Sep 11 12:35 Makefile
-rw------- 1 User User   30801 Sep 11 12:35 ReadMeFirst_Important_Notices_cn.txt
-rw------- 1 User User   36296 Sep 11 12:35 ReadMeFirst_Important_Notices_en.txt
-rw------- 1 User User   50695 Sep 11 12:35 ReadMeFirst_Important_Notices_ja.txt
-rw------- 1 User User   58903 Sep 11 12:35 ReadMeFirst_License.txt
drwx------ 2 User User    4096 Feb 19 16:03 backup.vpn_server.config
drw------- 2 User User    4096 Feb 18 15:34 chain_certs
drw------- 2 User User    4096 Feb 18 15:34 code
-rw------- 1 User User 1296639 Sep 11 12:35 hamcore.se2
-rw------- 1 User User     867 Feb 18 15:34 lang.config
drw------- 2 User User    4096 Feb 18 15:33 lib
drwx------ 3 User User    4096 Feb 18 15:53 packet_log
drwx------ 3 User User    4096 Feb 18 15:38 security_log
drwx------ 2 User User    4096 Feb 19 00:00 server_log
-rw------- 1 User User   15051 Feb 19 16:18 vpn_server.config
-rwx------ 1 User User 4611800 Feb 18 15:34 vpncmd
-rwx------ 1 User User 4611880 Feb 18 15:34 vpnserver

# パーミッション付与
[User@IP :tmp]$ cd /usr/local/vpnserver/
[User@IP :vpnserver]$ sudo chmod 600 *
[User@IP :vpnserver]$ sudo chmod 700 vpncmd
[User@IP :vpnserver]$ sudo chmod 700 vpnserver
[User@IP :vpnserver]$ sudo chown root:root *
[User@IP :vpnserver]$ ls -l
# User が root に変わってるか確認

 

自動起動・動作チェック

動作チェック

SoftEther VPNには動くかどうかチェックしてくれる機能があるのでそれを使って動作確認をする。

[User@IP :~]$ cd /usr/local/vpnserver/
[User@IP :vpnserver]$ sudo ./vpncmd
:
:
1. Management of VPN Server or VPN Bridge
2. Management of VPN Client
3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool)

Select 1, 2 or 3: #3を入力

VPN Tools>check
:
:
If this operation environment check tool is run on a system and that system passes, it is most likely that SoftEther VPN software can operate on that system. This check may take a while. Please wait...
# 全てPass(合格)したか確かめる
Checking 'Kernel System'...
              Pass
Checking 'Memory Operation System'...
              Pass
Checking 'ANSI / Unicode string processing system'...
              Pass
Checking 'File system'...
              Pass
Checking 'Thread processing system'...
              Pass
Checking 'Network system'...
              Pass
:
:
VPN Tools>exit
[User@IP :vpnserver]$

自動起動させる

OSが起動したときにSoftEther VPNをサーバーが自動起動するように設定する。

[User@IP :~]$ cd /etc/systemd/system
[User@IP :system]$ sudo vim  softethervpn.service
# 以下を記述
[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop

[Install]
WantedBy=multi-user.target

[User@IP :system]$ ls -l softethervpn.service
-rw-r--r-- 1 root root 215 Feb 18 15:36 softethervpn.service

# 自動起動ON
[User@IP :system]$ sudo systemctl enable softethervpn # 自動起動がenableになったか確認する [User@IP :system]$ sudo systemctl list-unit-files --type=service | grep softether softethervpn.service enabled # ここで自動起動が有効かどうか確認するためにConoHaサーバーを再起動する。 # 再ログイン [User@IP :~]$ cd /etc/systemd/system [User@IP :system]$ ps -ef | grep vpn root 3091 1 0 Feb18 ? 00:00:00 /usr/local/vpnserver/vpnserver execsvc root 3092 3091 3 Feb18 ? 00:55:48 /usr/local/vpnserver/vpnserver execsvc User 6650 6595 0 16:40 pts/0 00:00:00 grep --color=auto vpn [User@IP :system]$ uptime 16:42:12 up 23:18, 1 user, load average: 0.00, 0.01, 0.05 # ログを見て見るのも良い [User@IP :system]$ sudo grep VPN /var/log/messages Feb 18 17:23:38 150-95-135-37 systemd: Starting SoftEther VPN Server... Feb 18 17:23:38 150-95-135-37 vpnserver: The SoftEther VPN Server service has been started. Feb 18 17:23:39 150-95-135-37 systemd: Started SoftEther VPN Server.

 

仮想Hubを構築する

 私の環境ではローカル(Windows)でGUIでHubを作成するとProxyを抜ける事ができなかったので、試しにサーバー側で作ると抜けれました。なのでサーバー側で仮想Hubを作ることにします。詳しい人理由を教えてください。

あと、自動起動の設定をしたあとそのままやったらうまくできませんでした。サーバーを再起動したらできました。なのでこの項に進む前にサーバーを再起動することをおすすめします。

管理者パスワードの設定

[User@IP :~]$ cd /usr/local/vpnserver/
[User@IP :~]$ sudo ./vpncmd
:
:
1. Management of VPN Server or VPN Bridge
2. Management of VPN Client
3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool)

Select 1, 2 or 3: #1を入力
:
:
Hostname of IP Address of Destination: #空白,Enter
:
:
Specify Virtual Hub Name: #空白,Enter

Connection has been established with VPN Server "localhost" (port 443).

You have administrator privileges for the entire VPN Server.
VPN Server>
# 管理者パスワードを設定する
VPN Server>ServerPasswordSet

パスワード入力 : 
もう一度 :

The command ended normally.
VPN Server>exit

仮想Hubを作成する

管理者パスワードでログインします。

[User@IP :~]$ sudo ./vpncmd
:
:
1. Management of VPN Server or VPN Bridge
2. Management of VPN Client
3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool)

Select 1, 2 or 3: #1を入力
:
:
Hostname of IP Address of Destination: #空白,Enter
:
:
Specify Virtual Hub Name: #空白,Enter
Password: #さっき設定したパスワードを入力 Connection has been established with VPN Server "localhost" (port 443). You have administrator privileges for the entire VPN Server. VPN Server>

実はデフォルトで「DEFAULT」というHubが作成されているのでそれを確認します。あればokです。

VPN Server>hublist
HubList command - Get List of Virtual Hubs
Item              |Value
------------------+-------------------
Virtual Hub Name  |DEFAULT
Status            |Online
Type              |Standalone
Users             |0
Groups            |0
Sessions          |0
MAC Tables        |0
IP Tables         |0
Num Logins        |0
Last Login        |2019-02-19 13:48:22
Last Communication|2019-02-19 17:24:45
Transfer Bytes    |0
Transfer Packets  |0
The command completed successfully.

VPN Server>

もしも万が一無かった時は

VPN Server>hubcreate

と入力しましょう。Hubの名前はなんでもいいです。

 

ドメインを登録する

これはやらなくてもいいですが、私はConoHaの初期ドメイン(コントロールパネルでの逆引きホスト名)がProxyサーバーの管理者から規制された時に備えて独自ドメインVPSに設定しました。同じことをしている記事があるのでリンクを貼っておきます。

walkingmask.hatenablog.com

cmdで[nslookup ドメイン名]を入力し、VPSIPアドレスが確認できたら設定成功です。

接続設定

ゴールは目の前です。ここからはGUIでの操作です。

 

必要なソフトのダウンロード

f:id:kakao1839:20190219173124p:plain

このように選択してダウンロードしてください。もう一つ、VPN Clientもダウンロードしておきます。

f:id:kakao1839:20190219173251p:plain

インストーラーを起動しインストールしましょう。全て[次へ]を選択していって問題ないです。

 

接続設定

インストールが完了したら「SoftEther VPN サーバー管理」を起動します。

[新しい接続設定]をクリックするとこのような画面になると思います。

f:id:kakao1839:20190219174735p:plain

この3つを入力↓

[接続設定名]自由

[ホスト名]VPSIPアドレスまたは逆引きホスト名、ドメイン

[管理者パスワード]上で設定した管理者パスワード

[OK]をクリックし、[接続]をクリック

※接続後ポップアップが出てくるかも知れませんが無視でいいです

 

f:id:kakao1839:20190219175723p:plain

 

仮想Hubの管理

赤枠で囲ったところを設定します。

f:id:kakao1839:20190219175724p:plain

 

ユーザー設定

[ユーザーの管理]をクリック。

左下の[新規作成]をクリック。

f:id:kakao1839:20190219180819p:plain

[ユーザー名]好きな名前。あだ名とか
[パスワード認証]ユーザー固有のパスワード

の2つを最低でも設定しましょう。ユーザーは好きなだけ増やせますが接続人数が多いほどサーバーに負荷がかかります。(=速度の低下)

 

仮想NAT・DHCPサーバーの設定

[仮想NATおよび仮想DHCPサーバー機能]をクリック。

[SecureNATの機能を有効にする]をクリック。ポップアップがいくつか出てきますがokとかを押して進んでください。

有効になったら[SecureNATをの設定]をクリック。

MACアドレス最初の部分だけ00-ACに変更

IPアドレス192.168.xx.xx (xxは数字)

[配布IPアドレス帯]192.168.30.10 から 192.168.30.200

デフォルトゲートウェイのアドレス]空白またはVPSのIP

 

ローカルブリッジ接続の設定

f:id:kakao1839:20190219182902p:plain

[ローカルブリッジ設定]をクリック

「新しいローカルブリッジの定義」の「仮想HUB」でDEFAULTを選択してください。

「作成する種類」では「新しいtapデバイスとのブリッジ接続」を選択し、tapデバイス名をつけて[ローカルブリッジを追加]をクリックします。

 

これで「SoftEther VPN サーバー管理」での設定は完了です。次はいよいよ接続です。

 

接続

先程インストールした「SoftEther VPN クライアント接続」を起動してください。

[新しい接続設定の作成]をダブルクリックします。

f:id:kakao1839:20190219184135p:plain

赤枠で囲った所を設定していきます。

[接続設定名]自由。好きなの

[ホスト名]VPSIPアドレスまたは逆引きホスト名、ドメイン

[仮想HUB名]DEFAULT

[プロキシの種類]HTTPプロキシサーバー経由接続

[ユーザー名]設定したもの

[パスワード]設定したもの

[プロキシサーバーの接続設定]をクリックしてください。

f:id:kakao1839:20190219184626p:plain

あなたの環境に合わせて設定してください。ユーザー名とパスワードは学内ネットに接続する時のものです。

 

 

参考にしたサイト

とても助かりました。ありがとうございました。

kaiten78.hatenadiary.org

qiita.com

qiita.com

 

更新情報

2020/04/21

・SoftEhterを自動起動させるところに

# 自動起動ON
[User@IP :system]$ sudo systemctl enable softethervpn

を追記しました

・「参考にしたサイト」の項目を追加しました。