今回は自宅サーバーにログインするためSoftEther VPNの設定方法を紹介します。
SoftEther VPNを紹介する意義
本連載は始まって15年以上になります。SoftEther VPNもリリースされて10年以上になりますが、本連載で正面切って紹介されたことはありませんでした。
SoftEther VPNは、おそらく聞いたことがないという読者はいないでしょう。著名なVPNサーバークライアントです。多機能なぶん設定はやや難しく、今となっては純粋にVPNサーバーを構築するのであれば第614回を参考してWireGuardを検討するのが簡単です。第759回で紹介したように、Ubuntu 23.
ではなぜ今SoftEther VPNなのでしょうか。現在はNTT東西とフレッツ光サービスを契約している場合、IPoE方式によるインターネット接続が使用できます。メリットも多いですがデメリットもあり、これまでのような容易さで自宅サーバーへのアクセスができなくなります。
対策はいくつか考えられます。そのうちの1つはSoftEther VPNに付随するVPN Azureを使用することです。これはSoftEther VPNから簡単に使えるダイナミックDNS機能です。
今どき自宅サーバーが必要な用途はNASくらいしかなく、NAS専用機であればこのあたりの機能を持っているだろうという意見も分からなくはないのですが、筆者のように自宅サーバーに回帰するのが妥当ではないかと考える勢もいるのです。
そんな中選択したのがこの方式で、今更感があっても紹介することにしました。
準備
SoftEther VPNは、現在のUbuntuであればリポジトリにパッケージもあるのですが、これは使用しません。SoftEther VPNがオープンソース
Ubuntuのパッケージにあるのは
使用するバージョンは最新のRTM

バイナリ内にsystemdのユニットファイルは含まれないため、GitHubのリポジトリから取得しておきます。
インストール
端末を起動し、前述の2つのファイルをダウンロードしたフォルダーに変更し、次のコマンドを実行してください。
$ tar xf softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-x64-64bit.tar.gz $ sudo cp -r vpnserver/ /opt/ $ sudo cp softether-vpnserver.service /etc/systemd/system $ cd /opt/vpnserver/ $ sudo make $ sudo systemctl daemon-reload $ sudo systemctl enable --now softether-vpnserver.service
これでSoftEther VPNサーバーが動作したでしょう。確認にはsystemctl status softether-vpnserver.
コマンドを実行してください。
続けて、Server Managerも取得します。設定自体はコマンドからも行えますが、複雑になるので設定ツールを使用したほうがいいでしょう。Web管理画面もありますが、これから紹介する初期設定は行えませんでした。
Windows PCがある場合はそちらで実行してください。UbuntuでもWineがあれば動作します。せっかくなので今回はWineを使用する方法を紹介します。
前述のダウンロードセンターにアクセスし、

やはり端末を起動し、カレントフォルダーをダウンロードしたフォルダーに移動して次のコマンドを実行してください。
$ unzip softether-vpn_admin_tools-v4.42-9798-rtm-2023.06.30-win32.zip $ sudo apt install wine $ wine ./vpnsmgr.exe
サーバー設定
Wineで起動するとなぜかServer Managerが英語メニューになりますので、そのまま紹介します。起動するとまずは

接続設定が表示されるので、

Server Managerに戻りますが、新しい項目が追加されているので、そこを選択して

管理パスワードを決定します

サーバーにするかブリッジにするかの選択が表示されるので、一番上の


仮想ハブの名称を入力します

今回のキモである

メインメニューが表示されるので、下にある


「Local Bridge Setting」

「Manage Virtual Hub」

これで最低限必要な設定が完了しました。
TapデバイスへのIPアドレス付与
SoftEther VPNサーバーは稼働しましたが、このままだとSoftEther VPN経由では稼働しているサーバー
Tapデバイス名が192.
の場合、次のコマンドを実行してください。
$ sudo ip addr add 192.168.13.11/24 dev tap_softether
なお、Tapデバイス名はip tap
コマンドを実行すると表示されます。
これで付与したIPアドレスでアクセスできるようになりますが、このままだと起動するたびに手動でこのコマンドを実行することになります。それは面倒なので、systemdのユニットファイルを変更して自動的にIPアドレスを付与するようにします。次のコマンドを実行してください。
$ sudo editor /etc/systemd/system/softether-vpnserver.service
以下を参考に
[Service]
Type=forking
EnvironmentFile=-/opt/vpnserver
ExecStart=/opt/vpnserver/vpnserver start
ExecStop=/opt/vpnserver/vpnserver stop
KillMode=process
Restart=on-failure
ExecStartPost=/bin/sleep 5
ExecStartPost=/sbin/ip addr add 192.168.13.11/24 dev tap_softether
ExecStartPost=/sbin/ip link set mtu 1280 dev tap_softether
ExecStop=/sbin/ip addr del 192.168.13.11/24 dev tap_softether
おなじみのコマンドを実行して適用します。
$ sudo systemctl start softether-vpnserver.service $ sudo systemctl daemon-reload
続けてクライアントの設定を
サーバーの設定は以上です。引き続きクライアントを設定する必要がありますが、紹介すべきかどうかは悩ましいところで、続くかどうかは未定です。Windowsクライアントであれば特に説明する必要はありませんしね。