如何設定 RPC 使用特定連接埠,以及如何使用 IPsec 以協助保護這些連接埠

文章翻譯 文章翻譯
文章編號: 908472 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

結論

本文說明如何設定 RPC 使用特定動態連接埠範圍,以及如何使用網際網路通訊協定安全性 (IPsec) 原則協助保護該範圍內的連接埠。根據預設值,當 RPC 指定連接埠必須在 TCP 端點上接聽的 RPC 應用程式時,RPC 使用的是暫時的連接埠範圍 (1024-5000)。 這個行為會限制存取這些挑戰網路管理員的連接埠。本文將說明減少 RPC 應用程式可用之連接埠數目的方法,與如何使用已登錄的 IPsec 原則限制存取這些連接埠。

因為本文中的步驟牽涉大範圍的電腦變更,電腦需要重新開機,因此所有步驟應該先在非商業環境中執行,才能識別任何變更可能會導致之應用程式相容性的問題。

其他相關資訊

為了重新配置、減少與限制存取 RPC 連接埠,必須完成多項設定工作。

首先,應該將 RPC 動態連接埠範圍限制至更小、更好管理的連接埠範圍,如此能更輕鬆地使用防火牆或 IPsec 原則來進行封鎖。根據預設,RPC 會為沒有指定在哪一個連接埠上接聽的端點,動態配置範圍在 1024 至 5000 內的連接埠。

注意 本文使用 5001 至 5021 的連接埠範圍,以避免耗盡暫時的連接埠,並減少 RPC 端點 (3976 至 20) 可用的連接埠數目。

然後,必須建立 IPsec 原則以限制存取這個連接埠範圍,拒絕網路上所有主機的存取。

最後,可以更新 IPsec 原則,以允許特定的 IP 位址或網路子網路存取封鎖的 RPC 連接埠,並排除所有其他存取。

如果要開始設定 RPC 動態連接埠範圍的工作,請下載 RPC 設定工具 (RPCCfg.exe),然後將它複製至將重新設定的工作站或伺服器。如果要執行這項操作,請造訪下列 Microsoft 網站:
http://www.microsoft.com/downloads/details.aspx?FamilyID=0f9cde2f-8632-4da8-ae70-645e1ddaf369&DisplayLang=en
如果要執行建立 IPsec 原則的後續工作,請下載網際網路通訊協定安全性原則工具 (Ipsecpol.exe),然後將工具複製到將重新設定的工作站或伺服器。如果要執行這項操作,請造訪下列 Microsoft 網站:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7D40460C-A069-412E-A015-A2AB904B7361
注意 如果要為 Microsoft Windows XP 或更新版本的 Windows 作業系統建立 IPsec 原則,請使用 Ipseccmd.exe。Ipseccmd.exe 是 Windows XP 支援工具的一部分。IPseccmd.exe 與 Ipsecpol.exe 的語法與使用方式相同。 如需有關 Windows XP 支援工具的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
838079 Windows XP Service Pack 2 支援工具

使用 RPCCfg.exe 重新找出並縮小 RPC 動態連接埠範圍

如果要使用 RPCCfg.exe 重新找出並縮小 RPC 動態連接埠範圍,請依照下列步驟執行:
  1. 將 RPCCfg.exe 複製至要設定的伺服器
  2. 在命令提示字元中,輸入 rpccfg.exe -pe 5001-5021 -d 0
    注意 建議 RPC 端點使用這個連接埠範圍,因為這個範圍中的連接埠比較不會配置給其他應用程式使用。根據預設,RPC 是以 1024 至 5000 的連接埠範圍配置端點的連接埠。但是,這個範圍內的連接埠也會被動態配置供所有 Windows Sockets 應用程式的 Windows 作業系統使用,且會在過度使用的伺服器中耗盡,例如對遠端系統發出許多呼叫的終端伺服器與中介層伺服器。

    例如,當 Internet Explorer 聯絡連接埠 80 上的網頁伺服器時,它便會在 1024-5000 範圍內的連接埠接聽伺服器的回應。發出呼叫至其他遠端伺服器的中介層 COM 伺服器,也會使用這個範圍內的連接埠,等候針對該呼叫傳入的回應。將 RPC 的端點所使用的連接埠範圍移至 5001 連接埠範圍,將會減少其他應用程式使用這些連接埠的機會。
    如需更多有關在 Windows 作業系統中,暫時連接埠的使用方法,請造訪下列 Microsoft 網站。

使用 IPsec 或防火牆原則,封鎖存取受影響主機上易受攻擊的連接埠

在下一節的命令中,任何出現在百分比 (%) 符號之間的文字,都是用來代表命令中的文字,必須由建立 IPsec 原則的人輸入。例如,在任何出現「%IPSECTOOL%」的地方,建立原則的人應該依照下列指示替換該文字:
  • 如果是 Windows 2000,請將「%IPSECTOOL%」替換為「ipsecpol.exe」。
  • 如果是 Windows XP 或較新版的 Windows,請將「%IPSECTOOL%」替換為「ipseccmd.exe」。
如需有關如何使用 IPsec 封鎖連接埠的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
813878 如何使用 IPSec 封鎖特定的網路通訊協定和連接埠

封鎖所有 IP 位址存取 RPC 端點對應程式

如果要封鎖所有 IP 位址存取 RPC 端點對應程式,請使用下列語法。

注意 在 Windows XP 與較新版的作業系統中,請使用 Ipseccmd.exe。在 Windows 2000 中,請使用 Ipsecpol.exe (Windows 2000)。
%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Block Inbound TCP 135 Rule" -f *=0:135:TCP -n BLOCK
注意 不要在這個命令中輸入「%IPSECTOOL%」。「%IPSECTOOL%」是用來代表必須自訂的部分命令。例如,在 Windows 2000 上,請從包含 Ipsecpol.exe 的目錄輸入下列命令,封鎖對 TCP 135 的所有輸入存取權:
ipsecpol.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 135 Rule" -f *=0:135:TCP -n BLOCK
在 Windows XP 和更新版本的作業系統上,則從包含 Ipseccmd.exe 的目錄輸入下列命令,封鎖對 TCP 135 的所有輸入存取權:
ipseccmd.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 135 Rule" -f *=0:135:TCP -n BLOCK

封鎖所有 IP 位址存取 RPC 動態連接埠範圍

如果要封鎖所有 IP 位址存取 RPC 動態連接埠範圍,請使用下列語法。

注意 在 Windows XP 與較新版的作業系統中,請使用 Ipseccmd.exe。在 Windows 2000 中,請使用 Ipsecpol.exe (Windows 2000)。
%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Block Inbound TCP %PORT% Rule" -f *=0:%PORT%:TCP -n BLOCK
注意 不要在這個命令中輸入「%IPSECTOOL%」或「%PORT%」。「%IPSECTOOL%」與「%PORT%」是用來代表必須自訂的部分命令。例如,請在 Windows 2000 主機上輸入下列命令,封鎖對 TCP 5001 的所有輸入存取權:
ipsecpol.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 5001 Rule" -f *=0:5001:TCP -n BLOCK
如果要封鎖對 TCP 5001 的所有輸入存取權,請在 Windows XP 主機和更新版本的 Windows 作業系統主機上輸入下列命令:
ipseccmd.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 5001 Rule" -f *=0:5001:TCP -n BLOCK
變更這個命令中的連接埠編號,對每一個必須封鎖的 RPC 連接埠重複這個命令。必須封鎖的連接埠是在 5001-5021 範圍中。

注意 請記得要變更規則名稱 (-r 參數) 與篩選器 (-f 參數) 中的連接埠編號。

如有必要,允許特定子網路存取 RPC 端點對應程式

如果您必須允許特定子網路存取有限的 RPC 連接埠,必須先讓這些子網路存取先前封鎖的 RPC 端點對應程式。如果要允許特定子網路存取 RPC 端點對應程式,請使用下列命令:
%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP 135 from %SUBNET% Rule" -f %SUBNET%/%MASK%=0:135:TCP -n PASS
注意 在這個命令中,適用下列陳述式:
  • 「%IPSECTOOL%」代表要使用的命令。這個命令是「ipsecpol.exe」或「ipseccmd.exe」其中一個。請根據您正在設定的作業系統,決定使用哪一個命令。
  • 「%SUBNET%」代表您想要賦予存取權限的遠端 IP 子網路,例如 10.1.1.0。
  • 「%MASK%」代表要使用的子網路遮罩,例如 255.255.255.0。

    例如,下列命令能讓 10.1.1.0/255.255.255.0 子網路中的所有主機連線至連接埠 TCP 135。先前針對該連接埠建立的預設封鎖規則將會拒絕所有其他主機的連線。
    %IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP Port 135 from 10.1.1.0 Rule" -f 10.1.1.0/255.255.255.0=0:135:TCP -n PASS

如有必要,允許特定子網路存取新的 RPC 動態連接埠範圍

針對前面允許存取 RPC 端點對應程式的每個子網路,也應允許存取新 RPC 動態連接埠範圍 (5001-5021) 中的所有連接埠。

如果您讓子網路能夠存取 RPC 端點對應程式,但不能存取動態連接埠範圍,則應用程式可能會停止回應,或您可能會遭遇其他問題。

下列命令會允許特定子網路存取新的 RPC 動態連接埠範圍中的連接埠:
%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP %PORT% from %SUBNET% Rule" -f %SUBNET%/%MASK%=0:%PORT%:TCP -n PASS
注意 在這個命令中,適用下列陳述式:
  • 「%IPSECTOOL%」代表要使用的命令。這個命令是「ipsecpol.exe」或「ipseccmd.exe」其中一個。請根據您正在設定的作業系統,決定使用哪一個命令。
  • 「%PORT%」代表在動態連接埠範圍中要賦予存取權限的連接埠。
  • 「%SUBNET%」代表您想要賦予存取權限的遠端 IP 子網路,例如 10.1.1.0。
  • " 「%MASK%」代表要使用的子網路遮罩,例如 255.255.255.0。

    例如,下列命令能讓 10.1.1.0/255.255.255.0 子網路中的所有主機連線至連接埠 TCP 5001。先前針對該連接埠建立的預設封鎖規則將會拒絕所有其他主機的連線。
    %IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP Port 5001 from 10.1.1.0 Rule" -f 10.1.1.0/255.255.255.0=0:5001:TCP -n PASS
注意 每個子網路和新 RPC 動態連接埠範圍中的每個連接埠,都應重複這個命令。

指派 IPsec 原則

注意 本節中的命令會立即生效。

在針對設定的 RPC 連接埠建立所有封鎖規則和所有選擇性允許規則之後,使用下列命令指派原則:
%IPSECTOOL% -w REG -p "Block RPC Ports" –x
注意 如果要立即取消指派原則,請使用下列命令:
%IPSECTOOL% -w REG -p "Block RPC Ports" –y
注意 如果要從登錄中刪除原則,請使用下列命令:
%IPSECTOOL% -w REG -p "Block RPC Ports" -o
您必須重新啟動主機,變更才會生效。

注意
  • 變更 RPC 設定必須重新啟動電腦。
  • IPsec 原則變更會立即生效,且不需重新啟動電腦。
在重新啟動工作站或伺服器後,任何使用 ncacn_ip_tcp 通訊協定序列且沒有指定要連結到哪個特定 TCP 連接埠的 RPC 介面,RPC 執行階段將會在啟動 RPC 伺服器時,從這個範圍配置連接埠。

注意 伺服器可能會要求 20 個以上的 TCP 連接埠。您可以使用 rpcdump.exe 命令,計算連線至 TCP 連接埠之 RPC 端點的數目,並視需要增加這個數目。如需有關如何取得「RPC 傾印」工具的詳細資訊,請造訪下列 Microsoft 網站:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd

屬性

文章編號: 908472 - 上次校閱: 2009年11月6日 - 版次: 6.0
這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003 Service Pack 1?應用於:
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows 2000 Server SP4?應用於:
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
  • Microsoft Windows XP Home Edition SP2
  • Microsoft Windows XP Media Center Edition 2005
  • Microsoft Windows XP Professional SP2
  • Microsoft Windows XP Tablet PC Edition 2005
關鍵字:?
kbinfo KB908472
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com