이 가이드는 로컬 Windows 사용자에게 Microsoft Windows 데스크탑에 대한 안전한 비밀번호 없는 액세스를 제공하기 위해 Teleport를 구성하는 방법을 보여줍니다.
로컬 사용자에 대한 비밀번호 없는 액세스는 Teleport 커뮤니티 에디션에서 5개의 데스크탑으로 제한됩니다.
static_hosts
에 ad: false
로 등록된 데스크탑이 5개 이상인 경우, Teleport 커뮤니티 에디션은 이들 중 어떤 것에도 연결을 허용하지 않습니다.
Teleport 엔터프라이즈 사용자는 무제한의 데스크탑을 가질 수 있습니다.
전제 조건
이 가이드의 단계를 완료하려면 환경이 다음 요구 사항을 충족하는지 확인하십시오:
-
실행 중인 Teleport 클러스터 버전 이상. Teleport를 시작하려면, 가입하기 위해 무료 평가판에 등록하거나 데모 환경 설정하기를 참조하세요.
-
tctl
관리 도구와tsh
클라이언트 도구.tctl
과tsh
다운로드에 대한 지침은 설치를 방문하세요.
- Teleport Windows Desktop Service를 실행할 Linux 서버. 다른 Teleport 인스턴스가 실행 중인 기존 서버를 재사용할 수 있습니다. 그러나 기존 Teleport 인스턴스에 Windows Desktop Service를 추가하려면 새로운 초대 토큰을 생성해야 합니다.
- 원격 데스크탑이 활성화된 Microsoft Windows를 실행하는 물리적 또는 가상 머신 및 Linux 서버로부터 수신 연결을 위해 RDP 포트(일반적으로 포트 3389)를 열어야 합니다.
- 당신의 Teleport 클러스터에 연결할 수 있는지 확인하려면,
tsh login
으로 로그인한 다음 현재 자격 증명을 사용하여tctl
명령어를 실행할 수 있는지 확인하십시오. 예를 들어:클러스터에 연결하고tsh login --proxy=teleport.example.com --user=email@example.comtctl status클러스터 teleport.example.com
버전 16.2.0
CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678
tctl status
명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 작업대에서 후속tctl
명령어를 실행할 수 있습니다. 자신의 Teleport 클러스터를 호스팅하는 경우, Teleport 인증 서비스를 호스팅하는 컴퓨터에서 전체 권한으로tctl
명령어를 실행할 수도 있습니다.
단계 1/4. Windows 준비
Microsoft Windows 데스크탑을 Teleport로 보호할 리소스로 등록하기 위해 Microsoft Windows 환경을 Teleport 인증 기관(CA)의 인증서로 준비하고 원격 데스크탑 액세스를 위한 기본 인증 서비스 설정을 수정해야 합니다.
Windows 컴퓨터를 준비하려면:
- 등록할 Windows 컴퓨터에서 명령 프롬프트(
cmd.exe
) 창을 엽니다.
-
다음 명령을 실행하여 Teleport 사용자 인증 기관을 내보냅니다. Teleport 클러스터 주소를 사용하십시오:
curl.exe -fo teleport.cer https://teleport.example.com/webapi/auth/export?type=windows
- Teleport Windows Auth 설치 프로그램을 다운로드합니다:
curl.exe -fo teleport-windows-auth-setup-v16.2.0-amd64.exe https://cdn.teleport.dev/teleport-windows-auth-setup-v16.2.0-amd64.exe
- Teleport Windows Auth 설치 프로그램을 다운로드합니다:
curl.exe -fo teleport-windows-auth-setup-v16.1.7-amd64.exe https://cdn.teleport.dev/teleport-windows-auth-setup-v16.1.7-amd64.exe
-
다운로드한 실행 파일을 두 번 클릭하여 Teleport Windows Auth 설치 프로그램을 대화식으로 실행하고 요청 시 내보낸 Teleport 인증서를 선택합니다.
설치 프로그램은:
- Windows가 Teleport 인증 기관을 신뢰하도록 설정합니다.
- Teleport가 사용할 필요한 동적 링크 라이브러리(DLL)를 설치합니다.
- 원격 데스크탑 서비스에 대한 네트워크 수준 인증(NLA)을 비활성화합니다.
- Teleport 버전 15 이상을 사용하는 경우 RemoteFX 압축을 활성화합니다.
- 컴퓨터를 다시 시작합니다.
설치 프로세스를 자동화하려면 다음 명령으로 관리 명령 프롬프트 또는 PowerShell 콘솔에서 설치 프로그램을 실행할 수 있습니다:
teleport-windows-auth-setup.exe install --cert=teleport.cer -r
단계 2/4. Windows Desktop Service 구성
Windows 컴퓨터를 클러스터에 등록할 수 있도록 준비했으므로 다음 단계는 다음과 같습니다:
- 관리 작업대에서 초대 토큰 생성.
- Windows Desktop Service를 실행할 Linux 서버 구성.
Windows Desktop Service를 구성하려면:
-
관리 작업대에서 Teleport 클러스터에 로그인하여 본인의 신원을 인증합니다.
-
다음 명령을 실행하여 단기 초대 토큰을 생성합니다:
tctl tokens add --type=windowsdesktop이 명령은 다음과 유사한 정보를 표시합니다:
초대 토큰: abcd123-insecure-do-not-use-this 이 토큰은 60분 후에 만료됩니다.
-
관리 작업대에서 토큰을 복사하고 Windows Desktop Service를 실행할 Linux 서버의 파일에 붙여넣습니다.
예를 들어, Linux 서버에서
/tmp/token
이라는 파일을 만들고 토큰을 붙여넣습니다. -
Windows Desktop Service를 실행할 Linux 서버에 Teleport가 설치되어 있는지 확인하려면 다음 명령을 실행합니다:
teleport versionLinux 서버에 Teleport가 설치되어 있지 않다면, 환경에 맞는 설치 지침을 참조하십시오.
-
Linux 서버의
/etc/teleport.yaml
파일을 다음과 유사한 설정으로 구성합니다:version: v3 teleport: nodename: windows.teleport.example.com proxy_server: teleport.example.com:443 auth_token: /tmp/token windows_desktop_service: enabled: yes static_hosts: - name: host1 ad: false addr: 192.0.2.156 auth_service: enabled: no proxy_service: enabled: no ssh_service: enabled: no
이 파일에서:
proxy_server
를 Teleport 클러스터의 주소로 설정합니다.static_hosts
아래에 Windows 데스크탑을 나열합니다.
Teleport는 Active Directory 없이 Windows 데스크탑을 자동으로 발견할 수 없습니다. 따라서 Teleport 구성 파일을 사용하여 등록할 Windows IP 주소 또는 호스트 이름을 지정해야 하거나 Teleport API를 사용하여 자체 통합을 구축해야 합니다.
API 통합의 예를 GitHub에서 찾아볼 수 있습니다.
-
(선택 사항) Windows Desktop Service에 대한 레이블을 구성 파일에 추가합니다.
호스트 구성의
labels
섹션을 사용하여 Windows 컴퓨터에 레이블을 추가할 수 있습니다. 예를 들어, 다음은datacenter: dc1
레이블을 추가합니다:version: v3 teleport: nodename: windows.teleport.example.com proxy_server: teleport.example.com:443 auth_token: /tmp/token windows_desktop_service: enabled: yes static_hosts: - name: host1 ad: false addr: 192.0.2.156 + labels: + datacenter: dc1
또한 호스트 이름과 일치시켜 Windows 컴퓨터에 레이블을 첨부할 수 있습니다. 예를 들어, 다음은 호스트 이름이
.us-east-2.compute.internal
로 끝나는 컴퓨터에cloud: ec2
레이블을 추가합니다:version: v3 teleport: nodename: windows.teleport.example.com proxy_server: teleport-proxy.example.com:443 windows_desktop_service: enabled: yes static_hosts: - name: host1 ad: false - addr: 192.0.2.156 + addr: ip-192-0-2-156.us-east-2.compute.internal + host_labels: + - match: '.*\.us-east-2.compute.internal' + labels: + cloud: ec2
레이블 및 역할 사용에 대한 더 많은 정보는 Windows 전용 역할 권한 구성을 참조하십시오.
-
호스트가 부팅될 때 Teleport Windows Desktop Service가 자동으로 시작되도록 시스템 데몬 서비스를 생성하여 구성합니다. 지침은 Teleport Windows Desktop Service를 설치한 방법에 따라 다릅니다.
Teleport Windows Desktop Service를 실행할 호스트에서 Teleport를 활성화하고 시작하십시오:
sudo systemctl enable teleportsudo systemctl start teleportTeleport Windows Desktop Service를 실행할 호스트에서 Teleport에 대한 시스템 데몬 서비스 구성을 생성하고, Teleport 서비스를 활성화한 후 Teleport를 시작하십시오:
sudo teleport install systemd -o /etc/systemd/system/teleport.servicesudo systemctl enable teleportsudo systemctl start teleportTeleport Windows Desktop Service의 상태는
systemctl status teleport
로 확인할 수 있으며, 로그는journalctl -fu teleport
로 볼 수 있습니다.
단계 3/4. 원격 Windows 데스크탑 액세스 구성
원격 데스크탑에 액세스하기 위해 Teleport 사용자는 해당 데스크탑에 대한 적절한 권한이 있는 역할이 필요합니다.
데스크탑 액세스를 위한 역할을 구성하려면:
-
관리 작업대에서 Teleport 클러스터에 로그인하여 본인의 신원을 인증합니다.
-
새 역할을 정의하기 위해
windows-desktop-admins.yaml
파일을 만듭니다:kind: role version: v6 metadata: name: windows-desktop-admins spec: allow: windows_desktop_labels: "*": "*" windows_desktop_logins: ["Administrator", "alice"]
이 파일에서는:
windows_desktop_labels
를 설정하여 특정 호스트에 대한 접근을 허용하거나 거부하는 레이블을 지정합니다.windows_desktop_logins
를 설정하여 이 역할에 할당된 Teleport 사용자가 Windows 데스크탑에 접근할 때 사용할 수 있는 Windows 로그인 정보를 지정합니다.
Windows에 대한 역할 기반 접근 제어를 어떻게 구성하는지에 따라 Teleport는 지정한
windows_desktop_logins
에서 로컬 사용자 로그인을 자동으로 생성할 수 있습니다. Teleport가 로컬 Windows 로그인을 생성할 수 있도록 하는 방법에 대한 더 많은 정보는 Logins을 참조하십시오. -
다음 명령을 실행하여 새 역할을 클러스터에 적용합니다:
tctl create -f windows-desktop-admins.yaml -
windows-desktop-admins
역할을 Teleport 사용자에게 할당하려면 인증 제공자에 맞는 적절한 명령어를 실행하세요:-
로컬 사용자의 역할을 콤마로 구분된 목록으로 가져옵니다:
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 클러스터에서 로그아웃한 후 새로운 역할을 asum 하기 위해 다시 로그인합니다.
-
github
인증 커넥터를 가져옵니다:tctl get github/github --with-secrets > github.yaml--with-secrets
플래그는spec.signing_key_pair.private_key
의 값을github.yaml
파일에 추가합니다. 이 키는 민감한 값을 포함하고 있기 때문에, 리소스를 업데이트한 후 즉시github.yaml
파일을 제거해야 합니다. -
github.yaml
을 편집하고teams_to_roles
섹션에windows-desktop-admins
을 추가합니다.이 역할에 매핑할 팀은 귀하의 조직에서 어떻게 역할 기반 접근 제어(RBAC)를 설계했느냐에 따라 달라집니다. 하지만 팀에는 귀하의 사용자 계정이 포함되어야 하며, 조직 내에서 가능한 한 작은 팀이어야 합니다.
여기에 예시가 있습니다:
teams_to_roles: - organization: octocats team: admins roles: - access + - windows-desktop-admins
-
변경 사항을 적용합니다:
tctl create -f github.yaml -
Teleport 클러스터에서 로그아웃한 후 새로운 역할을 assum 하기 위해 다시 로그인합니다.
-
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 클러스터에서 로그아웃한 후 새로운 역할을 asum 하기 위해 다시 로그인합니다.
-
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 클러스터에서 로그아웃한 후 새로운 역할을 asum 하기 위해 다시 로그인합니다.
-
단계 4/4. 연결
이제 Windows Desktop Service를 실행할 Linux 서버를 구성하고 Teleport 사용자에게 Microsoft Windows에 연결할 수 있는 역할을 생성했으므로, windows-desktop-admins
역할이 할당된 Teleport 사용자로부터 Windows 데스크탑에 연결할 수 있습니다.
Windows 데스크탑에 연결하려면:
-
windows-desktop-admins
역할이 할당된 계정을 사용하여 Teleport 클러스터에 로그인합니다. -
리소스를 선택합니다.
-
유형을 클릭한 다음 데스크탑을 선택합니다.
-
액세스할 Windows 데스크탑의 연결을 클릭한 다음 연결에 사용할 Windows 로그인을 선택합니다.
Teleport는 원격 데스크탑 연결을 열고 데스크탑 세션을 녹화하기 시작합니다. Windows 데스크탑 작업을 마친 후 추가 항목 메뉴를 클릭한 다음 연결 끊기를 클릭합니다.
녹화를 보려면 Teleport 웹 UI에서 관리를 선택한 다음 활동 섹션에서 세션 녹화를 클릭합니다.
제거
지역 사용자에게 비밀번호 없는 로그인을 제공하기 위해 Teleport의 Windows 인증 패키지를 사용하고 있는 경우, 관리자 명령 프롬프트에서 설정 프로그램을 실행하여 이를 제거할 수 있습니다:
> teleport-windows-auth-setup.exe uninstall
패키지를 완전히 제거하려면 언인스톨이 완료된 후 재부팅이 필요합니다.
다음 단계
역할을 생성, 할당 및 업데이트하는 방법에 대한 일반 정보는 액세스 제어 시작하기를 참조하십시오. Windows 전용 역할 권한 구성에 대한 보다 구체적인 정보는 데스크탑에 대한 역할 기반 접근 제어를 참조하십시오.