🛜

自宅サーバーを持つ人必見!VPNサーバーを簡単に構築する方法

2024/12/02に公開

はじめに

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」に設定したホスト名が表示さるので、クリックする
  • パスワードを求められるのでログインパスワードを入れる
GitHubで編集を提案

Discussion