Infograb logo
셀프 호스팅 데모 클러스터 실행하기

셀프 호스팅된 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의 단기 인증서를 활용하는 SSH 서버 구현으로, 정교한 RBAC, 세션 기록 및 기타 기능을 갖추고 있습니다.

전제 조건

데모 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 인증서를 검증할 수 있는 도메인 이름이 필요합니다.
Linux 호스트의 IP 주소를 가리키도록 두 개의 DNS A 레코드를 설정합니다. teleport.example.com이 귀하의 도메인 이름이라고 가정하고, 다음 레코드를 설정합니다:

DomainReason
teleport.example.com사용자 및 서비스의 Proxy Service로의 트래픽.
*.teleport.example.comTeleport에 등록된 웹 애플리케이션으로의 트래픽. Teleport는 각 애플리케이션에 클러스터의 도메인 이름의 하위 도메인을 발급합니다.

2단계/4단계. Linux 호스트에 Teleport 설정하기

Teleport 설치하기

Linux 호스트에서 Teleport 바이너리를 설치하려면 다음 명령어를 실행하세요:

curl https://cdn.teleport.dev/install-v16.2.0.sh | bash -s 16.2.0

Teleport 구성하기

teleport configure 명령어를 사용하여 Teleport를 위한 구성 파일을 생성합니다.
이 명령어는 TLS 인증서 및 개인 키에 대한 정보가 필요합니다.

인터넷에서 Teleport를 실행하는 경우, Let's Encrypt를 사용하여 키와 인증서를 자동으로 받는 것을 권장합니다. 사설 네트워크나 맞춤형 배포의 경우, 자체 개인 키와 인증서를 사용하세요.

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가 자동으로 시작되도록 시스템 데몬 서비스를 생성하여 구성합니다. 지침은 your Teleport instance를 설치한 방법에 따라 다릅니다.

your Teleport instance를 실행할 호스트에서 Teleport를 활성화하고 시작하십시오:

sudo systemctl enable teleport
sudo systemctl start teleport

your Teleport instance를 실행할 호스트에서 Teleport에 대한 시스템 데몬 서비스 구성을 생성하고, Teleport 서비스를 활성화한 후 Teleport를 시작하십시오:

sudo teleport install systemd -o /etc/systemd/system/teleport.service
sudo systemctl enable teleport
sudo systemctl start teleport

your Teleport instance의 상태는 systemctl status teleport로 확인할 수 있으며, 로그는 journalctl -fu teleport로 볼 수 있습니다.

앞서 생성한 도메인에서 HTTPS를 통해 Teleport의 웹 UI에 접근하세요 (예: https://teleport.example.com).
환영 화면이 다음과 비슷하게 나타나야 합니다:

3단계/4단계. Teleport 사용자 생성 및 다중 인증 설정

이 단계에서는 SSH 호스트에 root, ubuntu, 또는 ec2-user라는 원칙 중 하나로 로그인할 수 있는 새로운 Teleport 사용자 teleport-admin을 생성합니다.

Linux 호스트에서 다음 명령어를 실행하세요:

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는 우리 예제에서)가 Linux 호스트에 존재해야 합니다.
그렇지 않으면 이 튜토리얼의 후반부에서 인증 오류가 발생합니다.

사용자가 존재하지 않는 경우 adduser <login>으로 생성하거나, 호스트 사용자 생성을 사용할 수 있습니다.

Linux 호스트에서 새로운 사용자를 생성할 권한이 없는 경우, 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-16.2.0.pkg
Danger

Homebrew를 사용하여 Teleport를 설치하는 것은 지원되지 않습니다. Homebrew의 Teleport 패키지는 Teleport에서 유지 관리되지 않으며 그 신뢰성이나 보안을 보장할 수 없습니다.

macOS에서 설치 시 자체 Teleport 패키지의 사용을 권장합니다.

curl.exe -O https://cdn.teleport.dev/teleport-v16.2.0-windows-amd64-bin.zip

아카이브를 압축 해제하고 `tsh.exe`를 %PATH%로 이동합니다.

주의: tsh.exe를 System32 디렉토리에 넣지 마세요, 이는 WinSCP 사용 시 문제를 일으킬 수 있습니다.

대신 %SystemRoot% (C:\Windows) 또는 %USERPROFILE% (C:\Users\<username>)를 사용하세요.

tsh는 Linux 설치에 포함된 모든 Teleport 바이너리와 함께 제공됩니다. 더 많은 옵션(RPM/DEB 패키지 및 i386/ARM/ARM64 다운로드 포함)은 설치 페이지를 참조하십시오.

curl -O https://cdn.teleport.dev/teleport-v16.2.0-linux-amd64-bin.tar.gz
tar -xzf teleport-v16.2.0-linux-amd64-bin.tar.gz
cd teleport
sudo ./install

Teleport 바이너리가 /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와 같은 모든 리소스를 단일 신원 인식 접근 프록시 뒤에 보호할 수 있습니다.

Teleport로 리소스를 등록하려면 웹 UI에 방문하여 새 리소스 등록하기를 클릭하세요.
웹 UI에서 새 리소스를 등록하기 위해 수행할 수 있는 단계를 보여줍니다.

웹 UI의 홈페이지에서 이미 Linux 서버를 등록한 것을 확인할 수 있습니다.

다음 단계: 에이전트 배포

Teleport 에이전트는 서버, 데이터베이스, Kubernetes 클러스터, 클라우드 공급자 API 및 Windows 데스크탑과 같은 인프라 리소스에 트래픽을 프록시합니다.

4단계에서는 에이전트를 수동으로 설치하는 방법을 보여주었으며, 인프라 코드를 사용하여 에이전트를 실행하고 리소스에 등록할 수도 있습니다.
예를 들어, Terraform을 사용하여 Teleport 에이전트 풀을 선언하고 이를 통해 인프라를 프록시하는 방법을 구성할 수 있습니다.
Terraform으로 Teleport 에이전트 배포하기를 읽어 시작하세요.

Teleport 원문 보기