Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

Windows Server 2016 / 2012 / R2의 웹 서버인 IIS(Internet Information Service)는 이전 IIS 버전과 마찬가지로 원격 관리가 가능합니다. 하나의 콘솔에서 여러 IIS 서버를 동시에 관리할 수 있어 매우 편리하며, Core / Nano 모드로 실행 중인 웹 서버를 관리하는 사실상 유일한 방법이기도 합니다.

그러나 기본적으로 원격 IIS 관리 기능은 비활성화되어 있습니다. 따라서 다른 서버의 IIS 관리 콘솔에서 서버에 연결(Connect to a Server) 메뉴를 통해 IIS가 실행 중인 원격 서버를 추가하려고 하면 다음과 같은 오류 메시지가 표시됩니다.

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

지정된 컴퓨터에 연결할 수 없습니다.
세부 정보: 원격 서버에 연결할 수 없습니다.

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

IIS 관리 서비스(Management Service) 설치

이 문제의 원인은 표준 IIS 설치 과정에서 원격 관리를 담당하는 서비스인 IIS Management Service가 설치되지 않기 때문입니다. 다음 PowerShell 명령을 실행하여 해당 서비스가 시스템에 설치되어 있는지 확인할 수 있습니다.

Get-WindowsFeature *web-mgmt*

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

확인해 보면 Web-Mgmt-Service가 설치되어 있지 않은 것을 볼 수 있습니다. 로컬 관리자 권한으로 다음 PowerShell 명령을 실행하여 설치합니다.

Add-WindowsFeature Web-Mgmt-Service

또는 다음 PowerShell cmdlet을 사용할 수도 있습니다.

Install-WindowsFeature Web-Mgmt-Service

서버 관리자(Server Manager) 콘솔을 통해서도 관리 서비스 구성 요소를 설치할 수 있습니다.

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

설치가 완료되면 IIS 웹 서비스를 다시 시작합니다.

iisreset –noforce

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

다음 단계는 IIS 웹 서버 설정에서 원격 연결을 허용하는 것입니다. IIS 관리자(IIS Manager)의 관리(Management) 섹션에서 관리 서비스(Management Service) 항목을 엽니다.

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

관리 서비스 섹션에서 “원격 연결 사용(Enable remote connections)” 옵션을 체크합니다.

여기서 IP 주소를 기준으로 IIS 관리 콘솔의 연결을 제한할 수도 있습니다. 지정되지 않은 클라이언트의 연결을 거부(Access for unspecified clients: Deny)하도록 설정한 후, 연결을 허용할 IP 주소 또는 IP 서브넷을 지정하면 됩니다. 원격 연결 서비스는 SSL 인증서를 사용하며, 서버의 인증서 저장소에 가져온 다른 인증서가 있다면 이를 대신 사용할 수 있습니다(자체 서명된 SSL 인증서를 PowerShell로 생성해 사용하는 것도 가능합니다). 변경 사항을 저장합니다.

참고: 원격 IIS 관리에는 기본적으로 8172번 포트가 사용됩니다. 변경 사항을 저장하면 Windows 방화벽에서 해당 포트가 자동으로 열립니다.

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

참고: Core 모드로 실행 중인 원격 IIS 서버에서는 레지스트리를 통해 이 옵션을 활성화할 수 있습니다. 레지스트리 키 HKLM\Software\Microsoft\WebManagement\Server의 EnableRemoteManagement 값을 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

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

이후에는 원격 IIS 웹 서버를 IIS 관리자 콘솔에 추가할 수 있으며, 로컬 웹 서버와 동일한 방식으로 해당 서버와 그 위의 여러 사이트를 관리할 수 있습니다.

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

비관리자 계정의 IIS 사이트 원격 관리 허용

기본적으로 관리자 권한을 가진 사용자만 IIS 서버를 원격으로 관리할 수 있습니다. 일반 사용자에게 IIS 원격 관리 권한을 부여하려면 각 IIS 웹 사이트 수준에서 해당 권한을 설정해야 합니다. 사이트를 선택한 후 IIS 관리자 권한(IIS Manager Permissions) 옵션을 찾습니다.

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

작업(Actions) 패널에서 사용자 허용(Allow User)을 클릭합니다. IIS에 대한 액세스 권한을 부여할 사용자 계정을 선택하고 확인을 클릭합니다.

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

IIS 서버의 사이트 관리에 대한 사용자 권한은 IIS 서버 수준의 기능 위임(Feature Delegation) 섹션에서 구성합니다.

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

각 IIS 서버 관리 기능에 대해 읽기 전용(Read Only), 읽기/쓰기(Read/Write), 위임 안 됨(Not Delegated)의 세 가지 사용자 액세스 수준 중 하나를 선택할 수 있습니다.

Windows 10에서 IIS 서버 원격 관리하기

Windows 10(또는 Windows 7, 8.1) 클라이언트 데스크톱에서 IIS 서버를 원격으로 관리하려면 먼저 IIS 관리 콘솔을 설치해야 합니다. 설치 경로는 다음과 같습니다. Windows 기능 켜기/끄기 → 인터넷 정보 서비스 → 웹 관리 도구 → IIS 관리 콘솔.

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

PowerShell 명령으로도 이 기능을 설치할 수 있습니다.

Enable-WindowsOptionalFeature -Online -FeatureName "IIS-ManagementService"

그러나 Windows 10에서 IIS 관리자 콘솔을 실행하면 메뉴에 서버에 연결(Connect to a server) 항목이 표시되지 않습니다.

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

Windows 10에서 IIS에 원격으로 연결하려면 IIS Manager for Remote Administration 패키지를 다운로드하여 설치해야 합니다(https://www.microsoft.com/en-us/download/details.aspx?id=41177).

Windows Server 2016/2012 R2 원격 IIS 관리 설정 완벽 가이드

팁: IIS 관리자는 x64용(inetmgr_amd64_en-US.msi)과 x86용(inetmgr_x86_en-US.msi) 버전으로 제공됩니다.

설치 후 IIS 관리자를 다시 시작하고 사이트에 연결합니다. 연결 시 클라이언트와 서버의 콘솔 버전이 다르면 콘솔 버전을 업데이트해야 한다는 알림이 표시되며, 필요한 모든 파일이 서버에서 자동으로 다운로드됩니다.

Windows Server 2016/2012 R2 원격 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.

이 문제를 해결하려면 클라이언트 측 레지스트리를 수정하여 연결 시 TLS 1.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 Server 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

먼저 .NET Framework 3.5.1에서 TLS 1.2를 지원하기 위한 업데이트 KB3154518을 설치해야 합니다.

[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\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000