
乾杯,我想在 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/24
10.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
歡迎任何想法。