SoftEtherを利用してVPN Serverを構築する手順です
環境は Centos7.3 1611 を利用です
マシンの中に 仮想HUBを作って仮想DHCPサーバを動かし、仮想NICで通信できるようにします
サーバの待ち受けポートはとりあえず 44444 で構築
好きなように変えてくださいです
Androidなどからは UDP500、UDP4500 も利用です(IPsec)
Androidから接続する手順はこちら
構築イメージ
---------------------------------
|
| VPN-Hub1 (10.10.10.110):VpnHub1(仮想DHCP)
| ↑↓
| VPN-Nic1 (10.10.10.111):tap_tap1
|
| 物理NIC(192.168.56.101):待ち受けポート:44444
|
--------------------[CentOS7 SoftEther Server]
#SoftEther インストール
コンパイル環境
# mkdir -p /usr/local/src/yum/21.softether_server
# cd /usr/local/src/yum/21.softether_server
# yum --enablerepo=epel ¥
--downloadonly ¥
--downloaddir=./ ¥
install ¥
gcc ¥
gcc-c++ ¥
glibc ¥
make ¥
binutils ¥
zlib ¥
openssl ¥
readline ¥
ncurses ¥
zlib-devel ¥
openssl-devel ¥
readline-devel ¥
ncurses-devel ¥
psmisc ¥
# yum localinstall *.rpm
SoftEther - Serverのダウンロード
最新版は確認:http://jp.softether-download.com/files/softether/
# wget --proxy-user=user \
--proxy-password=pass \
-e HTTP_PROXY=proxy.com:8080 \
http://jp.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
※ http://jp.softether-download.com/files/softether/v4.29-9680-rtm-2019.02.28-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.29-9680-rtm-2019.02.28-linux-x64-64bit.tar.gz
# ls -l
-rw-r--r-- 1 root root 6275265 11月 27 2016 softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
※ -rw-rw-r-- 1 root root 6249245 2月 28 19:41 softether-vpnserver-v4.29-9680-rtm-2019.02.28-linux-x64-64bit.tar.gz
※ 2019/3/12 追記 バージョンが 4.22から4.29に変わってます
SoftEther 展開 & コンパイル
# tar xvfz softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
※ # tar xvfz softether-vpnserver-v4.29-9680-rtm-2019.02.28-linux-x64-64bit.tar.gz
# cd vpnserver/
make
※ 2019/3/12 追記 バージョンが 4.22から4.29に変わってます
SoftEther インストール
# cd ..
# mv vpnserver /usr/local/
# cd /usr/local/vpnserver/
SoftEther セキュリティ設定
接続IP限定 - 127.0.0.1以外からは管理モードで接続不可
# echo "127.0.0.1" > adminip.txt
# chmod 600 *
# chmod 700 . vpncmd vpnserver lib code chain_certs
SoftEther のtapデバイスに固定IPアドレスを付与するシェル
#!/bin/bash
# case Static IP
TAP_IF="tap_tap1"
# 30sec Loop
for i in {1..30}
do
sleep 1
ip tap | grep --quiet ${TAP_IF}
STATUS=$?
if [ "${STATUS}" == "0" ]
then
ifcfg ${TAP_IF} add 10.10.10.111/24
break;
fi
done
exit 0
# chmod 700 /usr/local/vpnserver/setting_ip.sh
SoftEther Server の自動起動設定
サービスの起動時に、仮想LANデバイス(tap_tap1)に固定IPアドレスを付与する
[Unit]
Description=SoftEther VPN Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStartPost=/usr/local/vpnserver/setting_ip.sh
ExecStop=/usr/local/vpnserver/vpnserver stop
[Install]
WantedBy=multi-user.target
# systemctl daemon-reload
# systemctl enable vpnserver
#SoftEther Server の設定
□ VPN Server の管理モード起動
まだいろいろ設定していないので、サービス(systemctl)としてではなく直接 vpnserver を起動する
# cd /usr/local/vpnserver
# ./vpnserver start
# ./vpncmd localhost /SERVER
□ VPN Server のヘルプ確認
VPN Server>help
下記の 205 個のコマンドが使用できます:
About - バージョン情報の表示
AcAdd - 接続元 IP 制限リストにルールを追加 (IPv4)
AcAdd6 - 接続元 IP 制限リストにルールを追加 (IPv6)
AcDel - 接続元 IP 制限リスト内のルールの削除
AcList - 接続元 IP 制限リストのルール一覧の取得
AccessAdd - アクセスリストへのルールの追加 (IPv4)
AccessAdd6 - アクセスリストへのルールの追加 (IPv6)
AccessAddEx - アクセスリストへのルールの追加 (IPv4, 遅延・ジッタ・パケットロス設定可能)
AccessAddEx6 - アクセスリストへのルールの追加 (IPv6, 遅延・ジッタ・パケットロス設定可能)
AccessDelete - アクセスリストからルールを削除
AccessDisable - アクセスリストのルールの無効化
AccessEnable - アクセスリストのルールの有効化
AccessList - アクセスリストのルール一覧の取得
AdminOptionList - 仮想 HUB 管理オプションの一覧の取得
AdminOptionSet - 仮想 HUB 管理オプションの値の設定
BridgeCreate - ローカルブリッジ接続の作成
BridgeDelete - ローカルブリッジ接続の削除
BridgeDeviceList - ローカルブリッジに使用できる LAN カード一覧の取得
BridgeList - ローカルブリッジ接続の一覧の取得
CAAdd - 信頼する証明機関の証明書の追加
CADelete - 信頼する証明機関の証明書の削除
CAGet - 信頼する証明機関の証明書の取得
CAList - 信頼する証明機関の証明書一覧の取得
Caps - サーバーの機能・能力一覧の取得
CascadeAnonymousSet - カスケード接続のユーザー認証の種類を匿名認証に設定
CascadeCertGet - カスケード接続に用いるクライアント証明書の取得
CascadeCertSet - カスケード接続のユーザー認証の種類をクライアント証明書認証に設定
CascadeCompressDisable - カスケード接続の通信時のデータ圧縮の無効化
CascadeCompressEnable - カスケード接続の通信時のデータ圧縮の有効化
CascadeCreate - 新しいカスケード接続の作成
CascadeDelete - カスケード接続の削除
CascadeDetailSet - カスケード接続の高度な通信設定の設定
CascadeEncryptDisable - カスケード接続の通信時の暗号化の無効化
CascadeEncryptEnable - カスケード接続の通信時の暗号化の有効化
CascadeGet - カスケード接続の設定の取得
CascadeList - カスケード接続一覧の取得
CascadeOffline - カスケード接続のオフライン状態への設定
CascadeOnline - カスケード接続のオンライン状態への設定
CascadePasswordSet - カスケード接続のユーザー認証の種類をパスワード認証に設定
CascadePolicySet - カスケード接続セッションのセキュリティポリシーの設定
CascadeProxyHttp - カスケード接続の接続方法を HTTP プロキシサーバー経由接続に設定
CascadeProxyNone - カスケード接続の接続方法を直接 TCP/IP 接続に設定
CascadeProxySocks - カスケード接続の接続方法を SOCKS プロキシサーバー経由接続に設定
CascadeRename - カスケード接続の名前の変更
CascadeServerCertDelete - カスケード接続のサーバー固有証明書の削除
CascadeServerCertDisable - カスケード接続のサーバー証明書の検証オプションの無効化
CascadeServerCertEnable - カスケード接続のサーバー証明書の検証オプションの有効化
CascadeServerCertGet - カスケード接続のサーバー固有証明書の取得
CascadeServerCertSet - カスケード接続のサーバー固有証明書の設定
CascadeSet - カスケード接続の接続先の設定
CascadeStatusGet - カスケード接続の現在の状態の取得
CascadeUsernameSet - カスケード接続の接続に使用するユーザー名の設定
Check - SoftEther VPN の動作が可能かどうかチェックする
ClusterConnectionStatusGet - クラスタコントローラへの接続状態の取得
ClusterMemberCertGet - クラスタメンバの証明書の取得
ClusterMemberInfoGet - クラスタメンバの情報の取得
ClusterMemberList - クラスタメンバの一覧の取得
ClusterSettingController - VPN Server の種類をクラスタコントローラに設定
ClusterSettingGet - 現在の VPN Server のクラスタリング構成の取得
ClusterSettingMember - VPN Server の種類をクラスタメンバに設定
ClusterSettingStandalone - VPN Server の種類をスタンドアロンに設定
ConfigGet - VPN Server の現在のコンフィグレーションの取得
ConfigSet - VPN Server へのコンフィグレーションの書き込み
ConnectionDisconnect - VPN Server に接続中の TCP コネクションの切断
ConnectionGet - VPN Server に接続中の TCP コネクションの情報の取得
ConnectionList - VPN Server に接続中の TCP コネクション一覧の取得
Crash - VPN Server / Bridge プロセスでエラーを発生させプロセスを強制終了する
CrlAdd - 無効な証明書の追加
CrlDel - 無効な証明書の削除
CrlGet - 無効な証明書の取得
CrlList - 無効な証明書リストの一覧の取得
Debug - デバッグコマンドの実行
DhcpDisable - SecureNAT 機能の仮想 DHCP サーバー機能の無効化
DhcpEnable - SecureNAT 機能の仮想 DHCP サーバー機能の有効化
DhcpGet - SecureNAT 機能の仮想 DHCP サーバー機能の設定の取得
DhcpSet - SecureNAT 機能の仮想 DHCP サーバー機能の設定の変更
DhcpTable - SecureNAT 機能の仮想 DHCP サーバー機能のリーステーブルの取得
DynamicDnsGetStatus - ダイナミック DNS 機能の現在の状態の取得
DynamicDnsSetHostname - ダイナミック DNS ホスト名の設定
EtherIpClientAdd - EtherIP / L2TPv3 over IPsec サーバー機能のクライアントデバイスからの接続を受付けるための接続設定の追加
EtherIpClientDelete - EtherIP / L2TPv3 over IPsec サーバー機能のクライアントデバイスからの接続を受付けるための接続設定の削除
EtherIpClientList - EtherIP / L2TPv3 over IPsec サーバー機能のクライアントデバイスからの接続を受付けるための接続設定の一覧表示
ExtOptionList - 仮想 HUB 拡張オプションの一覧の取得
ExtOptionSet - 仮想 HUB 管理オプションの値の設定
Flush - VPN Server / Bridge の未保存の設定データを設定ファイルに強制保存する
GroupCreate - グループの作成
GroupDelete - グループの削除
GroupGet - グループ情報と所属しているユーザー一覧の取得
GroupJoin - グループにユーザーを追加
GroupList - グループ一覧の取得
GroupPolicyRemove - グループのセキュリティポリシーの削除
GroupPolicySet - グループのセキュリティポリシーの設定
GroupSet - グループ情報の設定
GroupUnjoin - グループからユーザーを削除
Hub - 管理する仮想 HUB の選択
HubCreate - 新しい仮想 HUB の作成
HubCreateDynamic - 新しいダイナミック仮想 HUB の作成 (クラスタリング用)
HubCreateStatic - 新しいスタティック仮想 HUB の作成 (クラスタリング用)
HubDelete - 仮想 HUB の削除
HubList - 仮想 HUB の一覧の取得
HubSetDynamic - 仮想 HUB の種類をダイナミック仮想 HUB に変更
HubSetStatic - 仮想 HUB の種類をスタティック仮想 HUB に変更
IPsecEnable - IPsec VPN サーバー機能の有効化 / 無効化
IPsecGet - IPsec VPN サーバー機能の現在の設定の取得
IpDelete - IP アドレステーブルエントリの削除
IpTable - IP アドレステーブルデータベースの取得
KeepDisable - インターネット接続の維持機能の無効化
KeepEnable - インターネット接続の維持機能の有効化
KeepGet - インターネット接続の維持機能の取得
KeepSet - インターネット接続の維持機能の設定
LicenseAdd - 新しいライセンスキーの登録
LicenseDel - 登録されているライセンスの削除
LicenseList - 登録されているライセンス一覧の取得
LicenseStatus - 現在の VPN Server のライセンス状態の取得
ListenerCreate - TCP リスナーの追加
ListenerDelete - TCP リスナーの削除
ListenerDisable - TCP リスナーの動作停止
ListenerEnable - TCP リスナーの動作開始
ListenerList - TCP リスナー一覧の取得
LogDisable - セキュリティログまたはパケットログの無効化
LogEnable - セキュリティログまたはパケットログの有効化
LogFileGet - ログファイルのダウンロード
LogFileList - ログファイル一覧の取得
LogGet - 仮想 HUB のログ保存設定の取得
LogPacketSaveType - パケットログに保存するパケットの種類と保存内容の設定
LogSwitchSet - ログファイルの切り替え周期の設定
MacDelete - MAC アドレステーブルエントリの削除
MacTable - MAC アドレステーブルデータベースの取得
MakeCert - 新しい X.509 証明書と秘密鍵の作成 (1024 bit)
MakeCert2048 - 新しい X.509 証明書と秘密鍵の作成 (2048 bit)
NatDisable - SecureNAT 機能の仮想 NAT 機能の無効化
NatEnable - SecureNAT 機能の仮想 NAT 機能の有効化
NatGet - SecureNAT 機能の仮想 NAT 機能の設定の取得
NatSet - SecureNAT 機能の仮想 NAT 機能の設定の変更
NatTable - SecureNAT 機能の仮想 NAT 機能のセッションテーブルの取得
Offline - 仮想 HUB をオフラインにする
Online - 仮想 HUB をオンラインにする
OpenVpnEnable - OpenVPN 互換サーバー機能を有効化 / 無効化
OpenVpnGet - OpenVPN 互換サーバー機能の現在の設定を取得
OpenVpnMakeConfig - OpenVPN 互換サーバー機能に接続可能なサンプルの OpenVPN 設定ファイルの生成
OptionsGet - 仮想 HUB のオプション設定の取得
PolicyList - セキュリティポリシーの種類と設定可能値の一覧を表示
RadiusServerDelete - ユーザー認証に使用する RADIUS サーバー設定の削除
RadiusServerGet - ユーザー認証に使用する RADIUS サーバー設定の取得
RadiusServerSet - ユーザー認証に使用する RADIUS サーバーの設定
Reboot - VPN Server サービスの再起動
RouterAdd - 新しい仮想レイヤ 3 スイッチの定義
RouterDelete - 仮想レイヤ 3 スイッチの削除
RouterIfAdd - 仮想レイヤ 3 スイッチへの仮想インターフェイスの追加
RouterIfDel - 仮想レイヤ 3 スイッチの仮想インターフェイスの削除
RouterIfList - 仮想レイヤ 3 スイッチに登録されているインターフェイス一覧の取得
RouterList - 仮想レイヤ 3 スイッチ一覧の取得
RouterStart - 仮想レイヤ 3 スイッチの動作の開始
RouterStop - 仮想レイヤ 3 スイッチの動作の停止
RouterTableAdd - 仮想レイヤ 3 スイッチへのルーティングテーブルエントリの追加
RouterTableDel - 仮想レイヤ 3 スイッチのルーティングテーブルエントリの削除
RouterTableList - 仮想レイヤ 3 スイッチのルーティングテーブル一覧の取得
SecureNatDisable - 仮想 NAT および DHCP サーバー機能 (SecureNAT 機能) の無効化
SecureNatEnable - 仮想 NAT および DHCP サーバー機能 (SecureNAT 機能) の有効化
SecureNatHostGet - SecureNAT 機能の仮想ホストのネットワークインターフェイス設定の取得
SecureNatHostSet - SecureNAT 機能の仮想ホストのネットワークインターフェイス設定の変更
SecureNatStatusGet - 仮想 NAT および DHCP サーバー機能 (SecureNAT 機能) の動作状況の取得
ServerCertGet - VPN Server の SSL 証明書の取得
ServerCertRegenerate - 指定された CN (Common Name) を持つ自己署名証明書を新たに作成し VPN Server に登録
ServerCertSet - VPN Server の SSL 証明書と秘密鍵の設定
ServerCipherGet - VPN 通信で使用される暗号化アルゴリズムの取得
ServerCipherSet - VPN 通信で使用される暗号化アルゴリズムの設定
ServerInfoGet - サーバー情報の取得
ServerKeyGet - VPN Server の SSL 証明書の秘密鍵の取得
ServerPasswordSet - VPN Server の管理者パスワードの設定
ServerStatusGet - サーバーの現在の状態の取得
SessionDisconnect - セッションの切断
SessionGet - セッション情報の取得
SessionList - 接続中のセッション一覧の取得
SetEnumAllow - 仮想 HUB の匿名ユーザーへの列挙の許可設定
SetEnumDeny - 仮想 HUB の匿名ユーザーへの列挙の禁止設定
SetHubPassword - 仮想 HUB の管理パスワードを設定する
SetMaxSession - 仮想 HUB の最大同時接続セッション数を設定する
SstpEnable - Microsoft SSTP VPN 互換サーバー機能を有効化 / 無効化
SstpGet - Microsoft SSTP VPN 互換サーバー機能の現在の設定を取得
StatusGet - 仮想 HUB の現在の状況の取得
SyslogDisable - syslog 送信機能の無効化
SyslogEnable - syslog 送信機能の設定
SyslogGet - syslog 送信機能の取得
TrafficClient - 通信スループット測定ツールクライアントの実行
TrafficServer - 通信スループット測定ツールサーバーの実行
UserAnonymousSet - ユーザーの認証方法を匿名認証に設定
UserCertGet - 固有証明書認証のユーザーの登録されている証明書の取得
UserCertSet - ユーザーの認証方法を固有証明書認証に設定し証明書を設定
UserCreate - ユーザーの作成
UserDelete - ユーザーの削除
UserExpiresSet - ユーザーの有効期限の設定
UserGet - ユーザー情報の取得
UserList - ユーザー一覧の取得
UserNTLMSet - ユーザーの認証方法を NT ドメイン認証に設定
UserPasswordSet - ユーザーの認証方法をパスワード認証に設定しパスワードを設定
UserPolicyRemove - ユーザーのセキュリティポリシーの削除
UserPolicySet - ユーザーのセキュリティポリシーの設定
UserRadiusSet - ユーザーの認証方法を RADIUS 認証に設定
UserSet - ユーザー情報の変更
UserSignedSet - ユーザーの認証方法を署名済み証明書認証に設定
VpnAzureGetStatus - VPN Azure 機能の現在の状態の取得
VpnAzureSetEnable - VPN Azure 機能の有効化 / 無効化
VpnOverIcmpDnsEnable - VPN over ICMP / VPN over DNS サーバー機能を有効化 / 無効化
VpnOverIcmpDnsGet - 現在の VPN over ICMP / VPN over DNS サーバー機能の設定を取得
それぞれのコマンドの使用方法については、"コマンド名 ?" と入力するとヘルプが表示されます。
コマンドは正常に終了しました。
□ VPN Server の管理者パスワードの設定
>ServerPasswordSet
□ 各種無効化:インターネット接続維持
>KeepDisable
>KeepGet
現在の状態 |無効
□ 各種無効化:OpenVPN 互換サーバー
>OpenVpnEnable no /PORTS:1194
>OpenVpnGet
OpenVPN 互換サーバー機能が有効|いいえ
□ 各種無効化:Microsoft SSTP VPN
>SstpEnable no
>SstpGet
SSTP VPN 互換サーバー機能が有効|いいえ
□ 各種無効化:VPN Azure
>VpnAzureSetEnable no
>VpnAzureGetStatus
VPN Azure 機能が有効|いいえ
□ 各種無効化:VPN over ICMP・DNS
>VpnOverIcmpDnsEnable /ICMP:no /DNS:no
>VpnOverIcmpDnsGet
VPN over ICMP サーバーが有効|いいえ
VPN over DNS サーバーが有効 |いいえ
□ TCP リスナーの設定
既存は全削除、追加する44444 のみ有効化
>ListenerCreate 44444
>ListenerList
ポート番号|状態
----------+------
TCP 443 |動作中
TCP 992 |動作中
TCP 1194 |動作中
TCP 5555 |動作中
TCP 44444 |動作中
>ListenerDelete 443
>ListenerDelete 992
>ListenerDelete 1194
>ListenerDelete 5555
>ListenerList
TCP 44444 |動作中
□ いったん停止
>Quit
# ./vpnserver stop
□ DDns、NATトラサーバル、IPv6 の無効化
vpnserver の設定ファイルを直接編集
※ vpnserver を起動したまま編集しても元に戻されちゃうので、必ずvpnserverを停止してから編集のコト
# cp -p vpn_server.config vpn_server.config.org
# vi vpn_server.config
declare DDnsClient
{
bool Disabled true
declare ServerConfiguration
{
bool DisableIPv6Listener true
bool DisableNatTraversal true
□ 再起動&接続
残しておいたポートを指定して接続できること(指定しないと接続できないこと)
設定したパスワードの入力を求められること
# ./vpnserver start
# ./vpncmd localhost:44444 /SERVER
□ デフォルト HUB の削除
セキュリティのためというかデフォルトのHUB名は消しておく
>HubList
仮想 HUB 名 |DEFAULT
>HubDelete DEFAULT
□ 仮想 HUB の作成(ダミー用)
接続時にデフォルトで利用されるダミー用のHUB
HUBのパスワードも設定しとくこと
>HubCreate VpnHub0_dummy
パスワード:
確認入力 :
□ 仮想 HUB の作成(通常利用のためのHUB)
実際の接続で利用するHUB
※ 接続時にこのHUB名を明示的に指定させるためにダミーとは別に作成
こちらもHUB管理用のパスワードを設定しとくこと
>HubCreate VpnHub1
パスワード: *********************
確認入力 : *********************
□ 仮想 HUB の確認
>HubList
仮想 HUB 名 |VpnHub0_dummy
仮想 HUB 名 |VpnHub1
□ IPsec VPN サーバー機能の有効化(デフォルトはダミーHubに設定)
L2TP/IPsec で接続するための設定
PSKの文字列はクライアントから接続するときに必要です
(Androidなど一部クライアントでは使える文字に制限があるようです)
>IPsecEnable /L2TP:yes /L2TPRAW:no /ETHERIP:no /PSK:ipsecvpn /DEFAULTHUB:VpnHub0_dummy
>IPsecGet
L2TP over IPsec サーバー機能は有効 |はい
Raw L2TP サーバー機能は有効 |いいえ
EtherIP / L2TPv3 over IPsec サーバー機能は有効|いいえ
IPsec 事前共有鍵の文字列 |ipsecvpn
デフォルト仮想 HUB 名 |VpnHub0_dummy
□ 操作するHUBを指定(ダミー用設定)
>Hub VpnHub0_dummy
□ ダミーHub設定:仮想 HUB の匿名ユーザーへの列挙の禁止、最大同時接続セッション数、オフライン設定
>SetEnumDeny
>SetMaxSession 1
>Offline
>OptionsGet
匿名ユーザーに対する仮想 HUB の列挙|禁止
最大同時接続セッション数 |1
状態 |オフライン
仮想 HUB の種類 |スタンドアロン
□ 操作するHUBを指定(通常利用HUB設定)
>Hub VpnHub1
□ 利用Hub設定:仮想 HUB の匿名ユーザーへの列挙の禁止、最大同時接続セッション数、オンライン設定
>SetEnumDeny
>SetMaxSession 1
>OnLine
>OptionsGet
匿名ユーザーに対する仮想 HUB の列挙|禁止
最大同時接続セッション数 |1
状態 |オンライン
仮想 HUB の種類 |スタンドアロン
□ 利用Hub設定:SecureNAT 機能の仮想 NAT 機能の無効化
>NatDisable
>NatGet
仮想 NAT 機能を使用する |いいえ
□ 利用Hub設定:SecureNAT 機能の仮想ホストのネットワークインターフェイス設定
>SecureNatHostSet /MAC:none /IP:10.10.10.110 /MASK:255.255.255.0
>SecureNatHostGet
MAC アドレス |00-AC-11-C6-09-A2
IP アドレス |10.10.10.110
サブネットマスク|255.255.255.0
□ 利用Hub設定:SecureNAT 機能の仮想 DHCP サーバー機能の有効化
>DhcpSet /START:10.10.10.150 /END:10.10.10.159 /MASK:255.255.255.0 /EXPIRE:7200 /GW:none /DNS:none /DNS2:none /DOMAIN:none /LOG:yes
>DhcpGet
仮想 DHCP 機能を使用する |はい
配布アドレス帯の開始 |10.10.10.150
配布アドレス帯の終了 |10.10.10.159
サブネットマスク |255.255.255.0
リース期限 (秒) |7200
デフォルトゲートウェイアドレス |なし
DNS サーバー アドレス 1 |なし
DNS サーバー アドレス 2 |なし
ドメイン名 |
NAT および DHCP の動作のログ保存 |はい
プッシュする静的ルーティングテーブル|
□ 利用Hub設定:SecureNAT 機能の有効化
>SecureNatEnable
>SecureNatStatusGet
仮想 HUB 名 |VpnHub1
NAT TCP/IP セッション数 |0 セッション
NAT UDP/IP セッション数 |0 セッション
NAT ICMP セッション数 |0 セッション
NAT DNS セッション数 |0 セッション
割り当て済み DHCP クライアント数|0 クライアント
カーネルモード NAT で動作中 |いいえ
Raw IP モード NAT で動作中 |いいえ
□ 利用Hub設定:VPN Server のリブート(設定反映)
>Reboot
□ 利用Hub設定:仮想 HUB の現在の状況の取得
>StatusGet
仮想 HUB 名 |VpnHub1
状態 |オンライン
種類 |スタンドアロン
SecureNAT 機能 |有効
□ 利用Hub設定:仮想 HUB に ユーザ作成(パスワード設定)
VPN に接続するためのユーザ設定
パスワードも必ず設定のコト
>UserCreate HubUser1 /GROUP:none /REALNAME:none /NOTE:none
>UserPasswordSet HubUser1
パスワード: *********************
確認入力 : *********************
>UserList
ユーザー名 |HubUser1
認証方法 |パスワード認証
有効期限 |無期限
□ HUB 操作解除
>Hub
□ ブリッジデバイス(TAP)の作成
>BridgeCreate VpnHub1 /DEVICE:tap1 /TAP:yes
>BridgeList
1 |VpnHub1 |tap1 |動作中
※ この仮想ブリッジデバイスは仮想HUBにのみ接続して物理LANには接続しない設定となっています
※ このため仮想HUBに接続している相手のみしか通信できません
□ 設定終了
>QUIT
TAPデバイスの確認
# ip tap
tap_tap1: tap
TAPデバイスへの自動IP付与確認(vpnserverの再起動)
vpnserver をサービスとして起動して、設定した通りにIPが自動付与されることを確認
# ./vpnserver stop
# systemctl start vpnserver
# ip addr show tap_tap1
5: tap_tap1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:ac:34:c7:73:0c brd ff:ff:ff:ff:ff:ff
inet 10.10.10.111/24 brd 10.10.10.255 scope global tap_tap1
valid_lft forever preferred_lft forever
TAPデバイスのコネクション状況確認
# nmcli con
名前 UUID タイプ デバイス
enp0s8 4759bdd1-c3dc-49a9-8104-b5f21ad93bd5 802-3-ethernet enp0s8
★ tap_tap1 ea250512-a295-4551-93d0-3e6e9b3a3f9e tun tap_tap1
enp0s3 34cd09a1-20b1-4afb-bbc1-89ce4f0a8912 802-3-ethernet --
TAPデバイス状況確認
# nmcli dev
デバイス タイプ 状態 接続
enp0s8 ethernet 接続済み enp0s8
★ tap_tap1 tun 接続済み tap_tap1
enp0s3 ethernet 切断済み --
lo loopback 管理無し --
ファイアウォールの VpnServer ポート解放設定
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>VPN</short>
<description>SoftEther VPN Server</description>
<port protocol="tcp" port="44444"/>
</service>
# firewall-cmd --add-service=vpnserver --zone=public --permanent
# firewall-cmd --add-service=ipsec --zone=public --permanent
# firewall-cmd --reload
ファイアウォール設定確認
# firewall-cmd --list-all
# firewall-cmd --service=vpnserver --get-ports --permanent
44444/tcp
# firewall-cmd --service=ipsec --get-ports --permanent
500/udp 4500/udp
以上
とりあえずサーバ側構築は完了
OSを再起動して、サービスとして自動起動&IPアドレス自動付与されることも確認しとくと良いかも
AndroidからL2TP/IPsecで接続する手順はこちらを見てみてくださいです