1단계 - Teleport Community Edition 배포
Teleport v18.9SSO, 세션 녹화 요약, 저스트-인-타임 Access Request와 같은 Teleport Enterprise 기능을 무료로 체험할 수 있습니다. 이 가이드에서는 Teleport Community Edition을 배포합니다.
SSO, 세션 녹화 요약, 저스트-인-타임 Access Request와 같은 Teleport Enterprise 기능을 무료로 체험할 수 있습니다. 결제 정보가 필요하지 않습니다.
이 가이드에서는 Teleport Community Edition을 배포합니다.
소규모 데모나 홈랩 환경에 적합한 Linux 서버에서 단일 인스턴스 Teleport 클러스터를 시작합니다. 배포 후에는 가이드를 계속 진행하여 인프라를 연결하고, 역할 기반 접근 제어(RBAC)를 설정하고, 접근을 감사할 수 있습니다.
작동 방식#
이 가이드에서 설정하는 Teleport 클러스터는 다음 세 가지 서비스로 구성됩니다:
- Teleport Auth Service: 클러스터의 인증 기관입니다. 인증서를 발급하고 인증 챌린지를 수행합니다. Auth Service는 일반적으로 개인 네트워크 외부에서 접근할 수 없습니다.
- Teleport Proxy Service: 클러스터 프런트엔드로, 사용자 요청을 처리하고, 사용자 자격 증명을 Auth Service에 전달하며, 인프라의 특정 리소스에 대한 접근을 가능하게 하는 Teleport 인스턴스와 통신합니다.
- Teleport SSH Service: Teleport 접근 제어를 시행하고, 세션을 녹화하고, Teleport 감사 이벤트로 활동을 기록하는 SSH 서버로, 이를 통해 Linux 서버를 Teleport로 보호할 수 있습니다.
Teleport Auth Service와 Proxy Service는 컨트롤 플레인으로 간주됩니다. Teleport Cloud에서는 이들이 Teleport가 관리하는 인프라에서 실행됩니다. Teleport SSH Service는 Teleport 에이전트 서비스의 한 예로, 인프라 내 리소스로 오가는 연결을 프록시합니다.

Teleport의 아키텍처에 대한 자세한 내용은 핵심 개념 페이지에서 확인할 수 있습니다.
전제 조건#
데모 Teleport 클러스터를 배포하려면 다음이 필요합니다. 환경이 전제 조건을 충족하지 않는 경우, Teleport Enterprise Cloud 무료 체험판에 가입하고 2단계: 인프라 연결로 건너뛰어 Teleport를 시작할 수 있습니다.
또한, 인프라를 설정하지 않고 Teleport 명령 및 기능을 경험하고 싶다면 브라우저 기반 Teleport Labs를 살펴보세요.
이 가이드의 경우 원격 가상 머신(예: Amazon EC2 인스턴스) 또는 로컬 Docker 컨테이너를 사용하여 진행할 수 있습니다. 플랫폼에 맞는 다음 요구 사항을 충족했는지 확인하세요:
-
포트
443만 인바운드 트래픽에 열려 있는 Linux 호스트. 호스트에 소프트웨어를 설치하고 실행할 수 있어야 합니다. 초기 설정을 위해 SSH를 통한 호스트 접근을 구성하거나(포트443외에 SSH 포트도 열어야 함), 이 가이드의 명령을 Amazon EC2 user data 스크립트, Google Compute Engine 시작 스크립트, 또는 유사한 것에 입력하세요. -
다음 중 하나가 필요합니다:
- 등록된 도메인 이름.
- 조직이 관리하는 권한 있는 DNS 네임서버와 기존 인증 기관. 이 방법을 사용하는 경우, 브라우저가 조직의 네임서버를 사용하도록 구성되어 있는지 확인하세요.
-
Linux 호스트의 IP 주소를 가리키는 두 개의 DNS
A레코드.teleport.example.com이 도메인 이름이라고 가정하고 다음에 대한 레코드를 설정합니다:도메인 이유 teleport.example.com사용자 및 서비스에서 Proxy Service로의 트래픽. *.teleport.example.comTeleport에 등록된 웹 애플리케이션으로의 트래픽. Teleport는 각 애플리케이션에 클러스터 도메인 이름의 하위 도메인을 발급합니다.
-
HTTPS로 Teleport Web UI를 실행하기 위한 로컬 인증 기관을 설정하고 인증서를 만들 수 있도록 mkcert를 설치합니다.
-
mkcert CA를 설치합니다:
$ mkcert -install -
Teleport용 TLS 자격 증명을 배치할 워크스테이션의 디렉터리를 만듭니다:
$ mkdir teleport-tls -
Teleport용 인증서와 개인 키를 생성합니다:
$ cd teleport-tls $ mkcert localhost -
Docker 컨테이너가 접근할 수 있도록 mkcert CA 인증서를
teleport-tls디렉터리에 추가합니다:$ cp "$(mkcert -CAROOT)/rootCA.pem" . -
이 가이드의 나머지 지침을 따를 수 있는 로컬 Docker 컨테이너를 시작합니다:
$ docker run -it -v .:/etc/teleport-tls -p 3080:443 ubuntu:22.04 -
컨테이너에
curl이 설치되어 있는지 확인합니다:$ apt-get update && apt-get install -y curl -
컨테이너에서 mkcert CA 인증서를 컨테이너가 CA 인증서를 저장하는 디렉터리로 이동합니다(
curl설치 시 자동으로 설정됩니다). 시작할 때 Teleport는 이 CA에 대해 자체 TLS 인증서를 검증합니다:$ cp /etc/teleport-tls/rootCA.pem /etc/ssl/certs/mkcertCA.pem
마지막으로 Authy, Google Authenticator, 또는 1Password와 같은 다중 인증 앱이 필요합니다.
1/3단계. Linux 호스트에서 Teleport 설정#
이 단계에서는 Linux 호스트에 로그인하고, Teleport 바이너리를 다운로드하고, Teleport 구성 파일을 생성하고, 호스트에서 Teleport Auth Service, Proxy Service, SSH Service를 시작합니다.
Teleport 설치#
Linux 호스트 또는 컨테이너에서 다음 명령을 실행하여 Teleport 바이너리를 설치합니다:
$ curl (=teleport.teleport_install_script_url=) | bash -s (=teleport.version=)
Teleport 구성#
teleport configure 명령을 사용하여 Teleport 구성 파일을 생성합니다. 이 명령은 TLS 인증서 및 개인 키에 대한 정보가 필요합니다.
지침은 공개 인터넷, 로컬 컨테이너, 또는 개인 네트워크에서 Teleport를 실행하는지에 따라 다릅니다:
Let's Encrypt는 Teleport 클러스터의 도메인 이름을 제어하고 있는지 확인하기 위해 Teleport Proxy Service의 포트 443에서 수신 대기 중인 HTTPS 서버와 통신합니다.
시작할 때 Let's Encrypt 검증 프로세스를 완료하도록 Teleport Proxy Service를 구성할 수 있습니다.
Teleport Auth Service 및 Proxy Service를 시작할 호스트에서 다음 teleport configure 명령을 실행합니다. teleport.example.com에는 Teleport 클러스터의 도메인 이름을, user@example.com에는 알림에 사용할 이메일 주소를 지정합니다(어떤 도메인이든 사용 가능):
$ sudo teleport configure -o file \
--acme --acme-email=user@example.com \
--cluster-name=teleport.example.com
Teleport Proxy Service 호스트의 포트 443은 모든 소스의 트래픽을 허용해야 합니다.
이 가이드를 시작할 때 실행한 Docker 컨테이너는 /etc/에 teleport-tls 디렉터리를 마운트하며, 여기에는 Teleport용 TLS 인증서와 개인 키가 포함되어 있습니다.
컨테이너에서 다음 teleport configure 명령을 실행합니다:
$ teleport configure -o file \
--cluster-name=localhost \
--public-addr=localhost:443 \
--cert-file=/etc/teleport-tls/localhost.pem \
--key-file=/etc/teleport-tls/localhost-key.pem
Teleport 호스트에서 유효한 개인 키와 인증서 체인을 각각 /var/lib/teleport/privkey.pem과 /var/lib/teleport/fullchain.pem에 배치합니다.
리프 인증서의 주체는 Teleport 호스트의 도메인에 해당해야 합니다. 예: *.teleport.example.com.
Teleport Auth Service 및 Proxy Service를 시작할 호스트에서 다음 teleport configure 명령을 실행합니다. teleport.example.com에는 Teleport 클러스터의 도메인 이름을 지정합니다.
$ sudo teleport configure -o file \
--cluster-name=teleport.example.com \
--public-addr=teleport.example.com:443 \
--cert-file=/var/lib/teleport/fullchain.pem \
--key-file=/var/lib/teleport/privkey.pem
Teleport 시작#
-
아래 지침에 따라 가상 머신 또는 컨테이너에서 Teleport를 시작합니다:
Teleport systemd 서비스를 활성화하고 시작합니다:
$ sudo systemctl enable teleport $ sudo systemctl start teleport다음 명령을 실행합니다:
$ teleport start --config="/etc/teleport.yaml"-
앞서 만든 도메인
teleport.example.com에서 HTTPS를 통해 Teleport Web UI에 접근하고 Teleport Community Edition 사용 약관에 동의합니다.로컬 Docker 컨테이너에서 Teleport를 실행하는 경우, https://localhost:3080으로 방문합니다.
다음과 유사한 환영 화면이 표시됩니다:

다음은 몇 가지 문제 해결 팁입니다:
- Teleport가 호스트에서 실행 중인지 확인합니다(VM에서는
systemctl status teleport, 또는 컨테이너에서teleport start명령이 여전히 실행 중인지 확인). - 포트 443(또는 Docker의 경우 3080)이 접근 가능하고 방화벽에 의해 차단되지 않는지 확인합니다.
- Teleport 로그에서 오류를 확인합니다: VM에서는
sudo journalctl -u teleport, 또는 컨테이너에서 터미널 출력을 검토합니다.
2/3단계. Teleport 사용자 생성 및 다중 인증 설정#
이 단계에서는
root,ubuntu, 또는ec2-user중 어느 주체로든 SSH 호스트에 로그인할 수 있는 새 Teleport 사용자teleport-admin을 만듭니다.-
로컬 컨테이너로 이 가이드를 따르는 경우, 다른 터미널을 열고 컨테이너에 접근합니다:
$ docker exec -it /bin/bash -
VM 또는 컨테이너에서 다음 명령을 실행합니다(로컬 컨테이너를 사용하는 경우
sudo를 제거합니다).tctl은 Teleport Auth Service를 구성하는 클라이언트 도구입니다:$ sudo tctl users add teleport-admin --roles=editor,access,auditor --logins=root,ubuntu,ec2-user이 명령은 다음과 유사한 메시지를 출력합니다:
User "teleport-admin" has been created but requires a password. Share this URL with the user to complete user setup, link is valid for 1h: https://teleport.example.com:443/web/invite/123abc456def789ghi123abc456def78 NOTE: Make sure teleport.example.com:443 points at a Teleport proxy which users can access.로컬 컨테이너를 사용하는 경우, 호스트와 포트를
localhost:3080으로 교체합니다. -
Teleport 사용자를 만들려면 제공된 URL을 방문합니다.
앞서 실행한
tctl명령은 다음과 같은 사전 설정 역할을 가진 로컬 Teleport 사용자를 생성했습니다:역할 권한 editor클러스터에서 관리 작업 수행 accessTeleport로 보호된 모든 리소스에 연결 auditor감사 이벤트 및 세션 녹화 보기 이 사용자는 거의 전체 권한을 가지고 있으므로, 초기 설정 작업을 완료한 후에는 이 아이덴티티를 대체 수단으로 취급하고, 일상적인 사용을 위해 다른 역할과 아이덴티티를 정의해야 합니다.
OS 사용자 매핑logins플래그에 지정한 사용자(예제의root,ubuntu,ec2-user)는 Linux 호스트에 존재해야 합니다. 그렇지 않으면 이 튜토리얼의 이후 과정에서 인증 오류가 발생합니다.사용자가 아직 존재하지 않는 경우, `adduser <login>`으로 생성하거나 [호스트 사용자 생성](../enroll-resources/server-access/guides/host-user-creation.mdx)을 사용할 수 있습니다. Linux 호스트에서 새 사용자를 만들 권한이 없는 경우, `tctl users update teleport-admin --logins=root,ubuntu,ec2-user,$(whoami)`를 실행하여 현재 로그인한 사용자로 Teleport가 인증할 수 있도록 명시적으로 허용합니다.-
[권장] 관리자 권한을 가진 두 번째 로컬 사용자를 만들기 위해 이 단계를 반복합니다. 잠금을 방지하기 위해 둘 이상의 로컬 사용자를 두는 것을 권장합니다. 처음 만든 아이덴티티와 마찬가지로, 이 사용자도 일상적인 사용을 위한 아이덴티티가 아니라 대체 수단으로 취급하세요.
-
Teleport는 기본적으로 다중 인증 사용을 강제합니다. 일회용 암호(OTP)와 다중 인증 장치(WebAuthn)를 지원합니다. 이 가이드에서는 Teleport 환영 화면의 QR 코드를 사용하여 OTP 인증 앱을 등록해야 합니다.
CLI를 통한 로그인
Teleport의 Web UI 외에도,
tsh클라이언트 도구를 통해 인프라의 리소스에 접근할 수 있습니다.로컬 워크스테이션에
tsh를 설치합니다:Mac
`tsh`가 포함된, 서명된 Teleport용 macOS .pkg 설치 프로그램을 다운로드합니다. Finder에서 `pkg` 파일을 더블 클릭하여 설치를 시작합니다: ```code $ curl -O https://cdn.teleport.dev/teleport-(=teleport.version=).pkg ```WarningHomebrew를 사용하여 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 tsh.exe to your %PATH% # NOTE: Do not place tsh.exe 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 바이너리에는 `tsh`가 포함되어 있습니다. 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에서 단기 인증서를 받으려면 로그인합니다.
teleport.example.com을 위에서 구성한 Teleport 클러스터의 공개 주소로 교체합니다:$ tsh login --proxy=teleport.example.com --user=teleport-admin > Profile URL: https://teleport.example.com:443 Logged in as: teleport-admin Cluster: teleport.example.com Roles: access, auditor, editor Logins: root, ubuntu, ec2-user Kubernetes: enabled Valid until: 2022-04-26 03:04:46 -0400 EDT [valid for 12h0m0s] Extensions: permit-agent-forwarding, permit-port-forwarding, permit-pty3/3단계. Teleport로 서버 접근#
이제 Teleport가 실행되고 사용자가 구성되었으므로, Teleport Web UI를 통해 Linux 서버에 접근할 수 있습니다(Teleport가 해당 서버에서 실행 중이므로 자동으로 등록됩니다).

웹 기반 터미널을 통해 접근하려면
Connect를 클릭하거나, Teleport의tshCLI 도구를 사용하여 SSH로 접속하세요:$ tsh ssh root@<server-name>다음은 몇 가지 문제 해결 팁입니다:
- 만든 사용자에게 호스트의 기존 OS 사용자와 일치하는 올바른 로그인(예:
root,ubuntu,ec2-user)이 할당되어 있는지 확인합니다. - 권한 거부 오류가 발생하면 로그인 사용자가 Linux 호스트에 존재하는지 확인하거나
adduser <login>으로 생성합니다. - MFA 장치가 제대로 등록되어 있고 인증 챌린지를 완료하고 있는지 확인합니다.
다음 단계: Teleport 에이전트 배포#
이 시점에서 자체 Teleport Community Edition 클러스터를 시작하고 사용자를 만들었습니다. 이제 인프라를 연결하는 다음 단계로 이동할 수 있습니다.
[2단계 - 인프라 연결](../connect/) -
-