網路安全

防火牆(firewall)

想像一名警衛站在建築唯一的入口,手上拿著一份規則清單:這類訪客可以進、那類必須勸退。每個想進出的人都會經過警衛,並依清單被檢查。防火牆就是網路的這名警衛——一個放在網路邊界的裝置或軟體,檢視流量,並依設定好的政策決定放行什麼、阻擋什麼。

最簡單的一種是無狀態封包過濾器。它孤立地看每個封包,依標頭欄位對照一份規則清單:來源與目的 IP 位址、協定(TCP、UDP、ICMP),以及連接埠號。一份典型的規則集可能允許進入的 TCP 連到 port 443(網頁)和 22(SSH),但丟棄其他所有入向封包,同時允許出向連線。每個封包純粹依它自己的標頭被裁決——過濾器不保留對過去封包的記憶,這讓它簡單又快,卻也受限:它無法輕易分辨一個合法的回應,與一個只是長得像回應的未經請求封包。

為什麼重要,以及一個尖銳的限制:防火牆執行一套流量政策,藉由阻擋你從未打算暴露的連線來縮小「攻擊面」——關掉未使用的連接埠、把內部服務擋在公開網際網路之外。它是網路防禦的基石。但要誠實看待它「不是」什麼。防火牆不是防毒軟體,也不是內容掃描器:如果你在 port 443 上允許網頁流量,它就擋不住藏在那些被允許流量裡的惡意檔案或攻擊,因為它執行的是「連線可以去哪裡」,而不是「它們的內容是否安全」。它管的是門;它不檢查有人從一扇開著的門裡夾帶了什麼。

一台伺服器的防火牆有一條入向規則:允許 TCP 連到 port 443,其餘全拒。一個寄往 port 23(Telnet)的封包不論內容如何都被丟棄——那扇門就是關著的。但一個從被允許的 port 443 抵達的惡意請求卻能長驅直入;防火牆裁決的是門,不是貨物。

依標頭規則放行/拒絕——它守門,不查貨。

防火牆不是防毒軟體。它執行的是「哪些連線被允許」,而非「它們的內容是否安全」——藏在你允許的流量裡(比方說 port 443 上)的攻擊,會直接穿過去。

又稱
packet filterstateless firewall防火牆封包過濾器