Strongswan VPN トラフィックを AWS インターネットゲートウェイ経由でルーティングできない

Strongswan VPN トラフィックを AWS インターネットゲートウェイ経由でルーティングできない

ありがとうございます。すべてのプライベート インターネット トラフィックをルーティングするために、EC2 インスタンスに VPN サーバーをセットアップしたいのですが、うまく動作しません。ご協力いただければ幸いです。

次のようなセットアップがあります:

    Private Network  10.0.0.0/24    |               Internet              |  AWS VPC / Subnet 10.0.1.0/24
   PC                        Fritzbox Router                             IGW         EC2
 10.0.0.11   ----    10.0.0.1 ------| -- MyPublicLocalIP -- EC2PublicIP --| ------ 10.0.1.193

ルーターには、EC2 インスタンスで実行されている Strongswan インスタンスへの IPSec 接続があります。EC2 インスタンスのネットワーク インターフェイスでは、ソース/宛先チェックが無効になっています。セキュリティ グループは、PublicLocalIP およびサブネットからのソース (「すべてのソースを許可」も試しました) と宛先 any のすべての着信トラフィックを許可します。

VPN 接続を確立でき、プライベート ネットワークから 10.0.1.142 と 10.0.1.1 に ping できます。EC2 インスタンス自体も、8.8.8.8 などのパブリック IP に ping できます。ただし、tshark を使用して EC2 インスタンス上でパケットが一方向に送信されていることを確認できるにもかかわらず、プライベート ネットワークから 8.8.8.8 またはその他のパブリック IP に ping できません。

tshark -f "icmp"

   10 7.320371756 10.0.0.11 → 8.8.8.8 ICMP 98 エコー (ping) 要求 id=0x0034、seq=1/256、ttl=63
   11 8.332639368 10.0.0.11 → 8.8.8.8 ICMP 98 エコー (ping) 要求 id=0x0034、seq=2/512、ttl=63
   12 9.356457465 10.0.0.11 → 8.8.8.8 ICMP 98 エコー (ping) 要求 id=0x0034、seq=3/768、ttl=63
   13 10.380464177 10.0.0.11 → 8.8.8.8 ICMP 98 エコー (ping) 要求 id=0x0034、seq=4/1024、ttl=63
   14 11.404715789 10.0.0.11 → 8.8.8.8 ICMP 98 エコー (ping) 要求 id=0x0034、seq=5/1280、ttl=63
   15 12.428989444 10.0.0.11 → 8.8.8.8 ICMP 98 エコー (ping) 要求 id=0x0034、seq=6/1536、ttl=63

これはEC2のipsec.confです

設定のセットアップ
接続 %default
 タイプ=トンネル
 左=%任意
 左ID=EC2パブリックIP
 左サブネット=0.0.0.0/0
 自動=追加
 断片化=はい
 強制キャップ=いいえ
 モバイク=はい
 左認証=psk
 正しい認証=psk

コネFB
 ike=aes256-sha-modp1024
 esp=aes256-sha1-modp1024
 右=MyPublicLocalFQ.net
 [メールアドレス]
 右サブネット=10.0.0.0/24
 正しいDNS=8.8.8.8,8.8.4.4
 ikelifetime=3600秒
 キー寿命=3600秒

これはFritzboxルーターのIPSec設定です

vpncfg {
  接続 {
    有効 = いいえ;
    編集可能 = はい;
    lan_type は、次のとおりです。
    名前 = "EC2VPN";
    ボックスユーザーID = 0;
    常に更新 = はい;
    暗号化を拒否 = いいえ;
    dont_filter_netbios = はい;
    ローカライズ = 0.0.0.0;
    ローカル仮想IP = 0.0.0.0;
    リモートIP = 0.0.0.0;
    リモート仮想IP = 0.0.0.0;
    キープアライブIP = 0.0.0.0;
    ローカルID {
      fqdn = "MyPublicLocalFQ.net";
    }
    リモートID {
      fqdn = "EC2パブリックIP";
    }
    モード = phase1_mode_idp;
    phase1ss = "すべて/すべて/すべて";
    キータイプ = connkeytype_pre_shared;
    キー = "THE_PSK_KEY";
    cert_do_server_auth = いいえ;
    use_nat_t = はい;
    use_xauth = いいえ;
    use_cfgmode = いいえ;
    フェーズ2ローカルID {
      ipnet {
        アドレス = 10.0.0.0;
        マスク = 255.255.255.0;
      }
    }
    フェーズ2リモートID {
      ipnet {
        IPアドレス = 10.0.1.0;
        マスク = 255.255.255.0;
      }
    }
    phase2ss = "esp-all-all/ah-none/comp-all/pfs";
    accesslist = "ip any any を許可する";
  }
  ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
  "udp 0.0.0.0:4500 0.0.0.0:4500";
}

ipsecステータス

IKE charon デーモンのステータス (strongSwan 5.8.2、Linux 5.4.0-1029-aws、x86_64):
  稼働時間: 91 秒、2020 年 12 月 13 日 01:57:01 以降
  malloc: sbrk 1622016、mmap 0、使用済み 648096、空き 973920
  ワーカー スレッド: 16 のうち 11 がアイドル、5/0/0/0 が作業中、ジョブ キュー: 0/0/0/0、スケジュール済み: 3
  読み込まれたプラグイン: charon aesni aes rc2 sha2 sha1 md5 mgf1 random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp agent xcbc hmac gcm drbg attr kernel-netlink resolve socket-default connmark strike updown eap-mschapv2 xauth-generic counters
リスニング IP アドレス:
  10.0.1.193
接続:
          fb: %any...MyPublicLocalFQ IKEv1/2
          fb: local: [EC2PublicIP] は事前共有キー認証を使用します
          fb: リモート: [MyPublicLocalFQ] は事前共有キー認証を使用します
          fb: 子: 0.0.0.0/0 === 10.0.0.0/24 トンネル
セキュリティ アソシエーション (1 がアップ、0 が接続中):
          fb[2]: 90秒前に確立されました、10.0.1.193[EC2PublicIP]...MyPublicLocalIP[MyPublicLocalFQ]
          fb[2]: IKEv1 SPI: c1c1ef074becc316_i 3e3007efcc116605_r*、事前共有キーの再認証に43分かかる
          fb[2]: IKE提案: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
          fb{1}: インストール済み、トンネル、必須 1、UDP SPI の ESP: cba035a9_i 4fbe83d8_o
          fb{1}: AES_CBC_256/HMAC_SHA1_96/MODP_1024、5610 bytes_i (83 pkts、74秒前)、840 bytes_o (10 pkts、74秒前)、43分で再キー化
          fb{1}: 10.0.1.0/24 === 10.0.0.0/24

iptables 保存

# 2020 年 12 月 13 日日曜日 02:30:39 に iptables-save v1.8.4 によって生成されました
*マングル
:事前ルーティング受け入れ [214:19671]
:入力を受け入れます [163:15822]
:転送承認[0:0]
:出力受け入れ [82:7863]
:ポストルーティング受け入れ [82:7863]
-A FORWARD -s 10.0.0.0/24 -o eth0 -p tcp -m policy --dir in --pol ipsec -m tcp --tcp-flags SYN、RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360
専念
# 2020年12月13日日曜日02:30:39に完了
# 2020 年 12 月 13 日日曜日 02:30:39 に iptables-save v1.8.4 によって生成されました
*ナット
:事前ルーティング受け入れ [51:3849]
:入力受け入れ[0:0]
:出力受け入れ [4:361]
:ポストルーティング受け入れ [4:361]
-A POSTROUTING -s 10.0.0.0/24 -o eth0 -m ポリシー --dir out --pol ipsec -j ACCEPT
-A ポストルーティング -s 10.0.0.0/24 -o eth0 -j マスカレード
専念
# 2020年12月13日日曜日02:30:39に完了
# 2020 年 12 月 13 日日曜日 02:30:39 に iptables-save v1.8.4 によって生成されました
*フィルター
:入力ドロップ[0:0]
:フォワードドロップ [0:0]
:出力受け入れ[0:0]
:ufw-after-forward - [0:0]
:入力後のufw - [0:0]
:ufw-ログ後転送 - [0:0]
:ufw-ログ後の入力 - [0:0]
:ufw-ログ出力後 - [0:0]
:ufw-after-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-before-input - [0:0]
:ufw-before-logging-forward - [0:0]
:ufw ログ前の入力 - [0:0]
:ufw ログ出力前 - [0:0]
:ufw出力前 - [0:0]
:ufw-ログ許可 - [0:0]
:ufw-ログ拒否 - [0:0]
:ufw-ローカルではない - [0:0]
:ufw-拒否転送 - [0:0]
:ufw-拒否入力 - [0:0]
:ufw-拒否出力 - [0:0]
:ufw-ポリシー転送へスキップ - [0:0]
:ufw-ポリシー入力へのスキップ - [0:0]
:ufw-ポリシー出力へのスキップ - [0:0]
:ufw-トラックフォワード - [0:0]
:ufw-トラック入力 - [0:0]
:ufw-トラック出力 - [0:0]
:ufw-ユーザー転送 - [0:0]
:ufw-ユーザー入力 - [0:0]
:ufwユーザー制限 - [0:0]
:ufwユーザー制限受け入れ - [0:0]
:ufw-ユーザーログ転送 - [0:0]
:ufwユーザーログ入力 - [0:0]
:ufw-ユーザーログ出力 - [0:0]
:ufw-ユーザー出力 - [0:0]
-A 入力 -j ログ記録前の ufw 入力
-A 入力 -j 入力前のufw
-A 入力 -j 入力後のufw
-A 入力 -j ログ後の ufw 入力
-A 入力 -j ufw 拒否入力
-A 入力 -j ufw トラック入力
-A FORWARD -j ログ記録前にufw転送
-A 転送 -j 転送前 ufw
-A 転送 -j ufw-after-forward
-A 転送 -j ログ記録後の ufw 転送
-A 転送 -j ufw 転送拒否
-A フォワード -j ufw-トラックフォワード
-A 出力 -j ufw ログ出力前
-A 出力 -j 出力前のufw
-A 出力 -j 出力後のufw
-A 出力 -j ufw ログ出力後
-A 出力 -j ufw 拒否出力
-A 出力 -j ufwトラック出力
-A ufw-after-input -p udp -m udp --dport 137 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 138 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 139 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 445 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 67 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 68 -j ufw-skip-to-policy-input
-A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
-A ufw-after-logging-forward -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-after-logging-input -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-before-forward -s 10.0.0.0/24 -m ポリシー --dir in --pol ipsec --proto esp -j ACCEPT
-A ufw-before-forward -d 10.0.0.0/24 -m ポリシー --dir out --pol ipsec --proto esp -j ACCEPT
-A ufw-before-forward -m conntrack --ctstate RELATED、ESTABLISHED -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw 転送前 -j ufw ユーザー転送
-A 入力前にufw -i lo -j 受け入れる
-A ufw-before-input -m conntrack --ctstate RELATED、ESTABLISHED -j ACCEPT
-A ufw-before-input -m conntrack --ctstate 無効 -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP
-A ufw-before-input -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-input -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A 入力前の ufw -j ローカルでない ufw
-A ufw-before-input -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j ACCEPT
-A ufw-before-input -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j ACCEPT
-A ufw 前の入力 -j ufw ユーザー入力
-A ufw-before-output -o lo -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED、ESTABLISHED -j ACCEPT
-A ufw 出力前 -j ufw ユーザー出力
-A ufw-logging-allow -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] "
-A ufw-logging-deny -m conntrack --ctstate 無効 -m limit --limit 3/min --limit-burst 10 -j 戻る
-A ufw-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
-A ufw-not-local -m addrtype --dst-type マルチキャスト -j リターン
-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
-A ufw-not-local -m 制限 --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-not-local -j DROP
-A ufw-skip-to-policy-forward -j DROP
-A ufw-skip-to-policy-input -j DROP
-A ufw-skip-to-policy-output -j ACCEPT
-A ufw-track-output -p tcp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-output -p udp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 22 -m コメント --comment "\'dapp_OpenSSH\'" -j ACCEPT
-A ufw-ユーザー入力 -p udp -m マルチポート --dports 500,4500 -j ACCEPT
-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable
-A ufwユーザー制限受け入れ -j 受け入れ
専念
# 2020年12月13日日曜日02:30:39に完了

IPルート

デフォルト 10.0.1.1 dev eth0 proto dhcp src 10.0.1.193 メトリック 100 経由
10.0.1.0/24 dev eth0 proto カーネル スコープ リンク src 10.0.1.193
10.0.1.1 dev eth0 proto dhcp スコープ リンク src 10.0.1.193 メトリック 100

EC2 は Ubuntu 20.04.1 LTS イメージを使用します。

rightsourceip=10.10.10.0/24また、ipsec に追加し、pahse2remoteid.ipnet.ipaddr をtables-save の出力のipaddr = 10.10.10.0すべてを に置き換えてtables-restore を使用するという方法も試しましたが、それでもうまくいきませんでした。プールが割り当てられても、クライアントには VirtualIP が割り当てられません。10.0.0.0/2410.10.10.0/24

IKE charon デーモンのステータス (strongSwan 5.8.2、Linux 5.4.0-1029-aws、x86_64):
  稼働時間: 2020 年 12 月 13 日 01:09:10 から 32 分
  malloc: sbrk 1622016、mmap 0、使用済み 728048、空き 893968
  ワーカー スレッド: 16 のうち 11 がアイドル、5/0/0/0 が作業中、ジョブ キュー: 0/0/0/0、スケジュール済み: 3
  読み込まれたプラグイン: charon aesni aes rc2 sha2 sha1 md5 mgf1 random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp agent xcbc hmac gcm drbg attr kernel-netlink resolve socket-default connmark strike updown eap-mschapv2 xauth-generic counters
仮想 IP プール (サイズ/オンライン/オフライン):
  10.10.10.0/24: 254/0/0
リスニング IP アドレス:
  10.0.1.193
接続:
          fb: %any...MyPublicLocalFQ.net IKEv1/2
          fb: local: [EC2PublicIP] は事前共有キー認証を使用します
          fb: リモート: [MyPublicLocalFQ.net] は事前共有キー認証を使用します
          fb: 子: 0.0.0.0/0 === 10.0.0.0/24 トンネル
ルーティングされた接続:
          fb{1}: ルーティング、トンネル、必須 1
          fb{1}: 0.0.0.0/0 === 10.0.0.0/24
セキュリティ アソシエーション (1 がアップ、0 が接続中):
          fb[2]: 32分前に確立されました、10.0.1.193[EC2PublicIP]...MyPublicLocalIP[MyPublicLocalFQ.net]
          fb[2]: IKEv1 SPI: 0da6b7368f560272_i 166b8161eae230c8_r*、12分以内に事前共有キーの再認証
          fb[2]: IKE提案: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
          fb{2}: インストール済み、トンネル、要件 2、UDP SPI の ESP: cda4bbc0_i 1ea590b2_o
          fb{2}: AES_CBC_256/HMAC_SHA1_96/MODP_1024、170072 bytes_i (2601 pkts、26秒前)、1344 bytes_o (16 pkts、26秒前)、12分後に再キー化
          fb{2}: 10.0.1.0/24 === 10.0.0.0/24

どのようなアイデアでも歓迎します。

関連情報