🛡️

AWS上のSoftEtherにiPhoneから接続してみた

に公開

AWSにSoftEther VPNを構築してiPhoneから接続できる環境を作ってみた🛡️

✅ やりたいこと

AWS EC2(Ubuntu)にSoftEther VPNを構築し、
自宅などのネットワーク環境から iPhoneのL2TP/IPSec接続 を確認できる構成を作りたい。


💡 構成概要

  • クラウド: AWS EC2(Ubuntu 22.04)
  • VPNサーバ: SoftEther VPN Server
  • クライアント: iPhone(L2TP/IPSec)
  • 認証方式: ユーザー+パスワード認証
  • 通信ポート:
    • UDP 500, 1701, 4500(L2TP/IPsec)
    • TCP 443(VPN管理用)

🛠️ 構築手順メモ

1. EC2インスタンス作成

  • Ubuntu 22.04
  • セキュリティグループに以下を許可:
    • UDP: 500, 1701, 4500
    • TCP: 443

2. SoftEther VPN Server インストール

wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.44-9807/softether-vpnserver-v4.44-9807-rtm-2025.04.16-linux-x64-64bit.tar.gz
tar zxvf softether-*.tar.gz
cd vpnserver
make

3. VPN設定(vpncmd)

  • 仮想HUB作成:testvpn
  • ユーザー:Test123
  • パスワード設定
  • L2TP/IPsec 有効化(シークレットキーは任意)

4. 自動起動設定(systemd)

# systemd ファイル作成後に
sudo systemctl enable vpnserver
sudo systemctl start vpnserver

📱 iPhoneからのVPN接続設定(L2TP/IPsec)

以下の手順で、iPhoneからSoftEther VPNサーバへL2TP接続を行います。

🔧 設定手順

  1. iPhoneの設定アプリを開く
    「設定」 → 「VPNとデバイス管理」 → 「VPN」 → 「VPN構成を追加」

  2. 各項目を以下のように入力する

項目 設定内容
タイプ L2TP
説明 任意の名前(例:ソフトイサーVPN)
サーバ Elastic IP(例:VMのパブリックIPアドレス
アカウント SoftEtherで作成したユーザー名(例:Test123
パスワード 上記アカウントに設定したパスワード
シークレット(事前共有鍵) VPN構築時に設定したIPsecシークレット
送信全トラフィック オン(※必要に応じて)
  1. 保存してVPNを有効化
    • VPNスイッチをオンにして接続
    • 「接続済み」と表示されれば成功

✅ 接続成功時の画面(例)

接続が成功すると、以下のように「VPN接続済み」と表示されます:

VPN接続成功画面1
VPN接続成功画面2


✅ 接続成功時の確認例

項目
割り当てアドレス 192.168.30.10
接続時間 0:13(など)
通信環境 モバイル回線(例:4G)

💡 補足

  • この構成では、SoftEther VPN サーバ上で L2TP/IPsec の設定が正しく行われている必要があります。
  • シークレット(IPsec事前共有鍵)は iPhone 側とサーバ側で一致させてください。

🧩 躓いたポイントまとめ

1. vpnserver の起動確認エラー

  • systemctl status vpnserver 実行時に Unit vpnserver.service could not be found. と表示
  • → systemd ユニットファイル未作成だった(手動作成が必要)

2. ユーザー認証失敗

  • iPhoneから接続できない → vpncmd でユーザー作成が抜けていた

3. vpncmd のディレクトリ混乱

  • ./vpncmd 実行時に Is a directory → 実行ファイルは bin/vpncmd/vpncmd に存在

4. L2TP接続後のPPPエラー

  • DHCP取得失敗ログあり → SecureNAT 有効化と仮想HUBの指定が抜けていた

5. systemd の自動起動設定

  • vpnserver.service 自作。起動テスト前に AMIバックアップ を取得(日本語エラーに注意)

6. AMI作成時のエラー

  • エラー:Value for parameter Description is invalid
  • → AMIの説明に日本語を含んでいた → 英数字に修正し成功

7. VPN接続後の状態誤解

  • VPN接続 = インターネット接続ではない
  • → VPNはEC2との安全なトンネル確立。NATやルーティング設定は別途必要

🧪 トラブルと対策(再掲)

トラブル内容 原因 解決策
VPN接続できない(iPhoneなど) セキュリティグループでポート未開放 UDP 500, 1701, 4500 / TCP 443 をセキュリティグループで許可
VPN接続時に「認証失敗」と出る ユーザー作成 or パスワード設定ミス vpncmd でユーザー・パスワード再設定
SoftEtherが起動しない systemd の設定不足・有効化忘れ sudo systemctl enable/start vpnserver を実行
VPN接続しても通信できない(社内など) ルーティング設定またはNAT設定の不足 SoftEtherのNAT/ローカルブリッジ/ルート設定を確認
VPN起動後もポートがLISTENしていない SoftEther設定ミス or ファイアウォール制限 sudo ufw status などでポート開放状況を確認
L2TP/IPsecが有効になっていない vpncmd で機能がOFFのままになっている VPN Server> IPsecEnable コマンドで有効化
自動起動しない systemd に登録していない /etc/systemd/system/vpnserver.service を作成し有効化

🔚 最後に

SoftEtherは設定が多機能で最初は少し手間ですが、
L2TP, SSTP, OpenVPN など幅広く対応しており、VPN学習や実験には最適でした!

今後は証明書認証・ログ連携・VPNログの可視化などにも挑戦したいと思います💪

Discussion