InfoGrab Docs

Active Directory 수동 액세스 구성

요약

이 가이드는 Active Directory 도메인을 연결하는 방법과 연결된 도메인에서 Windows 데스크톱에 로그인하는 방법을 설명합니다. Teleport는 Active Directory의 인증서 기반 인증을 지원하기 위해 Kerberos 인증 프로토콜이 필요합니다.

이 가이드는 Active Directory 도메인을 연결하는 방법과 연결된 도메인에서 Windows 데스크톱에 로그인하는 방법을 설명합니다.

Teleport는 Active Directory의 인증서 기반 인증을 지원하기 위해 Kerberos 인증 프로토콜이 필요합니다. Microsoft Entra ID는 Kerberos를 사용하지 않으므로, Microsoft Entra ID에는 Teleport Windows 데스크톱 서비스를 사용할 수 없습니다.

사전 요구 사항#

이 가이드의 단계를 완료하려면, 환경이 다음 요구 사항을 충족하는지 확인하세요:

  • A running Teleport cluster. If you want to get started with Teleport, sign up for a free trial or set up a demo environment.

  • The tctl and tsh clients.

    Installing `tctl` and `tsh` clients
    1. Determine the version of your Teleport cluster. The tctl and tsh clients must be at most one major version behind your Teleport cluster version. Send a GET request to the Proxy Service at /v1/webapi/find and use a JSON query tool to obtain your cluster version. Replace with the web address of your Teleport Proxy Service:

      $ TELEPORT_DOMAIN=
      $ TELEPORT_VERSION="$(curl -s https://$TELEPORT_DOMAIN/v1/webapi/find | jq -r '.server_version')"
      
    2. Follow the instructions for your platform to install tctl and tsh clients:

  • Teleport Windows 데스크톱 서비스를 실행할 Linux 서버. 다른 리소스를 위한 Teleport 에이전트를 실행하는 기존 서버를 사용할 수 있습니다.
  • LDAPS용으로 구성된 Active Directory 도메인. Teleport는 암호화된 LDAP 연결이 필요하므로, 도메인에서 LDAPS 인증서를 발급하기 위해 Active Directory 인증서 서비스 또는 비 Microsoft 인증 기관(CA)을 사용하는지 확인해야 합니다.
  • 도메인 컨트롤러에 대한 관리 액세스.

To check that you can connect to your Teleport cluster, sign in with tsh login, then verify that you can run tctl commands using your current credentials.

For example, run the following command, assigning to the domain name of the Teleport Proxy Service in your cluster and to your Teleport username:

$ tsh login --proxy= --user=
$ tctl status
# Cluster  (=teleport.url=)
# Version  (=teleport.version=)
# CA pin   (=presets.ca_pin=)

If you can connect to the cluster and run the tctl status command, you can use your current credentials to run subsequent tctl commands from your workstation. If you host your own Teleport cluster, you can also run tctl commands on the computer that hosts the Teleport Auth Service for full permissions.

옵션 1: 자동 구성#

비교적 단순한 Active Directory 환경의 경우, tctl에서 생성된 구성 스크립트를 사용하여 Teleport와 함께 사용할 Active Directory 도메인을 부트스트랩할 수 있습니다. 높은 수준에서 스크립트는 다음을 수행합니다:

  1. SAM 계정 이름 svc-teleportTeleport Service Account라는 제한적인 서비스 계정을 만들고 필요한 LDAP 컨테이너를 생성합니다.
  2. Block teleport-svc Interactive Login이라는 그룹 정책 개체(GPO)를 생성하고 연결하여 서비스 계정이 대화형 로그인을 수행하지 못하도록 방지합니다.
  3. Teleport 연결을 허용하기 위해 Teleport Access Policy라는 GPO를 구성합니다:
    • Teleport CA 인증서 가져오기.
    • 방화벽 규칙 구성.
    • 원격 RDP 연결 허용.
    • 원격 데스크톱 성능 향상을 위한 RemoteFX 활성화.
  4. LDAP CA 인증서 읽기 (보안 LDAPS 연결에 필요).
  5. Windows 데스크톱 서비스를 위한 Teleport 구성 파일 생성.

더 복잡한 Active Directory 환경의 경우, 특정 요구 사항을 충족하도록 생성된 스크립트를 수정해야 할 수도 있습니다. 스크립트가 수행하는 내용을 이해하는 것이 더 쉬울 수도 있으며, 아래의 수동 구성 단계를 따르면 됩니다.

tctl 생성 구성 스크립트를 사용하려면 다음 명령을 실행하세요:

# 스크립트를 생성하고 configure-ad.ps1이라는 파일에 저장합니다.
tctl desktop bootstrap > configure-ad.ps1

스크립트를 생성한 후, Windows 도메인 컨트롤러로 전송하고 도메인 관리자로 PowerShell 콘솔에서 실행하세요.

옵션 2: 수동 구성#

1단계/7. 제한적인 서비스 계정 생성#

Teleport는 Active Directory 도메인에 연결하기 위해 서비스 계정이 필요합니다. 최대 보안을 위해 제한적인 권한을 가진 전용 서비스 계정을 생성해야 합니다.

서비스 계정을 생성하려면:

  1. Windows 도메인 컴퓨터에서 PowerShell을 엽니다.

  2. 다음 스크립트를 PowerShell 콘솔에 복사하여 붙여넣기하여 무작위로 생성된 암호로 서비스 계정을 만듭니다:

    $Name="Teleport Service Account"
    $SamAccountName="svc-teleport"
    
    # "Password must meet complexity requirements" 보안 정책 설정을 충족하는
    # 무작위 암호를 생성합니다.
    # 참고: 최소 복잡성 요구 사항이 Windows 기본값에서 변경된 경우,
    # 스크립트의 이 부분을 수정해야 할 수 있습니다.
    Add-Type -AssemblyName 'System.Web'
    do {
       $Password=[System.Web.Security.Membership]::GeneratePassword(15,1)
    } until ($Password -match '\d')
    $SecureStringPassword=ConvertTo-SecureString $Password -AsPlainText -Force
    
    New-ADUser `
      -Name $Name `
      -SamAccountName $SamAccountName `
      -AccountPassword $SecureStringPassword `
      -Enabled $true
    

    서비스 계정에 대해 생성된 암호는 즉시 폐기됩니다. Teleport는 LDAP 인증을 위해 x509 인증서를 사용하므로 암호가 필요 없습니다. 암호 인증이 필요한 경우 서비스 계정의 암호를 재설정할 수 있습니다.

  3. PowerShell 콘솔에서 다음 스크립트를 실행하여 서비스 계정에 부여해야 하는 최소 권한을 설정합니다:

    # 도메인의 고유 이름을 변수에 저장합니다.
    $DomainDN=$((Get-ADDomain).DistinguishedName)
    
    # CDP/Teleport 컨테이너를 생성합니다.
    # "New-ADObject : An attempt was made to add an object to the directory with a name that is already in use"
    # 오류와 함께 명령이 실패하면, 개체가 이미 존재한다는 의미이므로 다음 단계로 진행할 수 있습니다.
    New-ADObject -Name "Teleport" -Type "container" -Path "CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN"
    
    # CDP 컨테이너에서 LDAP 컨테이너를 생성할 수 있도록 Teleport를 허용합니다.
    dsacls "CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN" /I:T /G "$($SamAccountName):CC;container;"
    
    # CDP/Teleport 컨테이너에서 cRLDistributionPoint 개체를 만들고 삭제할 수 있도록 Teleport를 허용합니다.
    dsacls "CN=Teleport,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN" /I:T /G "$($SamAccountName):CCDC;cRLDistributionPoint;"
    
    # CDP/Teleport 컨테이너에서 certificateRevocationList 속성을 쓸 수 있도록 Teleport를 허용합니다.
    dsacls "CN=Teleport,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN " /I:T /G "$($SamAccountName):WP;certificateRevocationList;"
    
    # NTAuthCertificates 컨테이너에서 cACertificate 속성을 읽을 수 있도록 Teleport를 허용합니다.
    dsacls "CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN" /I:T /G "$($SamAccountName):RP;cACertificate;"
    
  4. 새 서비스 계정의 보안 식별자를 가져옵니다. 예를 들어, 다음 명령을 실행합니다:

    Get-AdUser -Identity $SamAccountName | Select SID
    

    이 명령은 지정된 계정의 보안 식별자를 반환합니다:

    SID
    ---
    S-1-5-21-209875886-835680547-4265310078-1113
    
  5. S-로 시작하는 전체 보안 식별자를 복사합니다.

    나중 단계에서 ldap 설정을 구성할 때 sid 필드에 이 값을 사용합니다.

2단계/7. 서비스 계정의 대화형 로그인 방지#

다음 단계에서는 그룹 정책 개체(GPO)를 수정합니다. 그룹 정책 변경은 모든 호스트에 전파되는 데 시간이 걸릴 수 있습니다. PowerShell을 열고 gpupdate.exe /force를 실행하여 현재 호스트에서 변경 사항을 즉시 적용할 수 있습니다. 그러나 도메인의 다른 호스트에 전파되는 데는 여전히 시간이 걸릴 수 있습니다.

Teleport 서비스 계정은 LDAP를 통해 인증하는 데만 필요합니다. 일반 사용자처럼 Windows 컴퓨터에 로그온할 필요가 없습니다. 전체 도메인에 연결된 새 그룹 정책 개체(GPO)를 생성한 다음 대화형 로그인을 거부하여 서비스 계정이 로그온하는 데 사용되지 않도록 방지할 수 있습니다.

GPO 생성#

  1. PowerShell을 열고 $GPOName 변수로 새 그룹 정책 개체의 이름을 지정합니다:

    $GPOName="Block teleport-svc Interactive Login"
    
  2. PowerShell 콘솔에서 다음 명령을 실행하여 새 GPO를 생성합니다:

    New-GPO -Name $GPOName | New-GPLink -Target $((Get-ADDomain).DistinguishedName)
    

대화형 로그인 거부#

  1. 그룹 정책 관리를 열고 **Forest > Domains > $YOUR_DOMAIN > Group Policy Objects**를 확장하여 방금 생성한 그룹 정책 개체를 찾습니다.

  2. 그룹 정책 개체를 선택하고 작업을 클릭한 다음 편집을 선택합니다.

  3. **Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > User Rights Assignment**를 확장합니다.

  4. Deny log on locally를 두 번 클릭한 다음 Define these policy settings를 선택합니다.

  5. Add User or Group을 클릭한 다음 Browse를 클릭합니다.

  6. 서비스 계정 이름의 전체 또는 일부를 입력합니다(예: svc-teleport). 그런 다음 Check Names를 클릭합니다.

  7. Teleport Service Account가 선택되었는지 확인한 다음 모든 대화 상자에서 OK를 클릭합니다.

    대화형 로그인 거부

  8. Deny log on through Remote Desktop Services에 대해 이 단계를 반복합니다.

보안을 강화하기 위해 사용자 이름 및 암호 인증을 완전히 비활성화할 수 있습니다. 사용자 이름 및 암호 인증을 비활성화하면 Teleport 가상 스마트 카드만 도메인의 Windows 컴퓨터에 액세스하는 데 사용할 수 있습니다.

3단계/7. Teleport 연결을 허용하는 GPO 구성#

Teleport를 통한 Windows 데스크톱 세션 액세스를 활성화하려면, Windows 컴퓨터가 Teleport 인증 기관을 신뢰하고 인증서 기반 스마트 카드 인증을 수락하도록 허용하는 그룹 정책 개체를 구성해야 합니다.

그룹 정책 개체를 구성하려면 다음을 수행해야 합니다:

  • 기존 Teleport 클러스터의 Teleport 인증 기관에서 서명된 인증서를 내보냅니다.
  • 새 그룹 정책 개체를 생성하고 서명된 Teleport 인증서를 가져옵니다.
  • 서명된 Teleport 인증서를 Active Directory 도메인에 게시합니다.
  • 서명된 Teleport 인증서를 NTAuth 저장소에 게시합니다.
  • 스마트 카드 인증을 활성화합니다.
  • 원격 데스크톱 연결을 허용합니다.

Teleport 인증 기관을 교체하는 경우 이 단계를 반복해야 합니다.

Teleport 인증서 내보내기#

Teleport CA 인증서를 내보내려면:

  1. 그룹 정책 관리에 액세스할 수 있는 Windows 호스트에 로그온합니다.

  2. PowerShell을 열고 다음 명령을 실행하여 Teleport CA를 다운로드합니다. teleport.example.com을 Teleport 클러스터 주소로 바꾸세요:

    $ curl.exe -fo teleport.cer https:///webapi/auth/export?type=windows
    

    HSM 지원 키에 대한 Teleport 지원을 사용하는 경우, Teleport 클러스터에는 여러 CA 인증서(각 Auth Service 인스턴스마다 하나)가 있습니다. URL에 &format=zip을 추가하여 모든 인증서가 포함된 번들을 다운로드할 수 있습니다.

  1. 나중 단계에서 사용할 수 있도록 방금 다운로드한 파일의 경로를 기록해 두세요.

Teleport 인증서를 위한 GPO 생성#

그룹 정책 개체를 구성하려면:

  1. 다음 명령을 실행하여 Teleport Access Policy라는 이름의 새 그룹 정책 개체를 생성합니다:

    $GPOName="Teleport Access Policy"
    New-GPO -Name $GPOName | New-GPLink -Target $((Get-ADDomain).DistinguishedName)
    

    이 명령은 전체 Active Directory 도메인에 GPO를 적용합니다. 도메인의 컴퓨터 하위 집합만 보호하려면, 해당 컴퓨터만 포함하는 특정 조직 구성 단위(OU)에 GPO를 적용할 수 있습니다.

    AWS Managed Microsoft Active Directory를 사용하는 경우, AWS 위임된 도메인 관리자 계정에는 도메인 수준에서 GPO를 적용할 권한이 없습니다. 대신 도메인 루트 한 수준 내에 ComputersUsers를 포함하는 NetBIOS 도메인 이름으로 자동 생성된 OU에 이 GPO를 적용해야 합니다.

    AWS Managed AD OU 위치

  2. 그룹 정책 관리를 열고 Forest, Domains, 도메인, Group Policy Objects를 확장하여 방금 생성한 GPO를 찾습니다.

  3. 새 GPO(예: Teleport Access Policy)를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 편집을 선택합니다.

  4. 그룹 정책 편집기에서 **Computer Configuration > Policies > Windows Settings > Security Settings > Public Key Policies**를 확장합니다.

  5. Trusted Root Certification Authorities를 마우스 오른쪽 버튼으로 클릭한 다음 가져오기를 클릭합니다.

  6. 마법사를 사용하여 Teleport 인증서를 선택하고 가져옵니다.

    Teleport CA 가져오기

    HSM 지원 키를 사용하는 경우, 각 CA 인증서에 대해 이 단계를 반복해야 합니다.

  7. 이 호스트에서 GPO 업데이트가 즉시 적용되도록 하려면, PowerShell을 열고 다음 명령을 실행합니다(선택 사항):

    gpupdate.exe /force
    

Teleport CA를 Active Directory 도메인에 게시#

Teleport 인증서를 Active Directory 도메인에 게시하려면:

  1. 도메인 관리자 또는 AWS 위임된 도메인 관리자 그룹의 구성원인 계정으로 Active Directory 도메인에 가입된 Windows 컴퓨터에 로그온합니다.

  2. PowerShell을 열고 Teleport에서 내보낸 teleport.cer 파일의 경로를 사용하여 다음 명령을 실행합니다:

    certutil -dspublish -f  RootCA
    

    이 명령을 사용하면 도메인 컨트롤러가 Teleport CA를 신뢰하여 Teleport를 통한 인증서 기반 스마트 카드 인증이 성공할 수 있습니다.

    HSM 지원 키를 사용하는 경우, 이 가이드의 앞부분에서 내보낸 zip 파일의 각 CA 인증서에 대해 이 단계를 반복해야 합니다.

Teleport CA를 NTAuth 저장소에 게시#

Teleport 발급 인증서로 인증이 성공하려면, Teleport CA도 엔터프라이즈 NTAuth 저장소에 게시되어야 합니다. Teleport는 인증할 수 있게 된 후 주기적으로 CA를 게시하지만, Teleport가 LDAP 액세스를 갖기 위해서는 이 단계를 처음에 수동으로 수행해야 합니다.

HSM 지원 키를 사용하는 경우, 번들의 각 CA 인증서에 대해 이 단계를 반복해야 합니다.

Teleport CA를 LDAP에 게시하려면:

  1. PowerShell을 열고 teleport.cer 파일의 경로를 사용하여 다음 명령을 실행합니다:

    certutil -dspublish -f  NTAuthCA
    
  2. 다음 명령을 실행하여 LDAP에서 CA를 강제로 검색합니다:

    certutil -pulse
    

    이 단계는 엄격히 필요하지 않습니다. 그러나 인증서가 전파될 때까지 기다리지 않고 다음 단계로 진행할 수 있습니다.

스마트 카드 인증 활성화#

Teleport는 스마트 카드를 에뮬레이션하여 인증서 기반 인증을 수행합니다.

그룹 정책 개체에 스마트 카드 인증을 추가하려면:

  1. 그룹 정책 편집기에서 Teleport Access Policy 그룹 정책 개체가 열려 있는지 확인합니다.

  2. **Computer Configuration > Policies > Windows Settings > Security Settings > System Services**를 확장합니다.

  3. 스마트 카드를 두 번 클릭하고 Define this policy setting을 선택합니다.

  4. 자동을 선택한 다음 OK를 클릭합니다.

    스마트카드 활성화

  5. 이 호스트에서 GPO 업데이트가 즉시 적용되도록 하려면, PowerShell을 열고 다음 명령을 실행합니다(선택 사항):

    gpupdate.exe /force
    

원격 데스크톱 연결 허용#

다음으로 도메인 컴퓨터에 대한 원격 연결을 허용하는 정책을 구성해야 합니다.

  1. 그룹 정책 편집기에서 Teleport Access Policy 그룹 정책 개체가 열려 있는지 확인합니다.

  2. **Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections**를 확장합니다.

  3. Allow users to connect remotely by using Remote Desktop Services를 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용을 선택한 다음 OK를 클릭합니다.

  4. Remote Desktop Session Host 아래에서 보안을 선택합니다.

  5. Require user authentication for remote connections by using Network Level Authentication을 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용 안 함을 선택한 다음 OK를 클릭합니다.

    NLA 지원

Teleport 16.2.0 이상은 NLA를 지원합니다. 지원되는 버전을 실행 중이고 NLA를 활성화한 경우 이 단계를 건너뛸 수 있습니다. 자세한 내용은 NLA 섹션을 참조하세요.

사용 안 함 필요

  1. Always prompt for password upon connection을 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용 안 함을 선택한 다음 OK를 클릭합니다.

    Teleport 인증서 기반 스마트 카드 인증은 각 데스크톱 세션에 대해 무작위 스마트 카드 PIN을 생성하고 RDP 연결을 설정할 때 데스크톱에 PIN을 제공합니다. PIN은 Teleport 사용자에게 제공되지 않으므로 인증이 성공하려면 Always prompt for password upon connection 정책을 비활성화해야 합니다.

  2. Computer Configuration, Policies, Windows Settings, Security Settings를 확장하여 고급 보안이 포함된 Windows 방화벽을 선택합니다.

  3. 인바운드 규칙을 마우스 오른쪽 버튼으로 클릭하고 새 규칙을 선택합니다.

    • 미리 정의됨 아래에서 원격 데스크톱을 선택한 다음 다음을 클릭합니다.
    • **User Mode (TCP-in)**을 선택한 다음 다음을 클릭합니다.
    • 연결 허용을 선택한 다음 마침을 클릭합니다.

    방화벽 열기

  4. 이 호스트에서 GPO 업데이트가 즉시 적용되도록 하려면, PowerShell을 열고 다음 명령을 실행합니다(선택 사항):

    gpupdate.exe /force
    

RemoteFX 활성화#

Teleport Access Policy 그룹 정책 개체 구성을 완료하려면 RemoteFX를 활성화해야 합니다. RemoteFX는 원격 데스크톱 연결의 성능을 크게 향상시키는 압축 기술입니다.

  1. 그룹 정책 편집기에서 Teleport Access Policy 그룹 정책 개체가 열려 있는지 확인합니다.

  2. **Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Remote Session Environment > RemoteFX for Windows Server 2008 R2**를 확장합니다.

  3. Configure RemoteFX를 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용을 선택한 다음 OK를 클릭합니다.

    RemoteFX 활성화

  4. 이제 Remote Session Environment를 왼쪽 클릭합니다 (왼쪽 창의 Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Remote Session Environment). 오른쪽 창의 항목에서 Enable RemoteFX encoding for RemoteFX clients designed for Windows Server 2008 R2 SP1을 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용을 선택한 다음 OK를 클릭합니다.

    RemoteFX 활성화

  5. 왼쪽 창에서 Remote Session Environment를 다시 왼쪽 클릭하고, 오른쪽 창의 항목에서 Limit maximum color depth를 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용을 선택한 다음 OK를 클릭합니다.

    RemoteFX 활성화

  6. PowerShell을 열고 다음 명령을 실행하여 Teleport 그룹 정책 개체를 업데이트합니다:

    gpupdate.exe /force
    

4단계/7. RDP 연결을 위한 인증서 구성#

Teleport RDP 클라이언트는 TLS 연결을 위해 안전한 암호화 알고리즘이 필요합니다. 그러나 Windows Server 2012 R2는 기본적으로 이러한 알고리즘을 지원하지 않습니다.

다음을 수행하여 Windows Server 2012 R2가 필요한 알고리즘을 지원하도록 구성할 수 있습니다:

호스트가 필요한 알고리즘을 지원하는 경우, 이 단계를 건너뛰고 LDAP CA 인증서 내보내기로 이동할 수 있습니다.

인증서 템플릿 생성#

타원 곡선 P-384 및 SHA384를 서명 알고리즘으로 사용하는 인증서 템플릿을 생성하려면:

  1. 시작, 제어판, 관리 도구를 클릭하여 인증 기관을 선택합니다.

  2. CA 컴퓨터를 열고 인증서 템플릿을 마우스 오른쪽 버튼으로 클릭한 다음 관리를 선택합니다.

  3. 컴퓨터 템플릿을 선택하고 마우스 오른쪽 버튼을 클릭한 다음 템플릿 복제를 선택합니다.

  4. 호환성 탭을 선택합니다:

    • 인증 기관Windows Server 2012 R2로 변경한 다음 OK를 클릭합니다.
    • 인증서 받는 사람Windows Server 2012 R2로 변경한 다음 OK를 클릭합니다.
  5. 일반 탭을 선택합니다:

    • 템플릿 표시 이름RemoteDesktopAccess로 변경합니다.
    • 템플릿 이름RemoteDesktopAccess인지 확인합니다.
  6. 암호화 탭을 선택합니다:

    • 공급자 범주키 저장소 공급자로 변경합니다.
    • 알고리즘 이름ECDH_P384로 변경합니다.
    • 요청 해시SHA384로 변경합니다.
  7. 확장 탭을 선택합니다:

    • 응용 프로그램 정책을 선택한 다음 편집을 클릭합니다.
    • 목록에서 모든 항목을 제거합니다.
  8. 보안 탭을 선택합니다:

    • 도메인 컴퓨터를 선택하고 그룹에 읽기등록 권한을 부여합니다.
  9. OK를 클릭하여 템플릿을 생성합니다.

  10. 인증 기관 콘솔로 돌아가서 인증서 템플릿을 마우스 오른쪽 버튼으로 클릭합니다.

  11. 새로 만들기를 클릭하고 발급할 인증서 템플릿을 선택한 다음 RemoteDesktopAccess를 선택합니다.

  12. OK를 클릭합니다.

새 인증서 템플릿을 사용하도록 GPO 업데이트#

새 인증서 템플릿을 사용하도록 Teleport 그룹 정책 개체를 업데이트하려면:

  1. 그룹 정책 편집기에서 Teleport Access Policy 그룹 정책 개체를 엽니다.

  2. **Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Security**를 확장합니다.

  3. Server authentication certificate template을 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용을 선택한 다음 인증서 템플릿 이름을 RemoteDesktopAccess로 설정합니다.

    RDP 인증서 템플릿

  4. Computer Configuration, Policies, Windows Settings를 확장하여 공개 키 정책을 선택합니다.

  5. 인증서 서비스 클라이언트 - 자동 등록을 두 번 클릭한 다음 구성 모델에서 사용을 선택합니다.

  6. PowerShell을 열고 다음 명령을 실행하여 Teleport 그룹 정책 개체를 업데이트합니다:

    gpupdate.exe /force
    

5단계/7. LDAP CA 인증서 내보내기#

Teleport는 LDAPS를 사용하여 도메인 컨트롤러에 연결합니다. 즉, Teleport가 초기 연결 중에 도메인 컨트롤러에서 보낸 인증서가 신뢰할 수 있다는 것을 알아야 합니다. 도메인 컨트롤러의 인증서가 Teleport를 실행하는 시스템의 시스템 저장소에서 신뢰되는 경우 이 단계를 건너뛸 수 있습니다.

LDAP CA 인증서를 가져올 수 없는 경우 insecure_skip_verify: true를 설정하여 TLS 확인을 건너뛸 수 있습니다. 그러나 프로덕션 환경에서는 TLS 확인을 건너뛰면 안 됩니다.

CA 인증서를 내보내려면:

  1. 시작, 제어판, 관리 도구를 클릭하여 인증 기관을 선택합니다.
  2. CA 컴퓨터를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 속성을 선택합니다.
  3. 일반 탭에서 인증서 보기를 클릭합니다.
  4. 세부 정보를 선택한 다음 파일에 복사를 클릭합니다.
  5. 인증서 내보내기 마법사에서 다음을 클릭하고 **base-64 encoded X.509 (.CER)**가 선택되었는지 확인합니다.
  6. 인증서의 이름과 위치를 선택하고 마법사를 클릭합니다.
  7. 내보낸 파일을 Teleport를 실행 중인 시스템으로 전송합니다. 이 인증서를 시스템의 신뢰할 수 있는 저장소에 추가하거나 ldap_ca_cert 구성 필드를 통해 내용을 제공할 수 있습니다.

6단계/7. Teleport 구성#

Windows 데스크톱에 대한 액세스를 보호하도록 Teleport를 구성하려면:

  1. Teleport Windows 데스크톱 서비스를 실행할 Linux 호스트에 Teleport를 설치합니다:

To install a Teleport Agent on your Linux server:

The recommended installation method is the cluster install script. It will select the correct version, edition, and installation mode for your cluster.

  1. Assign to your Teleport cluster hostname and port, but not the scheme (https://).

  2. Run your cluster's install script:

    $ curl "https:///scripts/install.sh" | sudo bash
    
  1. 관리 워크스테이션에서 Teleport 클러스터에 로그인합니다.

  2. 다음 명령으로 클러스터에 대한 초대 토큰을 생성합니다:

    $ tctl tokens add --type=windowsdesktop
    
  3. Windows 데스크톱 서비스를 실행할 Linux 호스트의 파일에 초대 토큰을 복사합니다.

  4. Linux 호스트의 /etc/teleport.yaml에 Windows 데스크톱 서비스 구성을 추가합니다.

    /etc/teleport.yaml에는 다음과 유사한 구성 설정이 포함되어야 합니다:

    version: v3
    teleport:
      auth_token: "path/to/token"
      proxy_server: 
    
    
    

    You can check the status of the Teleport Desktop Service with systemctl status teleport and view its logs with journalctl -fu teleport.

    7단계/7. Teleport를 사용하여 로그인#

    Teleport 사용자는 원격 Windows 데스크톱에 액세스하기 위한 적절한 권한이 있어야 합니다. 예를 들어, 모든 Windows 데스크톱 레이블과 로컬 "Administrator" 사용자에 대한 액세스를 사용자에게 부여하는 역할을 생성할 수 있습니다.

    Windows 데스크톱 액세스를 위한 역할을 생성하려면:

    1. 다음 내용으로 windows-desktop-admins.yaml이라는 파일을 생성합니다:

      kind: role
      version: v5
      metadata:
        name: windows-desktop-admins
      spec:
        allow:
          windows_desktop_labels:
            "*": "*"
          windows_desktop_logins: ["Administrator"]
      
    2. 역할을 생성합니다:

      $ tctl create -f windows-desktop-admins.yaml
      

    Assign the windows-desktop-admins role to your Teleport user by running the appropriate commands for your authentication provider:

    이제 Windows 데스크톱 서비스를 실행하는 Linux 호스트와 Teleport 사용자가 Windows 컴퓨터에 연결할 수 있도록 허용하는 역할이 있으므로, windows-desktop-admins 역할이 할당된 Teleport 사용자를 사용하여 Teleport 웹 UI에서 Windows 데스크톱에 연결할 수 있습니다. 또는 Teleport Connect를 사용하여 연결할 수 있습니다.

    Windows 데스크톱에 연결하려면:

    1. windows-desktop-admins 역할이 할당된 계정을 사용하여 Teleport 클러스터에 로그인합니다.

    2. 리소스를 선택합니다.

    3. 유형을 클릭한 다음 데스크톱을 선택합니다.

    4. 액세스하려는 Windows 컴퓨터의 연결을 클릭한 다음 연결에 사용할 로그인을 선택합니다.

      Teleport 웹 UI에서 Windows 데스크톱에 연결

      Teleport는 원격 데스크톱 연결을 열고 데스크톱 세션 녹화를 시작합니다. Windows 데스크톱 작업이 완료되면 더 많은 항목 메뉴를 클릭한 다음 연결 끊기를 클릭합니다.

      Windows 데스크톱에서 연결 끊기

      녹화를 보려면 Teleport 웹 UI에서 감사를 선택한 다음 메뉴에서 세션 녹화를 클릭합니다.

    LDAP 검색#

    Active Directory 환경에서 Teleport는 LDAP를 통해 호스트를 검색하도록 구성할 수 있습니다. LDAP 검색은 Teleport Windows 데스크톱 서비스 구성의 discovery_configs 필드에 하나 이상의 검색 구성을 추가하여 활성화됩니다. base_dn을 와일드카드 '*'로 설정하여 도메인 루트에서 검색하거나, 대체 기본 고유 이름을 지정하여 검색할 수 있습니다.

    기본적으로 LDAP를 통해 검색된 모든 호스트는 포트 3389로 등록됩니다. 각 검색 구성에 대해 RDP 포트를 재정의할 수 있습니다.

    windows_desktop_service:
      enabled: true
      discovery_configs:
        - base_dn: 'OU=prod,DC=example,DC=com'
        - base_dn: 'OU=staging,DC=example,DC=com'
          rdp_port: 9989
    

    필터#

    Teleport는 선택적으로 검색 결과를 좁히는 데 사용할 수 있는 필터 집합을 허용합니다. 필터는 LDAP 필터 구문으로 지정됩니다. Teleport는 지정된 모든 필터의 논리적 AND를 자동으로 계산합니다.

    windows_desktop_service:
      enabled: true
      discovery_configs:
        - base_dn: '*'
          filters:
            - '(location=Oakland)'
            - '(!(primaryGroupID=516))'
    

    레이블 지정#

    액세스를 제어하기 위해 검색된 호스트에 레이블을 적용해야 하는 경우가 많습니다. 검색 구성의 label_attributes 필드를 설정하여 LDAP 속성을 Teleport 레이블로 변환하도록 Teleport를 구성할 수 있습니다.

    windows_desktop_service:
      enabled: true
      discovery_configs:
        - base_dn: '*'
          label_attributes:
            - 'location'
            - 'department'
    

    지정된 각 속성은 ldap/ 접두사가 붙은 Teleport 레이블에 배치됩니다.

    예를 들어, AD 컴퓨터 개체의 location 속성 값이 Oakland이고 department 속성 값이 Engineering이면, 이 호스트에 대한 Teleport 리소스는 ldap/location=Oaklandldap/department=Engineering 레이블을 모두 갖습니다.

    또한 이 정책을 통해 검색된 모든 호스트에 적용되는 정적 레이블 집합을 지정할 수도 있습니다:

    windows_desktop_service:
      enabled: true
      discovery_configs:
        - base_dn: 'OU=Engineering,OU=Servers,DC=example,DC=com'
          labels:
            team: engineering
        - base_dn: 'OU=Sales,OU=Servers,DC=example,DC=com'
          labels:
            team: sales
    

    보안 강화#

    기본적으로 기본 도메인 정책은 모든 인증된 사용자에게 Add workstations to domain user 권한을 부여합니다. 보안 모범 사례로 Teleport는 관리자 또는 다른 권한 있는 그룹에만 이 권한을 부여할 것을 권장합니다.

    기본 도메인 정책을 변경하려면:

    1. 그룹 정책 관리를 열고 Forest, Domains, 도메인, Group Policy Objects를 확장합니다.
    2. 기본 도메인 컨트롤러 정책을 마우스 오른쪽 버튼으로 클릭한 다음 편집을 선택합니다.
    3. 그룹 정책 편집기에서 Computer Configuration, Policies, Windows Settings, Security Settings, Local Policies, User Rights Assignment를 확장하여 Add workstations to domain을 선택합니다.
    4. Add workstations to domain 정책을 두 번 클릭하고 Authenticated Users 그룹이 없는지 확인합니다.

    다중 도메인#

    windows_desktop_service는 단일 Active Directory 도메인의 호스트에 연결하도록 설계되었습니다. 독립적인 도메인이 여러 개 있는 경우 여러 Teleport 에이전트를 배포하여 처리할 수 있습니다.

    신뢰 관계가 있는 여러 도메인이 있는 경우, Teleport가 다른 도메인의 사용자에 대한 인증서를 생성하면서 하나의 도메인에 대해 PKI 작업을 수행하도록 구성할 수 있습니다.

    이것이 작동하려면 연결하려는 호스트와 연결하려는 AD 사용자가 동일한 도메인에 있어야 합니다.

    예를 들어, example.com에 루트 도메인이 있고 dev.example.com에 개발자용 하위 도메인이 있다고 가정해 보겠습니다. PKI가 루트에서 구성되어 있지만 하위 도메인의 사용자가 하위 도메인의 호스트에 연결할 수 있도록 하려면 다음을 수행합니다:

    1. 위 섹션에 설명된 대로 루트 도메인의 그룹 정책에서 Teleport의 CA 인증서를 신뢰할 수 있는 루트 인증서로 가져오고 NTAuth 저장소에 인증서를 추가합니다.
    2. 하위 도메인의 사용자 및 호스트에 대한 인증서를 발급하면서 루트 도메인에 대해 PKI를 수행하도록 Teleport를 구성합니다:
    windows_desktop_service:
      enabled: true
    
      # 하위 도메인을 가리키도록 LDAP 설정 구성
      ldap:
        addr: dev.example.com:636
        username: 'DEV\svc-teleport'
    
      # 선택 사항: 하위 도메인에 대한 검색 구성
      discovery:
        base_dn: CN=Computers,DC=dev,DC=example,DC=com
    
      # 루트 도메인에 대해 PKI 수행
      pki_domain: root.example.com
    

    이 구성으로 Teleport는 dev.example.com의 사용자에 대한 인증서를 생성하지만 CA 및 CRL을 example.com에 게시합니다.

    네트워크 수준 인증(NLA)#

    Teleport 16.2.0 이상에서는 Windows 호스트에 연결할 때 네트워크 수준 인증(NLA)을 수행하도록 windows_desktop_service를 구성할 수 있습니다. NLA는 원격 데스크톱 연결을 설정하기 이전에 사용자를 인증하는 보안 기능으로, 원격 Windows 호스트가 인증되지 않은 사용자에게 로그인 화면을 표시하기 위해 시스템 리소스를 소비하지 않도록 합니다.

    NLA를 수행하려면 Teleport의 windows_desktop_service가 키 배포 센터(KDC)에 아웃바운드 Kerberos 연결을 수행할 수 있어야 합니다. 이는 일반적으로 TCP 포트 88에서 수행됩니다.

    Teleport는 다음을 순서대로 확인하여 KDC 주소를 결정합니다:

    1. kdc_address가 설정된 경우 Teleport는 이 주소를 사용합니다.
    2. 버전 18.3.1부터 locate_server가 활성화되고 kdc_address가 설정되지 않은 경우, Teleport는 DNS SRV 레코드를 통해 KDC 주소를 검색하려고 시도합니다.
    3. locate_server 또는 kdc_address가 지정되지 않은 경우, Teleport는 ldap 구성의 addr 필드에 지정된 동일한 호스트에서 KDC를 사용할 수 있다고 가정합니다.

    예를 들어, Teleport 구성 파일에서 kdc_address를 지정하여 KDC 주소를 설정할 수 있습니다.

    windows_desktop_service:
        enabled: true
        kdc_address: kdc.example.com   # 지정되지 않은 경우 포트 88이 기본값
    

    locate_server 옵션을 사용하는 경우, Teleport는 제공된 domain에서 DNS SRV 조회를 수행합니다 (예: _kerberos._tcp.my-site._sites.example.com). NLA는 우선 순위가 가장 높고 도달 가능한 KDC에 대해 수행됩니다.

    windows_desktop_service:
       enabled: true
    
       locate_server:
          enabled: true
          site: "my-site" # 선택 사항
       domain: example.com
    

    서버 위치가 비활성화되고 kdc_address가 지정되지 않은 경우, 다음 구성으로 Teleport는 example.com:88에 대해 NLA를 수행하려고 시도합니다.

    windows_desktop_service:
        enabled: true
    
        ldap:
          addr: example.com:636
    

    NLA를 활성화하려면 Teleport의 windows_desktop_service를 실행하는 모든 호스트에서 TELEPORT_ENABLE_RDP_NLA 환경 변수를 yes로 설정합니다. 환경 변수 설정 프로세스는 Teleport를 실행하는 환경에 따라 다릅니다.

    Kubernetes에서 Teleport를 실행 중인 경우 Pod 구성 편집이 필요합니다.

    Teleport를 systemd 서비스로 실행 중인 경우 systemctl edit teleport를 사용하여 systemd 오버라이드를 만들어야 합니다:

    $ sudo systemctl edit teleport
    

    그러면 환경에 대한 오버라이드를 삽입할 수 있는 텍스트 편집기가 열립니다:

    ### Editing /etc/systemd/system/teleport.service.d/override.conf
    ### Anything between here and the comment below will become the contents of the drop-in file
    
    [Service]
    Environment="TELEPORT_ENABLE_RDP_NLA=yes"
    

    NLA는 Active Directory 도메인의 일부인 호스트에 연결할 때만 지원됩니다. Teleport는 로컬 Windows 사용자로 호스트에 연결할 때 NLA를 수행하지 않습니다.

    NLA는 Teleport가 FIPS 모드로 실행될 때 지원되지 않습니다.

    컴퓨터 이름#

    성공적인 인증 흐름을 완료하려면, Teleport가 대상 Windows 서버의 호스트명을 알아야 합니다. Teleport의 LDAP 기반 검색을 사용하는 경우 작업이 필요 없습니다. Teleport는 자동으로 채워지는 teleport.dev/computer_name 레이블을 기본적으로 사용합니다. 이 레이블이 없으면 Teleport는 데스크톱의 addr 필드를 사용합니다.

    구성 파일이나 Teleport API를 통해 Windows 호스트를 등록하고 NLA를 활성화하려면 다음 중 하나를 수행해야 합니다:

    • teleport.dev/computer_name 레이블을 적절한 호스트명으로 수동 설정
    • 호스트의 addr이 실제 호스트명인지 확인

    다음 단계#

    문제가 발생하면 일반적인 문제와 해결 방법에 대한 문제 해결을 참조하세요. Windows 관련 역할 권한 구성에 대한 내용은 데스크톱을 위한 역할 기반 액세스 제어를 참조하세요.

Active Directory 수동 액세스 구성

원문 보기
요약

이 가이드는 Active Directory 도메인을 연결하는 방법과 연결된 도메인에서 Windows 데스크톱에 로그인하는 방법을 설명합니다. Teleport는 Active Directory의 인증서 기반 인증을 지원하기 위해 Kerberos 인증 프로토콜이 필요합니다.

이 가이드는 Active Directory 도메인을 연결하는 방법과 연결된 도메인에서 Windows 데스크톱에 로그인하는 방법을 설명합니다.

Teleport는 Active Directory의 인증서 기반 인증을 지원하기 위해 Kerberos 인증 프로토콜이 필요합니다. Microsoft Entra ID는 Kerberos를 사용하지 않으므로, Microsoft Entra ID에는 Teleport Windows 데스크톱 서비스를 사용할 수 없습니다.

사전 요구 사항#

이 가이드의 단계를 완료하려면, 환경이 다음 요구 사항을 충족하는지 확인하세요:

  • A running Teleport cluster. If you want to get started with Teleport, sign up for a free trial or set up a demo environment.

  • The tctl and tsh clients.

    Installing `tctl` and `tsh` clients
    1. Determine the version of your Teleport cluster. The tctl and tsh clients must be at most one major version behind your Teleport cluster version. Send a GET request to the Proxy Service at /v1/webapi/find and use a JSON query tool to obtain your cluster version. Replace with the web address of your Teleport Proxy Service:

      $ TELEPORT_DOMAIN=
      $ TELEPORT_VERSION="$(curl -s https://$TELEPORT_DOMAIN/v1/webapi/find | jq -r '.server_version')"
      
    2. Follow the instructions for your platform to install tctl and tsh clients:

  • Teleport Windows 데스크톱 서비스를 실행할 Linux 서버. 다른 리소스를 위한 Teleport 에이전트를 실행하는 기존 서버를 사용할 수 있습니다.
  • LDAPS용으로 구성된 Active Directory 도메인. Teleport는 암호화된 LDAP 연결이 필요하므로, 도메인에서 LDAPS 인증서를 발급하기 위해 Active Directory 인증서 서비스 또는 비 Microsoft 인증 기관(CA)을 사용하는지 확인해야 합니다.
  • 도메인 컨트롤러에 대한 관리 액세스.

To check that you can connect to your Teleport cluster, sign in with tsh login, then verify that you can run tctl commands using your current credentials.

For example, run the following command, assigning to the domain name of the Teleport Proxy Service in your cluster and to your Teleport username:

$ tsh login --proxy= --user=
$ tctl status
# Cluster  (=teleport.url=)
# Version  (=teleport.version=)
# CA pin   (=presets.ca_pin=)

If you can connect to the cluster and run the tctl status command, you can use your current credentials to run subsequent tctl commands from your workstation. If you host your own Teleport cluster, you can also run tctl commands on the computer that hosts the Teleport Auth Service for full permissions.

옵션 1: 자동 구성#

비교적 단순한 Active Directory 환경의 경우, tctl에서 생성된 구성 스크립트를 사용하여 Teleport와 함께 사용할 Active Directory 도메인을 부트스트랩할 수 있습니다. 높은 수준에서 스크립트는 다음을 수행합니다:

  1. SAM 계정 이름 svc-teleportTeleport Service Account라는 제한적인 서비스 계정을 만들고 필요한 LDAP 컨테이너를 생성합니다.
  2. Block teleport-svc Interactive Login이라는 그룹 정책 개체(GPO)를 생성하고 연결하여 서비스 계정이 대화형 로그인을 수행하지 못하도록 방지합니다.
  3. Teleport 연결을 허용하기 위해 Teleport Access Policy라는 GPO를 구성합니다:
    • Teleport CA 인증서 가져오기.
    • 방화벽 규칙 구성.
    • 원격 RDP 연결 허용.
    • 원격 데스크톱 성능 향상을 위한 RemoteFX 활성화.
  4. LDAP CA 인증서 읽기 (보안 LDAPS 연결에 필요).
  5. Windows 데스크톱 서비스를 위한 Teleport 구성 파일 생성.

더 복잡한 Active Directory 환경의 경우, 특정 요구 사항을 충족하도록 생성된 스크립트를 수정해야 할 수도 있습니다. 스크립트가 수행하는 내용을 이해하는 것이 더 쉬울 수도 있으며, 아래의 수동 구성 단계를 따르면 됩니다.

tctl 생성 구성 스크립트를 사용하려면 다음 명령을 실행하세요:

# 스크립트를 생성하고 configure-ad.ps1이라는 파일에 저장합니다.
tctl desktop bootstrap > configure-ad.ps1

스크립트를 생성한 후, Windows 도메인 컨트롤러로 전송하고 도메인 관리자로 PowerShell 콘솔에서 실행하세요.

옵션 2: 수동 구성#

1단계/7. 제한적인 서비스 계정 생성#

Teleport는 Active Directory 도메인에 연결하기 위해 서비스 계정이 필요합니다. 최대 보안을 위해 제한적인 권한을 가진 전용 서비스 계정을 생성해야 합니다.

서비스 계정을 생성하려면:

  1. Windows 도메인 컴퓨터에서 PowerShell을 엽니다.

  2. 다음 스크립트를 PowerShell 콘솔에 복사하여 붙여넣기하여 무작위로 생성된 암호로 서비스 계정을 만듭니다:

    $Name="Teleport Service Account"
    $SamAccountName="svc-teleport"
    
    # "Password must meet complexity requirements" 보안 정책 설정을 충족하는
    # 무작위 암호를 생성합니다.
    # 참고: 최소 복잡성 요구 사항이 Windows 기본값에서 변경된 경우,
    # 스크립트의 이 부분을 수정해야 할 수 있습니다.
    Add-Type -AssemblyName 'System.Web'
    do {
       $Password=[System.Web.Security.Membership]::GeneratePassword(15,1)
    } until ($Password -match '\d')
    $SecureStringPassword=ConvertTo-SecureString $Password -AsPlainText -Force
    
    New-ADUser `
      -Name $Name `
      -SamAccountName $SamAccountName `
      -AccountPassword $SecureStringPassword `
      -Enabled $true
    

    서비스 계정에 대해 생성된 암호는 즉시 폐기됩니다. Teleport는 LDAP 인증을 위해 x509 인증서를 사용하므로 암호가 필요 없습니다. 암호 인증이 필요한 경우 서비스 계정의 암호를 재설정할 수 있습니다.

  3. PowerShell 콘솔에서 다음 스크립트를 실행하여 서비스 계정에 부여해야 하는 최소 권한을 설정합니다:

    # 도메인의 고유 이름을 변수에 저장합니다.
    $DomainDN=$((Get-ADDomain).DistinguishedName)
    
    # CDP/Teleport 컨테이너를 생성합니다.
    # "New-ADObject : An attempt was made to add an object to the directory with a name that is already in use"
    # 오류와 함께 명령이 실패하면, 개체가 이미 존재한다는 의미이므로 다음 단계로 진행할 수 있습니다.
    New-ADObject -Name "Teleport" -Type "container" -Path "CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN"
    
    # CDP 컨테이너에서 LDAP 컨테이너를 생성할 수 있도록 Teleport를 허용합니다.
    dsacls "CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN" /I:T /G "$($SamAccountName):CC;container;"
    
    # CDP/Teleport 컨테이너에서 cRLDistributionPoint 개체를 만들고 삭제할 수 있도록 Teleport를 허용합니다.
    dsacls "CN=Teleport,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN" /I:T /G "$($SamAccountName):CCDC;cRLDistributionPoint;"
    
    # CDP/Teleport 컨테이너에서 certificateRevocationList 속성을 쓸 수 있도록 Teleport를 허용합니다.
    dsacls "CN=Teleport,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN " /I:T /G "$($SamAccountName):WP;certificateRevocationList;"
    
    # NTAuthCertificates 컨테이너에서 cACertificate 속성을 읽을 수 있도록 Teleport를 허용합니다.
    dsacls "CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN" /I:T /G "$($SamAccountName):RP;cACertificate;"
    
  4. 새 서비스 계정의 보안 식별자를 가져옵니다. 예를 들어, 다음 명령을 실행합니다:

    Get-AdUser -Identity $SamAccountName | Select SID
    

    이 명령은 지정된 계정의 보안 식별자를 반환합니다:

    SID
    ---
    S-1-5-21-209875886-835680547-4265310078-1113
    
  5. S-로 시작하는 전체 보안 식별자를 복사합니다.

    나중 단계에서 ldap 설정을 구성할 때 sid 필드에 이 값을 사용합니다.

2단계/7. 서비스 계정의 대화형 로그인 방지#

다음 단계에서는 그룹 정책 개체(GPO)를 수정합니다. 그룹 정책 변경은 모든 호스트에 전파되는 데 시간이 걸릴 수 있습니다. PowerShell을 열고 gpupdate.exe /force를 실행하여 현재 호스트에서 변경 사항을 즉시 적용할 수 있습니다. 그러나 도메인의 다른 호스트에 전파되는 데는 여전히 시간이 걸릴 수 있습니다.

Teleport 서비스 계정은 LDAP를 통해 인증하는 데만 필요합니다. 일반 사용자처럼 Windows 컴퓨터에 로그온할 필요가 없습니다. 전체 도메인에 연결된 새 그룹 정책 개체(GPO)를 생성한 다음 대화형 로그인을 거부하여 서비스 계정이 로그온하는 데 사용되지 않도록 방지할 수 있습니다.

GPO 생성#

  1. PowerShell을 열고 $GPOName 변수로 새 그룹 정책 개체의 이름을 지정합니다:

    $GPOName="Block teleport-svc Interactive Login"
    
  2. PowerShell 콘솔에서 다음 명령을 실행하여 새 GPO를 생성합니다:

    New-GPO -Name $GPOName | New-GPLink -Target $((Get-ADDomain).DistinguishedName)
    

대화형 로그인 거부#

  1. 그룹 정책 관리를 열고 **Forest > Domains > $YOUR_DOMAIN > Group Policy Objects**를 확장하여 방금 생성한 그룹 정책 개체를 찾습니다.

  2. 그룹 정책 개체를 선택하고 작업을 클릭한 다음 편집을 선택합니다.

  3. **Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > User Rights Assignment**를 확장합니다.

  4. Deny log on locally를 두 번 클릭한 다음 Define these policy settings를 선택합니다.

  5. Add User or Group을 클릭한 다음 Browse를 클릭합니다.

  6. 서비스 계정 이름의 전체 또는 일부를 입력합니다(예: svc-teleport). 그런 다음 Check Names를 클릭합니다.

  7. Teleport Service Account가 선택되었는지 확인한 다음 모든 대화 상자에서 OK를 클릭합니다.

    대화형 로그인 거부

  8. Deny log on through Remote Desktop Services에 대해 이 단계를 반복합니다.

보안을 강화하기 위해 사용자 이름 및 암호 인증을 완전히 비활성화할 수 있습니다. 사용자 이름 및 암호 인증을 비활성화하면 Teleport 가상 스마트 카드만 도메인의 Windows 컴퓨터에 액세스하는 데 사용할 수 있습니다.

3단계/7. Teleport 연결을 허용하는 GPO 구성#

Teleport를 통한 Windows 데스크톱 세션 액세스를 활성화하려면, Windows 컴퓨터가 Teleport 인증 기관을 신뢰하고 인증서 기반 스마트 카드 인증을 수락하도록 허용하는 그룹 정책 개체를 구성해야 합니다.

그룹 정책 개체를 구성하려면 다음을 수행해야 합니다:

  • 기존 Teleport 클러스터의 Teleport 인증 기관에서 서명된 인증서를 내보냅니다.
  • 새 그룹 정책 개체를 생성하고 서명된 Teleport 인증서를 가져옵니다.
  • 서명된 Teleport 인증서를 Active Directory 도메인에 게시합니다.
  • 서명된 Teleport 인증서를 NTAuth 저장소에 게시합니다.
  • 스마트 카드 인증을 활성화합니다.
  • 원격 데스크톱 연결을 허용합니다.

Teleport 인증 기관을 교체하는 경우 이 단계를 반복해야 합니다.

Teleport 인증서 내보내기#

Teleport CA 인증서를 내보내려면:

  1. 그룹 정책 관리에 액세스할 수 있는 Windows 호스트에 로그온합니다.

  2. PowerShell을 열고 다음 명령을 실행하여 Teleport CA를 다운로드합니다. teleport.example.com을 Teleport 클러스터 주소로 바꾸세요:

    $ curl.exe -fo teleport.cer https:///webapi/auth/export?type=windows
    

    HSM 지원 키에 대한 Teleport 지원을 사용하는 경우, Teleport 클러스터에는 여러 CA 인증서(각 Auth Service 인스턴스마다 하나)가 있습니다. URL에 &format=zip을 추가하여 모든 인증서가 포함된 번들을 다운로드할 수 있습니다.

  1. 나중 단계에서 사용할 수 있도록 방금 다운로드한 파일의 경로를 기록해 두세요.

Teleport 인증서를 위한 GPO 생성#

그룹 정책 개체를 구성하려면:

  1. 다음 명령을 실행하여 Teleport Access Policy라는 이름의 새 그룹 정책 개체를 생성합니다:

    $GPOName="Teleport Access Policy"
    New-GPO -Name $GPOName | New-GPLink -Target $((Get-ADDomain).DistinguishedName)
    

    이 명령은 전체 Active Directory 도메인에 GPO를 적용합니다. 도메인의 컴퓨터 하위 집합만 보호하려면, 해당 컴퓨터만 포함하는 특정 조직 구성 단위(OU)에 GPO를 적용할 수 있습니다.

    AWS Managed Microsoft Active Directory를 사용하는 경우, AWS 위임된 도메인 관리자 계정에는 도메인 수준에서 GPO를 적용할 권한이 없습니다. 대신 도메인 루트 한 수준 내에 ComputersUsers를 포함하는 NetBIOS 도메인 이름으로 자동 생성된 OU에 이 GPO를 적용해야 합니다.

    AWS Managed AD OU 위치

  2. 그룹 정책 관리를 열고 Forest, Domains, 도메인, Group Policy Objects를 확장하여 방금 생성한 GPO를 찾습니다.

  3. 새 GPO(예: Teleport Access Policy)를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 편집을 선택합니다.

  4. 그룹 정책 편집기에서 **Computer Configuration > Policies > Windows Settings > Security Settings > Public Key Policies**를 확장합니다.

  5. Trusted Root Certification Authorities를 마우스 오른쪽 버튼으로 클릭한 다음 가져오기를 클릭합니다.

  6. 마법사를 사용하여 Teleport 인증서를 선택하고 가져옵니다.

    Teleport CA 가져오기

    HSM 지원 키를 사용하는 경우, 각 CA 인증서에 대해 이 단계를 반복해야 합니다.

  7. 이 호스트에서 GPO 업데이트가 즉시 적용되도록 하려면, PowerShell을 열고 다음 명령을 실행합니다(선택 사항):

    gpupdate.exe /force
    

Teleport CA를 Active Directory 도메인에 게시#

Teleport 인증서를 Active Directory 도메인에 게시하려면:

  1. 도메인 관리자 또는 AWS 위임된 도메인 관리자 그룹의 구성원인 계정으로 Active Directory 도메인에 가입된 Windows 컴퓨터에 로그온합니다.

  2. PowerShell을 열고 Teleport에서 내보낸 teleport.cer 파일의 경로를 사용하여 다음 명령을 실행합니다:

    certutil -dspublish -f  RootCA
    

    이 명령을 사용하면 도메인 컨트롤러가 Teleport CA를 신뢰하여 Teleport를 통한 인증서 기반 스마트 카드 인증이 성공할 수 있습니다.

    HSM 지원 키를 사용하는 경우, 이 가이드의 앞부분에서 내보낸 zip 파일의 각 CA 인증서에 대해 이 단계를 반복해야 합니다.

Teleport CA를 NTAuth 저장소에 게시#

Teleport 발급 인증서로 인증이 성공하려면, Teleport CA도 엔터프라이즈 NTAuth 저장소에 게시되어야 합니다. Teleport는 인증할 수 있게 된 후 주기적으로 CA를 게시하지만, Teleport가 LDAP 액세스를 갖기 위해서는 이 단계를 처음에 수동으로 수행해야 합니다.

HSM 지원 키를 사용하는 경우, 번들의 각 CA 인증서에 대해 이 단계를 반복해야 합니다.

Teleport CA를 LDAP에 게시하려면:

  1. PowerShell을 열고 teleport.cer 파일의 경로를 사용하여 다음 명령을 실행합니다:

    certutil -dspublish -f  NTAuthCA
    
  2. 다음 명령을 실행하여 LDAP에서 CA를 강제로 검색합니다:

    certutil -pulse
    

    이 단계는 엄격히 필요하지 않습니다. 그러나 인증서가 전파될 때까지 기다리지 않고 다음 단계로 진행할 수 있습니다.

스마트 카드 인증 활성화#

Teleport는 스마트 카드를 에뮬레이션하여 인증서 기반 인증을 수행합니다.

그룹 정책 개체에 스마트 카드 인증을 추가하려면:

  1. 그룹 정책 편집기에서 Teleport Access Policy 그룹 정책 개체가 열려 있는지 확인합니다.

  2. **Computer Configuration > Policies > Windows Settings > Security Settings > System Services**를 확장합니다.

  3. 스마트 카드를 두 번 클릭하고 Define this policy setting을 선택합니다.

  4. 자동을 선택한 다음 OK를 클릭합니다.

    스마트카드 활성화

  5. 이 호스트에서 GPO 업데이트가 즉시 적용되도록 하려면, PowerShell을 열고 다음 명령을 실행합니다(선택 사항):

    gpupdate.exe /force
    

원격 데스크톱 연결 허용#

다음으로 도메인 컴퓨터에 대한 원격 연결을 허용하는 정책을 구성해야 합니다.

  1. 그룹 정책 편집기에서 Teleport Access Policy 그룹 정책 개체가 열려 있는지 확인합니다.

  2. **Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections**를 확장합니다.

  3. Allow users to connect remotely by using Remote Desktop Services를 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용을 선택한 다음 OK를 클릭합니다.

  4. Remote Desktop Session Host 아래에서 보안을 선택합니다.

  5. Require user authentication for remote connections by using Network Level Authentication을 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용 안 함을 선택한 다음 OK를 클릭합니다.

    NLA 지원

Teleport 16.2.0 이상은 NLA를 지원합니다. 지원되는 버전을 실행 중이고 NLA를 활성화한 경우 이 단계를 건너뛸 수 있습니다. 자세한 내용은 NLA 섹션을 참조하세요.

사용 안 함 필요

  1. Always prompt for password upon connection을 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용 안 함을 선택한 다음 OK를 클릭합니다.

    Teleport 인증서 기반 스마트 카드 인증은 각 데스크톱 세션에 대해 무작위 스마트 카드 PIN을 생성하고 RDP 연결을 설정할 때 데스크톱에 PIN을 제공합니다. PIN은 Teleport 사용자에게 제공되지 않으므로 인증이 성공하려면 Always prompt for password upon connection 정책을 비활성화해야 합니다.

  2. Computer Configuration, Policies, Windows Settings, Security Settings를 확장하여 고급 보안이 포함된 Windows 방화벽을 선택합니다.

  3. 인바운드 규칙을 마우스 오른쪽 버튼으로 클릭하고 새 규칙을 선택합니다.

    • 미리 정의됨 아래에서 원격 데스크톱을 선택한 다음 다음을 클릭합니다.
    • **User Mode (TCP-in)**을 선택한 다음 다음을 클릭합니다.
    • 연결 허용을 선택한 다음 마침을 클릭합니다.

    방화벽 열기

  4. 이 호스트에서 GPO 업데이트가 즉시 적용되도록 하려면, PowerShell을 열고 다음 명령을 실행합니다(선택 사항):

    gpupdate.exe /force
    

RemoteFX 활성화#

Teleport Access Policy 그룹 정책 개체 구성을 완료하려면 RemoteFX를 활성화해야 합니다. RemoteFX는 원격 데스크톱 연결의 성능을 크게 향상시키는 압축 기술입니다.

  1. 그룹 정책 편집기에서 Teleport Access Policy 그룹 정책 개체가 열려 있는지 확인합니다.

  2. **Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Remote Session Environment > RemoteFX for Windows Server 2008 R2**를 확장합니다.

  3. Configure RemoteFX를 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용을 선택한 다음 OK를 클릭합니다.

    RemoteFX 활성화

  4. 이제 Remote Session Environment를 왼쪽 클릭합니다 (왼쪽 창의 Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Remote Session Environment). 오른쪽 창의 항목에서 Enable RemoteFX encoding for RemoteFX clients designed for Windows Server 2008 R2 SP1을 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용을 선택한 다음 OK를 클릭합니다.

    RemoteFX 활성화

  5. 왼쪽 창에서 Remote Session Environment를 다시 왼쪽 클릭하고, 오른쪽 창의 항목에서 Limit maximum color depth를 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용을 선택한 다음 OK를 클릭합니다.

    RemoteFX 활성화

  6. PowerShell을 열고 다음 명령을 실행하여 Teleport 그룹 정책 개체를 업데이트합니다:

    gpupdate.exe /force
    

4단계/7. RDP 연결을 위한 인증서 구성#

Teleport RDP 클라이언트는 TLS 연결을 위해 안전한 암호화 알고리즘이 필요합니다. 그러나 Windows Server 2012 R2는 기본적으로 이러한 알고리즘을 지원하지 않습니다.

다음을 수행하여 Windows Server 2012 R2가 필요한 알고리즘을 지원하도록 구성할 수 있습니다:

호스트가 필요한 알고리즘을 지원하는 경우, 이 단계를 건너뛰고 LDAP CA 인증서 내보내기로 이동할 수 있습니다.

인증서 템플릿 생성#

타원 곡선 P-384 및 SHA384를 서명 알고리즘으로 사용하는 인증서 템플릿을 생성하려면:

  1. 시작, 제어판, 관리 도구를 클릭하여 인증 기관을 선택합니다.

  2. CA 컴퓨터를 열고 인증서 템플릿을 마우스 오른쪽 버튼으로 클릭한 다음 관리를 선택합니다.

  3. 컴퓨터 템플릿을 선택하고 마우스 오른쪽 버튼을 클릭한 다음 템플릿 복제를 선택합니다.

  4. 호환성 탭을 선택합니다:

    • 인증 기관Windows Server 2012 R2로 변경한 다음 OK를 클릭합니다.
    • 인증서 받는 사람Windows Server 2012 R2로 변경한 다음 OK를 클릭합니다.
  5. 일반 탭을 선택합니다:

    • 템플릿 표시 이름RemoteDesktopAccess로 변경합니다.
    • 템플릿 이름RemoteDesktopAccess인지 확인합니다.
  6. 암호화 탭을 선택합니다:

    • 공급자 범주키 저장소 공급자로 변경합니다.
    • 알고리즘 이름ECDH_P384로 변경합니다.
    • 요청 해시SHA384로 변경합니다.
  7. 확장 탭을 선택합니다:

    • 응용 프로그램 정책을 선택한 다음 편집을 클릭합니다.
    • 목록에서 모든 항목을 제거합니다.
  8. 보안 탭을 선택합니다:

    • 도메인 컴퓨터를 선택하고 그룹에 읽기등록 권한을 부여합니다.
  9. OK를 클릭하여 템플릿을 생성합니다.

  10. 인증 기관 콘솔로 돌아가서 인증서 템플릿을 마우스 오른쪽 버튼으로 클릭합니다.

  11. 새로 만들기를 클릭하고 발급할 인증서 템플릿을 선택한 다음 RemoteDesktopAccess를 선택합니다.

  12. OK를 클릭합니다.

새 인증서 템플릿을 사용하도록 GPO 업데이트#

새 인증서 템플릿을 사용하도록 Teleport 그룹 정책 개체를 업데이트하려면:

  1. 그룹 정책 편집기에서 Teleport Access Policy 그룹 정책 개체를 엽니다.

  2. **Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Security**를 확장합니다.

  3. Server authentication certificate template을 마우스 오른쪽 버튼으로 클릭하고, 편집을 선택하고, 사용을 선택한 다음 인증서 템플릿 이름을 RemoteDesktopAccess로 설정합니다.

    RDP 인증서 템플릿

  4. Computer Configuration, Policies, Windows Settings를 확장하여 공개 키 정책을 선택합니다.

  5. 인증서 서비스 클라이언트 - 자동 등록을 두 번 클릭한 다음 구성 모델에서 사용을 선택합니다.

  6. PowerShell을 열고 다음 명령을 실행하여 Teleport 그룹 정책 개체를 업데이트합니다:

    gpupdate.exe /force
    

5단계/7. LDAP CA 인증서 내보내기#

Teleport는 LDAPS를 사용하여 도메인 컨트롤러에 연결합니다. 즉, Teleport가 초기 연결 중에 도메인 컨트롤러에서 보낸 인증서가 신뢰할 수 있다는 것을 알아야 합니다. 도메인 컨트롤러의 인증서가 Teleport를 실행하는 시스템의 시스템 저장소에서 신뢰되는 경우 이 단계를 건너뛸 수 있습니다.

LDAP CA 인증서를 가져올 수 없는 경우 insecure_skip_verify: true를 설정하여 TLS 확인을 건너뛸 수 있습니다. 그러나 프로덕션 환경에서는 TLS 확인을 건너뛰면 안 됩니다.

CA 인증서를 내보내려면:

  1. 시작, 제어판, 관리 도구를 클릭하여 인증 기관을 선택합니다.
  2. CA 컴퓨터를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 속성을 선택합니다.
  3. 일반 탭에서 인증서 보기를 클릭합니다.
  4. 세부 정보를 선택한 다음 파일에 복사를 클릭합니다.
  5. 인증서 내보내기 마법사에서 다음을 클릭하고 **base-64 encoded X.509 (.CER)**가 선택되었는지 확인합니다.
  6. 인증서의 이름과 위치를 선택하고 마법사를 클릭합니다.
  7. 내보낸 파일을 Teleport를 실행 중인 시스템으로 전송합니다. 이 인증서를 시스템의 신뢰할 수 있는 저장소에 추가하거나 ldap_ca_cert 구성 필드를 통해 내용을 제공할 수 있습니다.

6단계/7. Teleport 구성#

Windows 데스크톱에 대한 액세스를 보호하도록 Teleport를 구성하려면:

  1. Teleport Windows 데스크톱 서비스를 실행할 Linux 호스트에 Teleport를 설치합니다:

To install a Teleport Agent on your Linux server:

The recommended installation method is the cluster install script. It will select the correct version, edition, and installation mode for your cluster.

  1. Assign to your Teleport cluster hostname and port, but not the scheme (https://).

  2. Run your cluster's install script:

    $ curl "https:///scripts/install.sh" | sudo bash
    
  1. 관리 워크스테이션에서 Teleport 클러스터에 로그인합니다.

  2. 다음 명령으로 클러스터에 대한 초대 토큰을 생성합니다:

    $ tctl tokens add --type=windowsdesktop
    
  3. Windows 데스크톱 서비스를 실행할 Linux 호스트의 파일에 초대 토큰을 복사합니다.

  4. Linux 호스트의 /etc/teleport.yaml에 Windows 데스크톱 서비스 구성을 추가합니다.

    /etc/teleport.yaml에는 다음과 유사한 구성 설정이 포함되어야 합니다:

    version: v3
    teleport:
      auth_token: "path/to/token"
      proxy_server: 
    
    
    

    You can check the status of the Teleport Desktop Service with systemctl status teleport and view its logs with journalctl -fu teleport.

    7단계/7. Teleport를 사용하여 로그인#

    Teleport 사용자는 원격 Windows 데스크톱에 액세스하기 위한 적절한 권한이 있어야 합니다. 예를 들어, 모든 Windows 데스크톱 레이블과 로컬 "Administrator" 사용자에 대한 액세스를 사용자에게 부여하는 역할을 생성할 수 있습니다.

    Windows 데스크톱 액세스를 위한 역할을 생성하려면:

    1. 다음 내용으로 windows-desktop-admins.yaml이라는 파일을 생성합니다:

      kind: role
      version: v5
      metadata:
        name: windows-desktop-admins
      spec:
        allow:
          windows_desktop_labels:
            "*": "*"
          windows_desktop_logins: ["Administrator"]
      
    2. 역할을 생성합니다:

      $ tctl create -f windows-desktop-admins.yaml
      

    Assign the windows-desktop-admins role to your Teleport user by running the appropriate commands for your authentication provider:

    이제 Windows 데스크톱 서비스를 실행하는 Linux 호스트와 Teleport 사용자가 Windows 컴퓨터에 연결할 수 있도록 허용하는 역할이 있으므로, windows-desktop-admins 역할이 할당된 Teleport 사용자를 사용하여 Teleport 웹 UI에서 Windows 데스크톱에 연결할 수 있습니다. 또는 Teleport Connect를 사용하여 연결할 수 있습니다.

    Windows 데스크톱에 연결하려면:

    1. windows-desktop-admins 역할이 할당된 계정을 사용하여 Teleport 클러스터에 로그인합니다.

    2. 리소스를 선택합니다.

    3. 유형을 클릭한 다음 데스크톱을 선택합니다.

    4. 액세스하려는 Windows 컴퓨터의 연결을 클릭한 다음 연결에 사용할 로그인을 선택합니다.

      Teleport 웹 UI에서 Windows 데스크톱에 연결

      Teleport는 원격 데스크톱 연결을 열고 데스크톱 세션 녹화를 시작합니다. Windows 데스크톱 작업이 완료되면 더 많은 항목 메뉴를 클릭한 다음 연결 끊기를 클릭합니다.

      Windows 데스크톱에서 연결 끊기

      녹화를 보려면 Teleport 웹 UI에서 감사를 선택한 다음 메뉴에서 세션 녹화를 클릭합니다.

    LDAP 검색#

    Active Directory 환경에서 Teleport는 LDAP를 통해 호스트를 검색하도록 구성할 수 있습니다. LDAP 검색은 Teleport Windows 데스크톱 서비스 구성의 discovery_configs 필드에 하나 이상의 검색 구성을 추가하여 활성화됩니다. base_dn을 와일드카드 '*'로 설정하여 도메인 루트에서 검색하거나, 대체 기본 고유 이름을 지정하여 검색할 수 있습니다.

    기본적으로 LDAP를 통해 검색된 모든 호스트는 포트 3389로 등록됩니다. 각 검색 구성에 대해 RDP 포트를 재정의할 수 있습니다.

    windows_desktop_service:
      enabled: true
      discovery_configs:
        - base_dn: 'OU=prod,DC=example,DC=com'
        - base_dn: 'OU=staging,DC=example,DC=com'
          rdp_port: 9989
    

    필터#

    Teleport는 선택적으로 검색 결과를 좁히는 데 사용할 수 있는 필터 집합을 허용합니다. 필터는 LDAP 필터 구문으로 지정됩니다. Teleport는 지정된 모든 필터의 논리적 AND를 자동으로 계산합니다.

    windows_desktop_service:
      enabled: true
      discovery_configs:
        - base_dn: '*'
          filters:
            - '(location=Oakland)'
            - '(!(primaryGroupID=516))'
    

    레이블 지정#

    액세스를 제어하기 위해 검색된 호스트에 레이블을 적용해야 하는 경우가 많습니다. 검색 구성의 label_attributes 필드를 설정하여 LDAP 속성을 Teleport 레이블로 변환하도록 Teleport를 구성할 수 있습니다.

    windows_desktop_service:
      enabled: true
      discovery_configs:
        - base_dn: '*'
          label_attributes:
            - 'location'
            - 'department'
    

    지정된 각 속성은 ldap/ 접두사가 붙은 Teleport 레이블에 배치됩니다.

    예를 들어, AD 컴퓨터 개체의 location 속성 값이 Oakland이고 department 속성 값이 Engineering이면, 이 호스트에 대한 Teleport 리소스는 ldap/location=Oaklandldap/department=Engineering 레이블을 모두 갖습니다.

    또한 이 정책을 통해 검색된 모든 호스트에 적용되는 정적 레이블 집합을 지정할 수도 있습니다:

    windows_desktop_service:
      enabled: true
      discovery_configs:
        - base_dn: 'OU=Engineering,OU=Servers,DC=example,DC=com'
          labels:
            team: engineering
        - base_dn: 'OU=Sales,OU=Servers,DC=example,DC=com'
          labels:
            team: sales
    

    보안 강화#

    기본적으로 기본 도메인 정책은 모든 인증된 사용자에게 Add workstations to domain user 권한을 부여합니다. 보안 모범 사례로 Teleport는 관리자 또는 다른 권한 있는 그룹에만 이 권한을 부여할 것을 권장합니다.

    기본 도메인 정책을 변경하려면:

    1. 그룹 정책 관리를 열고 Forest, Domains, 도메인, Group Policy Objects를 확장합니다.
    2. 기본 도메인 컨트롤러 정책을 마우스 오른쪽 버튼으로 클릭한 다음 편집을 선택합니다.
    3. 그룹 정책 편집기에서 Computer Configuration, Policies, Windows Settings, Security Settings, Local Policies, User Rights Assignment를 확장하여 Add workstations to domain을 선택합니다.
    4. Add workstations to domain 정책을 두 번 클릭하고 Authenticated Users 그룹이 없는지 확인합니다.

    다중 도메인#

    windows_desktop_service는 단일 Active Directory 도메인의 호스트에 연결하도록 설계되었습니다. 독립적인 도메인이 여러 개 있는 경우 여러 Teleport 에이전트를 배포하여 처리할 수 있습니다.

    신뢰 관계가 있는 여러 도메인이 있는 경우, Teleport가 다른 도메인의 사용자에 대한 인증서를 생성하면서 하나의 도메인에 대해 PKI 작업을 수행하도록 구성할 수 있습니다.

    이것이 작동하려면 연결하려는 호스트와 연결하려는 AD 사용자가 동일한 도메인에 있어야 합니다.

    예를 들어, example.com에 루트 도메인이 있고 dev.example.com에 개발자용 하위 도메인이 있다고 가정해 보겠습니다. PKI가 루트에서 구성되어 있지만 하위 도메인의 사용자가 하위 도메인의 호스트에 연결할 수 있도록 하려면 다음을 수행합니다:

    1. 위 섹션에 설명된 대로 루트 도메인의 그룹 정책에서 Teleport의 CA 인증서를 신뢰할 수 있는 루트 인증서로 가져오고 NTAuth 저장소에 인증서를 추가합니다.
    2. 하위 도메인의 사용자 및 호스트에 대한 인증서를 발급하면서 루트 도메인에 대해 PKI를 수행하도록 Teleport를 구성합니다:
    windows_desktop_service:
      enabled: true
    
      # 하위 도메인을 가리키도록 LDAP 설정 구성
      ldap:
        addr: dev.example.com:636
        username: 'DEV\svc-teleport'
    
      # 선택 사항: 하위 도메인에 대한 검색 구성
      discovery:
        base_dn: CN=Computers,DC=dev,DC=example,DC=com
    
      # 루트 도메인에 대해 PKI 수행
      pki_domain: root.example.com
    

    이 구성으로 Teleport는 dev.example.com의 사용자에 대한 인증서를 생성하지만 CA 및 CRL을 example.com에 게시합니다.

    네트워크 수준 인증(NLA)#

    Teleport 16.2.0 이상에서는 Windows 호스트에 연결할 때 네트워크 수준 인증(NLA)을 수행하도록 windows_desktop_service를 구성할 수 있습니다. NLA는 원격 데스크톱 연결을 설정하기 이전에 사용자를 인증하는 보안 기능으로, 원격 Windows 호스트가 인증되지 않은 사용자에게 로그인 화면을 표시하기 위해 시스템 리소스를 소비하지 않도록 합니다.

    NLA를 수행하려면 Teleport의 windows_desktop_service가 키 배포 센터(KDC)에 아웃바운드 Kerberos 연결을 수행할 수 있어야 합니다. 이는 일반적으로 TCP 포트 88에서 수행됩니다.

    Teleport는 다음을 순서대로 확인하여 KDC 주소를 결정합니다:

    1. kdc_address가 설정된 경우 Teleport는 이 주소를 사용합니다.
    2. 버전 18.3.1부터 locate_server가 활성화되고 kdc_address가 설정되지 않은 경우, Teleport는 DNS SRV 레코드를 통해 KDC 주소를 검색하려고 시도합니다.
    3. locate_server 또는 kdc_address가 지정되지 않은 경우, Teleport는 ldap 구성의 addr 필드에 지정된 동일한 호스트에서 KDC를 사용할 수 있다고 가정합니다.

    예를 들어, Teleport 구성 파일에서 kdc_address를 지정하여 KDC 주소를 설정할 수 있습니다.

    windows_desktop_service:
        enabled: true
        kdc_address: kdc.example.com   # 지정되지 않은 경우 포트 88이 기본값
    

    locate_server 옵션을 사용하는 경우, Teleport는 제공된 domain에서 DNS SRV 조회를 수행합니다 (예: _kerberos._tcp.my-site._sites.example.com). NLA는 우선 순위가 가장 높고 도달 가능한 KDC에 대해 수행됩니다.

    windows_desktop_service:
       enabled: true
    
       locate_server:
          enabled: true
          site: "my-site" # 선택 사항
       domain: example.com
    

    서버 위치가 비활성화되고 kdc_address가 지정되지 않은 경우, 다음 구성으로 Teleport는 example.com:88에 대해 NLA를 수행하려고 시도합니다.

    windows_desktop_service:
        enabled: true
    
        ldap:
          addr: example.com:636
    

    NLA를 활성화하려면 Teleport의 windows_desktop_service를 실행하는 모든 호스트에서 TELEPORT_ENABLE_RDP_NLA 환경 변수를 yes로 설정합니다. 환경 변수 설정 프로세스는 Teleport를 실행하는 환경에 따라 다릅니다.

    Kubernetes에서 Teleport를 실행 중인 경우 Pod 구성 편집이 필요합니다.

    Teleport를 systemd 서비스로 실행 중인 경우 systemctl edit teleport를 사용하여 systemd 오버라이드를 만들어야 합니다:

    $ sudo systemctl edit teleport
    

    그러면 환경에 대한 오버라이드를 삽입할 수 있는 텍스트 편집기가 열립니다:

    ### Editing /etc/systemd/system/teleport.service.d/override.conf
    ### Anything between here and the comment below will become the contents of the drop-in file
    
    [Service]
    Environment="TELEPORT_ENABLE_RDP_NLA=yes"
    

    NLA는 Active Directory 도메인의 일부인 호스트에 연결할 때만 지원됩니다. Teleport는 로컬 Windows 사용자로 호스트에 연결할 때 NLA를 수행하지 않습니다.

    NLA는 Teleport가 FIPS 모드로 실행될 때 지원되지 않습니다.

    컴퓨터 이름#

    성공적인 인증 흐름을 완료하려면, Teleport가 대상 Windows 서버의 호스트명을 알아야 합니다. Teleport의 LDAP 기반 검색을 사용하는 경우 작업이 필요 없습니다. Teleport는 자동으로 채워지는 teleport.dev/computer_name 레이블을 기본적으로 사용합니다. 이 레이블이 없으면 Teleport는 데스크톱의 addr 필드를 사용합니다.

    구성 파일이나 Teleport API를 통해 Windows 호스트를 등록하고 NLA를 활성화하려면 다음 중 하나를 수행해야 합니다:

    • teleport.dev/computer_name 레이블을 적절한 호스트명으로 수동 설정
    • 호스트의 addr이 실제 호스트명인지 확인

    다음 단계#

    문제가 발생하면 일반적인 문제와 해결 방법에 대한 문제 해결을 참조하세요. Windows 관련 역할 권한 구성에 대한 내용은 데스크톱을 위한 역할 기반 액세스 제어를 참조하세요.