Настройка RPC для использования определенных портов и защита этих портов с помощью IPsec

Переводы статьи Переводы статьи
Код статьи: 908472 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Аннотация

В данной статье рассматривается настройка RPC для использования определенного диапазона динамических портов, а также защита портов с помощью политики IPsec (Internet Protocol security). По умолчанию при назначении портов для приложений RPC, которые должны прослушивать конечную точку TCP, RPC использует порты из диапазона временных портов (1024-5000). Подобное поведение может усложнить процедуру ограничения доступа к этим портам для сетевых администраторов. В данной статье приведены способы ограничения числа портов, доступных для приложений RPC, а также способы ограничения доступа к этим портам с помощью политики IPsec.

Поскольку действия, описанные в данной статье, приводят к изменениям на уровне системы, требующим перезагрузки компьютера, все эти действия сначала следует выполнить в нерабочей среде, чтобы выявить любые проблемы совместимости, возникающие в результате соответствующих изменений.

Дополнительная информация

Существует несколько задач, которые необходимо выполнить для перераспределения, сокращения числа доступных портов RPC и ограничения доступа к этим портам.

Сначала необходимо ограничить диапазон динамических портов RPC, чтобы их было проще блокировать с помощью брандмауэра или политики IPsec. По умолчанию RPC динамически выделяет порты в диапазоне номеров от 1024 до 5000 для конечных точек, не указывающих порт, который необходимо прослушивать.

Примечание. В данной статье используется диапазон портов от 5001 до 5021 во избежание ситуаций, при которых все временные порты окажутся занятыми, и чтобы сократить число портов, доступных для конечных точек RPC от 3,976 до 20.

Затем необходимо разработать политику IPsec, ограничивающую доступ к этому диапазону портов для всех ведущих узлов сети.

И наконец, можно обновить политику IPsec, предоставив определенным IP-адресам или подсетям доступ к заблокированным портам RPC и запретив доступ для всех остальных.

Чтобы начать процесс настройки диапазона динамических портов RPC, загрузите средство настройки RPC (RPCCfg.exe), а затем скопируйте его на рабочую станцию или сервер, который подвергнется изменениям. Для этого посетите веб-узел Майкрософт:
http://www.microsoft.com/downloads/details.aspx?FamilyID=0f9cde2f-8632-4da8-ae70-645e1ddaf369&DisplayLang=en
Для создания политики IPsec загрузите средство политик безопасности протоколов Интернета (Ipsecpol.exe), а затем скопируйте его на рабочую станцию или сервер, который подвергнется перенастройке. Для этого посетите веб-узел Майкрософт:
http://www.microsoft.com/downloads/details.aspx?displaylang=ruFamilyID=7D40460C-A069-412E-A015-A2AB904B7361
Примечание. Для создания политики IPsec для Microsoft Windows XP или для более поздней версии операционной системы Windows воспользуйтесь программой Ipseccmd.exe. Ipseccmd.exe входит в состав средств поддержки для Windows XP. Синтаксис и использование IPseccmd.exe аналогичны синтаксису и использованию Ipsecpol.exe. Дополнительные сведения о средствах поддержки Windows XP см. в следующей статье базы знаний Майкрософт.
838079 Средства поддержки для Windows XP с пакетом обновления 2 (SP2)

Перераспределите и сократите диапазон динамических портов RPC с помощью RPCCfg.exe

Для этого выполните следующие действия:
  1. Скопируйте RPCCfg.exe на сервер, который необходимо настроить.
  2. В командной строке введите rpccfg.exe -pe 5001-5021 -d 0.
    Примечание. Данный диапазон портов рекомендуется использовать для конечных точек RPC, поскольку порты данного диапазона очень редко выделяются для использования другими приложениями. По умолчанию при выделении портов для конечных точек RPC использует порты в диапазоне номеров от 1024 до 5000, однако порты в этом диапазоне также динамически выделяются для использования операционной системой Windows для всех приложений сокетов Windows, и на загруженных серверах (например, на серверах терминалов или серверах среднего уровня с большим числом исходящих вызовов к удаленным системам) может возникнуть ситуация, когда все порты окажутся занятыми.

    Например, если обозреватель Internet Explorer связывается с веб-сервером через порт 80, в ожидании отклика от сервера он прослушивает порт в диапазоне 1024-5000. Сервер COM среднего уровня, отправляющий исходящий вызов на другие удаленные серверы, также использует порт в этом диапазоне для входящего отклика на этот вызов. Если RPC будет использовать для конечных точек диапазон портов 5001-5021, вероятность использования этих портов другими приложениями значительно уменьшится.
    Для получения дополнительных сведений об использовании временных портов в операционных системах Windows посетите веб-узел корпорации Майкрософт по следующему адресу:

Используйте политику протокола IPsec или брандмауэра, чтобы заблокировать доступ к уязвимым портам на соответствующем компьютере

В указанных ниже командах текст, заключенный между символами "%", должен заменяться текстом, который вводит пользователь, создающий политику IPsec. Например, для «%IPSECTOOL%» замена производится следующим образом:
  • для Windows 2000 «%IPSECTOOL%» меняется на «ipsecpol.exe»;
  • для Windows XP или более поздней версии Windows «%IPSECTOOL%» меняется на «ipseccmd.exe».
Для получения дополнительных сведений об использовании IPsec для блокировки портов щелкните следующий номер статьи базы знаний Майкрософт:
813878 Блокирование определенных сетевых протоколов и портов с помощью IPSec

Заблокируйте доступ к службе отображения конечных точек RPC для всех IP-адресов

Для этого используйте следующий синтаксис.

Примечание. Для 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

Заблокируйте доступ к диапазону динамических портов RPC для всех IP-адресов

Для этого используйте следующий синтаксис.

Примечание. Для 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
Для ведущих узлов под управлением Windows XP и более поздних версий операционной системы введите следующую команду:
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, который был заблокирован ранее. Для этого выполните следующую команду:
%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 вступают в силу незамедлительно и не требуют перезагрузки.
После перезагрузки рабочей станции или сервера для любых интерфейсов RPC, использующих последовательность протокола ncacn_ip_tcp и не указывающих определенный порт TCP для прослушивания, после запуска сервера RPC во время работы RPC будет выделен порт из данного диапазона.

Примечание. Серверу может потребоваться более 20 портов TCP. Для подсчета конечных точек RPC, привязанных к порту TCP, и (при необходимости) для увеличения их количества можно использовать команду rpcdump.exe. Для получения дополнительных сведений о получении средства RPC Dump посетите следующий веб-узел корпорации Майкрософт:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd

Свойства

Код статьи: 908472 - Последний отзыв: 6 ноября 2009 г. - Revision: 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

Отправить отзыв

 

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