我在公有 NAT 閘道的 VPC 流程日誌中看到傳入流量。我的公有 NAT 閘道是否接受來自網際網路的傳入流量?

2 分的閱讀內容
0

我的虛擬私有雲端 (VPC) 流程日誌對來自公有 IP 地址的傳入流量顯示 Action = ACCEPT。但是,我對網路位址轉譯 (NAT) 閘道的理解是它們不接受來自網際網路的流量。我的 NAT 閘道是否接受來自網際網路的傳入流量?

解決方法

AWS 管理的 NAT 閘道不接受從網際網路啟動的流量。不過,VPC 流程日誌中的資訊可能會出現以指示網際網路接受傳入流量的原因有兩個。

原因 1: 您的安全群組或網路存取控制清單 (ACL) 允許傳入網際網路流量

如果您的安全群組或網路 ACL 允許流量,VPC 流程日誌會將傳入網際網路流量顯示為已接受。如果連接到 NAT 閘道的網路 ACL 未明確拒絕來自網際網路的流量,則 NAT 閘道的流量會顯示為已接受。但是,NAT 閘道實際上並未接受流量而已中斷。

若要確認這一點,請執行下列動作:

  1. 開啟 Amazon CloudWatch 主控台
  2. 在導覽窗格中,選擇 Insights
  3. 從下拉式清單中,選取包含 NAT 閘道彈性網路介面和私有執行個體彈性網路介面的日誌群組。
  4. 執行下列的查詢。
filter (dstAddr like 'xxx.xxx' and srcAddr like 'public IP')
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| limit 10

注意:您可以只使用搜尋篩選條件中的前兩個八位元組分析 VPC 中的所有網路介面。在上面的範例中,將 xxx.xxx 取代為 VPC 無類別域間路由 (CIDR) 的前兩個八位元組。此外,將公有 IP 取代為您在 VPC 流程日誌項目中看到的公有 IP。

查詢結果會顯示來自公有 IP 之 NAT 閘道私有 IP 上的流量,但不會顯示 VPC 中其他私有 IP 上的流量。這些結果確認傳入的流量是未經同意的。不過,如果您確實看到私有執行個體 IP 上的流量,請依照原因 2 下的步驟操作。

原因 2: 公有 IP 的流量是從私人執行個體啟動的

如果有私有執行個體使用 NAT 閘道進行網際網路存取,則您的 VPC 流程日誌會包含來自公有 IP 地址的回應流量。若要確認是否從您的私有執行個體啟動的公有 IP 流量,請執行下列查詢:

**注意:**在執行查詢之前,請執行下列操作:

  • 選取與您在 VPC 流程日誌中觀察到流量時的時間範圍對應的時間範圍。
  • 如果您的 VPC 中有多個日誌群組,請選取適當的群組。
filter (dstAddr like 'public IP' and srcAddr like 'xxx.xxx') or (srcAddr like 'public IP' and dstAddr like 'xxx.xxx')
| limit 10

請務必將 xxx.xxx 取代為 VPC CIDR 的前兩個八位元組。將公有 IP 取代為您在 VPC 流程日誌項目中看到的公有 IP。如果 VPC 中的 10 個以上資源已啟動公有 IP 流量,請提高限制

查詢結果會顯示私有執行個體與公有 IP 地址之間的雙向流量。若要判斷啟動器是私有執行個體或是外部公有 IP 地址,請參閱下列範例:

2022-09-28T12:05:18.000+10:00 eni-023466675b6xxxxxx 10.0.101.222 8.8.8.8 53218 53 6(17) 4 221 1664330718 1664330746 ACCEPT OK
2022-09-28T12:05:18.000+10:00 eni-023466675b6xxxxxx 8.8.8.8 10.0.101.222 53 53218 6(17) 4 216 1664330718 1664330746 ACCEPT OK

在這個 TCP/UDP 流量 (通訊協定 ID = 6 或 17) 範例中,私有 IP 地址 帶有來源連接埠的 10.0.101.222 53218 (暫時性連接埠) 是啟動器。IP 地址 帶有目標連接埠的 8.8.8.8 53 是接收者和回應者。 **注意:**最佳實務是為 VPC 流程日誌開啟 TCP 旗標欄位

例如,下列項目的最後一欄中有 TCP 旗標欄位:

2022-09-28T12:05:52.000+10:00 eni-023466675b6xxxxxx 10.0.1.231 8.8.8.8 50691 53 6(17) 3 4 221 1664330752 1664330776 ACCEPT OK 2
2022-09-28T12:05:21.000+10:00 eni-023466675b6xxxxxx 8.8.8.8 10.0.1.231 53 50691 6(17) 19 4 216 1664330721 1664330742 ACCEPT OK 18

私有 IP 地址 10.0.101.222 是具有 TCP 旗標 2 的啟動器,它代表 TCP SYN 封包。

在下列 ICMP 通訊協定範例中,由於沒有連接埠資訊或 TCP 旗標,因此沒有足夠的資訊以判斷啟動器是哪一端:

2022-09-27T17:57:39.000+10:00 eni-023466675b6xxxxxx 10.0.1.231 8.8.8.8 0 0 1 17 1428 1664265459 1664265483 ACCEPT OK
2022-09-27T17:57:39.000+10:00 eni-023466675b6xxxxxx 8.8.8.8 10.0.1.231 0 0 1 0 17 1428 1664265459 1664265483 ACCEPT OK

流程日誌項目的格式取決於它的建立方式。如需有關日誌行格式的詳細資訊,請參閱檢視 flog 日誌


相關資訊

使用 VPC 流程日誌記錄 IP 流量

查詢範例

AWS 官方
AWS 官方已更新 1 年前