VPN隧道和IPsec
1)為什麼IPsec以及何時合適
IPsec在站點/雲/數據中心之間提供L3加密,並用於遠程訪問。應用:- Site-to-Site: on-prem ↔ cloud, cloud ↔ cloud, DC ↔ DC.
- Client VPN: admin access, jump-host, break-glass。
- Backhaul/Transit: хабы и spoke-VPC/VNet (hub-and-spoke).
- 當需要標準,互操作性堆棧,硬件加速(AES-NI/DPDK/ASIC),嚴格的密碼政策和網絡硬件兼容性時,IPsec是合適的。
2)基本概念(快速摘要)
IKEv2(第一階段)-參數匹配/身份驗證(RSA/ECDSA/PSK),創建IKE SA。
IPsec ESP(第二階段)是流量加密,即兒童SA(針對特定前綴/接口的SA)。
PFS是每個SA兒童的ephemerality(Diffie-Hellman組)。
如果路徑上有NAT,則NAT-T(UDP/4500)是ESP封裝。
DPD-Dead Peer Detection,是損壞的SA的替代品。
Rekey/Reauth-將密鑰更新到期(終身/字節)。
- IKE:「AES-256-GCM」或「AES-256-CBC+SHA-256」,DH 「gr 14/19/20 oup」(2048位MODP或ECP)。
- ESP:「AES-GCM-256」(AEAD),PFS由相同的組組成。
- Lifetimes: IKE 8-24小時,兒童30-60分鐘或流量量(如1-4GB)。
3)拓撲和隧道類型
3.1路線(優先)
兩側的虛擬接口(VTI);路由/動態協議(BGP/OSPF)帶有前綴。更容易縮放和細分,更適合於覆蓋CIDR(使用NAT策略)。
3.2基於策略的(流量選擇器)
SA中的「istochnik↔naznacheniye」列表。適用於沒有動態路由的簡單S2S;多個前綴更難。
3.3 GRE-over-IPsec / VXLAN-over-IPsec
封裝L3/L2加密通道頂部:多協議書,方便使用BGP(攜帶keepalive)以及在underlay 需要多種等級/ESMR的情況。
4)分段、路由和容錯能力
VTI/GRE之上的BGP:前綴交換,優先級為MED/LocalPref/communities,最大優先級保護。
ECMP/Active-Active:一對並行隧道(不同的提供商/ROR)。
Active-Passive:具有更高AD/LocalPref的備用隧道,DPD加快了切換速度。
分裂隧道:僅通過VPN提供企業前綴;Internet-本地(減少延遲/成本)。
相交的CIDR:邊緣或代理子網上的NAT策略,如果可能的話,是地址重新設計。
5) MTU、MSS和性能
IPsec/NAT-T超頭:每個數據包− ~ 60-80字節。將MTU 1436-1460放置VTI/隧道。
MSS-clamp:對於TCP,顯示「MSS=1350-1380」(依賴於underlay)以排除碎片。
啟用PMTUD並編寫「Fragmentation Needed」 ICMP。
硬件離載/快速路徑(DPDK,AES-NI,ASIC)大大減輕了CPU的負載。
6)密鑰的可靠性和安全性
PFS是強制性的;Rekey在70-80%終身到期之前。
身份驗證:如果可能的話,ECDSA認證來自企業CA(或Cloud-CA),PSK僅是暫時的,並且具有高熵。
CRL/OCSP或證書期限短。
重復失敗的IKE中的身份驗證日誌和Alerta。
7)雲和提供商的功能
AWS: AWS Managed VPN (policy-based/route-based), TGW (Transit Gateway), VGW/CGW.對於Perfomance/Scale-Direct Connect+IPsec作為備份。
GCP: Cloud VPN (Classic/HA), Cloud Router (BGP);для throughput — Interconnect.
Azure:VPN網關(基於政策/路線),VNet-to-VNet,ExpressRoute用於L2/L3私有化。
Private Endpoints/Privatelink:通往PaaS的流量最好通過私有接口而不是NAT egress。
8) Kubernetes和服務-mesh
Nods K8s私人網絡中;Pod CIDR不應「爬行」到遠程站點-路由Node CIDR並通過ingress/egress網關滾動服務。
在IPsec之上的Istio/Linkerd mTLS是獨立的信任域。
Egress控制:禁止直接從pod到Internet(NetworkPolicy),權限為VTI/VPN。
9)監控和日誌
Tunnel-SLA:latency,jitter,packet loss,up/down SA狀態。
BGP:鄰裏、前綴、翻轉計數器。
IKE/ESP Logs:真實,rekey,DPD事件。
出口到Prometheus(通過snmp_exporter/telegraf),在churn SA上變異和RTT/PLR降解。
應用程序跟蹤器/logs標記「site=onprem 'cloud」,「vpn=tunnel-X」以進行關聯。
10) Trablshuting(支票單)
1.火球:允許在路徑上UDP/500,UDP/4500,協議50(ESP)(或在NAT-T下僅允許4,500)。
2.時鐘/NTP是同步的-否則,由於計時/證書,IKE會下降。
3.IKE/ESP參數相同:密碼,DH,lifetimes,選擇器。
4.如果有NAT,則啟用NAT-T。
5.DPD和rekey:不太激進,也不懶惰(DPD 10-15s, rekey ~ 70%終身)。
6.MTU/MSS:夾住MSS,檢查ICMP 「need fragmentation」。
7.BGP:過濾器/communities/AS-path,是否沒有「blackhole」,因為下一跳的錯誤。
8.Logi: IKE SA established?Child SA created?SPI會改變嗎?是否存在替換錯誤?
11)Configi(裁判員縮短了)
11.1 strongSwan (route-based VTI + IKEv2)
ini
/etc/ipsec. conf conn s2s keyexchange=ikev2 auto=start left=%defaultroute leftid=@onprem. example leftsubnet=0. 0. 0. 0/0 leftauth=pubkey leftcert=onprem. crt right=203. 0. 113. 10 rightid=@cloud. example rightsubnet=0. 0. 0. 0/0 rightauth=pubkey ike=aes256gcm16-prfsha256-ecp256!
esp=aes256gcm16-ecp256!
dpdaction=restart dpddelay=15s ikelifetime=12h lifetime=45m installpolicy=no # route-based через VTI
VTI (Linux):
bash ip tunnel add vti0 local 198. 51. 100. 10 remote 203. 0. 113. 10 mode vti ip link set vti0 up mtu 1436 ip addr add 169. 254. 10. 1/30 dev vti0 ip route add 10. 20. 0. 0/16 dev vti0
11.2 VyOS (VTI之上的BGP, MSS clamp)
bash set interfaces vti vti0 address '169. 254. 10. 1/30'
set interfaces vti vti0 mtu '1436'
set protocols bgp 65010 neighbor 169. 254. 10. 2 remote-as '65020'
set protocols bgp 65010 neighbor 169. 254. 10. 2 timers holdtime '9'
set firewall options mss-clamp interface-type 'all'
set firewall options mss-clamp mss '1360'
11.3 Cisco IOS (IKEv2/IPsec profile)
cisco crypto ikev2 proposal P1 encryption aes-gcm-256 integrity null group 19
!
crypto ikev2 policy P1 proposal P1
!
crypto ikev2 keyring KR peer CLOUD address 203. 0. 113. 10 pre-shared-key very-long-psk
!
crypto ikev2 profile IKEV2-PROF match address local 198. 51. 100. 10 authentication local pre-share authentication remote pre-share keyring local KR
!
crypto ipsec transform-set ESP-GCM esp-gcm 256 mode transport
!
crypto ipsec profile IPSEC-PROF set transform-set ESP-GCM set ikev2-profile IKEV2-PROF
!
interface Tunnel10 ip address 169. 254. 10. 1 255. 255. 255. 252 tunnel source 198. 51. 100. 10 tunnel destination 203. 0. 113. 10 tunnel protection ipsec profile IPSEC-PROF ip tcp adjust-mss 1360
12)政策與合規性
密碼加密和允許的密碼列表是集中的(安全基礎)。
帶提醒和自動化的鑰匙/耳環旋轉。
不變存儲(WORM/Object Lock)中的IKE/IPsec審核日誌。
分割:用於prod/stage/dev和卡路徑(PCI DSS)的VRF/VR域。
13) iGaming/財務細節
數據駐留:帶有PII/支付事件的流量僅在允許的司法管轄區(通過VRF/標簽路由)內通過IPsec。
PSP/KYC:如果訪問給出了私有連接-使用;否則-具有mTLS/HMAC,allowlist FQDN的egress代理。
事務日誌:通過IPsec/Privatelink並行記錄(在前端和雲中);不變的邏輯。
SLO「金錢之路」:具有優先級和增強監控的單獨隧道/路線。
14)反模式
永遠的PSK,一個「共享」秘密短語。
基於策略且具有多個前綴的是「地獄管理員」(優於VTI+BGP)。
忽視MTU/MSS →碎片化,隱藏的時間表,3xx/5xx「無緣無故」。
一條沒有儲備的隧道;一個供應商。
缺少NTP/時鐘同步 → IKE自發下降。
「默認」密碼(過時組/MD5/SHA1)。
flap SA/BGP和RTT/PLR的增長沒有差異。
15)準備就緒支票清單
[IKEv2]+AES-GCM+PFS(14/19/20組),一致的生活時間,rekey ~ 70%。
- VTI/GRE,帶過濾器/社區的BGP,ECMP或熱站。
- NAT-T啟用(如有必要),打開UDP/500/4500, ESP沿途。
- MTU 1436-1460, MSS clamp 1350-1380, PMTUD處於活動狀態。
- DPD 10-15 s,Dead Peer反應和SA快速重新安裝。
- SA/BGP/RTT/PLR監測;集中收集的IKE/ESP邏輯。
- 自動Serts/Key輪換,TTL短,OCSP/CRL,Alertes。
- 分段(VRF),分裂隧道,egress 「deny-by-by-default」策略。
- 雲門戶(AWS/GCP/Azure)在實際負載下進行了測試。
- 記錄的運行手冊"以及運河的捕獲和擴展。
16) TL;DR
使用IKEv2+AES-GCM+PFS、動態BGP路由、兩個獨立鏈接上的冗余和正確的MTU/MSS構建基於路由的IPsec (VTI/GRE)。啟用NAT-T、DPD和常規驗證,監視SA/BGP/RTT/PLR,存儲驗證日誌。在雲中,使用托管網關和PrivateLink;在Kubernetes-不通過VPN「掛起」Pod CIDR。對於iGaming來說,通過收緊的SLO和審計,保持管轄權和支付回路的隔離。