mikolaboのブログ

パソコンからくり研究室

ラズパイに SoftEtherVPN Client をインストール

テレワークシステム」や「Webカメラシステム」の構成要素でラズパイを使っています。

ただし、Rasbian Stretch (Raspberry Pi OSの旧Ver)であれば動作は問題ないのですが、Buster(Raspberry Pi OSの新Ver)は何回セットアップしてみてもうまく動作しませんでした。


※ つくば大学HPの4.1 動作環境 4.1.4 制限事項には
ソフトイーサ株式会社では LinuxVPN Client を提供しますが、これが正常動作することについて一切サポートしておりません。」
と記載されています。

 

よくインターネット上で見かけるのは、ラズパイに SoftEtherVPNサーバ を仕掛けて、外部から接続するパターンですが、私はラズパイ上に SoftEtherVPNクライアントを仕掛けて、インターネット上のクラウド(AmazonWebServices)に中継させています。

 

今回は、このクライアント接続の設定を「vpncmd コマンド」と呼ばれるSoftEtherが持つコマンド機能によって、セットアップします。

 

ちなみに、同じ設定を「SoftEtherVPNクライアントリモート管理ツール」を使って、Windowsパソコンからラズパイに遠隔接続して、セットアップすることもできます。


SoftEtherの管理業務は、「SoftEtherVPNサーバー管理ツール」でサーバ管理周りを色々設定できるのですけど、このツールはラズパイのクライアント設定周りを引き受けます。


以前に、SoftEtherVPNクライアント リモート管理」ツールでリモート操作に設定の仕方を載せております。

では、今回の本題、ラズパイに対するSoftEtherVPNクライアント設定を始めていきます。

SoftEtherVPNは、つくば大学で開発と配布を行っている、無償オープンソースです。

次の特徴があります。

https://ja.softether.org/5-download

から、以下のイメージで、SoftEtherVPNクライアントのOS:Linux,CPU:ARM EABI(32bit)のtar媒体をダウンロードしてきます。

 

SoftEtherVPNClientダウンロード

SoftEtherClientVPNダウンロード
  • TeraTermProなどのツールで、ラズパイ・ユーザ「pi」パスワード指定で、リモートログインします。
  • ルートユーザになります。(r3b-stf-clbase:ホスト名)

 

pi@r3b-stf-clbase:~ $ sudo -s
root@r3b-stf-clbase:/home/pi#
  • softetherVPN client をラズパイにダウンロード

 

root@r3b-stf-clbase:/home/pi# wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.34-9745-beta/softether-vpnclient-v4.34-9745-beta-2020.04.05-linux-arm_eabi-32bit.tar.gz

--2020-05-20 11:44:49-- https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.34-9745-beta/softether-vpnclient-v4.34-9745-beta-2020.04.05-linux-arm_eabi-32bit.tar.gz
github.com (github.com) をDNSに問いあわせています... 52.192.72.89
github.com (github.com)|52.192.72.89|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://github-production-release-asset-2e65be.s3.amazonaws.com/107487278/5f8e8280-779c-11ea-91fe-6d6e738174c4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200520%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200520T024449Z&X-Amz-Expires=300&X-Amz-Signature=bfd6e72097721bae06ea2f67b47c6688c05271594d781b165ec77bb3de3e520f&X-Amz-SignedHeaders=host&actor_id=0&repo_id=107487278&response-content-disposition=attachment%3B%20filename%3Dsoftether-vpnclient-v4.34-9745-beta-2020.04.05-linux-arm_eabi-32bit.tar.gz&response-content-type=application%2Foctet-stream [続く]
--2020-05-20 11:44:49-- https://github-production-release-asset-2e65be.s3.amazonaws.com/107487278/5f8e8280-779c-11ea-91fe-6d6e738174c4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200520%2Fus-east-1%2Fs3%2Faws4_request&X-Amz
github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com) をDNSに問いあわせています... 52.217.37.84
github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.217.37.84|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 7133926 (6.8M) [application/octet-stream]
`softether-vpnclient-v4.34-9745-beta-2020.04.05-linux-arm_eabi-32bit.tar.gz' に保存中

softether-vpnclient-v4.34-9745-beta-2020.04.05-linu 100%[===================================================================================================================>] 6.80M 2.68MB/s in 2.5s

2020-05-20 11:44:53 (2.68 MB/s) - `softether-vpnclient-v4.34-9745-beta-2020.04.05-linux-arm_eabi-32bit.tar.gz' へ保存完了 [7133926/7133926]

 

  • ダウンロードしたtar媒体のsoftetherVPN clientを解凍し、「vpnclient」フォルダに移動します。

 

root@r3b-stf-clbase:/home/pi# tar xvfz softether-vpnclient-v4.34-9745-beta-2020.04.05-linux-arm_eabi-32bit.tar.gz

vpnclient/
vpnclient/Makefile
vpnclient/.install.sh
   :   :   :
vpnclient/lib/libz.a
vpnclient/lib/License.txt
vpnclient/hamcore.se2

root@r3b-stf-clbase:/home/pi# cd vpnclient/

 

  • softetherVPN clientをmakeします(ライセンスへの同意を求められるので「1」を3回入力します)

 

root@raspberrypi:/home/pi/vpnclient# make
--------------------------------------------------------------------

SoftEther VPN Client (Ver 4.34, Build 9745, ARM EABI) 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 ←―――――――――――――――――【1 を入力】

Copyright (c) all contributors on SoftEther VPN project in GitHub.
Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.

DISCLAIMER
==========

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN, UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY, MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING, MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO, JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.

USE ONLY IN JAPAN. DO NOT USE THIS SOFTWARE IN ANOTHER COUNTRY UNLESS YOU HAVE A CONFIRMATION THAT THIS SOFTWARE DOES NOT VIOLATE ANY CRIMINAL LAWS OR CIVIL RIGHTS IN THAT PARTICULAR COUNTRY. USING THIS SOFTWARE IN OTHER COUNTRIES IS COMPLETELY AT YOUR OWN RISK. THE SOFTETHER VPN PROJECT HAS DEVELOPED AND DISTRIBUTED THIS SOFTWARE TO COMPLY ONLY WITH THE JAPANESE LAWS AND EXISTING CIVIL RIGHTS INCLUDING PATENTS WHICH ARE SUBJECTS APPLY IN JAPAN. OTHER COUNTRIES' LAWS OR CIVIL RIGHTS ARE NONE OF OUR CONCERNS NOR RESPONSIBILITIES. WE HAVE NEVER INVESTIGATED ANY CRIMINAL REGULATIONS, CIVIL LAWS OR INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENTS IN ANY OF OTHER 200+ COUNTRIES AND TERRITORIES. BY NATURE, THERE ARE 200+ REGIONS IN THE WORLD, WITH DIFFERENT LAWS. IT IS IMPOSSIBLE TO VERIFY EVERY COUNTRIES' LAWS, REGULATIONS AND CIVIL RIGHTS TO MAKE THE SOFTWARE COMPLY WITH ALL COUNTRIES' LAWS BY THE PROJECT. EVEN IF YOU WILL BE SUED BY A PRIVATE ENTITY OR BE DAMAGED BY A PUBLIC SERVANT IN YOUR COUNTRY, THE DEVELOPERS OF THIS SOFTWARE WILL NEVER BE LIABLE TO RECOVER OR COMPENSATE SUCH DAMAGES, CRIMINAL OR CIVIL
RESPONSIBILITIES. NOTE THAT THIS LINE IS NOT LICENSE RESTRICTION BUT JUST A STATEMENT FOR WARNING AND DISCLAIMER.

READ AND UNDERSTAND THE 'src/WARNING.TXT' FILE BEFORE USING THIS SOFTWARE. SOME SOFTWARE PROGRAMS FROM THIRD PARTIES ARE INCLUDED ON THIS SOFTWARE WITH LICENSE CONDITIONS WHICH ARE DESCRIBED ON THE 'src/THIRD_PARTY.TXT' FILE.

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 ←―――――――――――――――――【1 を入力】

Did you agree the License Agreement ?

1. Agree
2. Do Not Agree

Please choose one of above number:
1 ←―――――――――――――――――【1 を入力】

make[1]: ディレクトリ '/home/pi/vpnclient' に入ります
Preparing SoftEther VPN Client...
ranlib lib/libcharset.a
ranlib lib/libcrypto.a
ranlib lib/libedit.a
ranlib lib/libiconv.a
ranlib lib/libncurses.a
ranlib lib/libssl.a
ranlib lib/libz.a
ranlib code/vpnclient.a
gcc code/vpnclient.a -fPIE -O2 -fsigned-char -pthread -lm -lrt -Wl,--no-warn-mismatch -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a -ldl -o vpnclient
ranlib code/vpncmd.a
gcc code/vpncmd.a -fPIE -O2 -fsigned-char -pthread -lm -lrt -Wl,--no-warn-mismatch -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a -ldl -o vpncmd

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

*** How to switch the display language of the SoftEther VPN Client Service ***
SoftEther VPN Client supports the following languages:
- Japanese
- English
- Simplified Chinese

You can choose your prefered language of SoftEther VPN Client at any time.
To switch the current language, open and edit the 'lang.config' file.

Note: the administrative password is not set on the VPN Server. Please set your own administrative password as soon as possible by vpncmd or the GUI manager.

*** How to start the SoftEther VPN Client Service ***

Please execute './vpnclient start' to run the SoftEther VPN Client Background Service.
And please execute './vpncmd' to run the SoftEther VPN Command-Line Utility to configure SoftEther VPN Client.

Of course, you can use the VPN Server Manager GUI Application for Windows / Mac OS X on the other Windows / Mac OS X computers in order to configure the SoftEther VPN Client remotely.

*** For Windows users ***
You can download the SoftEther VPN Server Manager for Windows
from the http://www.softether-download.com/ web site.
This manager application helps you to completely and easily manage the VPN server services running in remote hosts.

*** For Mac OS X users ***
In April 2016 we released the SoftEther VPN Server Manager for Mac OS X.
You can download it from the http://www.softether-download.com/ web site.
VPN Server Manager for Mac OS X works perfectly as same as the traditional Windows versions. It helps you to completely and easily manage the VPN server services running in remote hosts.

*** PacketiX VPN Server HTML5 Web Administration Console (NEW) ***
This VPN Server / Bridge has the built-in HTML5 Web Administration Console.

After you start the server daemon, you can open the HTML5 Web Administration Console is available at

https://127.0.0.1:5555/
or
https://ip_address_of_the_vpn_server:5555/

This HTML5 page is obviously under construction, and your HTML5 development contribution is very appreciated.

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

make[1]: ディレクトリ '/home/pi/vpnclient' から出ます

  • vpnclientの権限付加
root@r3b-stf-clbase:/home/pi/vpnclient# chmod 600 *	
root@r3b-stf-clbase:/home/pi/vpnclient# chmod 700 vpncmd	
root@r3b-stf-clbase:/home/pi/vpnclient# chmod 700 vpnclient	
  • クライアントサービスのスタート
root@r3b-stf-clbase:/home/pi/vpnclient# sudo ./vpnclient start
The SoftEther VPN Client service has been started.
  • バージョンの確認
root@raspberrypi:/home/pi/vpnclient# ./vpncmd /client
	
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.34 Build 9745   (Japanese)
Compiled 2020/04/05 23:39:56 by buildsan at crosswin
Copyright (c) SoftEther VPN Project. All Rights Reserved.

接続先の VPN Client が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。
何も入力せずに Enter を押すと、localhost (このコンピュータ) に接続します。
接続先のホスト名または IP アドレス:  ←―――――――――――――――――【enter を入力】
  • (注意!!)ちゃんと「Enter」を押さないとコマンドが落ちて、やり直しになることが多々あるので、慎重に!!!

 

  • VPN Client に接続できましたので、バージョン情報と仮想LANカード一覧を確認します。
    「仮想LANカード」はまだ存在しない

 

VPN Client>VersionGet	
VersionGet コマンド - VPN Client サービスのバージョン情報の取得	
項目          |値	
--------------+----------------------------------------------------	
製品名        |SoftEther VPN Client	
バージョン情報|Version 4.34 Build 9745   (Japanese)	
ビルド情報    |Compiled 2020/04/05 23:39:56 by buildsan at crosswin	
プロセス ID   |0	
OS の種類     |Linux	
コマンドは正常に終了しました。	
	
VPN Client>NicList	
NicList コマンド - 仮想 LAN カード一覧の取得	
項目|値	
----+--	
コマンドは正常に終了しました。	

新しい仮想LANカードをシステムに追加します。仮想 LAN カードには任意の名前を付けることができます。
(英数字のみで、Windows 2000 以降のシステムでは 31 文字まで、Windows 98, 98 SE および ME では 4 文字まで)
NicCreate コマンドを呼び出した場合、OSに、新しいSoftEtherの仮想 LAN カードデバイスドライバがインストールされます。
(OSによっては、デバイスドライバをインストールしても良いかどうか確認するダイアログボックスが表示される場合があります)
(でも表示は見たことありません)

 

VPN Client>NicCreate tun1

NicCreate コマンド - 新規仮想 LAN カードの作成
コマンドは正常に終了しました。
  • (注意!!)仮想LANカードの名前は、以前のVerでは、4文字までだったので、4文字以内で付けた方が無難。たまにヘン。
  • アカウントの作成(サーバのドメインが demo.softether.net でポート992に接続の場合)

 

VPN Client に新しい接続設定を作成します。
接続設定作成の初期パラメータは、接続設定の名前と接続先のサーバー、および接続先の仮想 HUB、ユーザー名に加えて使用する仮想 LAN カード名を指定します。
新しい接続設定を作成時、ユーザー認証の種類は [匿名認証] に初期設定され、プロキシサーバーの設定とサーバー証明書の検証オプションは設定されません。
これらの設定やその他の詳細設定を変更するには、接続設定を作成した後に、"Account" という名前で始まる他のコマンドを使用します。
以下は、SoftEtherVPNServer = demo.softether.net の 992ポート接続で、「VPN-place1 」の仮想ハブに、ユーザ「user1」を「tun1」という名前で生成しています。

VPN Client>AccountCreate tun1 /SERVER:demo.softether.net:992 /HUB:VPN-place1 /USERNAME:user1 /NICNAME:tun1

AccountCreate コマンド - 新しい接続設定の作成
コマンドは正常に終了しました。

 

  • 仮想LANカードの有効化。既存の仮想LAN カードが無効化されている場合は、有効化します。(Windows 2000 以降)
VPN Client>NicEnable tun1

NicEnable コマンド - 仮想 LAN カードの有効化
コマンドは正常に終了しました。
  • VPN Client に登録されている接続設定を指定し、その接続設定が VPNServer に接続する際の、ユーザー認証に必要なユーザー名を指定します。
    なお、ユーザー認証の種類、パラメータを指定する必要がある場合には、AccountAnonymousSet、AccountPasswordSet、AccountCertSet、AccountSecureCertSetを使用します。
VPN Client>AccountUsernameSet tun1 /USERNAME:user1

AccountUsernameSet コマンド - 接続設定の接続に使用するユーザー名の設定
コマンドは正常に終了しました。
  • パスワードをセット(VPN Client サービスに接続するためのパスワードの設定)
VPN Client が VPN Server に接続する際のユーザー認証の方法を、[パスワード認証] に設定します。
パスワード認証の種類には、[標準パスワード認証] と [RADIUS または NT ドメイン認証] を指定します。

VPN Client>AccountPasswordSet tun1 /PASSWORD:XXXXXX /TYPE:standard	
AccountPasswordSet コマンド - 接続設定のユーザー認証の種類をパスワード認証に設定	
コマンドは正常に終了しました。	
	
VPN Client に登録されている接続設定を使用して VPN Server への接続を開始します。	
接続処理中、または接続済みの状態になった接続設定は、AccountDisconnect コマンドで切断するまで VPN Server に常時接続、または接続を試行し続けます 	
(ただし AccountRetrySet コマンドで再試行回数を指定してある場合は、指定された回数で試行を中断します)。	
	
VPN Client>AccountConnect tun1

AccountConnect コマンド - 接続設定を使用して VPN Server へ接続を開始	
コマンドは正常に終了しました。	
VPN Client>quit	

(SoftEtherVPN User Forum参考)
route add default gw 192.168.30.10 dev vpn_test(デフォルトゲートウェイ設定)のみ設定すると、元のデフォルトゲートウェイが隠蔽されてVPNサーバーへの通信自体が切れてしまうので、route add [VPNサーバーのアドレス] mask 255.255.255.255 gw 192.168.10.1 のように(現在リモートで利用しているPCに対するゲートウェイVPN サーバーへの経路を別途設定しておく必要があります。

  • アドレスを取得 Virtual NICIPアドレスを割り振ります。($ sudo dhclient vpn_<Virtual NIC名>)
root@raspberrypi:/home/pi/vpnclient# sudo dhclient vpn_tun1

RTNETLINK answers: File exists

root@raspberrypi:/home/pi/vpnclient# ip addr show vpn_tun1

4: vpn_tun1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether 5e:dc:f3:15:a6:f9 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.21/24 brd 10.0.1.255 scope global vpn_tun1
       valid_lft forever preferred_lft forever
    inet6 fe80::5cdc:f3ff:fe15:a6f9/64 scope link
       valid_lft forever preferred_lft forever


(注意!!)クラウド上のサーバからのDHCP受けの場合、AWSping に応答できるように、セキュリティグループの許可を設定する必要あり
(正常時には、すぐメッセージが出力されるが、待たされた後に、PINGの失敗メッセージが出て割り当ても出来ない(中途半端)な場合がある)
root@r3b-stf-clbase:/home/pi/vpnclient# cd ..	
root@r3b-stf-clbase:/home/pi# pwd	
/home/pi	
root@raspberrypi:/home/pi# mv vpnclient /opt
root@r3b-stf-clbase:/home/pi# vi /opt/vpnclient/dhclient_start.sh

#
#   dhclient_start.sh
#
#                   Mar/22/2018
sleep 10
#
/opt/vpnclient/vpncmd /client localhost /cmd AccountConnect tun1
#
sleep 1
#
dhclient vpn_tun1
#
  • サービスのファイルを作成
root@r3b-stf-clbase:/home/pi# vi /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

root@r3b-stf-clbase:/home/pi# vi /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
  • Systemd を有効にする
root@r3b-stf-clbase:/home/pi# sudo chmod 0755 /etc/systemd/system/vpnclient.service
root@r3b-stf-clbase:/home/pi# sudo chmod 0755 /etc/systemd/system/dhclient.service
root@r3b-stf-clbase:/home/pi# sudo systemctl daemon-reload
root@r3b-stf-clbase:/home/pi# sudo systemctl start vpnclient
root@r3b-stf-clbase:/home/pi# sudo systemctl enable vpnclient
Created symlink /etc/systemd/system/multi-user.target.wants/vpnclient.service → /etc/systemd/system/vpnclient.service.

root@r3b-stf-clbase:/home/pi# sudo systemctl start dhclient
root@r3b-stf-clbase:/home/pi# sudo systemctl enable dhclient
Created symlink /etc/systemd/system/multi-user.target.wants/dhclient.service → /etc/systemd/system/dhclient.service.
  • 再起動
root@r3b-stf-clbase:/home/pi# sudo shutdown -r now

(注意!!)vpn_rtuX の仮想IPアドレスに、169.254.xxx.xxx のAPIPAアドレスが割り振られて残ってしまう時には、以下の機能で削除しつつ、再表示するとラズパイデスクトップ上のLAN表示上、修正される

 

APIPAアドレスが残った時には、削除する

APIPAアドレスが残った時には、削除する

以上で、ラズパイをクライアンとして、クラウド上のSoftEtherVPNサーバに接続させることができます。

 

まとめ

 

ラズパイをクラウド上のSoftEtherVPNサーバに対して、クライアントとして運用する場合の設定でした。

一度、セットアップ後はDHCPプールから再度IPアドレスが割り振られるので、セットアップをしてラズパイ端末セットアップ完了したら、そのまま遠隔地に送ってしまっても、遠隔地でインターネットに接続さえしてもらえば、自動的にクラウド経由で遠隔地どおしを接続することもできます。

また、ラズパイにはHDMI端子が付いているので、最近のテレビであれば画面に映すこともできるので、すぐに遠隔保守も可能です。
さらに、ラズパイ上のChromeブラウザを使って、仕組み的にはWeb会議の端末にできるはずです。実際に3カ所でWeb会議をやろうとしたのですが、Win端末は使えても、ラズパイ端末は負荷的に運用は厳しかったです。(でも不安定でも、映して会話はできました)

 

当サイトでは、自前で作成した

 

mikolabo.hateblo.jp

 

 

mikolabo.hateblo.jp

 

を紹介していますが、ラズパイの SoftEtherVPN Client を構成要素にすることもできるよ、というお話でした。

 

AWS上でSoftEther VPN Server を稼働して、VPN通信のHubにすることや、Winパソコン、ラズパイをブリッジにすることも投稿しています。

 

 

mikolabo.hateblo.jp

 

 

mikolabo.hateblo.jp

 

 

mikolabo.hateblo.jp

 

その他のSoftEtherネタです。

 

 

mikolabo.hateblo.jp

 

 

mikolabo.hateblo.jp

 

 

mikolabo.hateblo.jp

 

SoftEtherVPN に証明書認証を追加する

NTT 東日本、IPA、つくば大学が提供しているシン・テレワークシステムの話をあげたが、自前でも無償オープンソースのSoftEtherVPNを使って、テレワークシステムを構築して使っている。その構築TIPSから、標準で使用できない認証機能を追加する方法です。

 

つくば大学で配布しているSoftEtherVPNには、標準パスワード認証以外に以下の③から⑥の認証機能がガードされている。

 

①匿名認証

もっとも簡単なユーザ認証方法で、匿名認証に設定されたユーザはパスワードを必要とせずに、ユーザ名のみで VPNサーバへ接続することができます。

 

②パスワード認証

ユーザ名に対して個別のパスワードを設定することができます。
接続できる期間を設定する場合には、「このアカウントの有効期限を設定する」にチェックを入れます。

 

③固有証明書認証

ユーザ名とパスワードではなく公開鍵証明書を使って認証する方法です。
サーバ側で設定された特定の公開鍵証明書と対応する秘密鍵のペアを持つクライアントのみが接続できます。
SoftEtherVPN管理マネージャーを使って、管理者が公開鍵証明書を生成して、自分で端末に設定を施すことができます。
また、既に証明書と秘密鍵のペアを持っている場合に、それを利用することもできます。

 

④署名済み証明書認証

企業内端末がすでに外部公開鍵証明書で管理されている場合には、その証明書を利用できます。
外部の認証機関の証明書を登録することで、すでに発行されている証明書を使用してクライアントを認証することができます。
端末の証明書再発行を省くことができます。

 

Radius認証

Radiusプロトコル対応の認証サーバーによって管理されたユーザ情報で認証します。
企業の既存のパスワードデータベースを使用したユーザー認証が可能です。

 

⑥NTドメイン認証

ActiveDirectoryコントローラによって管理されたユーザ情報で認証します。
すでに企業ユーザ情報が、ActiveDirectoryによって管理されていればそれを利用できます。

 

すぐに機能を開放できるようには設定があるわけではなく、認証機能を有効化するためには、SofEtherサーバ自体のソースを取得し、コンパイル・ビルドして、モジュールを入れ替えなければならない。

 

2日かかったが、挑戦してみて、取り合えず、固有証明書の機能を試してみた。
SoftEtherVPNサーバ管理ツール(SEツール)から公開鍵証明書を作成し、登録することによって、証明書を提示できない端末からはアクセスできないことを確認した。
他の機能は試していないがガードははずれているようです。
(DesktopVPNのサイトに認証機能の説明と操作方法の記載があった)
https://www.desktopvpn.net/support/handling/server/#fun034

 

サーバ側での作業です。(自己責任でお願いします)

①まず、ソースを入手します。つくば大学HPからダウンロード可能です。

https://ja.softether.org/5-download

SELECT SoftWare:SoftEtherVPN(Freeware)
Select Platform:tar.gz.package
SelectCPU:Any
で、私はこの時点での最新の「Source Code of SoftEther VPN (Ver 4.34, Build 9745, beta)」をダウンロードした。

softetherの再ビルド(私はAWS上のAmazon Linuxで実施した)

[root@ip-10-0-0-220 miko]# pwd
/home/ec2-user
[root@ip-10-0-0-220 miko]# ls
softether-vpnserver-v4.32-9731-beta-2020.01.01-linux-x64-64bit.tar.gz
[root@ip-10-0-0-220 miko]# wget https://jp.softether-download.com/files/softether/v4.34-9745-beta-2020.04.05-tree/Source_Code/softether-src-v4.34-9745-beta.tar.gz
--2020-05-07 10:10:32--  https://jp.softether-download.com/files/softether/v4.34-9745-beta-2020.04.05-tree/Source_Code/softether-src-v4.34-9745-beta.tar.gz
Resolving jp.softether-download.com (jp.softether-download.com)... 130.158.75.49
Connecting to jp.softether-download.com (jp.softether-download.com)|130.158.75.49|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 59108198 (56M) [application/x-gzip]
Saving to: ‘softether-src-v4.34-9745-beta.tar.gz’

100%[=====================================================================================================================>] 59,108,198  1.96MB/s   in 29s

2020-05-07 10:11:02 (1.95 MB/s) - ‘softether-src-v4.34-9745-beta.tar.gz’ saved [59108198/59108198]

[root@ip-10-0-0-220 miko]# ls
softether-src-v4.34-9745-beta.tar.gz  softether-vpnserver-v4.32-9731-beta-2020.01.01-linux-x64-64bit.tar.gz
[root@ip-10-0-0-220 miko]# tar xvfz softether-src-v4.34-9745-beta.tar.gz
v4.34-9745/
v4.34-9745/AUTHORS.TXT
v4.34-9745/BUILD_UNIX.TXT
v4.34-9745/BUILD_WINDOWS.TXT
v4.34-9745/ChangeLog
  :
  :
  :
v4.34-9745/centos/SOURCES/scripts/vpnserver
v4.34-9745/centos/SOURCES/init.d/
v4.34-9745/centos/SOURCES/init.d/vpnserver
v4.34-9745/.github/
v4.34-9745/.github/PULL_REQUEST_TEMPLATE.md

 

②ソースを修正

 

[root@ip-10-0-0-220 miko]# cp -p /home/miko/v4.34-9745/src/Cedar/Server.c /home/miko/v4.34-9745/src/Cedar/Server.c.org
[root@ip-10-0-0-220 miko]# ls /home/miko/v4.34-9745/src/Cedar/Server.*
/home/miko/v4.34-9745/src/Cedar/Server.c  /home/miko/v4.34-9745/src/Cedar/Server.c.org  /home/miko/v4.34-9745/src/Cedar/Server.h
[root@ip-10-0-0-220 miko]# vi /home/miko/v4.34-9745/src/Cedar/Server.c

10902-10920 行をコメントアウト  +  10921 行をプラス

  10900 bool SiIsEnterpriseFunctionsRestrictedOnOpenSource(CEDAR *c)
  10901 {
  10902 /*
  10903         char region[128];
  10904         bool ret = false;
  10905         // Validate arguments
  10906         if (c == NULL)
  10907         {
  10908                 return false;
  10909         }
  10910
  10911
  10912         SiGetCurrentRegion(c, region, sizeof(region));
  10913
  10914         if (StrCmpi(region, "JP") == 0 || StrCmpi(region, "CN") == 0)
  10915         {
  10916                 ret = true;
  10917         }
  10918
  10919         return ret;
  10920 */
  10921         return false;
  10922 }

 

③ビルドに必要なパッケージをインストール

 

[root@ip-10-0-0-220 miko]# yum -y groupinstall "Development Tools"	
[root@ip-10-0-0-220 miko]# yum -y install readline-devel ncurses-devel openssl-devel

	

ソースコードのルートフォルダでビルド

 

[root@ip-10-0-0-220 miko]# cd v4.34-9745
[root@ip-10-0-0-220 v4.34-9745]# ./configure
---------------------------------------------------------------------
SoftEther VPN for Unix

Copyright (c) Daiyuu Nobori.
Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan.
Copyright (c) SoftEther Corporation.
Copyright (c) all contributors on SoftEther VPN project in GitHub.

License: The Apache License, Version 2.0

Read and understand README.TXT, LICENSE.TXT and WARNING.TXT before use.
---------------------------------------------------------------------

Welcome to the corner-cutting configure script !

The Makefile is generated. Run 'make' to build SoftEther VPN.

[root@ip-10-0-0-220 v4.34-9745]# make

cc -DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -m64 -c src/Mayaqua/Cfg.c -o tmp/objs/Mayaqua/Cfg.o
cc -DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -m64 -c src/Mayaqua/Encrypt.c -o tmp/objs/Mayaqua/Encrypt.o
  :
  :
In file included from ./src/Mayaqua/Mayaqua.h:334:0,   ←エラーが出まくる
                 from src/Mayaqua/Memory.c:115:
src/Mayaqua/Memory.c: In function ‘HashListKeyToPointer’:
./src/Mayaqua/MayaType.h:221:64: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 #define POINTER_TO_KEY(p)  ((sizeof(void *) == sizeof(UINT)) ? (UINT)(p) : HashPtrToUINT(p))
  :
  :
[root@ip-10-0-0-220 v4.34-9745]# make install
  :
  :
--------------------------------------------------------------------
Installation completed successfully.

Execute 'vpnserver start' to run the SoftEther VPN Server background service.
Execute 'vpnbridge start' to run the SoftEther VPN Bridge background service.
Execute 'vpnclient start' to run the SoftEther VPN Client background service.
Execute 'vpncmd' to run SoftEther VPN Command-Line Utility to configure VPN Server, VPN Bridge or VPN Client.
--------------------------------------------------------------------
(上記メッセージが出たら、モジュールとしては機能する)

 

 

⑤既存のSoftEtherVPNサーバのプロセスを差し替えて、サービス登録作業や自動起動設定を行う

 

[root@ip-10-0-0-220 local]# ls -la /usr/bin/vpn*

-rwxr-xr-x 1 root root 48 May 7 10:29 /usr/bin/vpnbridge
-rwxr-xr-x 1 root root 48 May 7 10:29 /usr/bin/vpnclient
-rwxr-xr-x 1 root root 42 May 7 10:29 /usr/bin/vpncmd
-rwxr-xr-x 1 root root 48 May 7 10:29 /usr/bin/vpnserver

[root@ip-10-0-0-220 ~]# cd /usr/local/
[root@ip-10-0-0-220 local]# cd vpnserver

[root@ip-10-0-0-220 vpnserver]# ls

Authors.txt code lib ReadMeFirst_Important_Notices_cn.txt ReadMeFirst_License.txt vpncmd
backup.vpn_server.config hamcore.se2 Makefile ReadMeFirst_Important_Notices_en.txt security_log vpnserver
chain_certs lang.config packet_log ReadMeFirst_Important_Notices_ja.txt server_log vpn_server.config

[root@ip-10-0-0-220 vpnserver]# ls -la vpnserver

-rwx------ 1 root root 5317264 Mar 20 11:37 vpnserver

[root@ip-10-0-0-220 vpnserver]# mv vpnserver vpnserver_2020507old  ← 一応バックアップ

[root@ip-10-0-0-220 vpnserver]# cp -p /usr/bin/vpnserver .
[root@ip-10-0-0-220 vpnserver]# ls -la vpnserver

-rwxr-xr-x 1 root root 48 May 7 10:29 vpnserver

[root@ip-10-0-0-220 vpnserver]# chmod 700 vpnserver
[root@ip-10-0-0-220 vpnserver]# ls -la vpnserver

-rwx------ 1 root root 48 May 7 10:29 vpnserver

 

⑥SoftEtherVPNサーバ、クライアントがすでに動いている環境で作業した場合には、コンフィグが生きているので、調整。初期状態であれば、クライアント、ブリッジなどの設定を行う。

 

以上で、標準パスワード認証以外の認証方法も使える状況となった。

標準パスワード認証以外の認証方法を使う場合には、次の手順で行います。

 

①「SE-VPN サーバー管理 (ツール)」を使って、サーバに接続してくるユーザの認証方法を変更します。
具体的には、仮想Hubに所属するユーザの認証方法を、標準パスワード認証などであったのを、固有認証方法などに変更します。


②クライアントから接続する場合、「SoftEther VPN クライアント接続」ツールを起動後、認証方法を変更した接続方法に変更して接続します。
(右クリックから、プロパティを開いて変更できる)

 

 まとめ

 

SoftEtherでパスワード認証以外のデジタル証明書認証などを使いたいときのやり方でした。

SoftEtherVPNのDDNSを復活させる方法

SoftEtherVPNを構築して、運用していく中で、SoftEtherが運用しているダイナミックDNSを使って、自分のサーバにDNS名を割り振っている場合が多いと思います。

 

私もAWS上のSoftEtherVPNサーバに割り振っているのですが、たとえば、実験のためにネットワーク構成を変更したくなったとか、いじくりすぎてサーバの動きがおかしい気がするとか、そのような理由でサーバを構築し直す場合があると思います。

 

そのときに、割り振っていたDDNSを解放せずにサーバを抹消してしまうと、SoftEtherDDNSを運用しているセンター側には情報が残っているために、新たに同じドメインDDNSで登録しようとしても、「もう使われているよ!」と言われて、再登録ができなくなってしまいます。

(サーバ抹消する前に、DDNS名を使っていないダミーDNS名に変更すれば問題はないのだが・・・)

 

そのような場合に、サーバを構築して、最初にDDNSを割り振ったときに、SoftEtherサーバ管理ツール(SEツール)に表示されていたDDNS秘密鍵を情報として、残しておくと、新しく構築したSoftEtherサーバでも同じDNS名を使うことができます。

(サポートフォーラムにも記載されていますが、自己責任で)

 

①SoftEtherVPN管理マネージャー(SEツール)を起動し、サーバに接続した画面で、
 「config編集」→「ファイルに保存」で、ローカルに「vpn_server.config」を保存します

この時点でのconfigなので、今のバックアップになりますが、このconfigを書き換えて、設定を戻します。
修正に使いますので、一応このときのconfigを保存しておいた方がベターかも

 

②「vpn_server.config」でDDNS秘密鍵の値は、次の「ABCDEFGH..」の部分になります。

割り振っていたDDNSを解放せずにサーバ再構築をしてしまうなどして、サーバを抹消してしまうと、操作をした後に、SEツールを起動すると、そのタイミングで、SoftEtherが勝手につけたDDNS名と紐づいた秘密鍵に変更されてしまっています。

 

declare DDnsClient
{
byte Key ABCDEFGH......... (サーバ抹消した後の変わってしまった値)
}


時を戻して、サーバ抹消する前の、初期時にサーバ構築したときには、DDNSを割り振った初期の状態を、SEツールで表示したときには、

 

-------------------------------------------------------------------------
ダイナミック DNS 秘密鍵: XL71h.... (初期設定時、抹消前の値)
-------------------------------------------------------------------------

の値が表示されたうえで、以下のようなメッセージが出力されます。(以下はその内容)

 

この秘密鍵は、現在まで使用していた自分のサーバに割り振っていた DDNS 名と対応付けられています。
現在 VPN Server として使用している PC が破損するなどして、この秘密鍵が失われると、 その時設定されていた DDNS 名は占有されたままの状態となり、他の VPN Serverで使用できなくなります。
同じ名前を継続して使用したい場合は、(初期構築時にSEツールを使って割り当てた直後の)秘密鍵を、他のPCやメモ用紙などに保管しておいてください。 秘密鍵を新しい VPN Server に設定する際は、VPN Server の設定ファイルを編集します。
declare DDnsClient ディレクティブ中にある "byte Key" に続く値を、保管しておいた秘密鍵の文字列で置き換えてください。
なお、同時に複数の VPN Server で同じ秘密鍵を設定すると正常に動作しなくなりますので注意してください。
-------------------------------------------------------------------------------------------

というように、情報が出力されていたはずなので、  ※()を補足しました
「XL71h....」の値を、「vpn_server.config」の「ABCDEFGH..」の部分に置き換えます。(つまり前の値に戻します)

 

③ローカルの「vpn_server.config」を書き換えたら、これを指定して、SEツールの「ファイルからインポートして書き込み」を実行します
(つまり設定をサーバに戻します)

 

④サーバのコンフィグに前のDDNS秘密鍵が設定され、この設定を使って、サーバプロセスが自動的に再起動する

 

⑤SEツールの「ダイナミックDNS設定」の下に表示されているDDNS名が復活している。

 

また、フォーラムには、

VPN Server を一旦アンインストールしてしまったコンピュータにおいても、「vpn_server.config」ファイルは残っていますので、ここから Key の値を復元することができます。

vpn_server.config」ファイルを削除してしまった場合も、「backup.vpn_server.config」ディレクトリにバックアップが作成されています。
これらのファイルは、手動で削除しない限りは消えることはありません。

とあるので、探してみるとまだ手は残っているかもしれません。健闘を祈ります!!

 

まとめ

 SoftEtherで使っていたDDNSが、サーバに情報が残ったまま設定を消してしまった場合の復旧方法でした。

「SoftEtherVPNクライアント リモート管理」ツールで、SoftEtherVPNクライアントをリモート操作する

SoftEtherVPNサーバとSoftEtherVPNブリッジも、SoftEtherVPN管理ツールで設定の管理を行えるが、それと同じように、SoftEtherVPNクライアントも「SoftEtherVPNクライアント リモート管理」ツールで管理することができます。

 

サーバとブリッジを、リモートからSoftEtherVPN管理マネージャー(SEツール)で管理する場合には、IPアドレスを指定するだけで、接続することができるが、SoftEtherVPNクライアントをリモート操作する場合には、事前に許可する操作が必要になる。

 

Windows版SoftEtherVPNクライアントの場合には、

SoftEtherVPNクライアント接続マネージャーで、
「ツール」→「オプション設定」→「リモート管理の設定」の「VPN Clientサービスのリモート管理を許可する」をチェックすると、遠隔から「SoftEtherVPNクライアント リモート管理」ツールでIPアドレスを指定して、接続できるようになる。
そうすると、SoftEtherVPNクライアント接続マネージャーの画面になるので、設定を変更できたりする。

 

Linux版SoftEtherVPNクライアントの場合には、

端末からコマンド入力して、接続許可を有効化する必要がある。私はラズパイに、ARM EABI(32ビット)をダウンロードして運転しているが、ラズパイの場合には、以下の操作が必要になる。(モジュールは/opt/vpnclient/配下にあるとして、自己責任で)

pi@r3b-stf-clbase:~ $ cd /opt/vpnclient/
pi@r3b-stf-clbase:/opt/vpnclient $ ls
Authors.txt                           code
Makefile                              dhclient_start.sh
ReadMeFirst_Important_Notices_cn.txt  hamcore.se2
ReadMeFirst_Important_Notices_en.txt  lang.config
ReadMeFirst_Important_Notices_ja.txt  lib
ReadMeFirst_License.txt               vpn_client.config
backup.vpn_client.config              vpnclient
client_log                            vpncmd
pi@r3b-stf-clbase:/opt/vpnclient $ su
パスワード:
root@r3b-stf-clbase:/opt/vpnclient#  ./vpncmd  localhost  /CLIENT
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.34 Build 9745   (Japanese)
Compiled 2020/04/05 23:39:56 by buildsan at crosswin
Copyright (c) SoftEther VPN Project. All Rights Reserved.

VPN Client "localhost" に接続しました。

VPN Client>RemoteEnable
RemoteEnable コマンド - VPN Client サービスのリモート管理の許可
コマンドは正常に終了しました。

VPN Client>quit

こうすると、「SoftEtherVPNクライアント リモート管理」ツールからIPアドレスを指定して接続し、SoftEtherVPNクライアント接続マネージャーの画面で、色々調整ができて便利です。

クライアントからの認証方法を「標準パスワード認証」を「クライアント証明書認証」に変えてしまう、とか
クライアントの仮想HUBを別拠点の仮想HUBに変えてしまって、結果的にその端末だけ拠点間接続させてしまう、などができてしまいます。

ちなみに、「SoftEtherVPNクライアント リモート管理」ツールはWindows版しかないので、管理はWindowsパソコンから行うことになります。
また、VPN内での固定IPアドレスがわかると設定を変更できてしまうので、その辺は組織内でのポリシーを確認しておく必要があります。

 

当サイトでは、自前で作成した

 

mikolabo.hateblo.jp

 

 

mikolabo.hateblo.jp

を紹介していますが、このシステムではSoftEtherVPNを使っていますので、
この投稿内容の「SoftEtherVPNクライアント リモート管理」ツールで、SoftEtherVPNクライアントをリモート操作することができます

ラズパイに SoftEtherVPN Bridge (ソフトイーサ)をインストール

以前の投稿で、Winパソコンを SoftEther VPN Bridge にしましたが、今回は、ラズパイに、SoftEther VPN Bridge を組み込みます。
ラズパイZERO、ラズパイ3Aなどはちょっと安定稼働には不安がありますが、ラズパイ4、3Bであれば結構、長期運転でも安心できると思います。
自前Webカメラシステムで、1年前に軽い脳梗塞をした母親の生活チェックをやっていますが、半年ぐらい運転しっぱなしでスマホからのぞけました。
それでは設定していきます。ラズパイにラズパイOS(Buster)をインストールして、初期設定して、ネットワークに接続できるようにしたところから行きます。

 

1.bridge-utilsのインストール

 

  • パッケージのインストール
pi@r3b-bsf-bgbase:~ $ sudo apt-get install -y bridge-utils

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
bridge-utils
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
32.8 kB のアーカイブを取得する必要があります。
この操作後に追加で 97.3 kB のディスク容量が消費されます。
取得:1 http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian buster/main armhf bridge-utils armhf 1.6-2 [32.8 kB]
32.8 kB を 6秒 で取得しました (5,713 B/s)
以前に未選択のパッケージ bridge-utils を選択しています。
(データベースを読み込んでいます ... 現在 112472 個のファイルとディレクトリがインストールされています。)
.../bridge-utils_1.6-2_armhf.deb を展開する準備をしています ...
bridge-utils (1.6-2) を展開しています...
bridge-utils (1.6-2) を設定しています ...
man-db (2.8.5-2) のトリガを処理しています ...
man-db (2.7.6.1-2) のトリガを処理しています ...
  • 有線LANとブリッジ接続する
※ 青色を追記

pi@r3b-bsf-bgbase:~ $ sudo vi /etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto br0 eth0 wlan0

iface eth0 inet manual

iface wlan0 inet manual

iface br0 inet manual
bridge_ports eth0
bridge_stp off
bridge_maxwait 30

pi@r3b-bsf-bgbase:~ $ vi /etc/dhcpcd.conf

# fallback to static profile on eth0
#interface eth0
#fallback static_eth0

denyinterfaces eth0

interface eth0

interface br0

interface wlan0

 

2.ラズパイに SoftEther VPN Bridge をインストール

 

  • つくば大学のホームページから SoftEther VPN Bridge をダウンロードしてくる

つくば大学のダウンロードサイト

つくば大学のダウンロードサイト
  • TeraTermProからユーザ「pi」パスワードでリモートログインし、ラズパイにダウンロード。
root@r3b-bsf-bgbase:/home/pi# wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.34-9745-beta/softether-vpnbridge-v4.34-9745-beta-2020.04.05-linux-arm_eabi-32bit.tar.gz

--2020-05-20 13:09:30-- https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.34-9745-beta/softether-vpnbridge-v4.34-9745-beta-2020.04.05-linux-arm_eabi-32bit.tar.gz
github.com (github.com) をDNSに問いあわせています... 52.192.72.89
github.com (github.com)|52.192.72.89|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://github-production-release-asset-2e65be.s3.amazonaws.com/107487278/44bc0e00-779c-11ea-9c64-61e202975440?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200520%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200520T040931Z&X-Amz-Expires=300&X-Amz-Signature=f4ad502e935ac7d9de87991108bcec69cd367380ff6e742a9443e0b356184e93&X-Amz-SignedHeaders=host&actor_id=0&repo_id=107487278&response-content-disposition=attachment%3B%20filename%3Dsoftether-vpnbridge-v4.34-9745-beta-2020.04.05-linux-arm_eabi-32bit.tar.gz&response-content-type=application%2Foctet-stream [続く]
--2020-05-20 13:09:31-- https://github-production-release-asset-2e65be.s3.amazonaws.com/107487278/44bc0e00-779c-11ea-9c64-61e202975440?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200520%2Fus-east-1%2Fs3%2Faws4_request&X-Amz
github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com) をDNSに問いあわせています... 52.216.168.179
github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.168.179|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 7133993 (6.8M) [application/octet-stream]
`softether-vpnbridge-v4.34-9745-beta-2020.04.05-linux-arm_eabi-32bit.tar.gz' に保存中

softether-vpnbridge-v4.34-9745-beta-2020 100%[==================================================================================>] 6.80M 1.10MB/s 時間 13s

2020-05-20 13:09:45 (548 KB/s) - `softether-vpnbridge-v4.34-9745-beta-2020.04.05-linux-arm_eabi-32bit.tar.gz' へ保存完了 [7133993/7133993]
root@r3b-bsf-bgbase:/home/pi# tar xvfz softether-vpnbridge-v4.34-9745-beta-2020.04.05-linux-arm_eabi-32bit.tar.gz

vpnbridge/
vpnbridge/Makefile
vpnbridge/.install.sh
vpnbridge/ReadMeFirst_License.txt
vpnbridge/Authors.txt
vpnbridge/ReadMeFirst_Important_Notices_ja.txt
vpnbridge/ReadMeFirst_Important_Notices_en.txt
vpnbridge/ReadMeFirst_Important_Notices_cn.txt
vpnbridge/code/
vpnbridge/code/vpnbridge.a
vpnbridge/code/vpncmd.a
vpnbridge/lib/
vpnbridge/lib/libcharset.a
vpnbridge/lib/libcrypto.a
vpnbridge/lib/libedit.a
vpnbridge/lib/libiconv.a
vpnbridge/lib/libncurses.a
vpnbridge/lib/libssl.a
vpnbridge/lib/libz.a
vpnbridge/lib/License.txt
vpnbridge/hamcore.se2

root@r3b-bsf-bgbase:/home/pi# cd vpnbridge/
  • SoftEther VPN Bridge をmakeする(ライセンスへの同意を求められるので「1」を3回入力)
root@r3b-bsf-bgbase:/home/pi/vpnbridge# make
--------------------------------------------------------------------

SoftEther VPN Bridge (Ver 4.34, Build 9745, ARM EABI) 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       👈1を入力

Copyright (c) all contributors on SoftEther VPN project in GitHub.
Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.

DISCLAIMER
==========

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN, UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY, MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING, MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO, JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.

USE ONLY IN JAPAN. DO NOT USE THIS SOFTWARE IN ANOTHER COUNTRY UNLESS YOU HAVE A CONFIRMATION THAT THIS SOFTWARE DOES NOT VIOLATE ANY CRIMINAL LAWS OR CIVIL RIGHTS IN THAT PARTICULAR COUNTRY. USING THIS SOFTWARE IN OTHER COUNTRIES IS COMPLETELY AT YOUR OWN RISK. THE SOFTETHER VPN PROJECT HAS DEVELOPED AND DISTRIBUTED THIS SOFTWARE TO COMPLY ONLY WITH THE JAPANESE LAWS AND EXISTING CIVIL RIGHTS INCLUDING PATENTS WHICH ARE SUBJECTS APPLY IN JAPAN. OTHER COUNTRIES' LAWS OR CIVIL RIGHTS ARE NONE OF OUR CONCERNS NOR RESPONSIBILITIES. WE HAVE NEVER INVESTIGATED ANY CRIMINAL REGULATIONS, CIVIL LAWS OR INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENTS IN ANY OF OTHER 200+ COUNTRIES AND TERRITORIES. BY NATURE, THERE ARE 200+ REGIONS IN THE WORLD, WITH DIFFERENT LAWS. IT IS IMPOSSIBLE TO VERIFY EVERY COUNTRIES' LAWS, REGULATIONS AND CIVIL RIGHTS TO MAKE THE SOFTWARE COMPLY WITH ALL COUNTRIES' LAWS BY THE PROJECT. EVEN IF YOU WILL BE SUED BY A PRIVATE ENTITY OR BE DAMAGED BY A PUBLIC SERVANT IN YOUR COUNTRY, THE DEVELOPERS OF THIS SOFTWARE WILL NEVER BE LIABLE TO RECOVER OR COMPENSATE SUCH DAMAGES, CRIMINAL OR CIVIL
RESPONSIBILITIES. NOTE THAT THIS LINE IS NOT LICENSE RESTRICTION BUT JUST A STATEMENT FOR WARNING AND DISCLAIMER.

READ AND UNDERSTAND THE 'src/WARNING.TXT' FILE BEFORE USING THIS SOFTWARE. SOME SOFTWARE PROGRAMS FROM THIRD PARTIES ARE INCLUDED ON THIS SOFTWARE WITH LICENSE CONDITIONS WHICH ARE DESCRIBED ON THE 'src/THIRD_PARTY.TXT' FILE.

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     👈1を入力

Did you agree the License Agreement ?

1. Agree
2. Do Not Agree

Please choose one of above number:
1     👈1を入力

make[1]: ディレクトリ '/home/pi/vpnbridge' に入ります
Preparing SoftEther VPN Bridge...
ranlib lib/libcharset.a
ranlib lib/libcrypto.a
ranlib lib/libedit.a
ranlib lib/libiconv.a
ranlib lib/libncurses.a
ranlib lib/libssl.a
ranlib lib/libz.a
ranlib code/vpnbridge.a
gcc code/vpnbridge.a -fPIE -O2 -fsigned-char -pthread -lm -lrt -Wl,--no-warn-mismatch -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a -ldl -o vpnbridge
ranlib code/vpncmd.a
gcc code/vpncmd.a -fPIE -O2 -fsigned-char -pthread -lm -lrt -Wl,--no-warn-mismatch -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a -ldl -o vpncmd
./vpncmd /tool /cmd:Check
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.34 Build 9745 (Japanese)
Compiled 2020/04/05 23:39:56 by buildsan at crosswin
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 Bridge is completed !

*** How to switch the display language of the SoftEther VPN Bridge Service ***
SoftEther VPN Bridge supports the following languages:
- Japanese
- English
- Simplified Chinese

You can choose your prefered language of SoftEther VPN Bridge at any time.
To switch the current language, open and edit the 'lang.config' file.

Note: the administrative password is not set on the VPN Server. Please set your own administrative password as soon as possible by vpncmd or the GUI manager.

*** How to start the SoftEther VPN Bridge Service ***

Please execute './vpnbridge start' to run the SoftEther VPN Bridge Background Service.
And please execute './vpncmd' to run the SoftEther VPN Command-Line Utility to configure SoftEther VPN Bridge.

Of course, you can use the VPN Server Manager GUI Application for Windows / Mac OS X on the other Windows / Mac OS X computers in order to configure the SoftEther VPN Bridge remotely.

*** For Windows users ***
You can download the SoftEther VPN Server Manager for Windows
from the http://www.softether-download.com/ web site.
This manager application helps you to completely and easily manage the VPN server services running in remote hosts.

*** For Mac OS X users ***
In April 2016 we released the SoftEther VPN Server Manager for Mac OS X.
You can download it from the http://www.softether-download.com/ web site.
VPN Server Manager for Mac OS X works perfectly as same as the traditional Windows versions. It helps you to completely and easily manage the VPN server services running in remote hosts.

 

*** PacketiX VPN Server HTML5 Web Administration Console (NEW) ***
This VPN Server / Bridge has the built-in HTML5 Web Administration Console.

After you start the server daemon, you can open the HTML5 Web Administration Console is available at

https://127.0.0.1:5555/
or
https://ip_address_of_the_vpn_server:5555/

This HTML5 page is obviously under construction, and your HTML5 development contribution is very appreciated.

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

make[1]: ディレクトリ '/home/pi/vpnbridge' から出ます

root@r3b-bsf-bgbase:/home/pi/vpnbridge# cd ..
root@r3b-bsf-bgbase:/home/pi# pwd
/home/pi

 

root@raspberrypi:/home/pi# sudo mv vpnbridge /opt

vpnBridge権限付加

root@r3b-bsf-bgbase:/home/pi# cd /opt/vpnbridge
root@r3b-bsf-bgbase:/opt/vpnbridge# chmod 600 *
root@r3b-bsf-bgbase:/opt/vpnbridge# chmod 700 vpncmd
root@r3b-bsf-bgbase:/opt/vpnbridge# chmod 700 vpnbridge

自動起動の設定

root@raspberrypi:/opt/vpnbridge# sudo vi /etc/systemd/system/vpnbridge.service

[Unit]
Description=SoftEther VPN Bridge
After=network.target

[Service]
Type=forking
User=root
ExecStart=/opt/vpnbridge/vpnbridge start
ExecStop=/opt/vpnbridge/vpnbridge stop

[Install]
WantedBy=multi-user.target

root@r3b-bsf-bgbase:/opt/vpnbridge# sudo reboot

ルートユーザに変更

pi@r3b-bsf-bgbase:~ $ su
パスワード:

root@r3b-bsf-bgbase:/home/pi# /opt/vpnbridge/vpnbridge start

The SoftEther VPN Bridge service has been started.

Let's get started by accessing to the following URL from your PC:

https://172.28.94.62:5555/
or
https://172.28.94.62/

Note: IP address may vary. Specify your server's IP address.
A TLS certificate warning will appear because the server uses self signed certificate by default. That is natural. Continue with ignoring the TLS warning.

 

 3.SoftEtherVPNサーバ管理マネージャーから、BRIDGE設定を実施

「SoftEtherVPNサーバ管理マネージャー」を初期設定

「新しい接続設定」をクリック

「新しい接続設定」をクリック

接続設定名を決める

接続設定名を決める

接続設定名を決める(Tun1-Bridgeなど)

※ 一度、設定に失敗して、同じ名前の接続設定名で接続しようとしても
  拒否されるので、注意。その場合には名前を変える。

接続しているラズパイのIPアドレスを設定ラズパイには、5555で接続する
(443で入れない時がある)
(vpnbridge起動時のコマンド出力メッセージにポート番号が出力される)
管理パスワードは、この後設定するので、入力しなくてOK

 

「Bridge」が作成されたので、「接続」をクリック

「Bridge」が作成されたので、「接続」をクリック

入力せずに「OK」をクリック

入力せずに「OK」をクリック

管理者パスワードを決め、確認入力もして「OK」をクリック

管理者パスワードを決め、確認入力もして「OK」をクリック

 

f:id:mikolabo:20201203190754p:plain

 

「拠点間接続VPNサーバーまたはブリッジ」の設定

「拠点間接続VPNサーバーまたはブリッジ」を選択  「次へ」をクリック

「拠点間接続VPNサーバーまたはブリッジ」を選択 「次へ」をクリック

 

「はい」をクリック

「はい」をクリック

 

新しい接続設定のプロパティ、Bridgeカスケード接続の設定


「接続先のVPN Serverへの接続設定を行う」をクリック

「接続先のVPN Serverへの接続設定を行う」をクリック

 

「新しい接続設定のプロパティ」が表示されますので、  設定していきます。

「新しい接続設定のプロパティ」が表示されますので、 設定していきます。

 

新しい接続設定のプロパティ

新しい接続設定のプロパティ

 

サーバに接続するときの接続設定の名前を決める(T1-bg)

注意‼ 仮想HUB、ユーザ誤ると設定やり直しなので注意!!

ホスト名にサーバにつけたメイン名を入力
SoftetherDDNSサービスのURLを設定)

ポート番号は SoftEtherVPNServer で許しているポート番号
(443,992,5555,8888 などがサーバとして用意されている)

仮想HUB名に、Bridgeが接続するサーバで動くSoftetherVPNサーバの仮想HUB(場所毎に決めてある仮想HUB)を選択する
(正しくドメインを指定すれば、リストに登録してある仮想HUBが自動的に表示される)

ユーザ名に、選んだ仮想HUB用に作成してあるユーザ名を選択
そのパスワードを入力

 

BRIDGE上のカスケード接続

BRIDGE上のカスケード接続

「ローカルブリッジの設定」は閉じて、次画面から行うことにして「閉じる」をクリックして、「ローカルブリッジ設定」をクリックする(次工程)

 

ローカルブリッジの設定

「ローカルブリッジ設定」をクリック

「ローカルブリッジ設定」をクリック

SoftEtherVPN Bridge の仮想HUB「BRIDGE」が選択されている状態で、
「新しいTapデバイスとのブリッジ接続」を選択

ローカルブリッジを追加

ローカルブリッジを追加

新しtapデバイス名に「tap-br0」をクリック

「ローカルブリッジを追加」をクリック

 

 

tapデバイス「tap-br0」がブリッジ接続された

tapデバイス「tap-br0」がブリッジ接続された

ローカルブリッジ設定

ローカルブリッジ設定

tapデバイス「tap-br0」がブリッジ接続された

  

仮想HUB「BRIDGE」を選択し、

「物理的な既存のLANカードとのブリッジ接続」を選択

LANカード「eth0」を選択

「ローカルブリッジを追加」をクリック

 

※ 上のメッセージが表示されても、「OK」をクリック

※ 上のメッセージが表示されても、「OK」をクリック

 

※ 上のメッセージが表示されても、「OK」をクリック

※ 上のメッセージが表示されても、「OK」をクリック

仮想HUBに対して、追加で、 eth0 をローカルブリッジする

上のようなイメージになる

ここまで来たら、SoftEtherVPNサーバ管理マネージャーは終了して良い。

 

つくば大学のホームページにあるSoftEther VPNVPN網のイメージ図

これまでのBridge設定によって、上図イメージのようなVPN網ができます。
拠点間は仮想Hubのカスケード接続によって、接続され、それぞれの拠点内は、ブリッジ配下に端末を収容することができます。

 

  • tapデバイス”tap_tap-br0”、仮想ブリッジ”br0”を確認する
root@pi0-sf-ap-os:/home/pi# ip tuntap
tap_tap-br0: tap
root@pi0-sf-ap-os:/home/pi# brctl show br0
bridge name bridge id STP enabled interfaces
br0 8000.3495db2c47c7 no eth0

  • Systemd を有効にする
pi@r3b-bsf-bgbase:~ $ sudo chmod 0755 /etc/systemd/system/vpnbridge.service
pi@r3b-bsf-bgbase:~ $ sudo systemctl daemon-reload
pi@r3b-bsf-bgbase:~ $ sudo systemctl stop vpnbridge.service
pi@r3b-bsf-bgbase:~ $ sudo systemctl start vpnbridge.service
pi@r3b-bsf-bgbase:~ $ sudo systemctl enable vpnbridge.service
Created symlink /etc/systemd/system/multi-user.target.wants/vpnbridge.service → /etc/systemd/system/vpnbridge.service.
  • Bridgeの確認 br0=>TAPデバイス 接続状態

※ ブリッジ接続を設定したLANが、172.28.94.xxx/24 だったので、IPアドレスはその範囲で振られた

pi@r3b-bsf-bgbase:~ $ ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether b8:27:eb:bb:73:67 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:ee:26:32 brd ff:ff:ff:ff:ff:ff
    inet 172.28.94.76/24 brd 172.28.94.255 scope global dynamic noprefixroute wlan0
       valid_lft 86199sec preferred_lft 75399sec
    inet6 2408:212:5c3:2200:ed45:22f4:cfca:317/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 14343sec preferred_lft 12543sec
    inet6 fe80::482b:7676:6daf:d4b5/64 scope link
       valid_lft forever preferred_lft forever
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether b8:27:eb:bb:73:67 brd ff:ff:ff:ff:ff:ff
    inet 172.28.94.62/24 brd 172.28.94.255 scope global dynamic noprefixroute br0
       valid_lft 86194sec preferred_lft 75394sec
    inet6 2408:212:5c3:2200:6c78:b6e6:af3d:d5a1/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 14343sec preferred_lft 12543sec
    inet6 fe80::ba27:ebff:febb:7367/64 scope link
       valid_lft forever preferred_lft forever
5: tap_tap-br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether 5e:82:0f:65:6c:06 brd ff:ff:ff:ff:ff:ff
    inet6 2408:212:5c3:2200:5c82:fff:fe65:6c06/64 scope global dynamic mngtmpaddr
       valid_lft 14343sec preferred_lft 12543sec
    inet6 fe80::5c82:fff:fe65:6c06/64 scope link
       valid_lft forever preferred_lft forever

  • ラズパイを再起動する

pi@r3b-bsf-bgbase:~ $ sudo shutdown -r now

  • クライアント端末のIPアドレスを SoftEther VPN Server が払い出すセグメントのIPに変更する
    端末がそのセグメントになることで、自動的にサーバに接続できるようになる。
  • クライアントから同一LAN内のSoftEther VPN Bridgeに接続し、そこからクラウド上にあるカスケード接続した SoftEther VPN Server に接続する。
  • ここまでの手順、有線LANでのSoftEther VPN Bridge接続の手順で、有線LANに接続している端末は、VPNに含めることができるが、無線LANに接続した端末はシステムの起動時に自動的にVPNに含めることはできない。
  • 起動時に、自動的に無線LAN端末をVPNに含めるためにはWifi環境にひと工夫が必要です。

 

 まとめ

 

テレワークWebカメラ見回りシステムでは

Amazon Web Services上の Amazon Linux 2 で、SoftEther VPN Server を稼働して、拠点間のVPN通信を中継します。

今回は、ラズパイに をSoftEtherVPNのブリッジ機器としてセットアップして、遠隔のSoftEtherVPNサーバに接続して、配下のクライアント端末に対して、VPNサーバ接続を提供します。

 

ラズパイをサーバとして構築する情報を良く見ますが、AWSクラウド上の中継地点にサーバを置くことで、クライアントを置く拠点側にクライアントからの接続を待ち受けするためのポートを空ける処理が必要なくなり、拠点側のルータの設定をいじる、つまり、
「穴をあけてセキュリティリスクを招く」ということがなくなります。

 

Windowsパソコンを SoftEtherVPN Bridge(ソフトイーサ)にする

SoftEtherVPN を使ったテレワークシステムの構成要素に、Windowsパソコンを使った SoftEtherVPN Bridge を使えます。


もちろんSoftEtherVPN Bridge をラズパイで構成することもできますが、今回はWindowsパソコンで構成してみます。

 

遠隔拠点に Bridgeを置くということはサーバがあるところと同一LAN上になったのと同じ効果が得られるということです。


この辺の技術的な内容は、ふつうの家庭向けLANでのネットワーク知識を超えているので、端折りますね。

 

ここでのストーリーは、遠隔地に SoftEtherVPNサーバが稼働していて、そのサーバを指定して、SoftEtherVPN Brifgeを接続する手順です。


この接続が成功すると、遠隔地のサーバとBridgeがある場所は、同一セグメントになります。


そのため、端末にサーバと同一セグメントのIPアドレスを振れば、遠隔地であってもその端末はサーバに接続できるようになります。

それではWindowsパソコンをSoftEtherVPN Bridgeに仕立てます。

 

  • これからの説明は、

     

    mikolabo.hateblo.jp

     

    を構築したときに構成要素となる SoftEtherVPN Bridge の説明をしているので、接続する相手がクラウド上のAmazonWebServices上で稼働させているSoftEtherVPNServerになっています。

 

SoftEtherVPN BridgeのWindowsパソコンへのインストール

つくば大学のホームページからWindows用のインストール媒体をダウンロードします。
https://ja.softether.org/5-download

 

 

 

つくば大学のホームページから、インストール媒体をダウンロードして、ダブルクリック

つくば大学のホームページから、インストール媒体をダウンロードして、ダブルクリック


「次へ」をクリック

「次へ」をクリック

 

「SoftEther VPN Bridge」を選択して、「次へ」をクリック

SoftEther VPN Bridge」を選択して、「次へ」をクリック

 

「使用承諾契約書に同意します」を選択して、「次へ」をクリック

「使用承諾契約書に同意します」を選択して、「次へ」をクリック

 

重要事項説明書の内容を確認

重要事項説明書の内容を確認

 重要事項説明書の内容を確認

内容を確認したら、「次へ」をクリック

内容を確認したら、「次へ」をクリック

 

インストール先ディレクトリはそのままで、「次へ」をクリック

インストール先ディレクトリはそのままで、「次へ」をクリック


「次へ」をクリック

「次へ」をクリック

 「次へ」をクリック

セットアップが進行する・・・

セットアップが進行する・・・

 

セットアップが完了したので、「完了」をクリック

セットアップが完了したので、「完了」をクリック

 

 

 

 

 SoftEtherVPNサーバ管理マネージャーを起動する

 

  • 下記イメージは、SoftEtherVPNBridgeのインストールを完了した後に起動される、SoftEtherVPNサーバ管理マネージャーのイメージ
  • すでに、AWS上のSoftEtherVPNサーバに接続する設定が登録してあるところのイメージ

 

SoftEtherVPNサーバ管理マネージャー

SoftEtherVPNサーバ管理マネージャー

 

  • すでにAmazonWebServices上のサーバに接続する「AWS motion1」が登録されているが、ここにこのパソコンをSoftEtherVPN Bridgeとして、AWS上のSoftEtherVPNサーバにカスケード接続する
  • Bridge設定を新たに作成する
  • 「新しい接続設定」をクリック

 

新しい接続設定の作成

新しい接続設定の作成
  • [接続設定名]:接続設定名を決める(HOME Bridgeなど)
  • 一度、設定に失敗して、同じ名前の接続設定名で接続しようとしても拒否されるので、注意。その場合には名前を変える。
  • [ホスト名]:SoftEtherBridge にしようとしているパソコンのIPアドレスを設定
  • [ポート番号]:ラズパイには、5555で接続する(サーバプロセスの問題で、443で入れない時がある)
  • 管理パスワードは、この後設定するので、入力しなくてOK

「Bridge」が作成されたので、「接続」をクリック

「Bridge」が作成されたので、「接続」をクリック


入力せずに「OK」をクリック

入力せずに「OK」をクリック




 

 

管理者パスワードを決める。 確認入力もして 「OK」をクリック。

管理者パスワードを決める。 確認入力もして 「OK」をクリック。



「OK」をクリック

「OK」をクリック



 

「拠点間接続VPNサーバーまたはブリッジ」を選択

「拠点間接続VPNサーバーまたはブリッジ」を選択

 

「はい」をクリック

「はい」をクリック



 

「接続先のVPN Serverへの接続設定を行う」をクリック

「接続先のVPN Serverへの接続設定を行う」をクリック


新しい接続設定のプロパティ

新しい接続設定のプロパティ

 

次のように設定する。

次のように設定する。

次のように設定する。

 

  • [接続設定名]:サーバに接続するときの接続設定の名前を決める(My BRIDGE)
    注意!! 
    仮想HUB ユーザ を誤ると、設定をやり直さなければならないので注意!!
    ⇒ カスケード接続の編集で直してみる
    ⇒ ブリッジの場所を修正するならば、カスケード接続の編集で、仮想HUB、ユーザ、パスワードなどを直す
  • [ホスト名]:Amazon Web Server上で動いているサーバにつけたドメイン名を入力(SoftetherDDNSサービスのURLを設定)
  • [ポート番号]:AWS SoftEtherServer で接続を許しているポート番号
    (セキュリティグループでインバウンドの接続を許可したもの:443,992,5555,8888 などがSoftEtherVPNServer用として用意されている)
  • [仮想HUB名]:Bridgeが接続する、サーバで動くSoftetherサーバの仮想HUBを選択する
    (正しくAWSドメインを指定すれば、自動的にリストが表示される)
  • [ユーザ名]:Softetherサーバのユーザ名を選択
  • [パスワード]:上記ユーザのパスワードを入力
  •  カスケード接続の注意点が表示されている
  • Amazon Web Services上のSoftetherサーバと接続されている
  • ブリッジの場所を修正するならば、カスケード接続の編集で、仮想HUB、ユーザ、パスワードなどを直す

「ローカルブリッジの設定」は次画面から行うことにしてここでは「閉じる」をクリック

「ローカルブリッジの設定」は次画面から行うことにしてここでは「閉じる」をクリック



 

  • 「ローカルブリッジの設定」は次画面から行うことにしてここでは「閉じる」をクリック。
  • 次の画面から「ローカルブリッジ設定」をクリック

ローカルブリッジ設定

ローカルブリッジ設定



 

  • 仮想HUB「BRIDGE」を選択し、[LANカード]にこのパソコンのEthernetLANカードが選択されているのを確認し、「ローカルブリッジを追加」をクリック

 

メッセージが表示されても、「OK」をクリック

メッセージが表示されても、「OK」をクリック


メッセージが表示されても、「OK」をクリック

メッセージが表示されても、「OK」をクリック


 

仮想HUBに対して、 eth0 がローカルブリッジされる。上図のようなイメージになる。

仮想HUBに対して、 eth0 がローカルブリッジされる。上図のようなイメージになる。


SoftEtherVPNサーバ管理マネージャーは終了して良い。
ここまでで、Windowsパソコンは、SoftEtherVPNBridgeとして、遠隔地にあるSoftEtherVPNServerに接続できています。
この状態で、Windowsパソコンがある場所の端末に、サーバのIPアドレスと同一セグメントのIPアドレスを振れば、ネットワークを経由して、そのまま何もしなくてもサーバに接続できます。

 

下図はつくば大学のホームページにあるネットワークイメージを示した図です。
これまでの操作によって、この図にあるようなネットワークが出来上がりました。


まとめ 

 

WindowsパソコンをSoftEtherVPNのブリッジ機器としてセットアップして、遠隔のSoftEtherVPNサーバに接続して、配下のクライアント端末に対して、VPNサーバ接続を提供します。

ちなみにラズパイを SoftEtherVPN Bridge にセットアップすることもできますが、今回はWindowsで構成しました。

 

当サイトでは、自前で作成した

 

mikolabo.hateblo.jp

 

 

 

mikolabo.hateblo.jp

 

を紹介していますが、ラズパイの SoftEtherVPN Bridgeを構成要素にすることもできる、という話でした。

 

また、AWSクラウド上にSoftEtherVPNServerを稼働して、拠点間のVPN通信を中継し、拠点のVPN通信を受け付けるサーバ環境の構築について、セットアップ手順も投稿しました。

 

 

mikolabo.hateblo.jp

 


 

 

ラズパイをSoftEtherVPNブリッジ、クライアントとする方法は明日にでも投稿します。

Amazon Web Services 上 の AmazonLinux2 に、SoftEther VPN Server(ソフトイーサ)をセットアップする

 

mikolabo.hateblo.jp

 

ではAmazon Web Services上の Amazon Linux 2 で、SoftEther VPN Server を稼働して、拠点間のVPN通信を中継しています。

 

今回は、Amazon Web Services上に、Amazon Linux 2 を初期設定後、SoftEther VPN Server を稼働する手順を投稿します。

 

ちなみに、Amazon Web Services を使うメリットは、EC2インスタンス1年間無料枠を使えば、費用を節約できることと、AWSVPCAWSクラウドの仮想ネットワーク)が持つネットワークの機能、具体的にはセキュリティグループや公開鍵暗号を使った認証機能などを使うことで、セキュリティ面でも何かと「わざ(技)」が効くからです。

 

それでは、AmazonLinuxの初期設定から行きます!

 

Amazon Linux 2 の初期設定

 

/etc/sysconfig/clockの編集して、timezoneファイル差し替えて、再起動します

  1. /etc/sysconfig/clockの編集

    /etc/sysconfig/clockのバックアップを作成してから、/etc/sysconfig/clockを編集して、ZONE=UTCからZONE="Asia/Tokyo"に変更します

    [ec2-user@ip-172-28-0-214 ~]$ sudo cp /etc/sysconfig/clock /etc/sysconfig/clock.org
    [ec2-user@ip-172-28-0-214 ~]$ sudo vi /etc/sysconfig/clock#ZONE="UTC"
    ZONE="Asia/Tokyo"
    UTC=true

  2. timezoneの変更

    /etc/localtimeを日本時間のファイル(/usr/share/zoneinfo/Asia/Tokyo)に差し替えます

    [ec2-user@ip-172-28-0-214 ~]$ sudo cp /etc/localtime /etc/localtime.org
    [ec2-user@ip-172-28-0-214 ~]$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

  3. 再起動を実施

    [ec2-user@ip-172-28-0-214 ~]$ sudo reboot
    [ec2-user@ip-172-28-0-214 ~]$ date
    Tue Sep 15 10:10:02 JST 2020

 

  • root パスワード設定

root パスワードを設定(変更)します。(パスワードを決めておきます)

[root@ip-10-0-0-220 ~]# sudo passwd root
Changing password for user root.

ユーザー root のパスワードを変更。

New password:        →パスワード入力
Retype new password:    →パスワード再入力
passwd: all authentication tokens updated successfully.

su してみます。(rootになっている場合には、rootを抜けて、ec-userで実行)

[ec2-user@ip-10-0-0-220 ~]$ su
Password:

設定した root のパスワードを入力して root ユーザになれる事を確認してください。

  • SSHのポート番号を変更(セキュリティ対策)

[root@ip-10-0-0-220 ec2-user]# sudo vi /etc/ssh/sshd_config

以下内容(抜粋)で編集します。

#
#Port 22
Port XXX
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

※ 標準では22番ポートを使うが、セキュリティ対策のために、任意のポート番号に変更する。

編集したら、設定に問題ないか確認します。問題がない場合何も表示されません。

[root@ip-10-0-0-220 ec2-user]# sudo /usr/sbin/sshd -t

設定に問題がなければsshdを再起動します。

Amazon Linux 2 の場合)

[root@ip-10-0-0-220 ec2-user]# sudo systemctl restart sshd

新たなポート番号で接続可能かどうか確認してください。

※ 現在のセッションはそのままで、別セッションでの接続確認をお勧めします。繋がらなくなった場合に戻せなくなる可能性があります。

注意! EC2 の Security Group 設定で、ポートでの接続許可:
ポート番号 22 の許可を、任意のポート番号に変更して下さい。
TeraTermProから接続できなくなります。

  • メンテナンスユーザ追加 (miko というユーザを作成し、鍵はec2-user用のものを再利用 ※作っても良いが)

/etc/ssh/sshd_config を編集します。

初期ユーザの ec2-user を使いません。
公開鍵で、安全性は高いのですが、「システムのデフォルトユーザは使うな」に従います。

ec2-user は削除する代わりに、SSHができなくなるよう制限をかけます。

[root@ip-10-0-0-220 ec2-user]# sudo useradd miko
[root@ip-10-0-0-220 ec2-user]# ls /home // 作成したユーザーは /home ディレクトリで確認できます
ec2-user miko

  • miko の設定変更

ec2-user にはパスワードが設定されていないため、設定を行います。
パスワードを二回問い合わせてくるので、適当なパスワードを設定して下さい。

[root@ip-10-0-0-220 ec2-user]# sudo passwd miko    // 新規ユーザーのパスワード設定
Changing password for user miko.
New password:        →パスワード入力
Retype new password:    →パスワード再入力
passwd: all authentication tokens updated successfully.

  • 新規ユーザーで管理コマンドを実行できるようにする

追加したユーザーは、初期設定のままでは sudo コマンドを実行できません。
sudoコマンドを実行するには、ユーザーを wheel と呼ばれるグループに登録する必要があります。
wheel はスーパーユーザー(root)権限をもつグループで、 ec2-user もこのグループに属しています。

[root@ip-10-0-0-220 ec2-user]# sudo usermod -aG wheel miko

wheelに所属しているユーザー確認

[root@ip-10-0-0-220 ec2-user]# less /etc/group | grep wheel
wheel:x:10:ec2-user,miko

新規ユーザーでインスタンスへ接続するためには、EC2に登録した公開鍵を、ユーザーのホームディレクトリ配下に登録する必要があります。

$ su
[root@ip-10-0-0-220 ec2-user]# mkdir /home/miko/.ssh
[root@ip-10-0-0-220 ec2-user]# cp -a /home/ec2-user/.ssh/authorized_keys /home/miko/.ssh/

.ssh ディレクトリとファイルのパーミッションを制限します。
コピーした .ssh ディレクトリとその配下にあるキーの所有者をec2-userから新規ユーザーへ変更します。

[root@ip-10-0-0-220 ec2-user]# chmod 700 /home/miko/.ssh
[root@ip-10-0-0-220 ec2-user]# chmod 600 /home/miko/.ssh/authorized_keys
[root@ip-10-0-0-220 ec2-user]# chown -R miko:miko /home/miko/.ssh

mikoユーザで、sudo 許可 ※ユーザビリティ優先

[root@ip-10-0-0-220 ec2-user]# sudo visudo
miko ALL=(ALL) NOPASSWD:ALL

mikoユーザで、sudoを実行し、パスワード入力を求められるので、先に設定したパスワードを入力して root ユーザになれる事を確認してください。

※ 変更後もし反映していないようでしたら以下の方法でリロードするとよいかと思います。

$ sudo systemctl restart sshd

// ec2-user削除 ==> 削除までは行わない
// userdel -r ec2-user

新規ユーザーでSSHできること、rootになれることを確認する

$ sudo su -

  • ec2-userのSSHを禁止する(セキュリティ対策)

SSHの設定ファイル /etc/ssh/sshd_config に DenyUsers ec2-user を追記

[root@ip-10-0-0-220 miko]# sudo echo "DenyUsers ec2-user" >> /etc/ssh/sshd_config

設定後、sshdを再起動します。

[root@ip-10-0-0-220 miko]# sudo systemctl restart sshd
[root@ip-10-0-0-220 miko]# sudo systemctl status sshd

sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-05-18 21:20:28 JST; 9s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 4679 (sshd)
CGroup: /system.slice/sshd.service
mq4679 /usr/sbin/sshd -D

May 18 21:20:28 ip-10-0-0-220.ap-northeast-1.compute.internal systemd[1]: Starting OpenSSH server daemon...
May 18 21:20:28 ip-10-0-0-220.ap-northeast-1.compute.internal sshd[4679]: Server listening on 0.0.0.0 port 177.
May 18 21:20:28 ip-10-0-0-220.ap-northeast-1.compute.internal sshd[4679]: Server listening on :: port 177.
May 18 21:20:28 ip-10-0-0-220.ap-northeast-1.compute.internal systemd[1]: Started OpenSSH server daemon.

  • SSH接続高速化

SSHの接続開始遅い

[root@ip-10-0-0-220 miko]# vi /etc/ssh/sshd_config
#UseDNS yes
UseDNS no

スワップ領域の容量は物理メモリの2倍で設定」と昔から言われていたが、物理メモリの容量が増えた今、必ずしもそうではない。

[root@ip-10-0-0-220 miko]# sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=1280
1280+0 records in
1280+0 records out
1342177280 bytes (1.3 GB) copied, 17.6196 s, 76.2 MB/s

作成したファイルをスワップ領域として設定します。

[root@ip-10-0-0-220 miko]# sudo mkswap /mnt/swapfile
mkswap: /mnt/swapfile: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 1.3 GiB (1342173184 bytes)
no label, UUID=a08c41fb-8dc2-4b2f-bc0c-bed9d29a3810

スワップを有効にします。

[root@ip-10-0-0-220 miko]# sudo swapon /mnt/swapfile
swapon: /mnt/swapfile: insecure permissions 0644, 0600 suggested.

有効になっているか確認します。(再起動後)

[root@ip-10-0-0-220 miko]# free
total used free shared buff/cache available
Mem: 1006960 64700 70784 460 871476 793320
Swap: 1310716 0 1310716

(再)起動時に自動的にマウントされるように設定を行います。

[root@ip-10-0-0-220 miko]# sudo vi /etc/fstab

以下内容で設定を追記します。

/mnt/swapfile none swap sw 0 0

※ 次回再起動時には自動マウントされているか確認した方が確実です。

  • パッケージ・アップデート

(rootユーザで実行)

$ su
パスワード:
[root@ip-10-0-0-220 miko]# yum -y update

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 2.4 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package awscli.noarch 0:1.16.300-1.amzn2.0.1 will be updated
---> Package awscli.noarch 0:1.16.300-1.amzn2.0.2 will be an update
---> Package freetype.x86_64 0:2.4.11-15.amzn2.0.2 will be updated

Updated:
awscli.noarch 0:1.16.300-1.amzn2.0.2 freetype.x86_64 0:2.8-14.amzn2
gdisk.x86_64 0:0.8.10-3.amzn2 glib2.x86_64 0:2.56.1-5.amzn2.0.1
libdrm.x86_64 0:2.4.97-2.amzn2 microcode_ctl.x86_64 2:2.1-47.amzn2.0.6
selinux-policy.noarch 0:3.13.1-192.amzn2.6.1 selinux-policy-targeted.noarch 0:3.13.1-192.amzn2.6.1
yum.noarch 0:3.4.3-158.amzn2.0.4

Complete!

既にインストールされている yum レポジトリを調べる

[root@ip-172-28-0-58 manaka]# yum repolist all

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
repo id repo name status
!amzn2-core/2/x86_64 Amazon Linux 2 core reposit enabled: 21,018
amzn2-core-debuginfo/2/x86_64 Amazon Linux 2 core reposit disabled
amzn2-core-source/2 Amazon Linux 2 core reposit disabled
amzn2extra-docker/2/x86_64 Amazon Extras repo for dock enabled: 28
amzn2extra-docker-debuginfo/2/x86_64 Amazon Extras debuginfo rep disabled
amzn2extra-docker-source/2 Amazon Extras source repo f disabled
repolist: 21,046

Amazon Linux 2 で EPEL レポジトリを有効にする

[root@ip-172-28-0-58 manaka]# sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
epel-release-latest-7.noarch.rpm | 15 kB 00:00
Examining /var/tmp/yum-root-Gc9a5s/epel-release-latest-7.noarch.rpm: epel-release-7-12.noarch
Marking /var/tmp/yum-root-Gc9a5s/epel-release-latest-7.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-12 will be installed
--> Finished Dependency Resolution
amzn2-core/2/x86_64 | 3.7 kB 00:00

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
epel-release noarch 7-12 /epel-release-latest-7.noarch 24 k

Transaction Summary
================================================================================
Install 1 Package

Total size: 24 k
Installed size: 24 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : epel-release-7-12.noarch 1/1
Verifying : epel-release-7-12.noarch 1/1

Installed:
epel-release.noarch 0:7-12

Complete!

[root@ip-172-28-0-58 manaka]# yum repolist all

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
194 packages excluded due to repository priority protections
repo id repo name status
amzn2-core/2/x86_64 Amazon Linux 2 core rep enabled: 21,018
amzn2-core-debuginfo/2/x86_64 Amazon Linux 2 core rep disabled
amzn2-core-source/2 Amazon Linux 2 core rep disabled
amzn2extra-docker/2/x86_64 Amazon Extras repo for enabled: 28
amzn2extra-docker-debuginfo/2/x86_64 Amazon Extras debuginfo disabled
amzn2extra-docker-source/2 Amazon Extras source re disabled
epel/x86_64 Extra Packages for Ente enabled: 13,252+194
epel-debuginfo/x86_64 Extra Packages for Ente disabled
epel-source/x86_64 Extra Packages for Ente disabled
epel-testing/x86_64 Extra Packages for Ente disabled
epel-testing-debuginfo/x86_64 Extra Packages for Ente disabled
epel-testing-source/x86_64 Extra Packages for Ente disabled

インターネットにコンパイルされていないオープンソースソフトウェアが豊富に存在します。
パッケージリポジトリからダウンロードでき、自コンパイルが必要なソフトウェアパッケージが判明することがあります。
システムでコンパイルを可能にするには、make、gccなど、いくつかのインストールが必要です。

重要!! これらの手順は Amazon Linux専用

ソフトウェアのコンパイルはすべての Amazon EC2 インスタンスで必要なタスクではないため、そのようなツールはデフォルトでインストールされていません。
ただし、「Development Tools」という名前のパッケージグループで利用でき、yum groupinstall コマンドでインスタンスに簡単に追加されます。

[root@ip-172-28-0-58 manaka]# yum groupinstall "Development Tools"

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00
194 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package autoconf.noarch 0:2.69-11.amzn2 will be installed
--> Processing Dependency: m4 >= 1.4.14 for package: autoconf-2.69-11.amzn2.noarch
:  :  :
:  :  :
--> Running transaction check
---> Package zlib-devel.x86_64 0:1.2.7-18.amzn2 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing for group install "Development Tools":
autoconf noarch 2.69-11.amzn2 amzn2-core 701 k
automake noarch 1.13.4-3.1.amzn2 amzn2-core 679 k
bison x86_64 3.0.4-6.amzn2.0.2 amzn2-core 674 k
:  :  :
:  :  :
systemtap-devel x86_64 4.2-1.amzn2.0.1 amzn2-core 2.2 M
trousers x86_64 0.3.14-2.amzn2.0.2 amzn2-core 294 k
zlib-devel x86_64 1.2.7-18.amzn2 amzn2-core 50 k

Transaction Summary
================================================================================
Install 26 Packages (+49 Dependent packages)

Total download size: 104 M
Installed size: 343 M
Is this ok [y/d/N]: y     →y を入力
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/75): apr-util-1.6.1-5.amzn2.0.2.x86_64.rpm | 99 kB 00:00
(2/75): apr-1.6.3-5.amzn2.0.2.x86_64.rpm | 118 kB 00:00
(3/75): apr-util-bdb-1.6.1-5.amzn2.0.2.x86_64.rpm | 19 kB 00:00
:  :  :
:  :  :
(73/75): systemtap-client-4.2-1.amzn2.0.1.x86_64.rpm | 3.6 MB 00:00
(74/75): trousers-0.3.14-2.amzn2.0.2.x86_64.rpm | 294 kB 00:00
(75/75): zlib-devel-1.2.7-18.amzn2.x86_64.rpm | 50 kB 00:00
--------------------------------------------------------------------------------
Total 48 MB/s | 104 MB 00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : mpfr-3.1.1-4.amzn2.0.2.x86_64 1/75
Installing : libmpc-1.0.1-3.amzn2.0.2.x86_64 2/75
Installing : m4-1.4.16-10.amzn2.0.2.x86_64 3/75
:  :  :
:  :  :
Installing : swig-3.0.12-11.amzn2.0.3.x86_64 73/75
Installing : ctags-5.8-13.amzn2.0.2.x86_64 74/75
Installing : 1:doxygen-1.8.5-3.amzn2.0.2.x86_64 75/75
Verifying : 1:emacs-filesystem-25.3-3.amzn2.0.1.noarch 1/75
Verifying : libitm-7.3.1-9.amzn2.x86_64 2/75
Verifying : 1:doxygen-1.8.5-3.amzn2.0.2.x86_64 3/75
:  :  :
:  :  :
Verifying : perl-XML-Parser-2.41-10.amzn2.0.2.x86_64 73/75
Verifying : systemtap-4.2-1.amzn2.0.1.x86_64 74/75
Verifying : avahi-libs-0.6.31-19.amzn2.0.1.x86_64 75/75

Installed:
autoconf.noarch 0:2.69-11.amzn2
automake.noarch 0:1.13.4-3.1.amzn2
bison.x86_64 0:3.0.4-6.amzn2.0.2
:  :  :
:  :  :
swig.x86_64 0:3.0.12-11.amzn2.0.3
system-rpm-config.noarch 0:9.1.0-76.amzn2.0.10
systemtap.x86_64 0:4.2-1.amzn2.0.1

Dependency Installed:
apr.x86_64 0:1.6.3-5.amzn2.0.2
apr-util.x86_64 0:1.6.1-5.amzn2.0.2
apr-util-bdb.x86_64 0:1.6.1-5.amzn2.0.2
:  :  :
:  :  :
systemtap-client.x86_64 0:4.2-1.amzn2.0.1
systemtap-devel.x86_64 0:4.2-1.amzn2.0.1
trousers.x86_64 0:0.3.14-2.amzn2.0.2
zlib-devel.x86_64 0:1.2.7-18.amzn2

Complete!

  • vim のインストール&設定

これは、インストールされていて、作業必要でないかもしれませんが、一応。

[1] Vim インストール

[root@ip-10-0-0-220 miko]# yum -y install vim-enhanced

[2] コマンドエイリアスを適用
(全ユーザーに適用する。ユーザー個別に適用するならばそれぞれのユーザーの「~/.bashrc」等に記述)

[root@ip-10-0-0-220 miko]# vi /etc/profile

# 最終行にエイリアス追記
alias vi='vim'

[root@ip-10-0-0-220 miko]# source /etc/profile

[3] vim の設定 (ユーザー個別に適用する。

全ユーザーに適用するならば「/etc/vimrc」に記述。
「/etc/vimrc」にはデフォルトである程度設定されている)

[root@ip-10-0-0-220 miko]# cp /etc/vimrc ~/.vimrc
[root@ip-10-0-0-220 miko]# vi ~/.vimrc

set ignorecase
set smartcase
set number
set showmatch
set wrap

 

SoftEtherVPNServerのインストール

 

  • サーバー(EC2)にSoftEtherをインストール

つくば大学ホームページ:https://www.softether-download.com/en.aspx?product=softether

 

以下すべてrootで行います

[miko@ip-10-0-0-120 ~]$ sudo su -

make で必要

[root@ip-10-0-0-120 ~]# yum install -y gcc
Last metadata expiration check: 2:21:44 ago on Tue 14 Jul 2020 06:00:04 AM JST.
Dependencies resolved.
========================================================================================================================================
Package Architecture Version Repository Size
========================================================================================================================================
Installing:
gcc x86_64 8.3.1-5.el8 rhel-8-appstream-rhui-rpms 23 M
Installing dependencies:
binutils x86_64 2.30-73.el8 rhel-8-baseos-rhui-rpms 5.7 M
cpp x86_64 8.3.1-5.el8 rhel-8-appstream-rhui-rpms 10 M
glibc-devel x86_64 2.28-101.el8 rhel-8-baseos-rhui-rpms 1.0 M
glibc-headers x86_64 2.28-101.el8 rhel-8-baseos-rhui-rpms 473 k
isl x86_64 0.16.1-6.el8 rhel-8-appstream-rhui-rpms 841 k
kernel-headers x86_64 4.18.0-193.6.3.el8_2 rhel-8-baseos-rhui-rpms 4.0 M
libmpc x86_64 1.0.2-9.el8 rhel-8-appstream-rhui-rpms 59 k
libpkgconf x86_64 1.4.2-1.el8 rhel-8-baseos-rhui-rpms 35 k
libxcrypt-devel x86_64 4.1.1-4.el8 rhel-8-baseos-rhui-rpms 25 k
pkgconf x86_64 1.4.2-1.el8 rhel-8-baseos-rhui-rpms 38 k
pkgconf-m4 noarch 1.4.2-1.el8 rhel-8-baseos-rhui-rpms 17 k
pkgconf-pkg-config x86_64 1.4.2-1.el8 rhel-8-baseos-rhui-rpms 15 k

Transaction Summary
========================================================================================================================================
Install 13 Packages

Total download size: 46 M
Installed size: 122 M
Downloading Packages:
(1/13): libmpc-1.0.2-9.el8.x86_64.rpm 506 kB/s | 59 kB 00:00
(2/13): isl-0.16.1-6.el8.x86_64.rpm 6.2 MB/s | 841 kB 00:00
(3/13): libxcrypt-devel-4.1.1-4.el8.x86_64.rpm 266 kB/s | 25 kB 00:00
:  :  :
:  :  :
Verifying : binutils-2.30-73.el8.x86_64 11/13
Verifying : glibc-devel-2.28-101.el8.x86_64 12/13
Verifying : kernel-headers-4.18.0-193.6.3.el8_2.x86_64 13/13

Installed:
binutils-2.30-73.el8.x86_64 cpp-8.3.1-5.el8.x86_64 gcc-8.3.1-5.el8.x86_64
glibc-devel-2.28-101.el8.x86_64 glibc-headers-2.28-101.el8.x86_64 isl-0.16.1-6.el8.x86_64
kernel-headers-4.18.0-193.6.3.el8_2.x86_64 libmpc-1.0.2-9.el8.x86_64 libpkgconf-1.4.2-1.el8.x86_64
libxcrypt-devel-4.1.1-4.el8.x86_64 pkgconf-1.4.2-1.el8.x86_64 pkgconf-m4-1.4.2-1.el8.noarch
pkgconf-pkg-config-1.4.2-1.el8.x86_64

Complete!

AmazonLinux2 ではインストール済み RedHat Linux は未インストール

[root@ip-10-0-0-120 miko]# yum install -y wget
Last metadata expiration check: 2:25:14 ago on Tue 14 Jul 2020 06:00:04 AM JST.
Dependencies resolved.
========================================================================================================================================
Package Architecture Version Repository Size
========================================================================================================================================
Installing:
wget x86_64 1.19.5-8.el8_1.1 rhel-8-appstream-rhui-rpms 735 k

Transaction Summary
========================================================================================================================================
Install 1 Package

Total download size: 735 k
Installed size: 2.9 M
Downloading Packages:
wget-1.19.5-8.el8_1.1.x86_64.rpm 5.3 MB/s | 735 kB 00:00
----------------------------------------------------------------------------------------------------------------------------------------
Total 4.1 MB/s | 735 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : wget-1.19.5-8.el8_1.1.x86_64 1/1
Running scriptlet: wget-1.19.5-8.el8_1.1.x86_64 1/1
Verifying : wget-1.19.5-8.el8_1.1.x86_64 1/1

Installed:
wget-1.19.5-8.el8_1.1.x86_64

Complete!
[root@ip-10-0-0-120 vpnserver]# yum install -y make
Last metadata expiration check: 2:32:27 ago on Tue 14 Jul 2020 06:00:04 AM JST.
Dependencies resolved.
========================================================================================================================================
Package Architecture Version Repository Size
========================================================================================================================================
Installing:
make x86_64 1:4.2.1-10.el8 rhel-8-baseos-rhui-rpms 498 k

Transaction Summary
========================================================================================================================================
Install 1 Package

Total download size: 498 k
Installed size: 1.4 M
Downloading Packages:
make-4.2.1-10.el8.x86_64.rpm 3.8 MB/s | 498 kB 00:00
----------------------------------------------------------------------------------------------------------------------------------------
Total 3.1 MB/s | 498 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : make-1:4.2.1-10.el8.x86_64 1/1
Running scriptlet: make-1:4.2.1-10.el8.x86_64 1/1
Verifying : make-1:4.2.1-10.el8.x86_64 1/1

Installed:
make-1:4.2.1-10.el8.x86_64

Complete!

AmazonLinux2 ではインストール済み RedHat Linux は未インストール

[root@ip-10-0-0-120 vpnserver]# yum install -y make
Last metadata expiration check: 2:32:27 ago on Tue 14 Jul 2020 06:00:04 AM JST.
Dependencies resolved.
========================================================================================================================================
Package Architecture Version Repository Size
========================================================================================================================================
Installing:
make x86_64 1:4.2.1-10.el8 rhel-8-baseos-rhui-rpms 498 k

Transaction Summary
========================================================================================================================================
Install 1 Package

Total download size: 498 k
Installed size: 1.4 M
Downloading Packages:
make-4.2.1-10.el8.x86_64.rpm 3.8 MB/s | 498 kB 00:00
----------------------------------------------------------------------------------------------------------------------------------------
Total 3.1 MB/s | 498 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : make-1:4.2.1-10.el8.x86_64 1/1
Running scriptlet: make-1:4.2.1-10.el8.x86_64 1/1
Verifying : make-1:4.2.1-10.el8.x86_64 1/1

Installed:
make-1:4.2.1-10.el8.x86_64

Complete!

ソースコードを落としてきます。( Intel x64 / AMD64 (64bit)) /home/ec2-ser にロード

[root@ip-10-0-0-220 ~]# cd /home/miko

[root@ip-10-0-0-220 miko]# wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.34-9745-beta/softether-vpnserver-v4.34-9745-beta-2020.01.01-linux-x64-64bit.tar.gz
--2020.04.05 12:15:32-- https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.34-9745-beta/softether-vpnserver-32-9731-beta-2020.01.01-li
Resolving github.com (github.com)... 52.192.72.89
Connecting to github.com (github.com)|52.192.72.89|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/107487278/e9c5d700-2cd3-11ea-942e-503af55e23f3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz- Credential=AKIAIWNJYAX4CSVEH53A%2F20200111%2Fus-east-1%2Fs3%2Faws4_request&X-Amz -Date=20200111T031532Z&X-Amz-Expires=300&X-Amz-Signature=bddab12afef6cb711e8f161 e5df2539ab7a0267a01b13c3f96f43ccda5998d18&X-Amz-SignedHeaders=host&actor_id=0&re sponse-content-disposition=attachment%3B%20filename%3Dsoftether-vpnserver-v4.32- 9731-beta-2020.01.01-linux-x64-64bit.tar.gz&response-content-type=application%2F octet-stream [following]
--2020.04.05 12:15:32-- https://github-production-release-asset-2e65be.s3.amazonaws.com/107487278/e9c5d700-2cd3-11ea-942e-23f3?X-Amz-Algorithm=AWS4-HMA
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.217.46.228
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-amazonaws.com)|52.217.46.228|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7507657 (7.2M) [application/octet-stream]
Saving to: ‘softether-vpnserver-v4.34-9745-beta-2020.04.05-linux-x64-64bit.tar.gz’

100%[======================================>] 7,507,657 4.84MB/s in 1.5s

2020-01-11 12:15:34 (4.84 MB/s) - ‘softether-vpnserver-v4.34-9745-beta-2020.04.05-linux-x64-64bit.tar.gz’ saved [7507657/7507657]

解凍する

[root@ip-10-0-0-220 miko]# tar xvfz softether-vpnserver-v4.34-9745-beta-2020.04.05-linux-x64-64bit.tar.gz

vpnserver/
vpnserver/Makefile
vpnserver/.install.sh
:  :  :
:  :  :
vpnserver/lib/libz.a
vpnserver/lib/License.txt
vpnserver/hamcore.se2

[root@ip-10-0-0-220 miko]# cd vpnserver/

ビルド

make をした後に、ダラダラと文字が流れてきて、ライセンスに同意しますか?と聞いてくるので、すべて1と回答する。作成したvpnserverを/usr/localに置く。

[root@ip-10-0-0-220 vpnserver]# make

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

SoftEther VPN Server (Ver 4.32, Build 9731, Intel x64 / AMD64) 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                       ← 1を入力

Copyright (c) all contributors on SoftEther VPN project in GitHub.
Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.

DISCLAIMER
==========

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN, UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY, MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING, MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO, JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.

USE ONLY IN JAPAN. DO NOT USE THIS SOFTWARE IN ANOTHER COUNTRY UNLESS YOU HAVE A CONFIRMATION THAT THIS SOFTWARE DOES NOT VIOLATE ANY CRIMINAL LAWS OR CIVIL RIGHTS IN THAT PARTICULAR COUNTRY. USING THIS SOFTWARE IN OTHER COUNTRIES IS COMPLETELY AT YOUR OWN RISK. THE SOFTETHER VPN PROJECT HAS DEVELOPED AND DISTRIBUTED THIS SOFTWARE TO COMPLY ONLY WITH THE JAPANESE LAWS AND EXISTING CIVIL RIGHTS INCLUDING PATENTS WHICH ARE SUBJECTS APPLY IN JAPAN. OTHER COUNTRIES' LAWS OR CIVIL RIGHTS ARE NONE OF OUR CONCERNS NOR RESPONSIBILITIES. WE HAVE NEVER INVESTIGATED ANY CRIMINAL REGULATIONS, CIVIL LAWS OR INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENTS IN ANY OF OTHER 200+ COUNTRIES AND TERRITORIES. BY NATURE, THERE ARE 200+ REGIONS IN THE WORLD, WITH DIFFERENT LAWS. IT IS IMPOSSIBLE TO VERIFY EVERY COUNTRIES' LAWS, REGULATIONS AND CIVIL RIGHTS TO MAKE THE SOFTWARE COMPLY WITH ALL COUNTRIES' LAWS BY THE PROJECT. EVEN IF YOU WILL BE SUED BY A PRIVATE ENTITY OR BE DAMAGED BY A PUBLIC SERVANT IN YOUR COUNTRY, THE DEVELOPERS OF THIS SOFTWARE WILL NEVER BE LIABLE TO RECOVER OR COMPENSATE SUCH DAMAGES, CRIMINAL OR CIVIL
RESPONSIBILITIES. NOTE THAT THIS LINE IS NOT LICENSE RESTRICTION BUT JUST A STATEMENT FOR WARNING AND DISCLAIMER.

READ AND UNDERSTAND THE 'src/WARNING.TXT' FILE BEFORE USING THIS SOFTWARE. SOME SOFTWARE PROGRAMS FROM THIRD PARTIES ARE INCLUDED ON THIS SOFTWARE WITH LICENSE CONDITIONS WHICH ARE DESCRIBED ON THE 'src/THIRD_PARTY.TXT' FILE.

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                       ← 1を入力

Did you agree the License Agreement ?

1. Agree
2. Do Not Agree

Please choose one of above number:
1                       ← 1を入力

make[1]: Entering directory `/home/miko/vpnserver'
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 -fPIE -O2 -fsigned-char -pthread -m64 -lm -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 -ldl -o vpnserver
ranlib code/vpncmd.a
gcc code/vpncmd.a -fPIE -O2 -fsigned-char -pthread -m64 -lm -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 -ldl -o vpncmd
./vpncmd /tool /cmd:Check
vpncmd command - SoftEther VPN Command Line Management Utility
SoftEther VPN Command Line Management Utility (vpncmd command)
Version 4.34 Build 9745 (English)
Compiled 2020/01/01 18:16:55 by buildsan at crosswin
Copyright (c) SoftEther VPN Project. All Rights Reserved.

VPN Tools has been launched. By inputting HELP, you can view a list of the commands that can be used.

VPN Tools>Check
Check command - Check whether SoftEther VPN Operation is Possible
---------------------------------------------------
SoftEther VPN Operation Environment Check Tool

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

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...

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

All checks passed. It is most likely that SoftEther VPN Server / Bridge can operate normally on this system.

The command completed successfully.

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

*** How to switch the display language of the SoftEther VPN Server Service ***
SoftEther VPN Server supports the following languages:
- Japanese
- English
- Simplified Chinese

You can choose your prefered language of SoftEther VPN Server at any time.
To switch the current language, open and edit the 'lang.config' file.

Note: the administrative password is not set on the VPN Server. Please set your own administrative password as soon as possible by vpncmd or the GUI manager.

*** How to start the SoftEther VPN Server Service ***

Please execute './vpnserver start' to run the SoftEther VPN Server Background Service.
And please execute './vpncmd' to run the SoftEther VPN Command-Line Utility to configure SoftEther VPN Server.

Of course, you can use the VPN Server Manager GUI Application for Windows / Mac OS X on the other Windows / Mac OS X computers in order to configure the SoftEther VPN Server remotely.

*** For Windows users ***
You can download the SoftEther VPN Server Manager for Windows
from the http://www.softether-download.com/ web site.
This manager application helps you to completely and easily manage the VPN server services running in remote hosts.

*** For Mac OS X users ***
In April 2016 we released the SoftEther VPN Server Manager for Mac OS X.
You can download it from the http://www.softether-download.com/ web site.
VPN Server Manager for Mac OS X works perfectly as same as the traditional Windows versions. It helps you to completely and easily manage the VPN server services running in remote hosts.

*** PacketiX VPN Server HTML5 Web Administration Console (NEW) ***
This VPN Server / Bridge has the built-in HTML5 Web Administration Console.

After you start the server daemon, you can open the HTML5 Web Administration Console is available at

https://127.0.0.1:5555/
or
https://ip_address_of_the_vpn_server:5555/

This HTML5 page is obviously under construction, and your HTML5 development contribution is very appreciated.

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

make[1]: Leaving directory `/home/miko/vpnserver'
[root@ip-10-0-0-220 vpnserver]#

 

[root@ip-10-0-0-220 vpnserver]# cd ..
[root@ip-10-0-0-220 miko]# mv vpnserver /usr/local

ファイルの権限を変更する。

[root@ip-10-0-0-220 miko]# cd /usr/local/vpnserver/
[root@ip-10-0-0-220 vpnserver]# chmod 600 *
[root@ip-10-0-0-220 vpnserver]# chmod 700 vpncmd
[root@ip-10-0-0-220 vpnserver]# chmod 700 vpnserver

SoftEtherコマンドラインを使って、正しく設定ができているか確認する。

[root@ip-10-0-0-220 vpnserver]# ./vpncmd
vpncmd command - SoftEther VPN Command Line Management Utility
SoftEther VPN Command Line Management Utility (vpncmd command)
Version 4.34 Build 9745 (English)
Compiled 2020/01/01 18:16:55 by buildsan at crosswin
Copyright (c) SoftEther VPN Project. All Rights Reserved.

By using vpncmd program, the following can be achieved.

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           ← 3 を入力

VPN Tools has been launched. By inputting HELP, you can view a list of the commands that can be used.

VPN Tools>check           ← check を入力

Check command - Check whether SoftEther VPN Operation is Possible
---------------------------------------------------
SoftEther VPN Operation Environment Check Tool

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

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...

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

All checks passed. It is most likely that SoftEther VPN Server / Bridge can operate normally on this system.

The command completed successfully.

VPN Tools>exit

バックグラウンドで常に実行させるために、デーモンプロセスとして登録する。

/etc/init.d/vpnserverに以下を書き込む。

[root@ip-10-0-0-175 vpnserver]# vi /etc/init.d/vpnserver

(「/etc/init.d/vpnserver」は新規ファイルなので、以下の内容でそのままwriteする)

#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

root以外のユーザが変更できないように、ファイルの権限を変更する。

[root@ip-10-0-0-220 vpnserver]# chmod 755 /etc/init.d/vpnserver

サーバーを再起動した時にも自動的にVPNサーバーが起動するように設定

[root@ip-10-0-0-220 vpnserver]# /sbin/chkconfig --add vpnserver

動くかどうか試してみる

[root@ip-10-0-0-220 vpnserver]# service vpnserver start

The SoftEther VPN Server service has been started.

Let's get started by accessing to the following URL from your PC:

https://10.0.0.220:5555/
or
https://10.0.0.220/

Note: IP address may vary. Specify your server's IP address.
A TLS certificate warning will appear because the server uses self signed certificate by default. That is natural. Continue with ignoring the TLS warning.

[root@ip-10-0-0-220 vpnserver]#

となればOK。

 

  • クライアントのアカウント作成をサーバー側でCUIで設定する

コマンドラインを起動する。(上記までの操作をしている場合には引き続きSSH画面で続行)

[root@ip-10-0-0-220 vpnserver]# cd /usr/local/vpnserver/

[root@ip-10-0-0-220 vpnserver]# ./vpncmd

vpncmd command - SoftEther VPN Command Line Management Utility
SoftEther VPN Command Line Management Utility (vpncmd command)
Version 4.34 Build 9745 (English)
Compiled 2020/01/01 18:16:55 by buildsan at crosswin
Copyright (c) SoftEther VPN Project. All Rights Reserved.

By using vpncmd program, the following can be achieved.

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)

今回はサーバーの設定をするので、1のモードを選択。

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

Specify the host name or IP address of the computer that the destination VPN Server or VPN Bridge is operating on.
By specifying according to the format 'host name:port number', you can also specify the port number.
(When the port number is unspecified, 443 is used.)
If nothing is input and the Enter key is pressed, the connection will be made to the port number 8888 of localhost (this computer).

接続先のホスト名 と 仮想HUB名 を聞かれるけど、空白のまま「Enter」を2回押せば良い。
ちゃんと「Enter」を押さないとコマンドが落ちて、やり直しになることがあるので、慎重に!!!

このコマンドラインで使えるコマンドはHELPと入力すると、全部見れる。全部で205個。
(コマンドの大文字小文字は関係なく、コマンドのスペル間違えを推測して訂正してくれる)

Hostname of IP Address of Destination:   → [ENTER]

If connecting to the server by Virtual Hub Admin Mode, please input the Virtual Hub name.
If connecting by server admin mode, please press Enter without inputting anything.

Specify Virtual Hub Name:         → [ENTER]

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

You have administrator privileges for the entire VPN Server.

仮想HUBの作成

仮想Hubの一覧コマンドを打つと、DEFAULT仮想HUBが既に作られている。
[VPN-place1]という名前の仮想HUBを作ってみる。

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 |2020-01-11 12:41:10
Last Communication|2020-01-11 12:41:10
Transfer Bytes |0
Transfer Packets |0
The command completed successfully.

VPN Server>HubCreate

HubCreate command - Create New Virtual Hub
Name of Virtual Hub to be created: VPN-place1 ← 作成する仮想 HUB の名前:「VPN-place1」を入力

Please enter the password. To cancel press the Ctrl+D key.
(パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。)

Password: *********    ← 作成する仮想 HUB の名前:「VPN-place1」を入力
Confirm input: *********  ← 仮想HUBのパスワード(再入力)

The command completed successfully.

ユーザの作成
既存のユーザを調べてみる

VPN Server>UserList   ← 指定した仮想HUBのユーザ一覧を表示

UserList command - Get List of Users
(UserList コマンド - ユーザー一覧の取得)
Before executing this command, first select the Virtual Hub to manage using the Hub command.

(このコマンドを実行する前に、Hub コマンドで管理対象の仮想 HUB を選択してください。)

と怒られてしまう。
管理対象の仮想HUBを指定しないといけないので

VPN Server>HUB VPN-place1     ← 仮想HUBを指定

Hub command - Select Virtual Hub to Manage
The Virtual Hub "VPN-place1" has been selected.
The command completed successfully.

VPN Server/VPN-place1>UserList   ← 指定した仮想HUBのユーザ一覧を表示

UserList command - Get List of Users
Item|Value
----+-----
The command completed successfully.

とすると、まだだれもユーザがいないようなので、新しく user1 さんを作成する。

VPN Server/VPN-place1>UserCreate

UserCreate command - Create User
User Name: user1          ← 指定仮想HUBのユーザ「user1」を指定

Assigned Group Name: 参加するグループ名:   ← option 空白EnterでOK

User Full Name: ユーザーの本名:        ← option 空白EnterでOK

User Description: ユーザーの説明:       ← option 空白EnterでOK

The command completed successfully.

コマンドは正常に終了しました。
となればOK。次は認証方法をパスワード認証として、パスワードを設定。
(認証方法は、5種類ぐらいあるが、今回はパスワード認証を選ぶ)

VPN Server/VPN-place1>UserPasswordSet

UserPasswordSet command - Set Password Authentication for User Auth Type and Set Password
(UserPasswordSet コマンド - ユーザーの認証をパスワード認証に設定しパスワードを設定)

User Name: user1          ← 指定仮想HUBのユーザ「user1」を指定

パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。

Password: *********
Confirm input: *********

Please enter the password. To cancel press the Ctrl+D key.

The command completed successfully.

(コマンドは正常に終了しました。となればOK。これでユーザ作成は完成)

VPN Server/VPN-place1>

IPsec だけで繋ぐには、AWSのセキュリティグループで以下のものを開けておく

(セキュリティグループ内容)
HTTP TCP 80 0.0.0.0/0
HTTPS TCP 443 接続先IP/32
カスタムTCPルール TCP 22 接続先IP/32 SSH port modify

MaciOSAndroidについて、標準のL2TP/IPsec VPN接続を設定する。
VPN Server 側での L2TP/IPsec 機能の有効化方法)

※ ツールのSoftether VPN Server管理マネージャーを使っても、GUIで設定できるが今回はコマンドで設定する

IPsecEnableコマンド入力に以下のように答える。

VPN Server/VPN-place1>IPsecEnable

IPsecEnable command - Enable or Disable IPsec VPN Server Function
(IPsecEnable コマンド - IPsec VPN サーバー機能の有効化 / 無効化)

Enable L2TP over IPsec Server Function (yes / no): yes

Enable Raw L2TP Server Function (yes / no): no

Enable EtherIP / L2TPv3 over IPsec Server Function (yes / no): no

Pre Shared Key for IPsec (Recommended: 9 letters at maximum): XXXXXX

Default Virtual HUB in a case of omitting the HUB on the Username: VPN-palce1

The command completed successfully.
(コマンドは正常に終了しました)

  • クラウド接続時に、接続してくる端末にIPアドレスを払い出す必要がある場合には、
    「仮想 NAT および DHCP サーバー機能 (SecureNAT 機能) の有効化」をする必要あり。

VPN Server/VPN-place1>SecureNatEnable

SecureNatEnable command - Enable the Virtual NAT and DHCP Server Function (SecureNat Function)
The command completed successfully. (これで有効化された)
VPN Server/VPN-place1>quit

※ MaciOSAndroidで、L2TP/IPsec VPN接続する場合、アカウント名が [ユーザ名]@[仮想HUB名] になる。
スマホVPNの設定をする必要がある。

L2TP/IPsec で繋ぐには、UDPのポートをいくつか開けないといけないので、
AWSのセキュリティグループで以下のものを開けておく

UDP 500
UDP 4500

(セキュリティグループ内容)

HTTP TCP 80 0.0.0.0/0
カスタムTCPルール TCP 5555 0.0.0.0/0
カスタムUDPルール UDP 4500 0.0.0.0/0  (L2TPで使用)
カスタムUDPルール UDP 500 0.0.0.0/0   (L2TPで使用)
HTTPS TCP 443 接続先IP/32       (softetherでも使用できる)
カスタムTCPルール TCP 177 接続先IP/32  (SSH port modify)

※ 今回はSSHポートをセキュリティ対応で変更しているので、177を空けている。