0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SoftEther VPNを使ってMacからWindowsへリモートデスクトップ接続をする

Posted at

寮においてあるパソコンに,自宅からリモートデスクトップ接続できるようにVPNを構築する。SoftEtherの開発者に大感謝。真似する場合のセキュリティ対策は自己責任でどうぞ。

環境

接続される側のPC

  • Windows 11 Pro
  • AMD Ryzen 5 4500
  • 16GB RAM
  • NVIDIA GeForce RTX 5060 Ti
    • 16GB VRAM

接続する側のPC

  • Mac OS Sequoia 15.6
    • Mac Book Pro 2018
  • Intel Core i5
  • 8GB RAM

VPNソフトウェア

  • SoftEther VPN 4.0 ( Ver. 4.44, Build9807 )

ネットワーク

  • 寮 : BB Excite (エキサイトMEC光)
  • 自宅 : Biglobe光

ネットワーク詳細とVPN接続方法

ネットワークの知識はほとんどないので間違っている可能性大

寮側で契約しているBB ExciteはIPoE(Transix)でありIPv4のアドレスが他人と共有されている状況になっている。この状況では特定のポート開放ができず,結果的にL2TP over IPsecを用いたVPN接続ができない。
(IPoEではない回線やIPv4での固定IPサービスなどを申し込めばよいのだろうが,そこまでして実現する動機はなかった。)

L2TP over IPsecが使えないということは,Mac OSに標準搭載されている機能を使ってのVPN接続ができない。そこでMS-SSTPを用いることとした。

接続される側(VPNサーバ)の準備

  1. SoftEther VPN セットアップウィザードを用いて”SoftEther VPN Server”をインストールし動作させる(インストール手順は様々なサイトに記載されているので割愛)。
    • インストール先はデフォルトのままにする
    • リモートアクセス VPNサーバとして構築する
    • パスワード認証でユーザを作成する
    • VPN Azureを有効にする
    • MS-SSTPを有効にする
  2. 次の項目をメモする
    • SoftEther VPN Azure ホスト名
    • SoftEther ユーザ名
    • SoftEther パスワード
    • ローカルIPアドレス(192.168.xx.xx)
  3. 一定時間の操作がなかった場合に電源が自動で落ちるような設定をすべて解除する。
  4. VPNがうまく接続できなかった場合に備えてChrome Remote DesktopやTeam Viewerなどの代替手段を用意する。
  5. 一度だけMicrosoftアカウントを用いてWindowsへログインしておく
    • サインイン方法は 設定 > アカウント > サインイン オプションから変更可能。
    • 一度だけログインした後は,Windows HelloやPINでのログインに戻してよい。

接続する側の準備

  1. Homebrewをインストールする(インストール手順は様々なサイトに記載されているので割愛)
  2. Microsoft Remote DesktopをApp Storeからインストールする
  3. MS-SSTPを使うために"sstp-client"をインストールする
    brew install sstp-client
    
  4. sstpcが使えるか確認する
    sstpc --version
    
  5. (パスが通っていなかったので)どこにあるか確認
    find "$(brew --prefix)" -name sstpc
    
    /usr/local/sbin にあったのでPATHに追加する
  6. .zshrcを開く
    open ~/.zshrc
    
  7. 最後の行に以下を追記する
    export PATH="/usr/local/sbin:$PATH"
    
  8. 反映させる
    source ~/.zshrc
    

接続する

  1. sstpcを用いて接続を行う
    sudo sstpc (VPN Azureホスト名) --user (ユーザ名) --password (パスワード) --log-stderr --cert-warn usepeerdns require-mschap-v2 noauth noipdefault refuse-eap noccp --tls-ext
    
    バックグラウンドで実行したい場合は最後に & をつける。
  2. VPNインターフェースを確認する
    ifconfig
    
    ppp0みたいなものが出てきたらそれで正解。以降はppp0がVPNインターフェースとして記載する。
  3. VPNサーバへのルートを追加する
    sudo route add -host (ローカルIPアドレス) -interface ppp0
    
  4. ルートを確認する
    route -n get (ローカルIPアドレス)
    
    結果がこんな感じになっていればOK
    route to: (ローカルIPアドレス)
    destination: (ローカルIPアドレス)
    interface: ppp0
    
  5. Microsoft Remote Desktopで接続する
    • PC Name : (ローカルIPアドレス)
    • User Account : (Microsoft Account e.g. hogehoge[アットマーク]outlook.com)

切断する

  1. sstpcのプロセスを確認する
    ps aux | grep sstpc
    
  2. 若い番号のプロセスを落とす
    sudo kill (プロセスID)
    

はまったところ

  • L2TP over IPsecを用いた通信ができなかった。
    • 別のWindows端末からSoftEtherのクライアントソフトを使って接続はできていたがL2TPを使っていないだけだろう。
  • VPN接続後もVPNを使わない通信ができてしまう。
    • default routeはVPNになっているがRDPの通信VPNを迂回していた。
  • Microsoftアカウントでサインインしている端末へのログインIDとパスワードが分かりにくい。
    • MicrosoftAccount/アカウント名 とか MicrosoftAccout/アカウント名から@以降を除いたもの とかいろいろ試した。
    • 一度サインインしておくことが必要と気が付くまでに時間がかかった。
  • 必ずsstpcのプロセスが2つできる。
    • 片方はKillできない。なぜかは調べていない。
  • sstpcコマンドはバックグラウンドで実行したほうが操作性がよい。
0
0
1

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?