SoftEther VPN のサーバーを導入してiPadやAndroidから接続できるようにします。
CLIだけで構築してみました。
前回からの続きです。
SoftEther VPNのインストール
公式のダウンロードページ から必要なものをダウンロードします。今回の目的と環境に適合するのは...
- ダウンロードするソフトウェア:
SoftEther VPN(Freeware)
- コンポーネント:
SoftEther VPN Server
- プラットフォーム:
Linux
- CPU:
Intel x64 / AMD64 (64bit)
ダウンロード可能なファイルがたくさん表示されますが、最新のRTM版を使用することにします。今回は SoftEther VPN Server (Ver 4.34, Build 9745, rtm)
でした。
適当なディレクトリにダウンロードした後、ファイルを展開します。
$ zcat softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x64-64bit.tar.gz | tar xf -
ファイルは vpnserver
ディレクトリに展開されるので、その中に入ってビルドします。
$ cd vpnserver/
$ make
make
するとビルドが始まりますが最初に次の3つの質問がされます。
License Agreement
を読みますか?License Agreement
を読んで理解しましたか?License Agreement
に同意しますか?
ライセンスに同意すればビルドが続行されます。
ビルドのログ:
make[1]: Entering directory '/home/yuzu/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/04/05 23:39:56 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/yuzu/vpnserver'
ビルドが完了したらインストール先へのコピーとパーミッションの設定をしましょう。今回は /opt/vpnserver/
にインストールします。
$ cd ..
$ sudo mv vpnserver/ /opt
$ cd /opt
$ sudo chown -R root /opt/vpnserver/
$ sudo chmod 600 /opt/vpnserver/*
$ sudo chmod 700 /opt/vpnserver/vpncmd
$ sudo chmod 700 /opt/vpnserver/vpnserver
参考: Linux へのインストールと初期設定 - SoftEther VPN プロジェクト
SoftEther VPNの自動起動設定
SoftEther VPNの公式サイトには init
の起動スクリプトがありますが、Ubuntu 20.04 LTS
には systemd
スクリプトが必要です。
先人が貴重な情報をシェアしてくださっているので、ありがたく使わせてもらいましょう。
SoftEther VPN Serverをsystemd対応にする - Qiitaを参考にしました。
今回の環境用に編集した結果 /etc/systemd/system/softether-vpn.service
はこうなりました。
[Unit]
Description=Softether VPN Server Service
After=network.target
[Service]
Type=forking
User=root
ExecStart=/opt/vpnserver/vpnserver start
ExecStop=/opt/vpnserver/vpnserver stop
Restart=on-abort
WorkingDirectory=/opt/vpnserver/
ExecStartPre=/sbin/ip link set dev ens10 promisc on
[Install]
WantedBy=multi-user.target
変更点:
- インストール先を
/opt/vpnserver
に変更 - ローカルブリッジ用インターフェイス名を
ens10
に変更
それでは vpnserver
を設定するために起動しておきましょう。
$ sudo systemctl start softether-vpn
$ sudo systemctl status softether-vpn
● softether-vpn.service - Softether VPN Server Service
Loaded: loaded (/etc/systemd/system/softether-vpn.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2020-10-10 10:10:10 UTC; 10s ago
Process: 2175 ExecStartPre=/sbin/ip link set dev ens10 promisc on (code=exited, status=0/SUCCESS)
Process: 2186 ExecStart=/opt/vpnserver/vpnserver start (code=exited, status=0/SUCCESS)
Main PID: 2191 (vpnserver)
Tasks: 33 (limit: 629145)
Memory: 16.2M
CGroup: /system.slice/softether-vpn.service
├─2191 /opt/vpnserver/vpnserver execsvc
└─2192 /opt/vpnserver/vpnserver execsvc
(以下略)
active (running)
とあるので正常に起動できているようです。
ens10
がプロミスキャスモードになっていることも確認しておきましょう。
$ ip link show ens10
3: ens10: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:f2:7e:d7 brd ff:ff:ff:ff:ff:ff
応答内容に PROMISC
があるので大丈夫なようです。