Удаленное управление IIS в Windows Server 2016/2012 R2
Веб-сервер Internet Information Service в Windows 2016/ 2012 / R2, как и предыдущие версии IIS имеет возможность удаленного управления. Ведь управлять множеством IIS серверов из одной консоли довольно удобно, а для веб-серверов, работающих в режиме Core/Nano, это практически единственный удобный способ управления веб сервером. Однако по умолчанию функционал удаленного управления в IIS отключен и в том случае, если на другом сервере попытаться добавить удаленный сервер с запущенным IIS в консоль управления IIS (меню Connect to a Server), появится ошибка:
Could not connect to the specified computer.
Details: Unable to connect to the remote server.
Установка службы управления IIS Management Service
Дело в том, что при стандартной установке IIS, служба IIS Management Service, отвечающая за его удаленное управление не устанавливается. Убедится, что данная служба отсутсвует в системе можно с помощью Powershell команды:
Get-WindowsFeature *web-mgmt*
Как вы видите, служба Web-Mgmt-Service не установлена. Установите компонент Windows Server с помощью командлета Add-WindowsFeature , выполним с правами администратора следующую команду Powershell:
Add-WindowsFeature Web-Mgmt-Service
Или
Install-WindowsFeature Web-Mgmt-Service
Также вы можете установить компонент Management Service из консоли Server Manager.
Затем перезапустите веб сервис IIS:iisreset –noforce
Следующий шаг – нужно разрешить удаленные подключения в настройках веб сервера IIS. Для этого в диспетчере служб IIS в секции Management откройте появившийся пункт Management Service.
В разделе Management Service включите опцию «Enable remote connections».
Здесь же можно ограничить возможность подключения к консоли управлений веб сервера по IP адресу. Для этого запретите подключение с неизвестных клиентов (Access for unspecified clients:Deny) и укажите IP адрес / или IP подсети, с которых будет разрешено подключение. Служба удаленного подключения использует SSL сертификат, но вы можете использовать другой, если вы импортировали его в хранилище сертификатов (вы можете создать и использовать самоподписанный сертификат). Сохраните изменения.
Примечание. По умолчанию для удаленного управления IIS используется порт 8172. При сохранении изменений данный порт будет открыт в брандмауэре Windows автоматически.
Reg Add HKLMSoftwareMicrosoftWebManagementServer /V EnableRemoteManagement /T REG_DWORD /D 1
В этом случае придется создать правило для файервола вручную:
netsh advfirewall firewall add rule name=”Allow IIS Web Management” dir=in action=allow service=”WMSVC”
Осталось запустить службу Web Management Service:
net start wmsvc
И задать для службы автоматический запуск при загрузке ОС:
set-service wmsvc -StartupType Automatic
Или так:
sc config WMSVC start= auto
После этого удаленный веб сервер IIS возможно добавить в консоль управлений IIS Manager и управлять сервером IIS, всеми сайтами на нем так же, как и локальным веб-сервером.
Предоставление прав пользователям на удаленное управление сайтом IIS
По-умолчанию право на удаленное управление сервером IIS есть только у пользователей с правами администратора сервера. Чтобы предоставить право на удаленное управление обычным пользователям, необходимо раздать соответствующие права на уровне каждого сайта IIS. Выберите сайт и найдите опцию IIS Manager Permissions.
В панели Actions нажмите на Allow User. Выберите учетную запись, которой нужно предоставить доступ к IIS и нажмите Ок.
Права пользователям по управлению сайтами на IIS настраиваются в секции Feature Delegation на уровне всего сервера IIS.
Вы можете задать один из трех уровней доступа пользователям для каждого функционала управления сервером IIS: Read Only, Read/Write или Not Delegated.
Удаленное управление IIS из Windows 10
Если вам нужно удалено управлять серверов IIS с клиентской рабочей станции с Windows 10 (Windows 7 или 8.1), необходимо установить консоль управления IIS: Turn Windows features on or off -> Internet Information Services -> Web Management Tools -> IIS Management Console.
Вы можете установить компонент управления следующей командой PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName "IIS-ManagementService"
Однако при запуске консоли IIS Manager в Windows 10 оказывается, что пункт Подключение к серверу (Connect to a server) в меню отсутствует.
Для возможности удаленного подключения к IIS в Windows 10 нужно скачать и установить компонент IIS Manager for Remote Administration (https://www.microsoft.com/en-us/download/details.aspx?id=41177).
Совет. Существует версия IIS Manager для x64 (inetmgr_amd64_en-US.msi) и x86 ОС (inetmgr_x86_en-US.msi).
После установки нужно перезапустить консоль диспетчера IIS и подключится к сайту. Если при подключении к IIS окажется, что версия консоли на клиенте и сервере отличается, появится уведомлении о необходимости обновить версию консоли (все необходимые файлы будут автоматически скачаны с сервера).
Теперь вы должны успешно подключиться к своему серверу IIS и удаленно управлять им со своего рабочего места.
Удаленное управление IIS и поддержка TLS 1.1/ TLS 1.2
Если на IIS вы отключили устаревших протоколов SSLv3 и TLS 1.0, оставив только TLS 1.1/ TLS 1.2 то при удаленном подключении к IIS появится ошибка:
«The underlying connection was closed: An unexpected error occurred on a send.
Для исправления проблемы, необходимо на стороне клиента внести изменения в реестре, для обязательного использования протокола TLS1.2 при подключении. Настройки зависят от версии Windows.
Windows 10 и Windows Server 2016:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv4.0.30319]"SchUseStrongCrypto"=dword:00000001[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.NETFrameworkv4.0.30319]"SchUseStrongCrypto"=dword:00000001
Windows 2012/ R2 и Windows 8/8.1:
Должен быть установлен NET Framework 4.5.2 или выше (как определить какие версии NET Framework установлены).
[HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv4.0.30319]"SchUseStrongCrypto"=dword:00000001[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.NETFrameworkv4.0.30319]"SchUseStrongCrypto"=dword:00000001
Windows Server 2008 R2 / Windows 7:
Предварительно нужно установить обновление KB3154518 для поддержки TLS 1.2 в .NET Framework 3.5.1.
[HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.NETFrameworkv2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocols] [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1] [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Client] "DisabledByDefault"=dword:00000000 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Server] "DisabledByDefault"=dword:00000000 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2] [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client] "DisabledByDefault"=dword:00000000 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server] "DisabledByDefault"=dword:00000000
Windows Server 2016
Удаленное управление IIS в Windows Server 2016/2012 R2