技術文章 · 網路與網通建置

Port forwarding 怎麼設、有什麼風險:一扇對全世界開的門,怎麼開才不會出事

想從外面連回公司的監視器或伺服器,最快的做法就是在路由器上設 port forwarding。它很方便,卻也是南台灣中小企業最常見的資安破口。本文把它的原理、真實風險與該怎麼設整理。

作者 Steve Chen · 發布  · 更新  · 約 9 分鐘閱讀

網路與網通建置 — 廷皓技術專欄插圖

想從外面連回公司的監視器或伺服器,最快的做法就是在路由器上設 port forwarding。它很方便,卻也是南台灣中小企業最常見的資安破口。本文把它的原理、真實風險與該怎麼設整理。

這篇不是要嚇你別用,而是想把它的原理、真正的風險,還有實際該怎麼設,一次講到你聽得懂、也判斷得出來。

先搞懂:port forwarding 實際在幫你做什麼

你公司對外通常只有一個公網 IP(就是電信業者發給你的那個對外地址),但內部有一整排設備:電腦、監視器主機、NAS、伺服器,每一台都有自己的內網 IP(像 192.168.x.x 那種)。這中間靠的是路由器上的 NAT(網路位址轉換):內部很多台設備要上網,全部共用那一個公網 IP 出去,回來的封包再由路由器對照連線紀錄,發還給正確的那台設備。

這裡有個關鍵的物理事實:NAT 天生是「由內往外」單向友善的。內部主動連出去,路由器會幫你記一筆對照表,回來的封包才找得到路;但外面的人要主動連進來,路由器根本不知道該把這個封包丟給裡面哪一台,於是預設就直接丟掉。這也是為什麼你的監視器平常在外網看不到:不是它藏得多好,是 NAT 這道牆本來就沒給外面留門。

Port forwarding 做的,就是硬給路由器加一條例外規則:只要有人從外面連到公網 IP 的某個特定埠號(例如 8080),就固定把這個連線轉給內部某台設備的某個埠(例如監視器主機的 80)。技術上這叫 DNAT(目的位址轉換)。規則一設,那扇門就從「預設關閉」變成「對全世界永遠開著」,任何知道你 IP 跟埠號的人:或者根本不認識你、只是隨機掃到的人:都能直接敲到門後那台設備。

順帶把 UPnP 講清楚,它其實比你手動設定更危險

很多家用與商用路由器預設開著一個叫 UPnP 的功能,它的用意是「方便」:讓內部設備自己跟路由器要求開埠,不必人工設定。聽起來貼心,但危險也在這:你的監視器、你的某個 App,甚至一支被植入的惡意程式,都可以在你完全不知情的情況下,自己在防火牆上打洞,把自己暴露到公網。你以為你什麼都沒設,其實門早就被裡面的設備自己開了。當年大量 Mirai 的受害設備,就是靠 UPnP 自動把 Telnet 埠推到外網去的。所以務實的第一步,反而常常是:先把用不到的 UPnP 關掉,你才會知道自己實際開了哪些門。

最貴的一個誤解:「反正沒人知道我的 IP,應該沒事」

這句話我聽過太多次,而它幾乎是所有事故的起點。真相是:整個網際網路上,隨時有大量自動化程式在做地毯式掃描,它們不需要知道你是誰,就是把所有公網 IP、一個一個埠地敲過去,看哪個有回應。像 Shodan 這類公開的搜尋引擎,長年固定掃描約一千兩百多個常見埠,熱門的埠(例如網頁用的 80)幾乎天天更新一輪。也就是說,你今天開一個埠,往往幾分鐘到幾小時內就會被掃到、被記錄、被分類建檔:你不用告訴任何人,全世界的掃描器早就自動幫你「登記」好了。

更麻煩的是,掃到之後緊接著就是自動化的嘗試登入。如果門後那台設備還用著出廠預設帳密、或韌體有已知漏洞:監視器、NVR、DVR 這類設備尤其常見:攻擊幾乎是全自動、零成本地就打進去了。你以為你只是開了一台「看店面的攝影機」,實際上你開的是一扇隨時被人敲門試鎖、而且那把鎖還是原廠通用款的門。

Mirai 給全世界上的一課,到現在都還沒過期

如果覺得上面講得太抽象,Mirai 這個公開案例最能說明問題。它是一支專門吃 IoT 設備的惡意程式:掃描引擎在網路上隨機產生 IP,專打 Telnet 用的 23 與 2323 埠,一掃到有開,就拿一份寫死在程式裡、大約六十組的常見出廠帳密逐一去試:像是使用者 root 配上 xc3511、vizxv、54321 這類很多白牌設備通用的預設密碼。試中一台,就把它收編進殭屍大軍。

問題出在產業結構:市面上大量 DVR、NVR、網路攝影機,其實是向少數幾家上游廠商買同一批預載 Linux 的白牌主機板做出來的,於是同一組預設帳密、同一個漏洞,會沿著供應鏈一路複製到幾十個不同品牌、幾十萬台設備上。當年全球估計有超過五十萬台這類設備,就這樣帶著沒改的預設帳密裸露在公網,最後被組成殭屍網路,發動大規模流量攻擊,一度癱瘓了好幾個知名網站與服務。

這件事的重點不是「Mirai 很可怕」,而是:那幾十萬個受害者,裝設備的時候沒有一個人覺得自己會出事。他們想的都跟你一樣:「不過就是台看店面的攝影機」。結果這台攝影機不只被攻破,還反過來變成攻擊別人的武器,而機主完全不知情。這個劇本到今天一字未改,只是換了新的漏洞、新的設備型號在重播而已。

你轉發出去的,從來不只是那一台設備

還有一個常被低估的風險:門後那台設備一旦被攻下,攻擊者拿到的不是「一台監視器的畫面」,而是一個站在你內網裡面的立足點。監視器、NAS 這些設備通常跟你的電腦、伺服器、甚至財務用的機器在同一個內網,彼此之間往往沒有任何隔離。攻擊者從這台被攻破的設備當跳板,橫向摸進整個內網,這在資安上叫 lateral movement(橫向移動),也是勒索軟體最典型的擴散路徑。你以為只是丟了一支攝影機的畫面,實際上很可能是把整間公司的內網門票交了出去。

這不是危言聳聽的推論,而是有大規模量測撐著的。二○二四年一份針對「連接埠轉發服務」的學術研究,掃描並分析了全球數以百萬計、經由這類服務對外開放的網站,結果發現:約有 三成二被歸類為承載關鍵資料或基礎設施的服務:工控系統的網頁主控台、各種 IoT 控制器、程式碼倉庫都在其中;更驚人的是,其中約 一成九完全沒有設任何存取控制,也就是任何人連上去就能直接操作。這些不是實驗室裡的假設,而是此刻正暴露在公網上、可以被人一個一個點開的真實系統。

那實際該怎麼設?照這個順序去判斷

講了這麼多風險,不是要你從此不能遠端看監視器,而是要照一個有先後的工程判斷去做,別一上來就開埠。

第一選擇:用 VPN 把門收回自己手上

最推薦、也最該當成預設答案的做法,是用 VPN 取代直接轉發。它的邏輯完全不同:你不是在防火牆上對全世界開一個埠,而是先讓人「憑鑰匙安全地連回公司內網」,進到內網之後,再像人在公司裡一樣去存取監視器或伺服器。整段連線是加密的,對外只暴露一個經過設計、需要金鑰或憑證才進得來的 VPN 入口,那些隨機掃描器就算掃到,也敲不開。對絕大多數只是想「在外面看一下、連一下」的中小企業,光這一條就足夠解決多數需求,而且風險等級跟直接開埠完全不是同一個量級。

真的非開不可時,這幾件事一件都不能省

有些場景確實不方便走 VPN(例如要給不特定對象看的公開服務、或設備老舊到不支援)。如果評估後真的得開,請務必把下面這幾件事全部做到,缺一不可:

  • 先改掉出廠預設帳密,而且要用夠強的密碼:這是門檻最低、卻擋掉最多自動化攻擊的一步。Mirai 那套打法,一遇到改過的強密碼就直接失效。
  • 把韌體更新到最新版:監視器、路由器的韌體漏洞會被寫進自動化攻擊工具裡,舊韌體等於把已知的鑰匙孔留在門上。
  • 限制只允許特定來源 IP 連入:如果你只從固定的門市、家裡或分公司連回來,就在防火牆上只放行那幾個來源 IP,其他一律擋掉。這一招能把「全世界都能敲門」縮小成「只有你能敲門」,效果非常實在。
  • 能加密就加密、能多一層驗證就多一層:管理介面盡量走 HTTPS 而不是明文 HTTP,設備若支援雙因素或額外驗證就開起來。
  • 一條規則只對應一台設備、一個必要的埠:不要圖省事把一整段埠、或整台設備全部轉發出去;開的面越大,被攻擊的面就越大。

那些「看起來安全,其實不是」的做法

有幾種常見作法容易讓人誤以為安全,這裡要特別點出來:

  • 改用非標準埠不是防護,只是降噪:把預設埠換成一個冷門埠號,確實能少掉一些只掃常見埠的隨機噪音,但認真的掃描器會把上千個埠全掃一遍,換埠擋不住它。它可以做,但絕不能當成你唯一的、或主要的安全手段。
  • 那些「免設定、掃 QR code 就能看」的雲端 P2P 連線要看清楚:它幫你繞過了開埠的麻煩,但你的畫面等於託付給廠商的雲端中繼,安不安全、資料流去了哪裡,完全取決於那家廠商的實作與誠信,過去這類服務出過不少把用戶影像暴露出去的事故。方便歸方便,別預設它就等於安全。
  • DDNS 解決的是 IP 會變,不是安全問題:如果你家或公司是浮動 IP,DDNS 能讓你用一個固定網址連回來,很實用;但它只處理「找得到」,前面講的所有加固前提,一個都不會因為你用了 DDNS 就可以省。

一個給老闆與採購的判斷準則

如果你不想記那麼多細節,就記一句話:能不對外開埠就別開;非開不可,就把開的面積壓到最小、把門後那台設備加固到最硬。把它想成實體的門就很好懂:VPN 是給員工發鑰匙、平常大門深鎖;直接 port forwarding 則是把某個房間的門整個拆掉、對著馬路永遠敞開。兩者都能讓人進來辦事,但風險天差地遠。多數中小企業真正需要的,其實從來不是「開一扇對全世界的門」,而只是「讓自己人方便地連回來」,而後者,VPN 幾乎都做得更好、也更安全。

對照指令

聯絡廷皓討論 看更多文章