無法透過 AWS Internet Gateway 路由 Strongswan VPN 流量

無法透過 AWS Internet Gateway 路由 Strongswan VPN 流量

乾杯,我想在 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 和子網路(也嘗試「允許所有來源」)和任意目的地的所有傳入流量。

VPN 連線可以建立,我可以從我的專用網路 ping 10.0.1.142 和 10.0.1.1。 EC2 執行個體本身也可以 ping 通公用 IP,例如 8.8.8.8。但我無法從我的專用網路 ping 8.8.8.8 或任何其他公共 IP,即使我可以使用 tshark 看到 EC2 執行個體上的封包朝一個方向傳送:

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

配置設定
連線%預設值
 型別=隧道
 左=%任意
 leftid=EC2公共IP
 左子網路=0.0.0.0/0
 自動=新增
 碎片=是
 強制大寫=否
 摩拜=是
 左認證=psk
 正確的身份驗證=psk

康乃狄克州臉書
 ike=aes256-sha-modp1024
 esp=aes256-sha1-modp1024
 右=MyPublicLocalFQ.net
 [電子郵件受保護]
 右子網路=10.0.0.0/24
 右域名=8.8.8.8,8.8.4.4
 ikelifetime=3600s
 鑰匙壽命=3600s

這是 Fritzbox 路由器 IPSec 配置

vpncfg {
  連接{
    啟用=否;
    可編輯=是;
    conn_type = conntype_lan;
    名稱=“EC2VPN”;
    盒子使用者 ID = 0;
    總是更新=是;
    拒絕不加密=否;
    dont_filter_netbios = 是;
    本地IP = 0.0.0.0;
    local_virtualip = 0.0.0.0;
    遠程IP = 0.0.0.0;
    遠端虛擬位址 = 0.0.0.0;
    keepalive_ip = 0.0.0.0;
    本地ID {
      fqdn = "MyPublicLocalFQ.net";
    }
    遠端 ID {
      fqdn = "EC2PublicIP";
    }
    模式=phase1_mode_idp;
    Phase1ss = "全部/全部/全部";
    keytype = connkeytype_pre_shared;
    金鑰 = "THE_PSK_KEY";
    cert_do_server_auth = 否;
    use_nat_t = 是;
    use_xauth = 否;
    use_cfgmode = 否;
    Phase2localid {
      ip 網{
        ip 位址 = 10.0.0.0;
        掩碼=255.255.255.0;
      }
    }
    Phase2remoteid {
      ip 網{
        ip 位址 = 10.0.1.0;
        掩碼=255.255.255.0;
      }
    }
    Phase2ss =“esp-all-all/ah-none/comp-all/pfs”;
    accesslist = "允許任意IP";
  }
  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 撤銷約束pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp agent xc mschapv2 xauth - 通用計數器
監聽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}:已安裝,隧道,reqid 1,UDP SPI 中的 ESP:cba035a9_i 4fbe83d8_o
          fb{1}:AES_CBC_256/HMAC_SHA1_96/MODP_1024,5610 bytes_i(83 個包,74 秒前),840 bytes_o(10 個包,74 秒前),在 43 分鐘內重新產生金鑰
          臉書{1}:10.0.1.0/24 === 10.0.0.0/24

iptables-保存

# 由 iptables-save v1.8.4 於 2020 年 12 月 13 日星期日 02:30:39 生成
*損壞
:預路由接受[214:19671]
:輸入接受[163:15822]
:轉送接受[0:0]
:輸出接受 [82:7863]
:後路由接受 [82:7863]
-A FORWARD -s 10.0.0.0/24 -o eth0 -p tcp -m 策略 --dir in --pol ipsec -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -jj TCPMSS --set-mss 1360
犯罪
# 於 2020 年 12 月 13 日星期日 02:30:39 完成
# 由 iptables-save v1.8.4 於 2020 年 12 月 13 日星期日 02:30:39 生成
*nat
:預路由接受 [51:3849]
:輸入接受[0:0]
:輸出接受 [4:361]
:後路由接受 [4:361]
-A POSTROUTING -s 10.0.0.0/24 -o eth0 -m 策略 --dir out --pol ipsec -j 接受
-A 後路由 -s 10.0.0.0/24 -o eth0 -j 偽裝
犯罪
# 於 2020 年 12 月 13 日星期日 02:30:39 完成
# 由 iptables-save v1.8.4 於 2020 年 12 月 13 日星期日 02:30:39 生成
*篩選
:輸入下降[0:0]
: 向前下降 [0:0]
:輸出接受[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-before-logging-forward - [0:0]
:ufw-在-記錄-輸入前 - [0:0]
:ufw-在-記錄-輸出前 - [0:0]
:ufw-輸出前 - [0:0]
:ufw-logging-允許 - [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-track-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]
-A 輸入 -j ufw-before-logging-input
-A 輸入 -j ufw-輸入前
-A INPUT -j ufw-輸入後
-A 輸入 -j ufw-after-logging-input
-A 輸入 -j ufw-拒絕輸入
-A 輸入 -j ufw-track-input
-A FORWARD -j ufw-before-logging-forward
-A FORWARD -j ufw-前向
-A FORWARD -j ufw-轉送後
-A FORWARD -j ufw-after-logging-forward
-A 轉送 -j ufw-拒絕-轉發
-A FORWARD -j ufw-track-forward
-A 輸出 -j ufw-before-logging-output
-A 輸出 -j ufw-輸出前
-A 輸出 -j ufw-輸出後
-A 輸出 -j ufw-after-logging-output
-A 輸出 -j ufw-拒絕-輸出
-A 輸出 -j ufw-track-output
-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 輸入後 -p tcp -m tcp --dport 139 -j ufw 跳到策略輸入
-A ufw 輸入後 -p tcp -m tcp --dport 445 -j ufw 跳到策略輸入
-A ufw-輸入後-p udp -m udp --dport 67 -j ufw-跳過至策略輸入
-A ufw-輸入後-p udp -m udp --dport 68 -j ufw-跳過至策略輸入
-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 接受
-A ufw-before-forward -d 10.0.0.0/24 -m 策略 --dir out --pol ipsec --proto esp -j 接受
-A ufw-before-forward -m conntrack --ctstate 相關,已建立 -j 接受
-A ufw-before-forward -p icmp -m icmp --icmp-type 3 -j 接受
-A ufw-before-forward -p icmp -m icmp --icmp-type 11 -j 接受
-A ufw-before-forward -p icmp -m icmp --icmp 類型 12 -j 接受
-A ufw-before-forward -p icmp -m icmp --icmp-type 8 -j 接受
-A ufw-before-forward -j ufw-user-forward
-A ufw-輸入前 -i lo -j 接受
-A ufw-before-input -m conntrack --ctstate 相關,已建立 -j 接受
-A ufw-before-input -m conntrack --ctstate 無效 -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate 無效 -j DROP
-A ufw-輸入前 -p icmp -m icmp --icmp 類型 3 -j 接受
-A ufw-輸入前 -p icmp -m icmp --icmp 類型 11 -j 接受
-A ufw-輸入前 -p icmp -m icmp --icmp 類型 12 -j 接受
-A ufw-輸入前 -p icmp -m icmp --icmp 類型 8 -j 接受
-A ufw-輸入前-p udp -m udp --sport 67 --dport 68 -j 接受
-A ufw-輸入前 -j ufw-非本地
-A ufw-輸入前-d 224.0.0.251/32 -p udp -m udp --dport 5353 -j 接受
-A ufw-輸入前-d 239.255.255.250/32 -p udp -m udp --dport 1900 -j 接受
-A ufw-輸入前 -j ufw-用戶輸入
-A ufw-before-output -o lo -j 接受
-A ufw-before-output -m conntrack --ctstate 相關,已建立 -j 接受
-A ufw-before-output -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 RETURN
-A ufw-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-非本地 -m addrtype --dst-type LOCAL -j RETURN
-A ufw-非本地 -m addrtype --dst-type 多播 -j RETURN
-A ufw-not-local -m addrtype --dst-type 廣播 -j RETURN
-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-非本地-j DROP
-A ufw-跳至策略轉送-j DROP
-A ufw-skip-to-policy-input -j DROP
-A ufw-skip-to-policy-output -j 接受
-A ufw-track-output -p tcp -m conntrack --ctstate 新 -j 接受
-A ufw-track-output -p udp -m conntrack --ctstate 新 -j 接受
-A ufw-user-input -p tcp -m tcp --dport 22 -m comment --comment "\'dapp_OpenSSH\'" -j ACCEPT
-A ufw-用戶輸入 -p udp -m 多埠 --dports 500,4500 -j 接受
-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-用戶限制 -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 metric 100
10.0.1.0/24 dev eth0 原型內核範圍連結 src 10.0.1.193
10.0.1.1 dev eth0 原型 dhcp 範圍連結 src 10.0.1.193 公制 100

EC2 使用 Ubuntu 20.04.1 LTS 映像檔。

我還嘗試添加rightsourceip=10.10.10.0/24到 ipsec,將 pahse2remoteid.ipnet.ipaddr 替換為table-save 輸出中的ipaddr = 10.10.10.0所有內容並使用 table-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):
  正常運作時間:32 分鐘,自 2020 年 12 月 13 日 01:09:10 起
  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 撤銷約束pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp agent xc mschapv2 xauth - 通用計數器
虛擬 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
          臉書{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}:已安裝,隧道,reqid 2,UDP SPI 中的 ESP:cda4bbc0_i 1ea590b2_o
          fb{2}:AES_CBC_256/HMAC_SHA1_96/MODP_1024、170072 bytes_i(2601 個資料包,26 秒前)、1344 bytes_o(16 個資料包,26 秒前),12 分鐘內重新產生金鑰
          臉書{2}:10.0.1.0/24 === 10.0.0.0/24

歡迎任何想法。

相關內容