Router

什麼是嚴格、適度和開放的 NAT?

  • February 9, 2022

國內路由器上的 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.google80

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 作為安全邊界的人都是錯誤的。

也可以看看

引用自:https://serverfault.com/questions/208522