本章為大家簡單整理一下有關Windows server Active Directory和Active Directory域服務(AD DS)組件的端口要求。生產環境中我們在做網絡調整、防火牆或者開關端口白名單等操作的時候,很多時候都會遇到同步異常等問題,具體是哪些策略影響端口通信引起的我們很難及時排查,本章將為大家簡單整理一下,希望大家可以少走彎路,提高排錯效率。注:可寫域控制器和只讀域控制器(RODC)都具有相同的端口要求。
一、默認動態端口范圍:
在由基於Windows Server 2003的域控制器組成的域中,默認的動態端口范圍為1025至5000。Windows Server 2008 R2和Windows Server 2008符合互聯網號碼分配機構(IANA)的建議,增加了動態端口連接范圍。新的默認開始端口是49152,並且新的默認端口是65535.因此,您必須增加防火牆中的遠程過程調用(RPC)端口范圍。如果您的混合域環境包含Windows Server 2008 R2和Windows Server 2008服務器以及Windows Server 2003,請允許通過端口1025至5000以及49152至65535的流量。
當您在下表中的協議和端口列中看到"TCP Dynamic"時,它指的是端口1025到5000(Windows Server 2003的默認端口范圍)以及端口49152到65535,這是從Windows Server 2008開始的默認端口范圍。
您可以使用以下的netsh命令運行Windows Server 2008 的計算機上查看的動態端口范圍:
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
netsh int ipv6 show dynamicport tcp
netsh int ipv6 show dynamicport udp
注意:為每個傳輸 (TCP或UDP) 分別設置范圍。端口范圍現在是真正的起始點和結束點都有一個范圍。部署服務器運行的是 Windows Server 2008 的 Microsoft 客戶可能影響服務器如果使用上的內部網絡的防火牆之間的 RPC 通信的問題。在這些情況下,我們建議您重新配置防火牆以允許 49152到 65535的動態端口范圍內的服務器之間的通信。此范圍不包括服務和應用程序所使用的已知端口。或者,可以在每個服務器上修改服務器使用的端口范圍。您可以通過按如下方式使用netsh命令,調整此范圍:
netsh int <ipv4 | ipv6> set dynamic <tcp | udp> start = number num = range
此命令設置 TCP 動態端口范圍。起始端口是數,和端口的總數為區域。下面是示例命令:
netsh int ipv4 set dynamicport tcp start=10000 num=1000
netsh int ipv4 set dynamicport udp start=10000 num=1000
netsh int ipv6 set dynamicport tcp start=10000 num=1000
netsh int ipv6 set dynamicport udp start=10000 num=1000
這些示例命令設置動態端口范圍端口 10000 和結束端口 10999 (1000端口) 的開始。可以設置的端口的最小數量范圍為 255。可以設置的最小起始端口為 1025。(根據所配置的范圍) 的最大結束端口不能超過 65535。要復制 Windows Server 2003 的默認行為,1025用作起始端口,並將 3976 作為范圍為TCP和UDP。這會導致 1025起始端口和結束端口為 5000。
注意: 當您在基於 Windows Server 2008 的計算機上安裝 Microsoft Exchange Server 2007年時,默認端口范圍是1025到60000。
二、將RPC限制到特定的端口:
如上一節"默認動態端口范圍"中所述,RPC流量在動態端口范圍內使用。如何將RPC流量限制到特定端口,請參考如下內容:
默認情況下,Active Directory復制遠程過程調用(RPC)通過使用端口135通過RPC端點映射程序(RPCSS)在可用端口上動態發生。管理員可以覆蓋此功能並指定所有Active Directory RPC通過的端口。此過程鎖定端口。
通過使用"更多信息"一節中提到的注冊表項指定要使用的端口時,端點映射器將Active Directory服務器端復制流量和客戶端RPC流量發送到這些端口。此配置是可能的,因為Active Directory支持的所有RPC接口都在其所監聽的所有端口上運行。
注意本小結不介紹如何為防火牆配置AD復制。必須打開其他端口才能通過防火牆進行復制。例如,可能需要為Kerberos協議打開端口。
更多信息:重要說明此部分,方法或任務包含說明如何修改注冊表的步驟。但是,如果您不正確地修改注冊表,則可能會出現嚴重問題。因此,請確保您認真執行這些步驟。為了增加保護,請在修改注冊表之前備份注冊表。然后,如果發生問題,您可以還原注冊表。
當您連接到RPC端點時,客戶端上的RPC運行時會聯系服務器上熟知端口(135)上的RPC端點映射程序(RPCSS),並獲取要連接的端口以支持所需的RPC接口。這假定客戶端不知道完整的綁定。所有AD RPC服務都是這種情況。
該服務在啟動時注冊一個或多個端點,並可選擇動態分配的端口或特定的端口。
如果將活動目錄和Netlogon配置為在"端口x"處運行(如以下條目中所示),則除標准動態端口外,這將成為端點映射器注冊的端口。
使用注冊表編輯器修改要使用受限制端口的每個域控制器上的以下值。成員服務器不被視為登錄服務器,因此NTDS的靜態端口分配對它們沒有影響。
成員服務器確實有Netlogon RPC接口,但它很少使用。一些示例可能是遠程配置檢索,如"nltest /server:member.contoso.com /sc_query:contoso.com"。
注冊表鍵值1:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
Registry value: TCP/IP Port
Value type: REG_DWORD
Value data: (available port)
注冊表鍵值2:
You need to restart the computer for the new setting to become effective.
Registry key 2
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
Registry value: DCTcpipPort
Value type: REG_DWORD
Value data: (available port)
如上兩注冊表鍵值修改后,都需要重新啟動Netlogon服務才能使新設置生效。
注意當您使用DCTcpipPort注冊表項,並將其設置為與"TCP / IP端口"注冊表項相同的端口時,您會收到NTDS \ Parameters下的Netlogon錯誤事件5809。這表示配置的端口正在使用中,您應該選擇不同的端口。
當您擁有唯一的端口時,您將收到相同的事件,並且您在域控制器上重新啟動Netlogon服務。這是通過設計來實現的,並且是由於RPC運行時管理其服務器端口的方式而發生的。該端口將在重新啟動后使用,並且該事件可以被忽略。
如果使用任何中間網絡設備或軟件來過濾域控制器之間的數據包,管理員應確認通過指定端口的通信已啟用。
通常,您還必須手動設置文件復制服務(FRS)RPC端口,因為AD和FRS復制使用相同的域控制器進行復制。文件復制服務(FRS)RPC端口應使用不同的端口。
不要以為客戶端只使用Netlogon RPC服務,因此只需要設置DCTcpipPort。客戶還使用其他RPC服務,例如SamRPC,LSARPC以及目錄復制服務(DRS)接口。因此,您應始終配置兩個注冊表設置並在防火牆上打開兩個端口。
注意:指定端口后,可能會遇到以下已知問題:
-
在基於Windows Server 2008 R2的域環境中為NTDS和Netlogon設置特定靜態端口之后的長登錄時間
-
在基於Windows的域環境中為NTDS設置靜態端口后,AD復制失敗並出現RPC問題
-
在Windows Server 2012 R2或Windows Server 2008 R2中將客戶端RPC限制為直流通信后登錄失敗
三、與域控制器的通信端口匯總:
下表列出了從Windows Server 2003開始的所有版本的Windows Sever中建立DC到DC通信的端口要求。(在只讀域控制器(RODC)和可寫DC之間進行通信需要額外的端口。)
協議和端口 |
AD和AD DS用法 |
端口類型 |
TCP和UDP 389 |
目錄,復制,用戶和計算機認證,組策略,信任 |
LDAP |
TCP 636 |
目錄,復制,用戶和計算機認證,組策略,信任 |
LDAP SSL |
TCP 3268 |
目錄,復制,用戶和計算機認證,組策略,信任 |
LDAP GC |
TCP 3269 |
目錄,復制,用戶和計算機認證,組策略,信任 |
LDAP GC SSL |
TCP和UDP 88 |
用戶和計算機身份驗證,林級信任 |
Kerberos |
TCP和UDP 53 |
用戶和計算機認證,名稱解析,信任 |
DNS |
TCP和UDP 445 |
復制,用戶和計算機身份驗證,組策略,信任 |
SMB,CIFS,SMB2,DFSN,LSARPC,NbtSS,NetLogonR,SamR,SrvSvc |
TCP 25 |
復制 |
SMTP |
TCP 135 |
復制 |
RPC,EPM |
TCP Dynamic |
復制,用戶和計算機身份驗證,組策略,信任 |
RPC,DCOM,EPM,DRSUAPI,NetLogonR,SamR,FRS |
TCP 5722 |
文件復制 |
RPC,DFSR(SYSVOL) |
UDP 123 |
Windows時間,信任 |
Windows Time |
TCP和UDP 464 |
復制,用戶和計算機認證,信任 |
Kerberos更改/設置密碼 |
UDP Dynamic |
組策略 |
DCOM,RPC,EPM |
UDP 138 |
DFS,組策略 |
DFSN,NetLogon,NetBIOS數據報服務 |
TCP 9389 |
AD DS Web服務 |
SOAP |
UDP 67和UDP 2535 |
DHCP (DHCP不是核心的AD DS服務,但它經常出現在許多AD DS部署中。) |
DHCP,MADCAP |
UDP 137 |
用戶和計算機認證, |
NetLogon,NetBIOS名稱解析 |
TCP 139 |
用戶和計算機身份驗證,復制 |
DFSN,NetBIOS會話服務,NetLogon |