規劃安全性強化 (SharePoint Server 2010)

 

適用版本: SharePoint Foundation 2010, SharePoint Server 2010

上次修改主題的時間: 2016-11-30

本文說明 Microsoft SharePoint Server 2010 網頁伺服器、應用程式伺服器及資料庫伺服器角色的安全性強化,並提供在 Microsoft SharePoint 2010 產品 中連接埠、通訊協定及服務的特定強化要求相關詳細指導。

本文內容:

安全伺服器快照

在伺服器陣列環境中,個別伺服器會扮演特定角色。對這些伺服器的安全性強化建議會視各自伺服器扮演的角色而定。本文包含兩種伺服器角色類別的安全伺服器快照:

快照分成各種一般設定類別。每個類別定義的特性代表 Microsoft SharePoint 2010 產品 的最佳強化狀態。本文不包括環境中其他軟體的強化指導。

網頁伺服器和應用程式伺服器角色

本節列出網頁伺服器及應用程式伺服器的強化特性。某些指導適用於特定服務應用程式;在這些情況中,對應的特性必須僅能套用到與執行指定服務應用程式相關之服務的伺服器中。

類別

特性

在 [服務] MMC 嵌入式管理單元中列出的服務

請啟用下列服務:

  • 檔案及印表機共用

  • ASP.NET State Service (若使用 InfoPath Forms Services 或 Microsoft Project Server 2010)

  • View State Service (若使用 InfoPath Forms Services)

  • World Wide Web Publishing 服務

確定並未停用下列服務:

  • 對 Windows Token 服務的宣告

  • SharePoint 2010 Administration

  • SharePoint 2010 Timer

  • SharePoint 2010 Tracing

  • SharePoint 2010 VSS 編寫器

確定在主控這些對應角色的伺服器上並未停用下列服務:

  • SharePoint 2010 User Code Host

  • SharePoint Foundation Search V4

  • SharePoint Server Search 14

  • 在從目錄存放區匯入設定檔的伺服器上,User Profile Service 應用程式需要下列服務:

    • Forefront Identity Manager Service

    • Forefront Identity Manager Synchronization Service

連接埠和通訊協定

  • TCP 80、TCP 443 (SSL)

  • 進行搜尋編目的自訂連接埠 (若有設定)

  • 檔案及印表機共用服務 — 下列任一項,由搜尋角色使用:

    • 直接架設的 SMB (TCP/UDP 445) — 此為建議的連接埠

    • NetBIOS over TCP/IP (NetBT) (TCP/UDP 連接埠 137、138、139) — 若不使用此連接埠,請停用

  • 網頁伺服器與服務應用程式間之通訊所需的連接埠 (預設值為 HTTP):

    • HTTP 繫結:32843

    • HTTPS 繫結:32844

    • net.tcp 繫結:32845 (若協力廠商針對服務應用程式而實作此選項,才會用到)

  • 在執行 Forefront Identity Management 代理程式的伺服器上,同步處理 SharePoint 2010 產品與 Active Directory 間之設定檔所需的連接埠:

    • TCP/5725

    • TCP/UDP 389 (LDAP 服務)

    • TCP/UDP 88 (Kerberos)

    • TCP/UDP 53 (DNS)

    • UDP 464 (Kerberos 變更密碼)

    如需如何與其他目錄存放區同步處理設定檔的相關資訊,請參閱本文稍後的<User Profile Service 強化需求>。

  • UDP 連接埠 1434 及 TCP 連接埠 1433 — SQL Server 通訊的預設連接埠。若 SQL Server 電腦上的這兩個連接埠已予封鎖 (建議),且資料庫又安裝於具名執行個體,則必須設定 SQL Server 用戶端別名,以連接至該具名執行個體。

  • 用於 Microsoft SharePoint Foundation User Code Service 的 TCP/IP 32846 (適用於沙箱化解決方案) — 所有的網頁伺服器都必須開啟這個連接埠,才能輸出連線。在開啟此服務的網頁伺服器或應用程式伺服器上,必須開啟此連接埠以進行輸入連線。

  • 確定連接埠仍然開啟供使用者可存取的 Web 應用程式使用。

  • 封鎖管理中心網站所用連接埠的外部存取。

  • TCP/25 (用於電子郵件整合的 SMTP)

登錄

無其他指導

稽核與記錄

若是記錄檔移至新位置,請務必更新記錄檔位置使對應新位置。也請更新目錄存取控制清單 (ACL)。

程式碼存取安全性

確定您已為 Web 應用程式啟用一組基本程式碼存取安全性權限。每個 Web 應用程式之 Web.config 檔案中的 <trust> 元素,應設為 WSS_Minimal (其中 WSS_Minimal 的最低預設值會定義於 14\config\wss_minimaltrust.config,或以您自己的自訂原則檔案,設定最低預設值)。

Web.config

在執行安裝程式之後,每個所建立的 Web.config 檔案請遵循下列建議:

  • 不允許透過 PageParserPaths 元素,編譯資料庫頁面或以指令碼編寫資料庫頁面。

  • 確定 <SafeMode> CallStack=""false"" 且 AllowPageLevelTrace=""false""。

  • 確定每個區域的最大控制項網頁組件限制設為低。

  • 確定 SafeControls 清單設為您網站所需的最小控制項集合。

  • 確定您的 Workflow SafeTypes 清單設為所需的最低 SafeTypes 層級。

  • 確定已開啟 customErrors (<customErrors mode=""On""/>)。

  • 視需要考慮 Web Proxy 設定 (<system.net>/<defaultProxy>)。

  • 將 Upload.aspx 限制設為您合理預期使用者上傳的最大大小 (預設值為 2 GB)。上傳大小若大於 100 MB 則會影響效能。

資料庫伺服器角色

SharePoint 2010 產品的主要建議是藉由封鎖 Microsoft SQL Server 通訊使用的預設連接埠,以保護伺服器陣列之間的通訊,並建立自訂連接埠供此通訊使用。如需如何設定 SQL Server 通訊連接埠的詳細資訊,請參閱本文稍後的<封鎖標準 SQL Server 連接埠>。

類別

特性

連接埠

  • 封鎖 UDP 連接埠 1434。

  • 考慮封鎖 TCP 連接埠 1433。

本文不討論如何保護 SQL Server 的安全。如需如何保護 SQL Server 安全的詳細資訊,請參閱保護 SQL Server 的安全 (https://go.microsoft.com/fwlink/?linkid=186828&clcid=0x404)。

特定連接埠、通訊協定及服務指導

本文接下來的部分更詳細討論 SharePoint 2010 產品的特定強化需求。

本節內容:

封鎖標準 SQL Server 連接埠

要在 SQL Server 的預設執行個體或在 SQL Server 的具名執行個體上安裝資料庫,會影響連線至 SQL Server 所使用的特定連接埠。SQL Server 的預設執行個體會接聽 TCP 連接埠 1433 上的用戶端要求。SQL Server 的具名執行個體會在隨機指定的連接埠號碼上接聽。此外,如果重新啟動具名執行個體,則可重新指定該執行個體的連接埠號碼 (視先前指定的連接埠號碼是否可用而定)。

連線至 SQL Server 的用戶端電腦預設會先使用 TCP 連接埠 1433 進行連線。若此通訊失敗,用戶端電腦便會查詢在 UDP 連接埠 1434 上接聽的 SQL Server 解析服務,以決定資料庫執行個體所接聽的連接埠。

SQL Server 的預設連接埠通訊行為,會造成數個影響伺服器強化的問題。首先,SQL Server 使用的連接埠是眾所周知的連接埠,且 SQL Server 解析服務一直是緩衝區溢位攻擊和拒絕服務攻擊的目標 (包括 Slammer 蠕蟲病毒)。即使 SQL Server 已經過更新,減輕 SQL Server 解析服務的安全性問題,眾所周知的連接埠仍是目標。其次,如果資料庫是安裝於 SQL Server 的具名執行個體,對應的通訊連接埠會隨機重新指定,且可以變更。此行為可能會導致伺服器對伺服器通訊無法在強化的環境中進行。若要保護環境,您必須能夠控制要開啟或封鎖哪些 TCP 連接埠。

因此,對於伺服器陣列的建議是指定靜態的連接埠號碼給 SQL Server 的具名執行個體,並封鎖 UDP 連接埠 1434,以避免潛在攻擊者存取 SQL Server 解析服務。此外,請考慮重新指定預設執行個體所使用的連接埠,並同時封鎖 TCP 連接埠 1433。

封鎖連接埠的方法有很多種。您可以使用防火牆來封鎖這些連接埠。但是,除非您可以確定網路區段中沒有其他路由,且沒有惡意使用者擁有網路區段的存取權,否則建議在架設 SQL Server 的伺服器上直接封鎖這些連接埠。使用 [控制台] 中的 [Windows 防火牆] 可完成此作業。

將 SQL Server 資料庫執行個體設定為在非標準的連接埠上接聽

SQL Server 可讓您重新指定預設執行個體和任何具名執行個體所使用的連接埠。在 SQL Server 2005 及 SQL Server 2008,您可以使用 SQL Server 組態管理員重新指定連接埠。

設定 SQL Server 用戶端別名

在伺服器陣列中,所有前端網頁伺服器與應用程式伺服器都是 SQL Server 用戶端電腦。如果封鎖 SQL Server 電腦的 UDP 連接埠 1434,或是變更預設執行個體的預設連接埠,則必須在連線至 SQL Server 電腦的所有伺服器上設定 SQL Server 用戶端別名。

若要連線至 SQL Server 2005 或 SQL Server 2008 的執行個體,請在目標電腦上安裝 SQL Server 用戶端元件,然後使用 SQL Server 組態管理員設定 SQL Server 用戶端別名。若要安裝 SQL Server 用戶端元件,請執行安裝程式,然後僅選取下列用戶端元件進行安裝:

  • 連接元件

  • 管理工具 (包含 SQL Server 組態管理員)

如需封鎖標準 SQL 連接埠的特定強化步驟詳細資訊,請參閱<強化 SharePoint 環境中的 SQL Server (SharePoint Server 2010)>。

服務應用程式通訊

預設會使用繫結至連接埠 32843 的 HTTP,進行伺服器陣列內網頁伺服器與服務應用程式之間的通訊。發佈服務應用程式時,可以選取具有下列繫結的 HTTP 或 HTTPS:

  • HTTP 繫結:連接埠 32843

  • HTTPS 繫結:連接埠 32844

另外,開發服務應用程式的協力廠商可實作第三種選擇:

  • net.tcp 繫結:連接埠 32845

您可以變更每個服務應用程式的通訊協定及連接埠繫結。在管理中心的 [服務應用程式] 頁面,選取服務應用程式,然後按一下 [發佈] 。

服務應用程式與 SQL Server 之間的通訊,是透過標準 SQL Server 連接埠,或您為 SQL Server 通訊設定的連接埠進行。

檔案及印表機共用服務需求

有數種核心功能依賴檔案及印表機共用服務和對應的通訊協定及連接埠。這些包括但不限於下列各項:

  • 搜尋查詢   所有搜尋查詢都需要檔案及印表機共用服務。

  • 內容編目及索引   為了將內容進行編目,包含編目元件的伺服器會透過前端網頁伺服器傳送要求。前端網頁伺服器會直接與內容資料庫通訊,並將結果傳回包含編目元件的伺服器。此項通訊需要檔案及印表機共用服務。

  • 索引傳播   若將 Search Service 應用程式設定成具有散佈於多部伺服器的編目元件及查詢元件,則具有編目元件的伺服器會將內容索引檔案複製到具有查詢元件的伺服器。此動作需要檔案及印表機共用服務和其對應的通訊協定及連接埠。

檔案及印表機共用服務需要使用具名管道。具名管道可以使用直接架設的 SMB 或 NetBT 通訊協定進行通訊。對於安全的環境,建議使用直接架設的 SMB,而不要使用 NetBT。本文所提供的強化建議假設使用 SMB。

下表說明因為依賴檔案及印表機共用服務而造成的強化需求。

類別

需求

附註

服務

檔案及印表機共用

需要使用具名管道。

通訊協定

使用直接架設 SMB 的具名管道

停用 NetBT

具名管道可以使用 NetBT 取代直接架設的 SMB。但是,一般認為 NetBT 不如直接架設的 SMB 安全。

連接埠

下列其中一項:

  • 直接架設的 SMB (TCP/UDP 445) — 建議使用

  • NetBT (TCP/UDP 連接埠 137、138、139)

若未使用 NetBT (連接埠 137、138 及 139) 即可停用

如需如何停用 NetBT 的詳細資訊,請參閱 Microsoft 知識庫文章 204279:直接架設 SMB over TCP/IP (https://go.microsoft.com/fwlink/?linkid=76143&clcid=0x404) (機器翻譯)。

User Profile Service 強化需求

User Profile Service 應用程式使用 Forefront Identity Management 代理程式來同步處理 SharePoint 2010 產品與 Active Directory 或輕量型目錄存取通訊協定 (LDAP) 目錄服務之間的設定檔。Forefront Identity Management 代理程式會安裝在 SharePoint 伺服器陣列的所有伺服器上,但只有在設定成與目錄存放區同步處理的伺服器上,才需要該代理程式。

在設成編目 Active Directory 或其他目錄存放區的伺服器上,Forefront Identity Management 代理程式的下列兩個服務必須保持啟用狀態:

  • Forefront Identity Manager Service

  • Forefront Identity Manager Synchronization Service

此外,在執行 Forefront Identity Management 代理程式且設為編目目錄存放區的伺服器上,必須開啟 TCP 連接埠 5725。

在 Active Directory 環境中,下列連接埠必須維持開啟狀態,才能進行與目錄存放區同步處理的 SharePoint 2010 產品伺服器與執行 Active Directory 的伺服器之間之通訊:

  • TCP/UDP 389 (LDAP 服務)

  • TCP/UDP 88 (Kerberos)

  • TCP/UDP 53 (DNS)

  • UDP 464 (Kerberos 變更密碼)

如需 Forefront Identity Management 代理程式強化需求 (包括其他目錄類型的連接埠需求) 之詳細資訊,請參閱管理代理程式通訊連接埠、權利及權限(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=186832&clcid=0x404)(可能為英文網頁)。

外部伺服器連線

SharePoint Server 2010 中有數項功能可設定為存取位於伺服器陣列外之伺服器電腦上的資料。若設定存取外部伺服器電腦上的資料,請確定已啟用適當電腦之間的通訊。在大多數的情況下,使用的連接埠、通訊協定及服務會視外部資源而定。例如:

  • 檔案共用的連線會使用檔案及印表機共用服務。

  • 與外部 SQL Server 資料庫的連線,會使用預設或自訂連接埠進行 SQL Server 通訊。

  • 與 Oracle 資料庫的連線一般使用 OLE DB。

  • Web 服務的連線使用 HTTP 和 HTTPS。

下表列出的功能可用來存取位於伺服器陣列外之伺服器電腦中的資料。

功能

描述

內容編目

您可以將編目規則設定為對位於外部資源上的資料進行編目,這些外部資源包含網站、檔案共用、Exchange 公用資料夾及商務資料應用程式。在編目外部資料來源時,編目角色會直接與這些外部資源通訊。

如需詳細資訊,請參閱<規劃編目內容 (Office SharePoint Server)>[https://technet.microsoft.com/zh-tw/library/cc262926.aspx]。

Business Data Connectivity 連線

網頁伺服器及應用程式伺服器會直接與設定 Business Data Connectivity 連線的電腦通訊。

如需詳細資訊,請參閱<規劃商務資料與商務資料目錄的連線>[https://technet.microsoft.com/zh-tw/library/cc263252.aspx]。

接收 Microsoft Office Excel 活頁簿

若 Excel Services 應用程式上開啟的活頁簿會連線至任何外部資料來源 (例如,Analysis Services 及 SQL Server),則需要開啟適當的 TCP/IP 連接埠,才可連接至這些外部資料來源。如需詳細資訊,請參閱<規劃 Excel Services 的外部資料連線>[https://technet.microsoft.com/zh-tw/library/cc262899.aspx]。

如果在 Excel Services 應用程式中將通用命名慣例 (UNC) 路徑設定為信任的位置,則 Excel Calculation Services 應用程式角色會使用檔案及印表機共用服務所使用的通訊協定及連接埠,透過 UNC 路徑接收 Office Excel 活頁簿。

儲存在內容資料庫內的活頁簿,或使用者從網站上傳或下載的活頁簿,都不會受到這個通訊的影響。

電子郵件整合的服務需求

電子郵件整合需要使用兩項服務:

SMTP 服務

伺服器陣列中至少必須有一部前端網頁伺服器使用簡易郵件傳送通訊協定 (SMTP) 服務,才可以進行電子郵件整合。內送電子郵件需要 SMTP 服務。若是外寄電子郵件,則可以使用 SMTP 服務,或透過組織中專用的電子郵件伺服器 (如 Microsoft Exchange Server 電腦) 傳送外寄電子郵件。

Microsoft SharePoint 目錄管理服務

SharePoint 2010 產品包含內部服務 Microsoft SharePoint 目錄管理服務,以建立電子郵件通訊群組。當您設定電子郵件整合時,可以選擇啟用目錄管理服務功能,讓使用者建立通訊群組清單。當使用者建立 SharePoint 群組並選取建立通訊群組清單時,Microsoft SharePoint 目錄管理服務會在 Active Directory 環境中建立對應的 Active Directory 目錄服務通訊群組清單。

在強化安全性的環境中,建議透過保護與 Microsoft SharePoint 目錄管理服務相關的檔案 (亦即 SharePointEmailws.asmx),來限制此服務的存取權。例如,您可以只允許伺服器陣列帳戶存取這個檔案。

此外,這項服務還需要在 Active Directory 環境中擁有建立 Active Directory 通訊群組清單物件的權限。建議在 Active Directory 中為 SharePoint 2010 產品物件設定不同的組織單位 (OU)。只應允許此 OU 對 Microsoft SharePoint 目錄管理服務所使用的帳戶進行寫入存取。

工作階段狀態的服務需求

Project Server 2010 和 InfoPath Forms Services 都會維護工作階段狀態。若在伺服器陣列內部署這些功能或產品,請勿停用 ASP.NET 狀態服務。此外,若要部署 InfoPath Forms Services,請勿停用 View State Service。

SharePoint 2010 產品服務

請勿停用 SharePoint 2010 產品所安裝的服務 (列在先前的快照中)。

如果您的環境不允許以本機系統身分執行的服務,只有在瞭解結果且可解決這些結果時,才考慮停用 SharePoint 2010 Administration Service。此服務是以本機系統身分執行的 Win32 服務。

SharePoint 2010 Timer Service 會使用此服務在伺服器上執行需要系統管理權限的動作,例如建立 Internet Information Services (IIS) 網站、部署程式碼,以及停止和啟動服務。若停用此服務,即無法從管理中心網站完成及部署相關的工作。您必須使用 Windows PowerShell 來執行 Start-SPAdminJob Cmdlet (或使用 Stsadm.exe 命令列工具來執行 execadmsvcjobs 操作) 以完成 SharePoint 2010 產品多重伺服器部署,及執行其他部署相關的工作。

Web.config 檔案

.NET Framework 使用 XML 格式的設定檔來設定應用程式,尤其是 ASP.NET。.NET Framework 根據設定檔來定義設定選項。設定檔是文字格式的 XML 檔。單一系統上可以且通常會存在多個設定檔。

.NET Framework 的全系統組態設定會在 Machine.config 檔案中定義。Machine.config 檔案位於 %SystemRoot%\Microsoft .NET\Framework\%VersionNumber%\CONFIG\ 資料夾。Machine.config 檔案中包含的預設設定可加以修改,藉以影響整個系統使用 .NET Framework 的應用程式行為。

如果在應用程式的根資料夾中建立 Web.config 檔案,則可以變更單一應用程式的 ASP.NET 組態設定。執行此動作時,Web.config 檔案中的設定會覆寫 Machine.config 檔案中的設定。

當您使用管理中心擴充 Web 應用程式時,SharePoint 2010 產品會自動為該 Web 應用程式建立 Web.config 檔案。

本文上述的網頁伺服器和應用程式伺服器快照,列出 Web.config 檔案的設定建議。這些建議適用於每個建立的 Web.config 檔案,包含管理中心網站的 Web.config 檔案。

如需 ASP.NET 設定檔及編輯 Web.config 檔案的詳細資訊,請參閱 ASP.NET 設定 (https://go.microsoft.com/fwlink/?linkid=73257&clcid=0x404)。