Active Directory 수동 액세스 구성
Teleport v18.9이 가이드는 Active Directory 도메인을 연결하는 방법과 연결된 도메인에서 Windows 데스크톱에 로그인하는 방법을 설명합니다. Teleport는 Active Directory에 대한 인증서 기반 인증을 지원하기 위해 Kerberos 인증 프로토콜이 필요합니다.
이 가이드는 Active Directory 도메인을 연결하는 방법과 연결된 도메인에서 Windows 데스크톱에 로그인하는 방법을 설명합니다.
Teleport는 Active Directory에 대한 인증서 기반 인증을 지원하기 위해 Kerberos 인증 프로토콜이 필요합니다. Microsoft Entra ID는 Kerberos를 사용하지 않으므로, Microsoft Entra ID에는 Teleport Windows 데스크톱 서비스를 사용할 수 없습니다.
사전 요구 사항#
이 가이드의 단계를 완료하려면, 환경이 다음 요구 사항을 충족하는지 확인하세요:
-
실행 중인 Teleport 클러스터. Teleport를 시작하려면 무료 체험판에 가입하거나 데모 환경을 구성하세요.
-
tctlandtshclients.Installing `tctl` and `tsh` clients
-
Teleport 클러스터의 버전을 확인합니다.
tctlandtshclients는 Teleport 클러스터 버전보다 최대 한 개의 메이저 버전까지만 뒤처질 수 있습니다. Proxy Service의/v1/webapi/find로 GET 요청을 보내고 JSON 쿼리 도구를 사용하여 클러스터 버전을 확인합니다.teleport.example.com:443를 Teleport Proxy Service의 웹 주소로 바꿉니다:$ TELEPORT_DOMAIN=teleport.example.com:443 $ TELEPORT_VERSION="$(curl -s https://$TELEPORT_DOMAIN/v1/webapi/find | jq -r '.server_version')" -
사용 중인 플랫폼에 대한 지침에 따라
tctlandtshclients를 설치합니다:
-
Mac
`tctl` and `tsh` clients가 포함된, 서명된 Teleport macOS .pkg 설치 프로그램을 다운로드합니다:
```code
$ curl -O https://cdn.teleport.dev/teleport-${TELEPORT_VERSION?}.pkg
```
Finder에서 `pkg` 파일을 더블 클릭하여 설치를 시작합니다.
Homebrew를 사용하여 Teleport를 설치하는 것은 지원되지 않습니다. Homebrew의
Teleport 패키지는 Teleport에서 유지 관리하지 않으므로 신뢰성이나 보안을
보장할 수 없습니다.
Windows - Powershell
```code
$ curl.exe -O https://cdn.teleport.dev/teleport-v${TELEPORT_VERSION?}-windows-amd64-bin.zip
# Unzip the archive and move the `tctl` and `tsh` clients to your %PATH%
# NOTE: Do not place the `tctl` and `tsh` clients in the System32 directory, as this can cause issues when using WinSCP.
# Use %SystemRoot% (C:\Windows) or %USERPROFILE% (C:\Users\<username>) instead.
```
Linux
Linux 설치판의 모든 Teleport 바이너리에는 `tctl` and `tsh` clients가 포함되어 있습니다. RPM/DEB
패키지 및 i386/ARM/ARM64용 다운로드를 포함한 더 많은 옵션은
[설치 페이지](../installation/installation.mdx)를 참조하세요.
```code
$ curl -O https://cdn.teleport.dev/teleport-v${TELEPORT_VERSION?}-linux-amd64-bin.tar.gz
$ tar -xzf teleport-v${TELEPORT_VERSION?}-linux-amd64-bin.tar.gz
$ cd teleport
$ sudo ./install
# Teleport binaries have been copied to /usr/local/bin
```
- Teleport Windows 데스크톱 서비스를 실행할 Linux 서버. 다른 리소스를 위해 Teleport 에이전트를 실행 중인 기존 서버를 사용할 수도 있습니다.
- LDAPS용으로 구성된 Active Directory 도메인. Teleport는 암호화된 LDAP 연결이 필요하므로, 도메인이 LDAPS 인증서를 발급하기 위해 Active Directory 인증서 서비스 또는 비(非) Microsoft 인증 기관(CA)을 사용하는지 확인해야 합니다.
- 도메인 컨트롤러에 대한 관리 액세스.
Teleport cluster에 연결할 수 있는지 확인하려면 tsh login으로 로그인한 다음,
현재 자격 증명으로 tctl 명령을 실행할 수 있는지 확인합니다.
예를 들어, teleport.example.com에 cluster 내 Teleport Proxy Service의
도메인 이름을, email@example.com에 Teleport 사용자 이름을 지정하여
다음 명령을 실행합니다:
$ tsh login --proxy=teleport.example.com --user=email@example.com
$ tctl status
# Cluster (=teleport.url=)
# Version (=teleport.version=)
# CA pin (=presets.ca_pin=)
cluster에 연결하여 tctl status 명령을 실행할 수 있다면, 현재 자격 증명을 사용하여
워크스테이션에서 이후의 tctl 명령을 실행할 수 있습니다.
자체 Teleport cluster를 호스팅하는 경우, 전체 권한을 얻기 위해 Teleport Auth Service를
호스팅하는 컴퓨터에서 tctl 명령을 실행할 수도 있습니다.
옵션 1: 자동 구성#
비교적 단순한 Active Directory 환경의 경우, tctl이 생성한 구성 스크립트를 사용하여
Teleport와 함께 사용할 Active Directory 도메인을 부트스트랩할 수 있습니다. 개략적으로
스크립트는 다음 작업을 수행합니다:
- SAM 계정 이름이
svc-teleport인Teleport Service Account라는 제한된 서비스 계정을 만들고, 필요한 LDAP 컨테이너를 생성합니다. Block teleport-svc Interactive Login이라는 그룹 정책 개체(GPO)를 생성하고 연결하여 서비스 계정이 대화형 로그인을 수행하지 못하도록 방지합니다.- Teleport 연결을 허용하도록
Teleport Access Policy라는 GPO를 구성합니다. 여기에는 다음이 포함됩니다:- Teleport CA 인증서 가져오기.
- 방화벽 규칙 구성.
- 원격 RDP 연결 허용.
- 원격 데스크톱 성능 향상을 위한 RemoteFX 활성화.
- LDAP CA 인증서 읽기(보안 LDAPS 연결에 필요).
- Windows 데스크톱 서비스용 Teleport 구성 파일 생성.
더 복잡한 Active Directory 환경의 경우, 특정 요구 사항에 맞게 생성된 스크립트를 수정해야 할 수도 있습니다. 아래의 수동 구성 단계를 따라가며 스크립트가 수행하는 작업을 이해하는 것이 더 쉬울 수도 있습니다.
tctl이 생성한 구성 스크립트를 사용하려면 다음 명령을 실행하세요:
# 스크립트를 생성하여 configure-ad.ps1이라는 파일에 저장합니다.
tctl desktop bootstrap > configure-ad.ps1
스크립트를 생성한 후, 이를 Windows 도메인 컨트롤러로 전송하고 도메인 관리자 권한으로 PowerShell 콘솔에서 실행하세요.
옵션 2: 수동 구성#
1/7단계. 제한된 서비스 계정 생성#
Teleport는 Active Directory 도메인에 연결하기 위해 서비스 계정이 필요합니다. 최대한의 보안을 위해 제한된 권한을 가진 전용 서비스 계정을 생성해야 합니다.
서비스 계정을 생성하려면:
-
Windows 도메인 컴퓨터에서 PowerShell을 엽니다.
-
다음 스크립트를 PowerShell 콘솔에 복사하여 붙여넣어 무작위로 생성된 비밀번호로 서비스 계정을 생성합니다:
$Name="Teleport Service Account" $SamAccountName="svc-teleport" # "비밀번호는 복잡성 요구 사항을 충족해야 합니다" 보안 정책 설정을 충족하는 # 무작위 비밀번호를 생성합니다. # 참고: 최소 복잡성 요구 사항이 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 인증서를 사용하므로 이 비밀번호가 필요하지 않습니다. 비밀번호 인증을 수행해야 하는 경우 서비스 계정의 비밀번호를 재설정할 수 있습니다.
-
PowerShell 콘솔에서 다음 스크립트를 실행하여 서비스 계정에 부여해야 할 최소 권한을 설정합니다:
# 도메인의 고유 이름(distinguished name)을 변수에 저장합니다. $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" # Teleport가 CDP 컨테이너에 LDAP 컨테이너를 생성할 수 있도록 허용합니다. dsacls "CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN" /I:T /G "$($SamAccountName):CC;container;" # Teleport가 CDP/Teleport 컨테이너에서 cRLDistributionPoint 개체를 생성하고 # 삭제할 수 있도록 허용합니다. dsacls "CN=Teleport,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN" /I:T /G "$($SamAccountName):CCDC;cRLDistributionPoint;" # Teleport가 CDP/Teleport 컨테이너에서 certificateRevocationList 속성을 # 쓸 수 있도록 허용합니다. dsacls "CN=Teleport,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN " /I:T /G "$($SamAccountName):WP;certificateRevocationList;" # Teleport가 NTAuthCertificates 컨테이너에서 cACertificate 속성을 읽을 수 # 있도록 허용합니다. dsacls "CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,$DomainDN" /I:T /G "$($SamAccountName):RP;cACertificate;" -
새 서비스 계정의 보안 식별자를 가져옵니다. 예를 들어 다음 명령을 실행합니다:
Get-AdUser -Identity $SamAccountName | Select SID이 명령은 지정한 계정의 보안 식별자를 반환합니다:
SID --- S-1-5-21-209875886-835680547-4265310078-1113 -
S-로 시작하는 전체 보안 식별자를 복사합니다.이후 단계에서
ldap설정을 구성할 때 이 값을sid필드에 사용하게 됩니다.
다음은 몇 가지 문제 해결 팁입니다:
-
Active Directory 사용자 및 컴퓨터를 열어
svc-teleport계정이 존재하는지 확인합니다. -
PowerShell에서 계정이 활성화되어 있는지 확인합니다:
$ Get-ADUser -Identity svc-teleport -
dsacls명령이 실패하면 도메인 관리자 권한으로 PowerShell을 실행하고 있는지 확인합니다. -
AD에서
CN=Teleport,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration을 확인하여 LDAP 컨테이너가 생성되었는지 확인합니다.
2/7단계. 서비스 계정의 대화형 로그인 방지#
다음 단계는 그룹 정책 개체(GPO)를 수정합니다. 그룹 정책 변경 사항이 모든 호스트에
전파되는 데는 시간이 걸릴 수 있습니다. PowerShell을 열고 gpupdate.exe /force를
실행하면 현재 호스트에서 변경 사항을 즉시 적용할 수 있습니다. 그러나 도메인 내 다른
호스트로 전파되는 데는 여전히 시간이 걸릴 수 있습니다.
Teleport 서비스 계정은 LDAP를 통한 인증에만 필요합니다. 이 계정은 일반 사용자처럼 Windows 컴퓨터에 로그온할 필요가 없습니다. 전체 도메인에 연결된 새 그룹 정책 개체(GPO)를 생성하고 대화형 로그인을 거부하여 서비스 계정이 로그온에 사용되지 못하도록 방지할 수 있습니다.
GPO 생성#
-
PowerShell을 열고
$GPOName변수로 새 그룹 정책 개체의 이름을 지정합니다:$GPOName="Block teleport-svc Interactive Login" -
PowerShell 콘솔에서 다음 명령을 실행하여 새 GPO를 생성합니다:
New-GPO -Name $GPOName | New-GPLink -Target $((Get-ADDomain).DistinguishedName)
대화형 로그인 거부#
-
Group Policy Management를 열고 **
Forest > Domains > $YOUR_DOMAIN > Group Policy Objects**를 확장하여 방금 만든 그룹 정책 개체를 찾습니다. -
그룹 정책 개체를 선택하고 Action을 클릭한 다음 Edit을 선택합니다.
-
**
Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > User Rights Assignment**를 확장합니다. -
Deny log on locally를 더블클릭한 다음 Define these policy settings를 선택합니다.
-
Add User or Group을 클릭한 다음 Browse를 클릭합니다.
-
서비스 계정 이름의 전체 또는 일부(예:
svc-teleport)를 입력한 다음 Check Names를 클릭합니다. -
Teleport Service Account가 선택되었는지 확인한 다음 모든 대화 상자에서 OK를 클릭합니다.

-
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 인증 기관을 교체(rotate)할 경우 이 단계를 반복해야 합니다.
Teleport 인증서 내보내기#
Teleport CA 인증서를 내보내려면:
-
Group Policy Management에 액세스할 수 있는 Windows 호스트에 로그온합니다.
-
PowerShell을 열고 다음 명령을 실행하여 Teleport CA를 다운로드합니다. 이때
teleport.example.com을 자신의 Teleport 클러스터 주소로 바꿉니다:$ curl.exe -fo teleport.cer https://teleport.example.com/webapi/auth/export?type=windowsHSM 기반 키에 대한 Teleport 지원을 사용 중인 경우, Teleport 클러스터에는 여러 개의 CA 인증서(각 Auth 서비스 인스턴스마다 하나씩)가 있습니다. URL에
&format=zip을 추가하면 모든 인증서를 포함한 번들을 다운로드할 수 있습니다.
Teleport v18.7.0은 Windows Desktop Access 인증서 발급을 위한 Windows CA를 도입했습니다. 그 이전에는 user CA가 사용되었습니다.
v18.7.0(또는 그 이상)으로 업데이트된 클러스터는 user CA를 Windows CA로 자동 복제하므로, Windows CA가 순환(rotate)되기 전까지는 기존 신뢰 관계가 유지됩니다.
다음 단계에서 사용할 수 있도록 방금 다운로드한 파일의 경로를 기록해 둡니다.
Teleport 인증서를 위한 GPO 생성#
그룹 정책 개체를 구성하려면:
-
다음 명령을 실행하여
Teleport Access Policy라는 이름의 새 그룹 정책 개체를 생성합니다:$GPOName="Teleport Access Policy" New-GPO -Name $GPOName | New-GPLink -Target $((Get-ADDomain).DistinguishedName)이 명령은 GPO를 전체 Active Directory 도메인에 적용합니다. 도메인 내 일부 컴퓨터에만 보호를 적용하려면 해당 컴퓨터만 포함하는 특정 조직 구성 단위(OU)에 GPO를 적용할 수 있습니다.
AWS Managed Microsoft Active Directory를 사용하는 경우, AWS Delegated Domain Administrator 계정에는 도메인 수준에서 GPO를 적용할 권한이 부여되지 않습니다. 대신 도메인 루트 아래에 한 단계 중첩되어
Computers및Users를 포함하고 있으며 NetBIOS 도메인 이름으로 자동 생성된 OU에 이 GPO를 적용해야 합니다.
-
Group Policy Management를 열고 Forest, Domains, 자신의 도메인, Group Policy Objects를 확장하여 방금 생성한 GPO를 찾습니다.
-
새 GPO(예:
Teleport Access Policy)를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 Edit을 선택합니다. -
그룹 정책 편집기에서 **
Computer Configuration > Policies > Windows Settings > Security Settings > Public Key Policies**를 확장합니다. -
Trusted Root Certification Authorities를 마우스 오른쪽 버튼으로 클릭한 다음 Import를 클릭합니다.
-
마법사를 사용하여 Teleport 인증서를 선택하고 가져옵니다.

HSM 기반 키를 사용 중인 경우 각 CA 인증서에 대해 이 단계를 반복해야 합니다.
-
이 호스트에서 GPO 업데이트가 즉시 적용되도록 하려면(선택 사항), PowerShell을 열고 다음 명령을 실행합니다:
gpupdate.exe /force
Teleport CA를 Active Directory 도메인에 게시#
Teleport 인증서를 Active Directory 도메인에 게시하려면:
-
Domain Administrators 또는 AWS Delegated Domain Administrators 그룹의 구성원인 계정으로 Active Directory 도메인에 가입된 Windows 컴퓨터에 로그온합니다.
-
PowerShell을 열고 Teleport에서 내보낸
teleport.cer파일의 경로를 사용하여 다음 명령을 실행합니다:certutil -dspublish -f teleport.cer RootCA이 명령은 도메인 컨트롤러가 Teleport CA를 신뢰하도록 하여, Teleport를 통한 인증서 기반 스마트카드 인증이 성공할 수 있도록 합니다.
HSM 기반 키를 사용 중인 경우, 이 가이드 앞부분에서 내보낸 zip 파일에 있는 각 CA 인증서에 대해 이 단계를 반복해야 합니다.
Teleport CA를 NTAuth 저장소에 게시#
Teleport가 발급한 인증서를 사용한 인증이 성공하려면, Teleport CA도 엔터프라이즈 NTAuth 저장소에 게시되어야 합니다. Teleport는 인증에 성공한 후 주기적으로 자신의 CA를 게시하지만, Teleport가 LDAP 액세스 권한을 갖도록 하려면 이 단계를 처음에는 수동으로 수행해야 합니다.
HSM 기반 키를 사용 중인 경우, 번들에 있는 각 CA 인증서에 대해 이 단계를 반복해야 합니다.
Teleport CA를 LDAP에 게시하려면:
-
PowerShell을 열고
teleport.cer파일의 경로를 사용하여 다음 명령을 실행합니다:certutil -dspublish -f teleport.cer NTAuthCA -
다음 명령을 실행하여 LDAP에서 CA를 강제로 검색합니다:
certutil -pulse이 단계는 반드시 필요한 것은 아닙니다. 하지만 인증서가 전파될 때까지 기다리지 않고 다음 단계로 진행할 수 있게 해줍니다.
스마트카드 인증 활성화#
Teleport는 스마트카드를 에뮬레이션하여 인증서 기반 인증을 수행합니다.
그룹 정책 개체에 스마트카드 인증을 추가하려면:
-
그룹 정책 편집기에서
Teleport Access Policy그룹 정책 개체가 열려 있는지 확인합니다. -
**
Computer Configuration > Policies > Windows Settings > Security Settings > System Services**를 확장합니다. -
Smart Card를 더블클릭하고 Define this policy setting을 선택합니다.
-
Automatic을 선택한 다음 OK를 클릭합니다.

-
이 호스트에서 GPO 업데이트가 즉시 적용되도록 하려면(선택 사항), PowerShell을 열고 다음 명령을 실행합니다:
gpupdate.exe /force
원격 데스크톱 연결 허용#
다음으로, 도메인 컴퓨터에 대한 원격 연결을 허용하는 정책을 구성해야 합니다.
-
그룹 정책 편집기에서
Teleport Access Policy그룹 정책 개체가 열려 있는지 확인합니다. -
**
Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections**를 확장합니다. -
Allow users to connect remotely by using Remote Desktop Services를 마우스 오른쪽 버튼으로 클릭하고, Edit을 선택하고, Enabled를 선택한 다음 OK를 클릭합니다.
-
Remote Desktop Session Host에서 Security를 선택합니다.
-
Require user authentication for remote connections by using Network Level Authentication을 마우스 오른쪽 버튼으로 클릭하고, Edit을 선택하고, Disabled를 선택한 다음 OK를 클릭합니다.
NLA 지원Teleport 16.2.0 이상은 NLA를 지원합니다. 지원되는 버전을 실행 중이고 NLA를 활성화한다면 이 단계를 건너뛸 수 있습니다. 자세한 내용은 NLA 섹션을 참조하세요.

-
Always prompt for password upon connection을 마우스 오른쪽 버튼으로 클릭하고, Edit을 선택하고, Disabled를 선택한 다음 OK를 클릭합니다.
Teleport의 인증서 기반 스마트카드 인증은 각 데스크톱 세션마다 무작위 스마트카드 PIN을 생성하고, RDP 연결을 설정할 때 데스크톱에 해당 PIN을 제공합니다. 이 PIN은 Teleport 사용자에게 절대 제공되지 않으므로, 인증이 성공하려면 Always prompt for password upon connection 정책이 반드시 비활성화되어야 합니다.
-
Computer Configuration, Policies, Windows Settings, Security Settings을 확장하여 Windows Firewall with Advanced Security를 선택합니다.
-
Inbound Rules를 마우스 오른쪽 버튼으로 클릭하고 New Rule을 선택합니다.
- Predefined 아래에서 Remote Desktop을 선택한 다음 Next를 클릭합니다.
- **User Mode (TCP-in)**을 선택한 다음 Next를 클릭합니다.
- Allow the connection을 선택한 다음 Finish를 클릭합니다.

-
이 호스트에서 GPO 업데이트가 즉시 적용되도록 하려면(선택 사항), PowerShell을 열고 다음 명령을 실행합니다:
gpupdate.exe /force
RemoteFX 활성화#
Teleport Access Policy그룹 정책 개체 구성을 마치려면 RemoteFX를 활성화해야 합니다. RemoteFX는 원격 데스크톱 연결의 성능을 크게 향상시키는 압축 기술입니다.-
그룹 정책 편집기에서
Teleport Access Policy그룹 정책 개체가 열려 있는지 확인합니다. -
**
Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Remote Session Environment > RemoteFX for Windows Server 2008 R2**를 확장합니다. -
Configure RemoteFX를 마우스 오른쪽 버튼으로 클릭하고, Edit을 선택하고, Enabled를 선택한 다음 OK를 클릭합니다.

-
이제 왼쪽 창에서 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을 마우스 오른쪽 버튼으로 클릭하고, Edit을 선택하고, Enabled를 선택한 다음 OK를 클릭합니다.
-
다시 왼쪽 창에서 Remote Session Environment를 왼쪽 클릭하고, 오른쪽 창의 항목 중에서 Limit maximum color depth를 마우스 오른쪽 버튼으로 클릭하고, Edit을 선택하고, Enabled를 선택하고, Color depth에서 32-bit를 선택한 다음 OK를 클릭합니다.

-
PowerShell을 열고 다음 명령을 실행하여 Teleport 그룹 정책 개체를 업데이트합니다:
gpupdate.exe /force
다음은 몇 가지 문제 해결 팁입니다:
-
대상 Windows 호스트에서 다음 명령을 실행하여 GPO가 적용되고 있는지 확인합니다:
$ gpresult /r -
Teleport CA가 NTAuth 저장소에 있는지 확인합니다:
$ certutil -viewstore -enterprise NTAuth -
Teleport CA가 Root 저장소에 있는지 확인합니다:
$ certutil -viewstore -enterprise Root -
Group Policy Management에서
Teleport Access PolicyGPO가 도메인에 연결되어 있고 Trusted Root Certification Authorities 아래에 Teleport CA가 표시되는지 확인합니다.
4/7단계. RDP 연결용 인증서 구성#
Teleport RDP 클라이언트는 TLS 연결을 맺기 위해 안전한 암호화 알고리즘이 필요합니다. 하지만 Windows Server 2012 R2는 기본적으로 이러한 알고리즘을 지원하지 않습니다.
다음을 수행하여 Windows Server 2012 R2가 필요한 알고리즘을 지원하도록 구성할 수 있습니다:
- 타원 곡선 암호화를 사용하는 새 인증서 템플릿을 생성합니다.
- 원격 데스크톱 연결용 인증서를 발급할 때 새 인증서 템플릿을 사용하도록 Teleport 그룹 정책 개체를 업데이트합니다.
호스트가 필요한 알고리즘을 지원하는 경우, 이 단계를 건너뛰고 LDAP CA 인증서 내보내기로 이동할 수 있습니다.
인증서 템플릿 생성#
타원 곡선 P-384와 SHA384를 서명 알고리즘으로 사용하는 인증서 템플릿을 생성하려면:
-
Start, Control Panel, Administrative Tools를 클릭하여 Certificate Authority를 선택합니다.
-
CA 컴퓨터를 열고 Certificate Templates를 마우스 오른쪽 버튼으로 클릭한 다음 Manage를 선택합니다.
-
Computer 템플릿을 선택하고 마우스 오른쪽 버튼을 클릭한 다음 Duplicate Template을 선택합니다.
-
Compatibility 탭을 선택합니다:
- Certification Authority를 Windows Server 2012 R2로 변경한 다음 OK를 클릭합니다.
- Certificate recipient를 Windows Server 2012 R2로 변경한 다음 OK를 클릭합니다.
-
General 탭을 선택합니다:
- Template display name을 RemoteDesktopAccess로 변경합니다.
- Template name도 RemoteDesktopAccess인지 확인합니다.
-
Cryptography 탭을 선택합니다:
- Provider Category를 Key Storage Provider로 변경합니다.
- Algorithm name을 ECDH_P384로 변경합니다.
- Request hash를 SHA384로 변경합니다.
-
Extensions 탭을 선택합니다:
- Application Polices를 선택한 다음 Edit을 클릭합니다.
- 목록에서 모든 항목을 제거합니다.
-
Security 탭을 선택합니다:
- Domain Computers를 선택하고 이 그룹에 Read 및 Enroll 권한을 부여합니다.
-
OK를 클릭하여 템플릿을 생성합니다.
-
Certificate Authority 콘솔로 돌아가서 Certificate Templates를 마우스 오른쪽 버튼으로 클릭합니다.
-
New를 클릭하고 Certificate Template to Issue를 선택한 다음 RemoteDesktopAccess를 선택합니다.
-
OK를 클릭합니다.
새 인증서 템플릿을 사용하도록 GPO 업데이트#
새 인증서 템플릿을 사용하도록 Teleport 그룹 정책 개체를 업데이트하려면:
-
그룹 정책 편집기에서
Teleport Access Policy그룹 정책 개체를 엽니다. -
**
Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Security**를 확장합니다. -
Server authentication certificate template을 마우스 오른쪽 버튼으로 클릭하고, Edit을 선택하고, Enabled를 선택한 다음 Certificate Template Name을 RemoteDesktopAccess로 설정합니다.

-
Computer Configuration, Policies, Windows Settings를 확장하여 Public Key Policies를 선택합니다.
-
Certificate Services Client - Auto-Enrollment를 더블클릭한 다음 Configuration Model에서 Enabled를 선택합니다.
-
PowerShell을 열고 다음 명령을 실행하여 Teleport 그룹 정책 개체를 업데이트합니다:
gpupdate.exe /force
5/7단계. LDAP CA 인증서 내보내기#
Teleport는 LDAPS를 사용하여 도메인 컨트롤러에 연결합니다. 즉, 최초 연결 시 도메인 컨트롤러가 전송하는 인증서가 신뢰할 수 있음을 Teleport에 알려야 합니다. 도메인 컨트롤러의 인증서가 Teleport를 실행 중인 시스템의 시스템 저장소에서 신뢰되고 있다면 이 단계를 건너뛸 수 있습니다.
LDAP CA 인증서를 확보할 수 없는 경우,
insecure_skip_verify: true를 설정하여 TLS 검증을 건너뛸 수 있습니다. 하지만 프로덕션 환경에서는 TLS 검증을 건너뛰지 않는 것이 좋습니다.CA 인증서를 내보내려면:
- Start, Control Panel, Administrative Tools를 클릭하여 Certification Authority를 선택합니다.
- CA 컴퓨터를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 Properties를 선택합니다.
- General 탭에서 View Certificate를 클릭합니다.
- Details를 선택한 다음 Copy to File을 클릭합니다.
- 인증서 내보내기 마법사에서 Next를 클릭하고 **base-64 encoded X.509 (.CER)**가 선택되어 있는지 확인합니다.
- 인증서의 이름과 위치를 선택하고 마법사를 진행합니다.
- Teleport를 실행 중인 시스템으로 내보낸 파일을 전송합니다. 이 인증서를 시스템의
신뢰 저장소에 추가하거나,
ldap_ca_cert구성 필드를 통해 내용을 제공할 수 있습니다.
6/7단계. Teleport 구성#
Windows 데스크톱에 대한 액세스를 보호하도록 Teleport를 구성하려면:
- Teleport Windows 데스크톱 서비스를 실행할 Linux 호스트에 Teleport를 설치합니다:
Linux 서버에 Teleport Agent를 설치하려면:
권장 설치 방법은 클러스터 설치 스크립트입니다. 이 스크립트는 클러스터에 맞는 올바른 버전, 에디션, 설치 모드를 선택합니다.
-
teleport.example.com:443에 Teleport 클러스터의 호스트명과 포트를 할당하되, 스킴(https://)은 포함하지 마십시오. -
클러스터의 설치 스크립트를 실행하십시오:
$ curl "https://teleport.example.com:443/scripts/install.sh" | sudo bash -
관리 워크스테이션에서 Teleport 클러스터에 로그인합니다.
-
다음 명령으로 클러스터에 대한 초대 토큰을 생성합니다:
$ tctl tokens add --type=windowsdesktop -
초대 토큰을 Windows 데스크톱 서비스를 실행할 Linux 호스트의 파일에 복사합니다.
-
Linux 호스트의
/etc/teleport.yaml에 Windows 데스크톱 서비스 구성을 추가합니다./etc/teleport.yaml에는 다음과 유사한 구성 설정이 포함되어야 합니다:version: v3 teleport: auth_token: "path/to/token" proxy_server: teleport.example.com # 자신의 프록시 주소로 바꾸세요 windows_desktop_service: enabled: true ldap: # LDAP 서버의 주소(포트 포함)입니다. # `locate_server`가 활성화되어 있으면 생략할 수 있습니다. # LDAPS 포트는 기본적으로 636입니다 (example.com:636) addr: "$LDAP_SERVER_ADDRESS" domain: "$LDAP_DOMAIN_NAME" username: "$LDAP_USERNAME" sid: "$LDAP_USER_SID" # 내보낸 LDAP 서버 인증서의 내용입니다. ldap_ca_cert: | -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- discovery_configs: - base_dn: "*" auth_service: enabled: false proxy_service: enabled: false ssh_service: enabled: false구성 필드에 대한 자세한 설명은 데스크톱 구성 참조를 참조하세요.
-
LDAP 서버 선택을 구성합니다.
Active Directory에서 연결할 데스크톱을 찾으려면 Teleport에 LDAP 서버의 주소가 제공되어야 합니다. LDAP 서버를 지정하는 방법에는 두 가지가 있습니다.
addr필드에 단일 LDAP 서버 주소를 제공하거나,locate_server를 활성화하여 DNS SRV 레코드에서 LDAP 서버를 자동으로 검색하는 방법입니다.addr를 사용하기로 했다면, 최상의 결과를 위해 주소는 다운타임을 방지할 수 있는 고가용성 엔드포인트를 가리켜야 합니다. LDAPS용 포트(일반적으로 636)도 포함해야 합니다.addr 필드 사용 예시
```yaml windows_desktop_service: enabled: true ldap: addr: ldap.example.com:636 domain: example.com ```또는
locate_server를 활성화하여 지정한domain의 DNS SRV 레코드에서 LDAP 서버를 자동으로 검색할 수도 있습니다. 이는 고가용성 및 로드 밸런싱을 위해 여러 LDAP 서버를 운영 중인 경우에 유용합니다. 선택적으로site를 지정하여 검색을 특정 Active Directory 사이트로 제한할 수 있습니다.locate_server 사용 예시
```yaml windows_desktop_service: enabled: true ldap: locate_server: enabled: true site: "my-site" # 선택 사항 domain: example.com ```
systemd 서비스를 생성하여 호스트가 부팅될 때 the Teleport Desktop Service이 자동으로 시작되도록 구성합니다. 지침은 the Teleport Desktop Service을 어떻게 설치했는지에 따라 다릅니다.
Package Manager
the Teleport Desktop Service을 실행할 호스트에서 Teleport를 활성화하고 시작합니다:
$ sudo systemctl enable teleport $ sudo systemctl start teleportTAR Archive
the Teleport Desktop Service을 실행할 호스트에서 Teleport용 systemd 서비스 구성을 생성하고, Teleport 서비스를 활성화한 후 Teleport를 시작합니다:
$ sudo teleport install systemd -o /etc/systemd/system/teleport.service $ sudo systemctl enable teleport $ sudo systemctl start teleportsystemctl status teleport로 the Teleport Desktop Service의 상태를 확인하고journalctl -fu teleport로 로그를 볼 수 있습니다.다음은 몇 가지 문제 해결 팁입니다:
-
Linux 서버에서 서비스 상태를 확인합니다:
$ systemctl status teleport -
연결 오류에 대한 로그를 검토합니다:
$ sudo journalctl -u teleport -
토큰이 만료되지 않았는지 확인합니다(토큰은 기본적으로 30분 동안 유효합니다).
-
Linux 서버가 Teleport 프록시와 포트 636의 LDAP 서버에 도달할 수 있는지 확인합니다.
-
LDAP 연결을 테스트합니다:
$ nc -vz $LDAP_SERVER 636 -
ldap_ca_cert값에 유효한 PEM 형식의 인증서가 포함되어 있는지 확인합니다.
7/7단계. Teleport로 로그인#
Teleport 사용자는 원격 Windows 데스크톱에 액세스하기 위한 적절한 권한을 가지고 있어야 합니다. 예를 들어, 사용자에게 모든 Windows 데스크톱 라벨과 로컬 "Administrator" 사용자에 대한 액세스 권한을 부여하는 역할을 생성할 수 있습니다.
Windows 데스크톱에 액세스하기 위한 역할을 생성하려면:
-
다음 내용으로
windows-desktop-admins.yaml파일을 생성합니다:kind: role version: v5 metadata: name: windows-desktop-admins spec: allow: windows_desktop_labels: "*": "*" windows_desktop_logins: ["Administrator"] -
역할을 생성합니다:
$ tctl create -f windows-desktop-admins.yaml
인증 공급자에 맞는 적절한 명령을 실행하여
windows-desktop-admins역할을 your Teleport user에게 할당하십시오:Local User
-
로컬 사용자의 역할을 쉼표로 구분된 목록으로 가져옵니다:
$ ROLES=$(tsh status -f json | jq -r '.active.roles | join(",")') -
로컬 사용자를 편집하여 새 역할을 추가합니다:
$ tctl users update $(tsh status -f json | jq -r '.active.username') \ --set-roles "${ROLES?},windows-desktop-admins" -
Teleport 클러스터에서 로그아웃한 다음 다시 로그인하여 새 역할을 적용합니다.
GitHub
-
텍스트 편집기에서
github인증 커넥터를 엽니다:$ tctl edit github/github -
github커넥터를 편집하여teams_to_roles섹션에windows-desktop-admins을 추가합니다.이 역할에 매핑해야 할 팀은 조직의 역할 기반 액세스 제어(RBAC)를 어떻게 설계했는지에 따라 달라집니다. 다만, 해당 팀은 여러분의 사용자 계정을 포함해야 하며 조직 내에서 가능한 한 가장 작은 팀이어야 합니다.
다음은 예시입니다:
teams_to_roles: - organization: octocats team: admins roles: - access + - windows-desktop-admins -
편집기에서 파일을 저장하고 닫아 변경 사항을 적용합니다.
-
Teleport 클러스터에서 로그아웃한 다음 다시 로그인하여 새 역할을 적용합니다.
SAML
-
saml구성 리소스를 가져옵니다:$ tctl get --with-secrets saml/mysaml > saml.yaml--with-secrets플래그는spec.signing_key_pair.private_key값을saml.yaml파일에 추가한다는 점에 유의하십시오. 이 키에는 민감한 값이 포함되어 있으므로, 리소스를 업데이트한 직후 saml.yaml 파일을 삭제해야 합니다. -
saml.yaml을 편집하여attributes_to_roles섹션에windows-desktop-admins을 추가합니다.이 역할에 매핑해야 할 속성은 조직의 역할 기반 액세스 제어(RBAC)를 어떻게 설계했는지에 따라 달라집니다. 다만, 해당 그룹은 여러분의 사용자 계정을 포함해야 하며 조직 내에서 가능한 한 가장 작은 그룹이어야 합니다.
다음은 예시입니다:
attributes_to_roles: - name: "groups" value: "my-group" roles: - access + - windows-desktop-admins -
변경 사항을 적용합니다:
$ tctl create -f saml.yaml -
Teleport 클러스터에서 로그아웃한 다음 다시 로그인하여 새 역할을 적용합니다.
OIDC
-
oidc구성 리소스를 가져옵니다:$ tctl get oidc/myoidc --with-secrets > oidc.yaml--with-secrets플래그는spec.signing_key_pair.private_key값을oidc.yaml파일에 추가한다는 점에 유의하십시오. 이 키에는 민감한 값이 포함되어 있으므로, 리소스를 업데이트한 직후 oidc.yaml 파일을 삭제해야 합니다. -
oidc.yaml을 편집하여claims_to_roles섹션에windows-desktop-admins을 추가합니다.이 역할에 매핑해야 할 클레임은 조직의 역할 기반 액세스 제어(RBAC)를 어떻게 설계했는지에 따라 달라집니다. 다만, 해당 그룹은 여러분의 사용자 계정을 포함해야 하며 조직 내에서 가능한 한 가장 작은 그룹이어야 합니다.
다음은 예시입니다:
claims_to_roles: - name: "groups" value: "my-group" roles: - access + - windows-desktop-admins -
변경 사항을 적용합니다:
$ tctl create -f oidc.yaml -
Teleport 클러스터에서 로그아웃한 다음 다시 로그인하여 새 역할을 적용합니다.
이제 Windows 데스크톱 서비스를 실행하는 Linux 호스트와 Teleport 사용자가 Windows 컴퓨터에 연결할 수 있도록 허용하는 역할이 준비되었으므로,
windows-desktop-admins역할이 할당된 Teleport 사용자로 Teleport Web UI에서 Windows 데스크톱에 연결할 수 있습니다. 또는 Teleport Connect를 사용하여 연결할 수도 있습니다.
Windows 데스크톱에 연결하려면:
-
windows-desktop-admins역할이 할당된 계정으로 Teleport 클러스터에 로그인합니다. -
Resources를 선택합니다.
-
Type을 클릭한 다음 Desktops를 선택합니다.
-
액세스하려는 Windows 컴퓨터의 Connect를 클릭한 다음 연결에 사용할 로그인을 선택합니다.

Teleport는 원격 데스크톱 연결을 열고 데스크톱 세션 녹화를 시작합니다. Windows 데스크톱 작업이 끝나면 More items 메뉴를 클릭한 다음 Disconnect를 클릭합니다.

녹화된 세션을 보려면 Teleport Web UI에서 Audit를 선택한 다음 메뉴에서 Session Recordings를 클릭합니다.
다음은 몇 가지 문제 해결 팁입니다:
-
Resources > Desktops 아래 Teleport Web UI에 데스크톱이 표시되는지 확인합니다.
-
Teleport 사용자에게
windows-desktop-admins역할 또는 동일한 권한을 가진 역할이 할당되어 있는지 확인합니다. -
Windows 데스크톱 서비스 로그를 검토합니다:
$ sudo journalctl -u teleport
원격 데스크톱 서비스를 통한 로그인을 위한 사용자 및 그룹 구성#
사용자가 원격 데스크톱 서비스를 통해 로그인하려면, 적절한 사용자 권한이 부여되어야 하고 'Remote Desktop Users' AD 그룹에 추가되어야 합니다.
원격 데스크톱을 통한 액세스 권한 부여#
- 그룹 정책 편집기에서
Teleport Access Policy그룹 정책 개체를 엽니다. - **
Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > User Rights Assignment**를 확장합니다. - Allow logon through remote desktop services를 더블클릭합니다.
- Security Policy Setting 아래에서 Add User Or Group을 클릭한 다음 Browse를 클릭합니다.
- (선택 사항) Locations를 클릭하고 사용자/그룹에 대한 로그온 액세스를 부여할 도메인을 선택합니다.
- 이 도메인의 데스크톱에 대한 액세스를 부여할 사용자 및/또는 그룹의 이름을 입력하고 Check Names를 클릭하여 검증합니다.
- OK를 클릭한 다음 Apply를 클릭합니다.
사용자/그룹을 'Remote Desktop Users' AD 그룹에 추가#
- Active Directory 사용자 및 컴퓨터를 엽니다.
- **
$YOUR_DOMAIN -> Builtin**으로 이동하여 Remote Desktop Users를 더블클릭합니다. - Members 탭을 선택하고 Add를 클릭합니다.
- (선택 사항) Locations를 클릭하고 사용자/그룹에 대한 로그온 액세스를 부여할 도메인을 선택합니다.
- 이 도메인의 데스크톱에 대한 액세스를 부여할 사용자 및/또는 그룹의 이름을 입력하고 Check Names를 클릭하여 검증합니다.
- OK를 클릭한 다음 Apply를 클릭합니다.
LDAP 검색(Discovery)#
Active Directory 환경에서는 LDAP를 통해 호스트를 검색하도록 Teleport를 구성할 수 있습니다. 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 컴퓨터 개체에 값이 Oakland인 location 속성과 값이 Engineering인 department 속성이 있는 경우, 이 호스트에 대한 Teleport 리소스에는
ldap/location=Oakland와ldap/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보안 강화#
기본적으로 Default Domain Policy는 인증된 모든 사용자에게 Add workstations to domain user 권한을 부여합니다. 보안 모범 사례로서, Teleport는 이 권한을 관리자 또는 다른 권한 있는 그룹에게만 부여할 것을 권장합니다.
기본 도메인 정책을 변경하려면:
- Group Policy Management를 열고 Forest, Domains, 자신의 도메인, Group Policy Objects를 확장합니다.
- Default Domain Controller Policy를 마우스 오른쪽 버튼으로 클릭한 다음 Edit을 선택합니다.
- 그룹 정책 편집기에서 Computer Configuration, Policies, Windows Settings, Security Settings, Local Policies, User Rights Assignment를 확장하여 Add workstations to domain을 선택합니다.
- Add workstations to domain 정책을 더블클릭하고 Authenticated Users 그룹이 존재하지 않는지 확인합니다.
다중 도메인#
각
windows_desktop_service는 단일 Active Directory 도메인 내 호스트에 연결하도록 설계되어 있습니다. 서로 독립된 여러 도메인이 있는 경우, 이를 서비스하기 위해 여러 개의 Teleport 에이전트를 배포할 수 있습니다.신뢰 관계로 연결된 여러 도메인이 있는 경우, 한 도메인에 대해 PKI 작업을 수행하면서 다른 도메인의 사용자를 위한 인증서를 생성하도록 Teleport를 구성할 수 있습니다.
이 방식이 동작하려면, 연결하려는 호스트와 연결에 사용하려는 AD 사용자가 동일한 도메인에 있어야 합니다.
예를 들어,
example.com에 루트 도메인이 있고 개발자를 위한 하위 도메인이dev.example.com에 있다고 가정해 보겠습니다. PKI가 루트에서 구성되어 있지만 하위 도메인의 사용자가 하위 도메인의 호스트에 연결할 수 있도록 하려면 다음을 수행하면 됩니다:- 위 섹션에서 설명한 대로 Teleport의 CA 인증서를 루트 도메인의 그룹 정책에 신뢰할 수 있는 루트 인증서로 가져오고 NTAuth 저장소에 인증서를 추가합니다.
- 하위 도메인의 사용자와 호스트를 위한 인증서를 발급하면서, 루트 도메인에 대해 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에 게시합니다.크로스 도메인 로그인#
Teleport v18.8부터, Windows 데스크톱 서비스는 주(primary, Teleport에 구성된) 도메인에서 사용자의 도메인으로의 아웃고잉 트러스트 관계가 존재하는 한, 특정
windows_desktop_service인스턴스에 구성된 도메인 외부의 사용자에 대한 로그인을 지원합니다. 예를 들어, Windows 데스크톱 서비스가 루트 도메인example.com에 대해 구성되어 있고 하위 도메인dev.example.com이 존재한다면, Teleport는 루트 도메인의 데스크톱에 로그온하는 사용자user@dev.example.com을 인증할 수 있습니다. 마찬가지로,example.com이 외부 도메인partner.com으로의 아웃고잉 트러스트 관계를 가지고 있다면,user@partner.com은example.com의 데스크톱에 액세스할 수 있습니다.외부 도메인 사용자에 대한 권한 구성#
외부 도메인의 사용자가 대상 도메인의 데스크톱에 로그인하려면, 적절한 사용자 권한이 부여되어야 하고 Active Directory에서 "Remote Desktop Users" 그룹에 추가되어야 합니다. 외부 사용자 및 그룹에 적절한 권한을 부여하려면 이전 섹션인 "원격 데스크톱 서비스를 통한 로그인을 위한 사용자 및 그룹 구성"에서 다룬 단계를 따르세요.
크로스 도메인 로그인을 위한 Teleport 구성#
사용자가 Teleport가 구성된 도메인과 동일한 포리스트(forest) 내의 다른 도메인에 속해 있다면, 사용자의 도메인이 루트 도메인과 동일한 포리스트 전체 PKI 계층 구조에 등록되어 있으므로 추가 구성 없이 LDAPS 인증이 작동합니다. 하지만 다른 포리스트에 속한 도메인의 사용자에게는 이 방식이 적용되지 않습니다.
다른 포리스트의 사용자를 인증하려면, 외부 포리스트의 도메인 컨트롤러에 대해 다음 단계를 수행해야 합니다:
추가로, 외부 포리스트의 도메인에 대해 "LDAP CA 인증서 내보내기" 단계를 반복하세요. Teleport LDAPS 클라이언트가 신뢰하도록 여러 CA 인증서를
ldap_ca_cert구성 필드에 작성할 수 있습니다.windows_desktop_service: enabled: true ldap: addr: example.com:636 username: 'DEV\svc-teleport' insecure_skip_verify: false # 여러 LDAP 서버를 신뢰하도록 Teleport를 구성합니다 ldap_ca_cert: | -----BEGIN CERTIFICATE----- ... example.com용 LDAPS 인증서 ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ... partner.com용 LDAPS 인증서 ... -----END CERTIFICATE-----기본적으로 Windows 데스크톱 서비스는 사용자가 서비스 구성의
windows_desktop_service.ldap.domain필드에 지정된 도메인에 속한다고 가정합니다. 다른 도메인의 사용자로 로그인하려면, Windows 데스크톱에 대한 액세스를 제공하는 역할의windows_desktop_logins섹션에 사용자의 전체 UPN(예:jsmith@dev.example.com)을 지정해야 합니다.kind: role version: v5 metadata: name: windows-desktop-admins spec: allow: windows_desktop_labels: "*": "*" windows_desktop_logins: ["jsmith", "jsmith@dev.example.com", "jsmith@partner.com"]NLA(Network Level Authentication, 네트워크 수준 인증)#
Teleport 16.2.0 이상에서는 Windows 호스트에 연결할 때 NLA(Network Level Authentication)를 수행하도록
windows_desktop_service를 구성할 수 있습니다. NLA는 원격 데스크톱 연결을 맺기 전에 사용자를 인증하는 보안 기능으로, 원격 Windows 호스트가 인증되지 않은 사용자에게 로그인 화면을 표시하기 위해 시스템 리소스를 소비하지 않도록 보장합니다.NLA를 수행하려면, Teleport의
windows_desktop_service가 키 배포 센터(KDC)에 아웃바운드 Kerberos 연결을 맺을 수 있어야 합니다. 이는 일반적으로 TCP 포트 88에서 수행됩니다.Teleport는 다음을 우선순위 순서로 확인하여 KDC의 주소를 결정합니다:
kdc_address가 설정되어 있으면, Teleport는 이 주소를 사용합니다.- 버전 18.3.1부터,
locate_server가 활성화되어 있고kdc_address가 설정되어 있지 않으면, Teleport는 DNS SRV 레코드를 통해 KDC 주소를 검색하려고 시도합니다. 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:636NLA를 활성화하려면, Teleport의
windows_desktop_service를 실행하는 모든 호스트에서TELEPORT_ENABLE_RDP_NLA환경 변수를yes로 설정하세요. 환경 변수를 설정하는 과정은 Teleport를 실행 중인 환경에 따라 다릅니다.Kubernetes에서 Teleport를 실행 중이라면, Pod 구성을 편집해야 합니다.
systemd 서비스로 Teleport를 실행 중이라면,
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는 크로스 도메인 로그인에서는 지원되지 않습니다.
NLA는 Teleport가 FIPS 모드로 실행 중일 때는 지원되지 않습니다.
컴퓨터 이름#
인증 흐름을 성공적으로 완료하려면, Teleport가 대상 Windows 서버의 호스트 이름을 알아야 합니다. Teleport의 LDAP 기반 검색을 사용 중이라면 별도의 조치가 필요하지 않습니다. Teleport는 자동으로 채워지는
teleport.dev/computer_name라벨을 기본으로 사용합니다. 이 라벨이 없으면 Teleport는 데스크톱의addr필드를 사용합니다.구성 파일이나 Teleport API를 통해 Windows 호스트를 등록하면서 NLA를 활성화하려면, 다음 중 하나를 수행해야 합니다:
teleport.dev/computer_name라벨을 올바른 호스트 이름으로 수동 설정- 호스트의
addr가 실제 호스트 이름이 되도록 보장
다음 단계#
문제가 발생하면 일반적인 문제 및 해결 방법에 대해 문제 해결을 참조하세요. Windows 관련 역할 권한 구성에 대한 자세한 내용은 데스크톱을 위한 역할 기반 액세스 제어를 참조하세요.
-