1단계 - Teleport Community Edition 배포
이 가이드는 Teleport Community Edition 배포 과정을 안내합니다. 소규모 데모나 홈랩 환경에 적합한 Linux 서버에서 단일 인스턴스 Teleport 클러스터를 시작할 것입니다. Teleport 클러스터는 다음 서비스로 구성됩니다:
이 가이드는 Teleport Community Edition 배포 과정을 안내합니다.
소규모 데모나 홈랩 환경에 적합한 Linux 서버에서 단일 인스턴스 Teleport 클러스터를 시작할 것입니다. 배포 후 가이드를 따라 인프라를 연결하고, 역할 기반 접근 제어(RBAC)를 설정하고, 접근을 감사할 수 있습니다.
작동 방식#
Teleport 클러스터는 다음 서비스로 구성됩니다:
- Teleport Auth Service: 클러스터의 인증 기관. 인증서를 발급하고 인증 챌린지를 수행합니다. Auth Service는 일반적으로 개인 네트워크 외부에서 접근할 수 없습니다.
- Teleport Proxy Service: 사용자 요청을 처리하고, 사용자 자격 증명을 Auth Service에 전달하며, 인프라의 특정 리소스에 대한 접근을 가능하게 하는 Teleport 인스턴스와 통신하는 클러스터 프런트엔드.
- Teleport SSH Service: Teleport 접근 제어를 시행하고, 세션을 녹화하고, Teleport 감사 이벤트로 활동을 기록하여 Linux 서버를 Teleport로 보호할 수 있는 SSH 서버.

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 클러스터의 도메인 이름으로, 을 알림에 사용되는 이메일 주소로 지정합니다(어떤 도메인이든 사용 가능):
$ sudo teleport configure -o file \
--acme --acme-email= \
--cluster-name=
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 클러스터의 도메인 이름으로 지정합니다.
$ sudo teleport configure -o file \
--cluster-name= \
--public-addr=: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"-
앞서 만든 도메인 에서 HTTPS를 통해 Teleport Web UI에 접근하고 Teleport Community Edition 사용 약관에 동의합니다.
로컬 Docker 컨테이너에서 Teleport를 실행하는 경우, https://localhost:3080으로 방문합니다.
다음과 유사한 환영 화면이 표시됩니다:

-
-
로컬 컨테이너로 이 가이드를 따르는 경우, 다른 터미널을 열고 컨테이너에 접근합니다:
$ docker exec -itTeleport에서 단기 인증서를 받으려면 로그인합니다. 을 위에서 구성한 Teleport 클러스터의 공개 주소로 교체합니다:
$ tsh login --proxy= --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>
2/3단계. Teleport 사용자 생성 및 다중 인증 설정#
이 단계에서는 root, ubuntu, 또는 ec2-user 중 어느 주체로든 SSH 호스트에 로그인할 수 있는 새 Teleport 사용자 teleport-admin을 만들 것입니다.
다음 단계: Teleport 에이전트 배포#
이 시점에서 자체 Teleport Community Edition 클러스터를 시작하고 사용자를 만들었습니다. 이제 인프라를 연결하는 다음 단계로 이동할 수 있습니다.
