Zusammenfassung
In diesem Artikel wird beschrieben, wie Sie RPC für die Verwendung eines bestimmten dynamischen Portbereichs konfigurieren und wie Sie die Ports in diesem Bereich mithilfe einer IPsec-Richtlinie (Internet Protocol Security) schützen. Standardmäßig verwendet RPC Ports im kurzlebigen Portbereich (1024-5000), wenn es RPC-Anwendungen Ports zuweist, die einen TCP-Endpunkt überwachen müssen. Dieses Verhalten kann das Einschränken des Zugriffs auf diese Ports für Netzwerkadministratoren schwierig machen. In diesem Artikel werden Möglichkeiten beschrieben, wie Sie die Anzahl der für RPC-Anwendungen verfügbaren Ports reduzieren und den Zugriff auf diese Ports mithilfe einer registrierungsbasierten IPsec-Richtlinie einschränken können.
Da es sich bei den Schritten in diesem Artikel um computerweite Änderungen handelt, die einen Neustart des Computers erfordern, sollten alle diese Schritte zuerst in Nichtproduktionsumgebungen ausgeführt werden, um mögliche Anwendungskompatibilitätsprobleme zu identifizieren, die aufgrund dieser Änderungen auftreten können.
Weitere Informationen
Es müssen mehrere Konfigurationsaufgaben ausgeführt werden, um RPC-Ports neu zu lokalisieren, zu reduzieren und den Zugriff darauf einzuschränken.
Zunächst sollte der dynamische RPC-Portbereich auf einen kleineren, besser verwaltbaren Portbereich beschränkt werden, der mithilfe einer Firewall oder einer IPsec-Richtlinie einfacher zu blockieren ist. Standardmäßig weist RPC dynamisch Ports im Bereich von 1024 bis 5000 für Endpunkte zu, die keinen Port angeben, an dem gelauscht werden soll.
Hinweis
In diesem Artikel wird der Portbereich 5001 bis 5021 verwendet. Dadurch reduziert sich die Anzahl der Ports, die für RPC-Endpunkte verfügbar sind, von 3.976 auf 20. Die Anzahl der Ports wurde willkürlich ausgewählt und ist keine Empfehlung für die Anzahl der Ports, die für ein bestimmtes System benötigt werden.
Als Nächstes muss eine IPsec-Richtlinie erstellt werden, um den Zugriff auf diesen Portbereich einzuschränken, um allen Hosts im Netzwerk den Zugriff zu verweigern.
Schließlich kann die IPsec-Richtlinie aktualisiert werden, um bestimmten IP-Adressen oder Netzwerksubnetzen Zugriff auf die blockierten RPC-Ports zu gewähren und alle anderen auszuschließen.
Um mit der Neukonfiguration des dynamischen RPC-Portbereichs zu beginnen, laden Sie das RPC-Konfigurationstool (RPCCfg.exe) herunter und kopieren Sie es dann auf die Arbeitsstation oder den Server, der neu konfiguriert wird. Besuchen Sie hierzu die folgende Microsoft-Website:
http://www.microsoft.com/download/details.aspx?FamilyID=0f9cde2f-8632-4da8-ae70-645e1ddaf369&DisplayLang=en Um die nachfolgenden Aufgaben zum Erstellen einer IPsec-Richtlinie auszuführen, laden Sie das Internet Protocol Security Policies Tool (Ipsecpol.exe) herunter und kopieren Sie es dann auf die Arbeitsstation oder den Server, der neu konfiguriert wird. Besuchen Sie hierzu die folgende Microsoft-Website:
http://www.microsoft.com/download/details.aspx?displaylang=en&FamilyID=7D40460C-A069-412E-A015-A2AB904B7361 Hinweis: Verwenden Sie zum Erstellen einer IPsec-Richtlinie für Microsoft Windows XP oder für eine neuere Version des Windows-Betriebssystems Ipseccmd.exe. Ipseccmd.exe ist Bestandteil der Windows XP-Supporttools. Syntax und Verwendung von IPseccmd.exe sind mit der Syntax und Verwendung von Ipsecpol.exe identisch. Weitere Informationen zu den Windows XP-Supporttools finden Sie im folgenden Artikel der Microsoft Knowledge Base:
838079 Support-Tools für Windows XP Service Pack 2
Verschieben und Reduzieren des dynamischen RPC-Portbereichs mithilfe von RPCCfg.exe
Führen Sie die folgenden Schritte aus, um den dynamischen RPC-Portbereich mithilfe von RPCCfg.exe zu verschieben und zu reduzieren:
Kopieren Sie RPCCfg.exe auf den Server, der konfiguriert werden soll,
Geben Sie an der Eingabeaufforderung rpccfg.exe -pe 5001-5021 -d 0 ein.
Hinweis: Dieser Portbereich wird für die Verwendung durch RPC-Endpunkte empfohlen, da Ports in diesem Bereich wahrscheinlich nicht für die Verwendung durch andere Anwendungen zugewiesen werden. Standardmäßig verwendet RPC den Portbereich 1024 bis 5000 für die Zuweisung von Ports für Endpunkte. Ports in diesem Bereich werden jedoch auch dynamisch für die Verwendung durch das Windows-Betriebssystem für alle Windows-Sockets-Anwendungen zugewiesen und können auf stark ausgelasteten Servern wie Terminalservern und Servern der mittleren Ebene ausgelastet sein, die viele ausgehende Aufrufe an Remotesysteme tätigen.Wenn Internet Explorer beispielsweise einen Webserver über Port 80 kontaktiert, lauscht er an einem Port im Bereich 1024-5000 auf die Antwort vom Server. Ein COM-Server der mittleren Ebene, der ausgehende Anrufe an andere Remoteserver tätigt, verwendet ebenfalls einen Port in diesem Bereich für die eingehende Antwort auf diesen Aufruf. Wenn Sie den Portbereich, den RPC für seine Endpunkte verwendet, in den Portbereich 5001 verschieben, verringert sich die Wahrscheinlichkeit, dass diese Ports von anderen Anwendungen verwendet werden.
Weitere Informationen zur temporären Portnutzung in Windows-Betriebssystemen finden Sie auf den folgenden Microsoft-Websites.- Unter Windows 2000:
http://technet.microsoft.com/library/bb726981.aspx - Für Windows Server 2003:
http://technet2.microsoft.com/WindowsServer/en/library/823ca085-8b46-4870-a83e-8032637a87c81033.mspx?mfr=true
- Unter Windows 2000:
Verwenden Sie eine IPsec- oder Firewall-Richtlinie, um den Zugriff auf die anfälligen Ports auf dem betroffenen Host zu blockieren
In den Befehlen im folgenden Abschnitt soll jeder Text, der zwischen Prozentzeichen (%) angezeigt wird, Text im Befehl darstellen, der von der Person eingegeben werden muss, die die IPsec-Richtlinie erstellt. Wenn beispielsweise der Text "%IPSECTOOL%" angezeigt wird, sollte die Person, die die Richtlinie erstellt, diesen Text wie folgt ersetzen:
- Ersetzen Sie unter Windows 2000 "%IPSECTOOL%" durch "ipsecpol.exe".
- Ersetzen Sie für Windows XP oder eine neuere Version von Windows "%IPSECTOOL%" durch "ipseccmd.exe".
Weitere Informationen zum Verwenden von IPsec zum Blockieren von Ports finden Sie im folgenden Artikel der Microsoft Knowledge Base:
813878 Blockieren bestimmter Netzwerkprotokolle und Ports mithilfe von IPSec
Zugriff auf die RPC-Endpunktzuordnung für alle IP-Adressen blockieren
Verwenden Sie die folgende Syntax, um den Zugriff auf die RPC-Endpunktzuordnung für alle IP-Adressen zu blockieren.
Hinweis: Verwenden Sie unter Windows XP und neueren Betriebssystemen Ipseccmd.exe. Verwenden Sie unter 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
Hinweis: Geben Sie in diesem Befehl nicht "%IPSECTOOL%" ein. "%IPSECTOOL%" soll den Teil des Befehls darstellen, der angepasst werden muss. Geben Sie beispielsweise unter Windows 2000 den folgenden Befehl aus einem Verzeichnis ein, das Ipsecpol.exe enthält, um jeglichen eingehenden Zugriff auf TCP 135 zu blockieren:
ipsecpol.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 135 Rule" -f *=0:135:TCP -n BLOCK
Geben Sie unter Windows XP und neueren Betriebssystemen den folgenden Befehl aus einem Verzeichnis ein, das Ipseccmd.exe enthält, um den gesamten eingehenden Zugriff auf TCP 135 zu blockieren:
ipseccmd.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 135 Rule" -f *=0:135:TCP -n BLOCK
Zugriff auf den dynamischen RPC-Portbereich für alle IP-Adressen blockieren
Um den Zugriff auf den dynamischen RPC-Portbereich für alle IP-Adressen zu blockieren, verwenden Sie die folgende Syntax.
Hinweis: Verwenden Sie unter Windows XP und neueren Betriebssystemen Ipseccmd.exe. Verwenden Sie unter 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
Hinweis: Geben Sie in diesem Befehl nicht "%IPSECTOOL%" oder "%PORT%" ein. "%IPSECTOOL%" und "%PORT%" stellen Teile des Befehls dar, die angepasst werden müssen. Geben Sie beispielsweise den folgenden Befehl auf einem Windows 2000-Host ein, um jeglichen eingehenden Zugriff auf TCP 5001 zu blockieren:
ipsecpol.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 5001 Rule" -f *=0:5001:TCP -n BLOCK
Geben Sie den folgenden Befehl auf Windows XP-Hosts und auf Hosts neuerer Windows-Betriebssysteme ein, um alle eingehenden Zugriffe auf TCP 5001 zu blockieren:
ipseccmd.exe -w REG -p "Block RPC Ports" -r "Block Inbound TCP 5001 Rule" -f *=0:5001:TCP -n BLOCK
Wiederholen Sie diesen Befehl für jeden RPC-Port, der blockiert werden muss, indem Sie die in diesem Befehl aufgeführte Portnummer ändern. Ports, die blockiert werden müssen, liegen im Bereich von 5001 bis 5021.
Hinweis: Vergessen Sie nicht, die Portnummer im Regelnamen (der Switch -r) und im Filter (der Switch -f) zu ändern.
Optional: RPC-Endpunktzuordnung für bestimmte Subnetze Zugriff gewähren, wenn Zugriff erforderlich ist
Wenn Sie bestimmten Subnetzen Zugriff auf die eingeschränkten RPC-Ports gewähren müssen, müssen Sie diesen Subnetzen zuerst Zugriff auf die RPC-Endpunktzuordnung gewähren, die Sie zuvor blockiert haben. Verwenden Sie den folgenden Befehl, um einem bestimmten Subnetz Zugriff auf die RPC-Endpunktzuordnung zu gewähren:
%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP 135 from %SUBNET% Rule" -f %SUBNET%/%MASK%=0:135:TCP -n PASS
Hinweis In diesem Befehl gelten die folgenden Anweisungen:
"%IPSECTOOL%" steht für den zu verwendenden Befehl. Dieser Befehl ist entweder "ipsecpol.exe" oder "ipseccmd.exe". Welcher Befehl verwendet wird, hängt davon ab, welches Betriebssystem Sie konfigurieren.
"%SUBNET%" steht für das Subnetz der Remote-IP, auf das Sie Zugriff gewähren möchten, z. B. 10.1.1.0.
"%MASK%" stellt die zu verwendende Subnetzmaske dar, z. B. 255.255.255.0.
Der folgende Befehl ermöglicht beispielsweise allen Hosts aus dem Subnetz 10.1.1.0/255.255.255.0, eine Verbindung mit Port TCP 135 herzustellen. Die Verbindungen aller anderen Hosts werden durch die zuvor für diesen Port erstellte Standardblockregel verweigert.
%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
Optional: Gewähren Sie Zugriff auf den neuen dynamischen RPC-Portbereich für bestimmte Subnetze, wenn der Zugriff erforderlich ist
Jedes Subnetz, dem zuvor Zugriff auf die RPC-Endpunktzuordnung gewährt wurde, sollte auch Zugriff auf alle Ports im neuen dynamischen RPC-Portbereich (5001-5021) erhalten.
Wenn Sie aktivieren, dass Subnetze den RPC-Endpunktzuordnungspunkt, aber nicht den dynamischen Portbereich erreichen, reagiert die Anwendung möglicherweise nicht mehr, oder es treten andere Probleme auf.
Der folgende Befehl gewährt einem bestimmten Subnetzzugriff auf einen Port im neuen dynamischen RPC-Portbereich:
%IPSECTOOL% -w REG -p "Block RPC Ports" -r "Allow Inbound TCP %PORT% from %SUBNET% Rule" -f %SUBNET%/%MASK%=0:%PORT%:TCP -n PASS
Hinweis In diesem Befehl gelten die folgenden Anweisungen:
"%IPSECTOOL%" steht für den zu verwendenden Befehl. Dieser Befehl ist entweder "ipsecpol.exe" oder "ipseccmd.exe". Welcher Befehl verwendet wird, hängt davon ab, welches Betriebssystem Sie konfigurieren.
"%PORT%" steht für den Port im dynamischen Portbereich, auf den zugegriffen werden soll.
"%SUBNET%" steht für das Subnetz der Remote-IP, auf das Sie Zugriff gewähren möchten, z. B. 10.1.1.0.
"%MASK%" stellt die zu verwendende Subnetzmaske dar, z. B. 255.255.255.0.
Der folgende Befehl ermöglicht beispielsweise allen Hosts aus dem Subnetz 10.1.1.0/255.255.255.0, eine Verbindung mit Port TCP 5001 herzustellen. Die Verbindungen aller anderen Hosts werden durch die zuvor für diesen Port erstellte Standardblockregel verweigert.
%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
Hinweis: Dieser Befehl sollte für jedes Subnetz und jeden Port im neuen dynamischen RPC-Portbereich wiederholt werden.
Zuweisen der IPsec-Richtlinie
Hinweis: Die Befehle in diesem Abschnitt werden sofort wirksam.
Nachdem Sie alle Blockregeln und alle optionalen Zulassungsregeln für die konfigurierten RPC-Ports erstellt haben, weisen Sie die Richtlinie mit dem folgenden Befehl zu:
%IPSECTOOL% -w REG -p "Block RPC Ports" –x
Hinweis: Verwenden Sie den folgenden Befehl, um die Zuweisung der Richtlinie sofort aufzuheben:
%IPSECTOOL% -w REG -p "Block RPC Ports" –y
Hinweis: Verwenden Sie den folgenden Befehl, um die Richtlinie aus der Registrierung zu löschen:
%IPSECTOOL% -w REG -p "Block RPC Ports" -o
Sie müssen den Host neu starten, damit die Änderungen wirksam werden.
Notizen
- Die RPC-Konfigurationsänderungen erfordern einen Neustart.
- Die IPsec-Richtlinienänderungen werden sofort wirksam und erfordern keinen Neustart.
Nach dem Neustart der Arbeitsstation oder des Servers wird allen RPC-Schnittstellen, die die ncacn_ip_tcp-Protokollsequenz verwenden und keinen bestimmten TCP-Port angeben, an den gebunden werden soll, vom RPC-Laufzeitbereich beim Starten des RPC-Servers ein Port aus diesem Bereich zugewiesen.
Hinweis: Der Server benötigt möglicherweise mehr als 20 TCP-Ports. Sie können den Befehl rpcdump.exe verwenden, um die Anzahl der RPC-Endpunkte zu zählen, die an einen TCP-Port gebunden sind, und diese Zahl bei Bedarf zu erhöhen. Weitere Informationen zum Abrufen des RPC-Speicherabbildtools finden Sie auf der folgenden Microsoft-Website: