什麼是嚴格、適度和開放的 NAT?
國內路由器上的 NAT 選項通常配置為嚴格。這是什麼意思?適度或開放做什麼?埠轉發/DMZ 訪問在嚴格條件下正常工作,那麼為什麼還要打擾其他兩個呢?
通過路由器查看表明這會影響防火牆。當您花費大量時間使用 Cisco/iptables 保護網路時,這種跛行的非描述性答案只會令人惱火,並且不會留下任何關於這對防火牆有什麼影響的線索。
請有人能闡明一下。
首先了解網路地址轉換 (NAT) 的工作原理很重要。您建立與 Internet 上的伺服器的連接。實際上,您將數據包發送到您的路由器,從您的電腦上的某個隨機選擇的埠發出:
Your computer Router ╔════════════╗ ╔═══════════╗ ║ ║ ║ ║ ║ port 31746 ╫====>╫ ║ ║ ║ ║ ║ ╚════════════╝ ╚═══════════╝
反過來,您的路由器會與您要與之交談的伺服器建立連接。它說出它自己隨機選擇的埠:
Router www.google.com ╔═══════════╗ ╔════════════════╗ ║ ║ ║ ║ ║ port 21283╫====>╫ port 80 ║ ║ ║ ║ ║ ╚═══════════╝ ╚════════════════╝
當 Google 的網路伺服器向您發送回資訊時,它實際上是將其發送回您的路由器(因為您的路由器實際上是 Internet上的那個人):
Router www.google.com ╔═══════════╗ ╔════════════════╗ ║ ║ ║ ║ ║ port 21283╫˂====╫ port 80 ║ ║ ║ ║ ║ ╚═══════════╝ ╚════════════════╝
一個數據包到達您的路由器,埠
21283
來自www.google.com
。路由器應該如何處理它?在這種情況下,路由器保留了您的記錄,並且它知道任何
21283
從 Internet 到達埠的流量都應該流向您的 PC。因此路由器會將數據包中繼到您的電腦:Your computer Router ╔════════════╗ ╔═══════════╗ ║ ║ ║ ║ ║ port 31746 ╫<════╫ ║ ║ ║ ║ ║ ╚════════════╝ ╚═══════════╝
開放式 NAT(又名全錐 NAT,又名良好、正確和正確的 NAT )
在開放式NAT 中,網際網路上的任何機器都可以將流量發送到您路由器的埠
21283
,並且數據包將被發送回您:Your computer Router ╔════════════╗ ╔═══════════╗ ╭www.google.com:80 ║ ║ ║ ║ ├www.google.com:443 ║ port 31746 ╫<════╫ port 21283╫<════╡serverfault.com:80 ║ ║ ║ ║ ├fbi.gov:32188 ╚════════════╝ ╚═══════════╝ ╰botnet.cn:11288
中等 NAT(又名受限錐形 NAT)
中等 NAT 是您的路由器只接受來自同一主機的流量,但允許來自任何埠的流量:
Your computer Router ╔════════════╗ ╔═══════════╗ ║ ║ ║ ║ ╭www.google.com:80 ║ port 31746 ╫<════╣ port 21283╫<════╡www.google.com:443 ║ ║ ║ ║ (rejected) serverfault.com:80 ╚════════════╝ ╚═══════════╝ (rejected) fbi.gov:32188 (rejected) botnet.cn:11288
封閉式 NAT(又名埠限制錐形 NAT)
封閉式 NAT 限制性更強。它不會允許任何東西進入,除非它來自您最初與之通信的原始主機 和 埠,即
www.google
埠80
:Your computer Router ╔════════════╗ ╔═══════════╗ ╭www.google.com:80 ║ ║ ║ ║ ┆ (rejected) www.google.com:443 ║ port 31746 ╫<════╫ port 21283╫<════╛ (rejected) serverfault.com:80 ║ ║ ║ ║ (rejected) fbi.gov:32188 ╚════════════╝ ╚═══════════╝ (rejected) botnet.cn:11288
Teredo、X-Box Live、NAT
Microsoft 的《編寫安全程式碼》一書對不同類型的 NAT 有一些其他定義。它是在 NAT 的上下文中編寫的,供 Teredo 使用;IPv6過渡技術:
- **全錐:**全錐 NAT 在發送出站數據包時建立一個外部 UDP 埠,並將從任何 IP 地址和任何埠發送到該埠的流量轉發回內部系統上的原始埠。
- **Restricted cone:**這種類型的 NAT 維護某種級別的狀態,並要求回復來自與發送初始請求相同的 IP 地址。
- **埠限制錐:**回复必須來自與請求相同的 IP 地址和埠。
- **對稱:**除了埠限制程式碼 NAT 的要求外,對稱 NAT 還將創建內部 IP 地址和埠到外部 IP 地址和埠的新映射,用於發送到每個單獨的外部主機的流量。
一些較新的 NAT 設備在某些情況下也可能會受到埠限制,而在其他情況下是對稱的:
> > 特別是,我們發現許多 NAT 都有第 5 種策略“埠保護”。基本上,他們會嘗試在內部和外部保持相同的埠號,除非它已經用於另一個連接,在這種情況下,他們會按順序(從全域變數)或隨機選擇一個不同的埠號。這些 NAT 在測試期間通常顯示為“埠受限”,但在負載下表現為“對稱”。(惠特瑪,個人交流) > > >
如果您對詳細資訊感興趣,請參閱RFC 3489(Rosenberg 等人 2003)。
請記住:如果有人試圖告訴您全程式碼 NAT /開放式 NAT是一個安全問題,請告訴他們他們不知道他們在說什麼。NAT 不是安全邊界——這就是防火牆。任何使用 NAT 作為安全邊界的人都是錯誤的。
也可以看看