Віддалене управління 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 з Windows 10
  • Віддалене управління IIS і підтримка TLS 1.1 / TLS 1.2

Установка служби управління 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 автоматично.

Порада. На віддаленому сервері IIS, що працює в Core-режимі (для інформації: як перемикатися між Core і GUI режимами в Windows 2012) цю опцію можна активувати через реєстр, задавши ключу EnableRemoteManagement в гілці HKLM \ Software \ Microsoft \ WebManagement \ Server значення 1. Команда:

Reg Add HKLM \ Software \ Microsoft \ WebManagement \ Server / 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_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.30319] "SchUseStrongCrypto" = dword: 00000001 [HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319] "SchUseStrongCrypto" = dword: 00000001

Windows 2012 / R2 і Windows 8 / 8.1:

Повинен бути встановлений NET Framework 4.5.2 або вище (як визначити які версії NET Framework встановлені).

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.30319] "SchUseStrongCrypto" = dword: 00000001 [HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319] "SchUseStrongCrypto" = dword: 00000001

Windows Server 2008 R2 / Windows 7:

Попередньо потрібно встановити оновлення KB3154518 для підтримки TLS 1.2 в .NET Framework 3.5.1.

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v2.0.50727] "SystemDefaultTlsVersions" = dword: 00000001 [HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v2.0.50727] "SystemDefaultTlsVersions" = dword: 00000001 [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols] [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ TLS 1.1] [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ TLS 1.1 \ Client] "DisabledByDefault" = dword: 00000000 [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ TLS 1.1 \ Server] "DisabledByDefault" = dword: 00000000 [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ TLS 1.2] [ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ TLS 1.2 \ Client] "DisabledByDefault" = dword: 00000000 [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityP roviders \ SCHANNEL \ Protocols \ TLS 1.2 \ Server] "DisabledByDefault" = dword: 00000000