인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
자체 호스팅 데모 클러스터 실행
아래 튜토리얼을 완료하여 자체 호스팅된 Teleport 배포가 작동하는 방식을 확인하십시오.
이는 Teleport Community Edition을 사용하여 Linux 서버에서 단일 인스턴스 Teleport 클러스터를 시작하는 방법을 보여줍니다. 클러스터를 배포한 후에는 RBAC를 구성하고, 리소스를 등록하며, 소규모 데모 환경이나 홈 랩을 보호할 수 있습니다.
또한 Teleport Enterprise Cloud의 무료 체험판에 가입하여 즉시 프로덕션 준비가 완료된 Teleport 클러스터를 시작할 수도 있습니다.

다음 Teleport 서비스가 실행됩니다:
- Teleport Auth Service: 클러스터의 인증 기관. 인증서 발급 및 인증 도전 과제를 수행합니다. Auth Service는 일반적으로 사설 네트워크 외부에서는 접근할 수 없습니다.
- Teleport Proxy Service: 사용자 요청을 처리하고 사용자 자격 증명을 Auth Service로 전달하며, 인프라의 특정 리소스에 대한 액세스를 가능하게 하는 Teleport 인스턴스와 통신하는 클러스터 프런트 엔드입니다.
- Teleport SSH Service: Teleport의 단기 인증서, 정교한 RBAC, 세션 기록 및 기타 기능을 활용하는 SSH 서버 구현입니다.
전제 조건
데모 Teleport 클러스터를 배포하려면 다음이 필요합니다.
환경이 전제 조건을 충족하지 않는 경우, Teleport Enterprise Cloud의 무료 체험판에 가입하여 Teleport를 시작할 수 있습니다.
인프라를 설정하지 않고 Teleport 명령 및 기능을 체험하고 싶다면 브라우저 기반의 Teleport Labs를 확인해 보십시오.
-
포트
443
만 수신 트래픽에 열려 있는 Linux 호스트가 필요합니다. 호스트에서 소프트웨어를 설치하고 실행할 수 있어야 합니다. 초기 설정을 위해 SSH를 통해 호스트에 대한 액세스를 구성하거나, 이 가이드의 명령을 Amazon EC2 사용자 데이터 스크립트, Google Compute Engine 시작 스크립트 또는 유사한 방법으로 입력하십시오.이 가이드를 따르기 위해 사용할 수 있는 빠른 데모 환경으로는 DigitalOcean의 1-Click 드롭렛을 설치하는 것이 좋습니다. DigitalOcean Marketplace에서 설치 페이지를 확인하십시오. 드롭렛이 준비되면 드롭렛에 SSH로 접속하고 구성 마법사를 따르십시오.
-
Authy, Google Authenticator 또는 1Password와 같은 다중 인증기 앱이 필요합니다.
다음 중 하나도 있어야 합니다:
- 등록된 도메인 이름.
- 귀 조직에서 관리하는 권한 있는 DNS 네임 서버와 기존 인증 기관. 이 방식을 사용하는 경우 브라우저가 조직의 네임 서버를 사용하도록 구성되어 있는지 확인하십시오.
1/4단계. DNS 구성
Teleport는 TLS를 사용하여 Proxy Service와 Auth Service에 대한 안전한 액세스를 제공하며, 이를 위해 클라이언트가 Teleport의 인증서를 확인하는 데 사용할 수 있는 도메인 이름이 필요합니다. 두 개의 DNS A
레코드를 설정하고, 각각은 리눅스 호스트의 IP 주소를 가리키도록 합니다. teleport.example.com
이 도메인 이름이라고 가정하고, 다음 레코드를 설정합니다:
Domain | Reason |
---|---|
teleport.example.com | 사용자 및 서비스의 Proxy Service로의 트래픽입니다. |
*.teleport.example.com | Teleport에 등록된 웹 애플리케이션으로의 트래픽입니다. Teleport는 각 애플리케이션에 클러스터의 도메인 이름의 하위 도메인을 발급합니다. |
2/4단계. 리눅스 호스트에 Teleport 설정하기
Teleport 설치
리눅스 호스트에서 다음 명령어를 실행하여 Teleport 바이너리를 설치합니다:
curl https://cdn.teleport.dev/install-v15.4.11.sh | bash -s 17.0.0-dev
Teleport 구성
teleport configure
명령어를 사용하여 Teleport의 구성 파일을 생성합니다. 이 명령은 TLS 인증서와 개인 키에 대한 정보가 필요합니다.
If you are running Teleport on the internet, we recommend using Let's Encrypt to
receive your key and certificate automatically. For private networks or custom
deployments, use your own private key and certificate.
Let's Encrypt는 Teleport 클러스터의 도메인 이름을 제어하는지를 확인하기 위해
Teleport Proxy Service의 포트 443에서 수신 대기 중인 HTTPS 서버와 통신합니다.
Teleport Proxy Service를 설정하여 시작할 때 Let's Encrypt
검증 프로세스를 완료할 수 있습니다.
Teleport Auth Service와 Proxy Service를 시작할 호스트에서 다음 teleport configure
명령을 실행합니다. tele.example.com 을
Teleport 클러스터의 도메인 이름으로, user@example.com 을
알림에 사용될 이메일 주소로 할당합니다 (어떤 도메인도 사용할 수 있습니다):
sudo teleport configure -o file \ --acme --acme-email=user@example.com \ --cluster-name=tele.example.com
Teleport Proxy Service 호스트의 포트 443에서는 모든 소스에서의 트래픽을 허용해야 합니다.
Teleport 호스트에서 유효한 개인 키와 인증서 체인을 /var/lib/teleport/privkey.pem
및 /var/lib/teleport/fullchain.pem
에 각각 배치합니다.
리프 인증서는 Teleport 호스트의 도메인에 해당하는 주제를 가져야 합니다, 예: *.teleport.example.com
.
Teleport Auth Service와 Proxy Service를 시작할 호스트에서 다음 teleport configure
명령을 실행합니다. tele.example.com 을
Teleport 클러스터의 도메인 이름으로 할당합니다.
sudo teleport configure -o file \ --cluster-name=tele.example.com \ --public-addr=tele.example.com:443 \ --cert-file=/var/lib/teleport/fullchain.pem \ --key-file=/var/lib/teleport/privkey.pem
Teleport 시작
호스트가 부팅될 때 your Teleport instance가 자동으로 시작되도록 systemd 서비스를 생성하여 구성합니다. 지침은 your Teleport instance를 설치한 방법에 따라 다릅니다.
your Teleport instance를 실행할 호스트에서 Teleport를 활성화하고 시작합니다:
sudo systemctl enable teleportsudo systemctl start teleport
your Teleport instance를 실행할 호스트에서 Teleport의 systemd 서비스 구성을 만들고, Teleport 서비스를 활성화한 후 Teleport를 시작합니다:
sudo teleport install systemd -o /etc/systemd/system/teleport.servicesudo systemctl enable teleportsudo systemctl start teleport
systemctl status teleport
로 your Teleport instance의 상태를 확인하고, journalctl -fu teleport
로 로그를 볼 수 있습니다.
이전에 생성한 도메인을 통해 HTTPS로 Teleport의 웹 UI에 접속합니다 (예: https://teleport.example.com
). 다음과 유사한 환영 화면을 볼 수 있습니다:
3/4단계. Teleport 사용자 생성 및 다단계 인증 설정
이번 단계에서는 새로운 Teleport 사용자 teleport-admin
을 생성할 것입니다. 이 사용자는 root
, ubuntu
, 또는 ec2-user
의 모든 주체로 SSH 호스트에 로그인할 수 있습니다.
리눅스 호스트에서 다음 명령어를 실행합니다:
tctl은 Teleport의 인증 서비스를 구성하는 데 사용되는 관리 도구입니다.
sudo tctl users add teleport-admin --roles=editor,access --logins=root,ubuntu,ec2-user
이 명령어는 다음과 유사한 메시지를 출력합니다:
사용자 "teleport-admin"이 생성되었지만 비밀번호가 필요합니다. 이 URL을 사용자와 공유하여 사용자 설정을 완료하십시오. 링크는 1시간 동안 유효합니다:
https://teleport.example.com:443/web/invite/123abc456def789ghi123abc456def78
참고: teleport.example.com:443가 사용자가 접근 가능한 Teleport 프록시를 가리키는지 확인하십시오.
제공된 URL을 방문하여 Teleport 사용자를 생성하세요.
OS 사용자 매핑
logins
플래그에 지정한 사용자 (예: 우리의 예제에서는 root
, ubuntu
및 ec2-user
)는 리눅스 호스트에 존재해야 합니다. 그렇지 않으면 이 튜토리얼에서 인증 오류가 발생할 수 있습니다.
사용자가 이미 존재하지 않는 경우, adduser <login>
을 사용하여 생성하거나
호스트 사용자 생성을 사용하세요.
리눅스 호스트에서 새로운 사용자를 생성할 권한이 없다면, tctl users add teleport $(whoami)
를 실행하여 현재 로그인한 사용자로서 Teleport의 인증을 명시적으로 허용할 수 있습니다.
Teleport는 기본적으로 다단계 인증 사용을 강제합니다. 일회성 비밀번호 (OTP)와 다단계 인증기 (WebAuthn)를 지원합니다. 이 가이드에서는 Teleport 환영 화면의 QR 코드를 사용하여 OTP 인증기 애플리케이션을 등록해야 합니다.
Teleport의 웹 UI 외에도 tsh
클라이언트 도구를 통해 인프라의 리소스에 접근할 수 있습니다.
로컬 워크스테이션에 tsh
를 설치하세요:
tsh
의 서명된 macOS .pkg 설치 프로그램을 다운로드합니다. Finder에서 pkg
파일을 두 번 클릭하여 설치합니다:
curl -O https://cdn.teleport.dev/tsh-17.0.0-dev.pkg
Danger
Homebrew를 사용하여 Teleport를 설치하는 것은 지원되지 않습니다. Homebrew의 Teleport 패키지는 Teleport에 의해 유지 관리되지 않으며, 그 신뢰성이나 보안을 보장할 수 없습니다.
macOS에서 모든 설치에 대해 우리의 Teleport 패키지 사용을 권장합니다.
curl.exe -O https://cdn.teleport.dev/teleport-v17.0.0-dev-windows-amd64-bin.zip아카이브를 풀고 `tsh.exe` 를 %PATH%에 이동합니다.
NOTE: WinSCP를 사용할 때 문제를 일으킬 수 있으므로 tsh.exe를 System32 디렉터리에 두지 마십시오.
대신 %SystemRoot% (C:\Windows) 또는 %USERPROFILE% (C:\Users\<username>)를 사용하십시오.
tsh
는 Linux 설치의 모든 Teleport 바이너리에 포함되어 있습니다.
더 많은 옵션(예: RPM/DEB 패키지 및 i386/ARM/ARM64 다운로드)은 설치 페이지를 참조하십시오.
curl -O https://cdn.teleport.dev/teleport-v17.0.0-dev-linux-amd64-bin.tar.gztar -xzf teleport-v17.0.0-dev-linux-amd64-bin.tar.gzcd teleportsudo ./installTeleport 바이너리가 /usr/local/bin에 복사되었습니다.
짧은 기간 유효한 인증서를 Teleport에서 받으려면 로그인합니다:
teleport.example.com을 위에서 구성한 Teleport 클러스터의 공개 주소로 교체합니다.
tsh login --proxy=teleport.example.com --user=teleport-admin> 프로필 URL: https://teleport.example.com:443 로그인한 사용자: teleport-admin 클러스터: teleport.example.com 역할: access, editor 로그인: root, ubuntu, ec2-user Kubernetes: 활성화됨 유효 기간: 2022-04-26 03:04:46 -0400 EDT [12시간 동안 유효] 확장: permit-agent-forwarding, permit-port-forwarding, permit-pty
4/4단계. 인프라 등록
Teleport를 사용하면 서버, 데이터베이스, 애플리케이션, Kubernetes 클러스터, Windows 데스크탑 및 클라우드 제공 API를 포함하여 인프라의 모든 리소스를 단일 ID 인식 액세스 프록시 뒤에 보호할 수 있습니다.
Teleport로 리소스를 등록하려면 웹 UI를 방문하고 새 리소스 등록을 클릭하십시오. 웹 UI는 새 리소스를 등록하기 위해 수행할 수 있는 단계를 보여줍니다.
웹 UI의 홈페이지에서 이미 Linux 서버를 등록했음을 확인할 수 있습니다.
다음 단계: 에이전트 배포
Teleport 에이전트는 서버, 데이터베이스, Kubernetes 클러스터, 클라우드 제공 API 및 Windows 데스크탑과 같은 인프라 리소스에 트래픽을 프록시합니다.
4단계에서는 에이전트를 수동으로 설치하는 방법을 보여주었으며, 인프라를 코드로 사용하는 도구를 사용하여 에이전트를 시작하고 리소스를 등록할 수도 있습니다. 예를 들어 Terraform을 사용하여 Teleport 에이전트 풀을 선언하고 인프라를 프록시하도록 구성할 수 있습니다. 시작하려면 Terraform으로 Teleport 에이전트 배포를 참고하십시오.