0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Posted at

今回やりたいこと

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シークレット
送信全トラフィック オン(※必要に応じて)

3.保存して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 を作成し有効化

最後に

無料かつ簡単に構築でき、VPN環境を作ってみたいという方にはおすすめです。
今後は証明書認証・ログ連携・VPNログの可視化などにも挑戦したいと思います。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?