LoginSignup
1
0

Android 13でOpen SSTP Clientを使ってSoftEther VPNサーバにSSTP接続する

Last updated at Posted at 2024-01-23

はじめに

長らくリモートワークをしており、VPN接続して会社のサーバを自宅から見に行っています。
私は学生時代からずっとiPhoneユーザだったのですが、思うところあって今回Androidに買い替えました。
それまでは会社のsoftether VPNサーバにiOSの「SSTP Connect」(有料)を使って接続していました。
さいわい、Android購入前に、AndroidにもSSTP接続が可能な「Open SSTP Client」なるものがあるとの情報を得たため、Androidに乗り換えました。

ところが、「SSTP Connect」と違って、「Open SSTP Client」を使うには一手間、具体的にはCA証明書をAndroid端末側に入れなければなりませんでした。

数日かけてやっと接続できるようになりました。
「Open SSTP Client」のレビューには、SoftEtherのVPNサーバに接続できた!なるものがいくつか見られたものの、インターネット上のまとまった記事は見つからなかったので、今回記録として残しておきます。

環境

SoftEther VPNサーバ

  • Windows 10 Version 22H2 Build19045.3930 (MinisforumのミニPC)
  • SoftEther VPN 4.0(Ver4.39, Build 9772)
  • 社内LANに設置
  • hostname: hogefuga.softether.net
  • port: 5555
  • username: test111
  • password: p@ssword

Android

  • OPPO Reno7 A
  • OS: ColorOS 13 | Android 13 CPH2353_11_F.56
  • Open SSTP Client: 1.6.5.1
  • 自宅からの接続

設定

SoftEther VPN側の設定

5555番ポートを開けておく

  • 今回は5555番のポートを接続に使うので、「SoftEther VPNサーバー管理マネージャ」の「リスナーの確認」でTCP 5555が「動作中」になっていることを確認します。
  • 念の為、VPNサーバの5555番ポートと疎通可能か、確認しておく。cf. ポート疎通確認方法

ルート証明書の作成

「SoftEther VPNによるVPN環境構築(21) TLSサーバー検証をオンにするために必要なこと」という記事の、「TLSサーバー検証に合格するための設定」を参考に、ルート証明書を作成します。

流れとしては、

  1. 「SoftEther VPNサーバー管理マネージャ」を起動して、ルート証明書(.cerと.keyという拡張子のファイル)のエクスポート
  2. 「SoftEther VPNサーバー管理マネージャ」でサーバー証明書の作り直し。証明書の有効期間を824日にするのがミソです。(iPhoneだとこの設定が必要でした。Androidだけだったら不要かも)

拡張子を変える!

Androidで実際に使うのは.cerファイルのみです。
重要ポイントとして、拡張子を".cer"から".crt"に変える、というのがあります。
cerもcrtも中身は同じなのですが、なぜかAndroidだとcerファイルだと読んでくれず、crtファイルにしたら読み込んでくれました。
なので、WindowsのPCからAndroidにCA証明書を移す時点で、拡張子を".crt"に変えてしまいましょう。

ちなみに、

  • Windowsで発行:cer
  • Linuxで発行:crt

とのことです。

CA証明書をAndroidに移す

iPhoneと違って、Windows機とAndroid機をUSB-Cケーブルで直接接続すれば、任意の場所にファイルが移せるのは楽ですね。".crt"ファイルをAndroidのDownloadsあたりにコピーします。

Android側の設定

CA証明書をインストールする

  • (歯車マークの) 「設定」アプリ→「パスワードとセキュリティ」→「システムセキュリティ」→(ずっと下の方に)「認証情報ストレージ」→「ストレージから証明書をインストール」→「CA証明書」からインストール。ここで色々聞かれますが、自分で作成したものなので「インストールする」を選び続け、先ほどコピーしてきた.crtファイルを選びます
  • インストールが成功すると、「設定」→「パスワードとセキュリティ」→「システムセキュリティ」→「認証情報ストレージ」の「信頼できる証明書」→「ユーザー」タブに、自分のSoftEther VPNサーバのDDNSホスト名(今回の場合なら、hogefuga.softether.net)が表示されています

Open SSTP Clientで接続する

  • Google Playストアから、Open SSTP Clientをインストールしてきます

  • 英語表記でビビりますが、設定は下記の通り。SETTINGタブは、ポートとログくらいしかいじっていないはずです

HOMEタブ
  • Hostname: hogefuga.softether.net(自分のSoftEther VPNサーバのDDNSホスト名)
  • Username: test111(自分で設定したもの)
  • Password: p@ssword(自分で設定したもの)
SETTINGタブ
SSL Layer
  • Port Number: 5555
  • SSL Version: DEFAULT(ちなみに、TLSv1.3が選択されました)
  • Verify Hostname: チェックを入れる
  • Add Trusted Certificates: OFF
  • Enable Only Selected Cipher Suites: OFF
HTTP Proxy
  • Use HTTP Proxy: OFF
PPP Layer
  • MRU: 1500
  • MTU: 1500
PPP Authentication Protocol
  • Enable PAP: ON
  • Enable MS-CHAPv2: ON
  • Timeout Period(second): 3
PPP Netword Protocol
  • Enable IPv4: ON
  • Request Static IPv4 Address: OFF
  • Enable IPv6: OFF
DNS Server
  • Request DNS Server Address: ON
  • Use Custom DNS Server: OFF
Routing
  • Add Default Route: ON
  • Route Private/Unique-Local Addresses: OFF
  • Add Custom Routes: OFF
  • Enable App-Based Rule: OFF
Reconnection
  • Enable Reconnection: OFF
Log
  • Save Log: ON
  • Select Log Directory: 任意の場所

あとはHOMEタブから接続を試みて、接続を確認してください。
接続が行われると、"Current Status"に接続先や今のローカルIPアドレス情報などが表示されてConnectedと出るはずです。お疲れ様でした。

おわりに

副産物として、「SoftEther VPNによるVPN環境構築(21) TLSサーバー検証をオンにするために必要なこと」の記事の設定を行ったことで、iPhoneのSSTP ConnectでTLSサーバ検証がオンになり、よりセキュアな通信が可能になります。

2023/2/8追記

  • "hogefuga.softether.net"はport5555(今回の場合)
  • "hogefuga.vpnazure.net"はport443

でそれぞれ接続できるようです。
ルータをいじれなくても、port443はSSL/TLS通信のポートなので、ほとんどの場合開いており、問題なく使えます。
なので、ルータの設定を変更できない場合は、後者が選択肢として上がりそうでした。
hostnameとportの組み合わせは、ポート疎通確認方法で確認しました。

port hogefuga.softether.net hogefuga.vpnazure.net
5555  × 
443 ×  ◯ 
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0