最近的案子都會用到 WebFarm 架構,所以都會準備壹台 檔案伺服器(File Server) 存取共用的檔案,我們也不免俗的透過 SMB/CIFS 通訊協定存取檔案,也就是我們一般常說的 UNC 連線 ,當要設定防火牆存取規則時以下是需開啟 UNC 連線需開啟的埠號(Ports)清單。
若需完整開啟 SMB/CIFS 通訊協定所需的 Ports 如下,必須針對 Microsoft-DS ( Microsoft Directory Services ) 與 NETBIOS over TCP/IP 等相關 Ports 開啟例外條件:
TCP Ports
- 139 ( NetBIOS Session Service )
- 445 ( Microsoft-DS )
UDP Ports
- 137 ( NetBIOS Name Service )
- 138 ( NetBIOS Name Service )
早在幾年前微軟的 Microsoft-DS 是最被常用來攻擊的服務之一,雖然這些漏洞已被修補,但即便到現在 Microsoft-DS 這個服務還是不斷被駭客所利用,進行大量的掃瞄、攻擊、竄改檔案、植入木馬、…等等。
在知名的 Sysinternals 工具組中有一套 PsTools 工具靠的就是 Microsoft-DS 服務進行遠端操作,若是駭客利用這個工具可對你的主機發出大量的要求,只要被猜中你管理者的帳號與密碼,那就只能恭喜你淪陷了!要避免這個風險,只要將 TCP Port 445 關閉就能避免被遠端操控的命運。
對 PsTools 有興趣的人可以在 TigerLin 的部落格找到一篇 [IT工具] 管理 Server 的狙擊槍 – psTools Suite 文章有該工具的使用說明。
在實務上 ( 全伺服器環境 ),我很少有需要開啟 NETBIOS over TCP/IP 的情況,通常都直接透過 IP 連接遠端電腦,也就是說,如果你的網路環境「只有」Windows 主機的情況下,可以僅開放 TCP Port 445 即可,接著再將 NetBIOS over TCP/IP 停用,一來可減少 NetBIOS 對網路進行廣播、二來可簡化 SMB 封包的傳輸,詳細資訊可參考 [Direct hosting of SMB over TCP/IP] 文章,或參考下圖進行設定。
若用 TCPView 工具觀看主機網路的連線狀況,在關閉 NetBIOS over TCP/IP 後,原本 Listen 中的三個 Ports 會自動關閉,只剩下 TCP Port 445 而已:
相關連結