LinuxでのSoftEther VPN構築:強力な「オールインワン」VPNソリューション

Network tutorial - IT technology blog
Network tutorial - IT technology blog

OpenVPNの設定の難しさやWireGuardのブロックに悩まされるのはもう終わり

以前、50人規模のオフィスのシステム管理をしていた際、最も頭を悩ませたのはセキュリティではなく、ユーザーサポートでした。OpenVPNは非常に優れていますが、ITに詳しくないユーザーにクライアントをインストールさせるのは至難の業です。一方で、WireGuardは高速ですがUDPプロトコルを使用するため、企業のファイアウォールによって簡単に遮断されてしまうことがあります。

当時、私が必要としていたのは、セキュアでありながら、ユーザーにサードパーティ製アプリのインストールを強いることなく、あらゆるデバイスで動作するVPNシステムでした。そこで出会ったのがSoftEther VPNです。

SoftEtherは単なるVPNソフトウェアではありません。L2TP/IPsec、SSTP(Microsoft製)、OpenVPNから、あらゆるファイアウォールを貫通するために443ポートで動作する独自プロトコルまでをサポートする、マルチプロトコル・エンジンです。最大の利点は、Windows上の非常に直感的なGUIを使用してLinuxサーバーを管理できることです。

クイックスタート:5分でSoftEther VPN Serverをインストールする

UbuntuまたはDebianのVPSが手元にある場合は、以下のコマンドをコピー&ペーストしてシステムを起動しましょう。

# システムの更新とビルドツールのインストール
sudo apt update && sudo apt install build-essential wget -y

# 安定版のダウンロード(例:v4.38)
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.38-9760-rtm/softether-vpnserver-v4.38-9760-rtm-2021.08.17-linux-x64-64bit.tar.gz

# 展開とビルド
tar xzvf softether-vpnserver-*.tar.gz
cd vpnserver
make

# サーバーの起動
sudo ./vpnserver start

makeの実行中に、3回確認を求められます。規約に同意するために「1」を入力してEnterを押すだけです。サーバーが起動したら、すぐに管理パスワードを設定してください。

./vpncmd
# 1を選択し、その後Enterを2回押す
# コマンド入力: ServerPasswordSet

なぜSoftEtherは競合を圧倒するのか?

多くのプロジェクトを実際に運用してきた中で、SoftEtherは他のソリューションが抱えがちな3つの致命的な弱点を解決していると感じます。

  • SSTP (Secure Socket Tunneling Protocol): これはWindowsユーザーにとっての「秘密兵器」です。設定からサーバーアドレスを入力するだけで完了し、アプリのインストールは不要です。HTTPS(Port 443)上で動作するため、Webサイトにアクセスするようにスムーズにファイアウォールを通過します。
  • モバイル向けL2TP/IPsec: iPhoneとAndroidはどちらもこのプロトコルを標準サポートしています。共有鍵(Secret Key)とユーザー名を入力するだけで、30秒以内に接続可能です。
  • ローカルブリッジ (Local Bridge): この機能により、VPNの仮想ネットワークカードをサーバーの物理ネットワークに直接接続できます。リモートのPCはオフィスと同じ帯域のIPを取得できるため、印刷やファイルサーバーへのアクセスが、あたかもその場にいるかのようにスムーズに行えます。

詳細設定:システムをマスターするためのステップ

1. SoftEther VPN Server Managerを活用する

Linuxでコマンドを打ち続ける必要はありません。個人のPCにSoftEther VPN Server Manager for Windowsをダウンロードしましょう。このツールを使えば、Linuxサーバーに接続し、グラフィカルなインターフェースですべてを構成できます。ユーザー作成から仮想ハブの管理まで、すべてクリック操作で完結します。

2. ローカルブリッジ – 社内ネットワーク開通の鍵

VPN接続されたデバイス同士が通信できるようにするには、ローカルブリッジの設定が必要です。管理画面で「ローカルブリッジ設定」を選択し、仮想ハブを選択して、物理ネットワークカード(通常はeth0またはens3)に紐付けます。

実体験に基づく注意点: DigitalOceanやVultrなどの手順を利用している場合、ローカルブリッジがプロバイダー側で制限されていることがあります。その場合の解決策は、SecureNATを有効にすることです。これは自動的にDHCPサーバーとNATの役割を果たしてくれる非常に便利な機能ですが、若干CPUリソースを消費します。

3. L2TP/IPsecとSSTPの有効化

モバイルデバイス向けに最適化するために、以下の機能を有効にしましょう。

  • L2TP over IPsec: 「L2TP over IPsec サーバー機能を有効にする」にチェックを入れ、強力な IPsec 事前共有鍵 (Pre-Shared Key) を設定します。
  • SSTP: この機能をオンにするだけです。独自のSSL証明書がない場合は、SoftEtherの無料ダイナミックDNS(*.softether.net 形式)を使用して、自動的に証明書を取得することも可能です。

アドバンス:大規模システム向けのパフォーマンス最適化

ユーザー数が20〜30人を超えると、SecureNATは大量のリソースを消費します。仮想NATの処理だけでCPU使用率が50%まで跳ね上がるのを見たことがあります。最善の方法は、SecureNATをオフにし、Linux上のdnsmasqと組み合わせたBridge Tap Interfaceを使用することです。この方法により、CPU負荷を最大40%削減し、データ転送速度を向上させることができます。

Tap Interfaceを作成するには、vpncmdで以下を入力します。

BridgeCreate VirtualHubName /DEVICE:soft /TAP:yes

その後、Linux上に新しく現れた tap_soft インターフェースにIPを設定すれば完了です。

小さいけれど重要な注意点

  • ファイアウォールのポート開放: ファイアウォールでポート443 (SSTP)、500/4500 UDP (L2TP) を開放するのを忘れないでください。この手順を忘れると、接続できない原因がわからず一日中悩むことになります。
  • 定期的なログ確認: SoftEtherは server_log フォルダに詳細なログを保存します。ユーザーからエラー報告があった場合は、まずここを確認してください。多くの場合、エラーの原因はシステムの時刻同期(NTP)のズレや、事前共有鍵の入力ミスです。

SoftEtherに切り替えたことで、VPN関連のサポートチケットを80%削減することができました。ユーザーに複雑なインストール手順を説明する必要はなくなり、今では「入力して実行」するだけです。

Share: