自宅サーバーを持つ人必見!VPNサーバーを簡単に構築する方法
はじめに
softetherというOSSを使って簡単にVPNサーバーを構築して自宅PCにアクセスできるようにする方法を記事にします。
VPNは高価なルーターが必要だったり、ネットワークのプロバイダー設定など高度な知識と手間がかかるものです。しかし、この方法を使えば、有線接続したPCさえあれば無料で簡単にVPNを構築することができます。
softetherとは
SoftEther VPN はオープンソースの、無償で、複数プラットフォームおよび複数 VPN プロトコル対応の VPN ソフトウェアであり、Apache License 2.0 で提供され、筑波大学における研究プロジェクトとして運営されています。
世界中で最も強力で使用が簡単な、複数 VPN プロトコルに対応した VPN ソフトウェアの 1 つで、 Windows、Linux、Mac、FreeBSD および Solaris 上で動作する。
前提 VPNとは?なぜsshがVPNが必要か
VPNとは
VPNはVirtual Private Networkの略で、これを利用することでインターネットなどの既存の IP ネットワークの中に、安全が確保された仮想のネットワークを構築し、その仮想のネットワークの中で自由に通信を行うことができます。詳しくはsoftetherのドキュメントをご覧ください。1.1 SoftEther VPN とは
なぜsshがVPNが必要か
結論から言うとsshにVPNは必ずしも必要ではありません。しかし、VPNを利用して同一ネットワークにアクセスした状態でssh接続することで、簡単かつよりセキュアにssh接続が可能になります。とくに、ネットワークのプロバイダーの設定によってはVPNを利用しないとssh接続自体ができない設定になっていることもよくあります。(自分の研究室はそうでした)
一方で、パスワードが漏れてしまうなどと自宅ネットワークに入りたい放題になってしまうなど、自宅にVPNサーバを立てることのリスクもあります。
SoftEther VPNのインストールと設定
注意
この記事に書いてあることは自己責任でお願いします。VPNの性質上、パスワードが漏れてしまうと自宅ネットワークに簡単にアクセスできてしまう危険性があります。
環境
- クライアント m1 macbook air
- VPNサーバー 有線接続をしたwindows11
- SoftEther Ver4.43
SoftEtherのダウンロードとインストール
SoftEtherのダウンロードページから、以下のように選択して一番言うのファイルをダウンロードします
インストールするソフトウェアとしてSoftEther VPN Serverを選択し、インストールする
これ以外は、特別設定は要りません。
インストールが終わると自動的にSoftEther VPN Server Managerが起動します。今回はこのPCをVPNサーバーとするので、localhost (This server)を選択してConnect/接続する。
強力なパスワードを設定する。
セットアップ画面が出てくるので「リモートアクセスVPNサーバー」
VPNサーバ上の仮想ハブの名称を決める。特に希望がなれればそのままでok。
ダイナミック DNSのHostnameを確認する。vpn*****.softether.netというように設定されているが被らなけば変えられる。
これらを確認したら、閉じるを押す。次の画面ではL2TPなどの追加設定が出てくるが、必要な設定はないのでOKを押す。
次の画面では、VPN Azureを有効にするを選択し、OKを押して進む。
次に、接続するユーザプロファイルを作成する。ユーザーを作成するを選択。
新規ユーザを作成する。ユーザー名とパスワードを設定する。(できるだけわかりにくいものにすること。これが突破されると外部から自宅のネットワークに入り放題になってしまうため。)
ローカルブリッジの設定からブリッジ接続する Ethernet デバイスを選択してくださいをクリックして、自分のPCがインターネットに接続するために使っているネットワークアダプタを選択
これでSoftEtherVPNサーバーの設定が完了しました。お疲れ様です。
SoftEther VPNサーバーにアクセス
ダイナミック DNSを確認しておきます。SoftEther VPN Managerから設定した接続名をクリックしてダイナミック DNSを確認してコピーしておく。
mac側の設定
MacでSSTP方式のVPNに接続方法は、有料のSSTP Connectなどがありますが、今回はsstp-clientというOSSを利用します。
VPNに接続
- homebrewを事前にインストールしておいてください。していない方は、以下のコマンドを実行。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- sstp-clientをインストール
$ brew install sstp-client
- sstpcコマンドが使えるか確認
$ sstpc --version
sstp-client version 1.0.20
- sstp-clientでVPN接続
以下のコマンドを実行。先ほど設定したazureダイナミックDNS,ユーザー名,パスワードを入れる
% sudo sstpc azureダイナミックDNS --user ユーザ名 --password パスワード --log-stderr --cert-warn usepeerdns require-mschap-v2 noauth noipdefault defaultroute refuse-eap noccp --tls-ext
macから自宅PCに接続
ここまできたらあとはssh接続するのみです。
OpenSSHサーバーの有効化(自宅PC側)
Microsoftのドキュメントにしたがって行います。PowerShellを使う方法だとwindows homeでも設定可能です。Windows Server 2025 で OpenSSH を有効にする
macから自宅PCに接続
以下のコマンドから接続が可能です。自宅PCのIPv4アドレスは、コマンドプロンプト(Win + Rで起動)を起動して、「ipconfig」と打つと表示されます。
ssh <自宅PCのユーザー名>@<自宅PCのIPv4アドレス>
パスワードを入れるように言われるので自宅PCのユーザーのログインパスワードを入れます。これでssh接続まで完了です!
おまけ vscodeでssh接続
vscodeからsshができるようになるとファイルの編集や受送信が楽になります。
- ctrl(macはcmd) + shift + xで拡張機能を開く
- 拡張機能のマーケットプレースで「Remote Development」を検索し、表示された「Remote Development」欄に表示されている「インストール」ボタンをクリックしてインストール
- 左側にリモートエクスプローラーという拡張機能が追加されるので押す
- 「リモート エクスプローラー」の横にあるメニューをクリックして表示されるメニューから「リモート(トンネル/SSH)」を選択
- SSHの横にある「歯車アイコン」をクリック
- 「更新するSSH構成ファイルを選択する」メニューが表示されるので、SSH接続用の設定を行うファイル指定。(どちらでもいい)
- そこに以下の内容を記載して保存
Host ホスト名(表示用なのでなんでもいい)
HostName 自宅PCのIPv4アドレス
User 自宅PCのユーザー名
- リモート(トンネル/SSH)部分にカーソルを持っていくと更新アイコンが表示されるので更新する
- 設定ファイルの「Host」に設定したホスト名が表示さるので、クリックする
- パスワードを求められるのでログインパスワードを入れる
Discussion