Netwrix 1Secure는 데이터와 아이덴티티 전반에 걸쳐 통합된 가시성을 제공합니다 - 14일간 무료로 전체 액세스가 가능합니다.무료 평가판 시작

리소스 센터블로그

제한된 엔드포인트를 사용한 안전한 PowerShell Remoting

제한된 엔드포인트를 사용한 안전한 PowerShell Remoting

Mar 17, 2023

PowerShell Remoting은 Windows Server 2012(이후 버전)에서 기본 제공으로 활성화되어 있으며, 많은 IT 조직에서는 이를 잠재적인 보안 위험으로 보기도 하지만, 모범 사례를 따르면 PowerShell은 서버를 관리하는 가장 안전한 방법 중 하나입니다. 이 글에서는 Windows Server 2012 R2를 구성하여 특정 사용자 그룹에서만 원격 PowerShell 연결을 허용하는 방법과 실행할 수 있는 cmdlet을 어떻게 제한하는지 보여드리겠습니다.

제한된 엔드포인트란 무엇인가요?

원격 엔드포인트는 PowerShell Remoting으로 장치에 연결할 수 있는 사용자를 결정하며, 인증이 완료된 후 사용자가 수행할 수 있는 작업도 결정합니다. 기본 PowerShell 엔드포인트는 기본 제공 AdministratorsRemote Management Users 그룹에 속한 사용자가 원격으로 연결할 수 있게 하며, 해당 장치에서 사용 가능한 모든 cmdlet과 함수를 노출합니다.

좋은 소식은 직접 constrained 엔드포인트를 만들고 사용자가 수행할 수 있는 작업을 제한할 수 있다는 점입니다. 이를 통해 관리 목적으로 PowerShell Remoting을 허용할 때 발생할 수 있는 위험을 최소화할 수 있습니다.

Windows Server 2012 R2에서 제약된 엔드포인트(Constrained Endpoints) 만들기

Windows Server 2012 R2에서 직접 제약된 엔드포인트를 만들어 보겠습니다. 로컬 관리자 권한으로 로그인한 다음, 데스크톱 작업 표시줄에 있는 파란색 PowerShell 아이콘을 클릭하세요.

  • 서버에 있는 기존 엔드포인트를 보려면 PowerShell 프롬프트에서 Get-PSSessionConfiguration 를 입력하고 ENTER 를 누르세요.
  • PowerShell 콘솔에서 기본 엔드포인트 4개가 표시되어야 합니다.

제한된 엔드포인트에 연결할 때 사용자가 실행할 수 있는 cmdlet과 함수를 제한하려면 구성 파일을 만들어야 합니다. PowerShell 콘솔에서 아래에 표시된 cmdlet을 입력한 다음 ENTER 를 누르세요. New-PSSessionConfigurationFilePrintAdmin.pssc 라는 새 구성 파일을 만들고, 원격 사용자를 PrintManagement PowerShell 모듈의 일부인 함수로 제한하는 등의 제한 사항을 설정합니다.

      New-PSSessionConfigurationFile – Path PrintAdmin.pssc – SessionType RestrictedRemoteServer -LanguageMode NoLanguage – ExecutionPolicy Restricted – ModulesToImport PrintManagement -VisibleFunctions Get-Printer
      

NoLanguage 은 사용자를 cmdlet과 함수만 실행하도록 제한합니다. 즉, 스크립트 블록, 변수 또는 연산자를 사용할 수 없습니다. –SessionTypeRestrictedRemoteServer 은 사용자를 다음 프록시 함수로만 제한합니다: Exit-PSSession, Get-Command, Get-FormatData, Get-Help, Measure-Object, Out-Default, 그리고 Select-Object 입니다. Restricted 값( –ExecutionPolicy 매개변수 )도 스크립트 실행을 방지합니다. 또한, 가져오려는 모듈에 cmdlet이 포함되어 있는 경우 사용할 수 있는 –VisibleCmdlets 매개변수도 있습니다.

이제 구성 파일이 있으니, Helpdesk 라는 새 엔드포인트를 등록할 수 있습니다:

      Register-PSSessionConfiguration -Name Helpdesk -Path PrintAdmin.pssc –ShowSecurityDescriptorUI
      

Figure1.1

새 엔드포인트를 구성하려는지, WinRM 서비스를 다시 시작할지, 그리고 해당 엔드포인트에 대한 액세스 권한을 구성할지 확인하라는 메시지가 표시됩니다. 이 예에서는 Helpdesk 라는 그룹에 새 엔드포인트에 대한 ‘Execute (Invoke)’ 권한을 부여하겠습니다. 또한 원격 장치에서 프린터를 관리할 수 있도록 Helpdesk 그룹에 권한을 주는 것도 잊지 마세요. 그렇지 않으면 get-printer 가 실패합니다.

다시 Get-PSSessionConfiguration 를 실행하면, 새 엔드포인트가 목록에 표시되는 것을 확인할 수 있습니다.

제한된 엔드포인트에 연결하기

이제 원격 컴퓨터에서 엔드포인트에 연결합니다. Helpdesk 그룹 또는 엔드포인트에 대해 권한을 할당한 그룹에 속한 사용자로 Windows 8에 로그인하세요. PowerShell 프롬프트를 열고 아래 명령을 실행하되, contososrv1 을 원격 서버의 이름으로 바꿉니다:

      Enter-PSSession -ComputerName contososrv1 -ConfigurationName Helpdesk
      
Figure2

원격 서버에 연결되면 프롬프트가 이에 맞게 변경되어 원격 장치에서 작업 중임을 나타냅니다. get-command 를 입력하고 ENTER 를 누르세요. 그러면 사용할 수 있는 함수와 cmdlet 목록이 엔드포인트에 의해 제한된 것을 확인할 수 있습니다. 이 예에서는 RestrictedRemoteServer 세션 유형에서 허용된 7개의 프록시 함수와, 엔드포인트 구성 파일에 지정된 get-printer 함수만 남습니다.

공유하기

더 알아보기

저자 소개

Asset Not Found

Russell Smith

IT 컨설턴트

관리 및 보안 기술을 전문으로 하는 IT 컨설턴트이자 저자입니다. Russell은 IT 분야에서 15년 이상의 경력을 보유하고 있으며, Windows 보안에 관한 책을 집필했고 Microsoft의 Official Academic Course (MOAC) 시리즈를 위한 저술에 공동 저자로 참여했습니다.