InfoGrab Docs

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 서버.

Architecture of the setup you will complete in this
guide

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.com Teleport에 등록된 웹 애플리케이션으로의 트래픽. Teleport는 각 애플리케이션에 클러스터 도메인 이름의 하위 도메인을 발급합니다.
  1. HTTPS로 Teleport Web UI를 실행하기 위한 로컬 인증 기관을 설정하고 인증서를 만들 수 있도록 mkcert를 설치합니다.

  2. mkcert CA를 설치합니다:

    $ mkcert -install
    
  3. Teleport용 TLS 자격 증명을 배치할 워크스테이션의 디렉터리를 만듭니다:

    $ mkdir teleport-tls
    
  4. Teleport용 인증서와 개인 키를 생성합니다:

    $ cd teleport-tls
    $ mkcert localhost
    
  5. Docker 컨테이너가 접근할 수 있도록 mkcert CA 인증서를 teleport-tls 디렉터리에 추가합니다:

    $ cp "$(mkcert -CAROOT)/rootCA.pem" .
    
  6. 이 가이드의 나머지 지침을 따를 수 있는 로컬 Docker 컨테이너를 시작합니다:

    $ docker run -it -v .:/etc/teleport-tls -p 3080:443 ubuntu:22.04
    
  7. 컨테이너에 curl이 설치되어 있는지 확인합니다:

    $ apt-get update && apt-get install -y curl
    
  8. 컨테이너에서 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 시작#

  1. 아래 지침에 따라 가상 머신 또는 컨테이너에서 Teleport를 시작합니다:

Teleport systemd 서비스를 활성화하고 시작합니다:

$ sudo systemctl enable teleport
$ sudo systemctl start teleport

다음 명령을 실행합니다:

$ teleport start --config="/etc/teleport.yaml"
  1. 앞서 만든 도메인 에서 HTTPS를 통해 Teleport Web UI에 접근하고 Teleport Community Edition 사용 약관에 동의합니다.

    로컬 Docker 컨테이너에서 Teleport를 실행하는 경우, https://localhost:3080으로 방문합니다.

    다음과 유사한 환영 화면이 표시됩니다:

    Teleport Welcome Screen

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

이 단계에서는 root, ubuntu, 또는 ec2-user 중 어느 주체로든 SSH 호스트에 로그인할 수 있는 새 Teleport 사용자 teleport-admin을 만들 것입니다.

  1. 로컬 컨테이너로 이 가이드를 따르는 경우, 다른 터미널을 열고 컨테이너에 접근합니다:

    $ docker exec -it 
      
      
    
    
    

    Teleport에서 단기 인증서를 받으려면 로그인합니다. 을 위에서 구성한 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-pty
    

    3/3단계. Teleport로 서버 접근#

    이제 Teleport가 실행되고 사용자가 구성되었으므로, Teleport Web UI를 통해 Linux 서버에 접근할 수 있습니다(Teleport가 서버에서 실행 중이므로 자동으로 등록됩니다).

    Teleport Web UI showing an SSH server

    웹 기반 터미널을 통해 접근하려면 Connect를 클릭하거나, Teleport의 tsh CLI 도구를 사용하여 SSH로 접속합니다:

    $ tsh ssh root@<server-name>
    

  2. 다음 단계: Teleport 에이전트 배포#

    이 시점에서 자체 Teleport Community Edition 클러스터를 시작하고 사용자를 만들었습니다. 이제 인프라를 연결하는 다음 단계로 이동할 수 있습니다.

    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 서버.

    Architecture of the setup you will complete in this
guide

    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.com Teleport에 등록된 웹 애플리케이션으로의 트래픽. Teleport는 각 애플리케이션에 클러스터 도메인 이름의 하위 도메인을 발급합니다.
    1. HTTPS로 Teleport Web UI를 실행하기 위한 로컬 인증 기관을 설정하고 인증서를 만들 수 있도록 mkcert를 설치합니다.

    2. mkcert CA를 설치합니다:

      $ mkcert -install
      
    3. Teleport용 TLS 자격 증명을 배치할 워크스테이션의 디렉터리를 만듭니다:

      $ mkdir teleport-tls
      
    4. Teleport용 인증서와 개인 키를 생성합니다:

      $ cd teleport-tls
      $ mkcert localhost
      
    5. Docker 컨테이너가 접근할 수 있도록 mkcert CA 인증서를 teleport-tls 디렉터리에 추가합니다:

      $ cp "$(mkcert -CAROOT)/rootCA.pem" .
      
    6. 이 가이드의 나머지 지침을 따를 수 있는 로컬 Docker 컨테이너를 시작합니다:

      $ docker run -it -v .:/etc/teleport-tls -p 3080:443 ubuntu:22.04
      
    7. 컨테이너에 curl이 설치되어 있는지 확인합니다:

      $ apt-get update && apt-get install -y curl
      
    8. 컨테이너에서 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 시작#

    1. 아래 지침에 따라 가상 머신 또는 컨테이너에서 Teleport를 시작합니다:

    Teleport systemd 서비스를 활성화하고 시작합니다:

    $ sudo systemctl enable teleport
    $ sudo systemctl start teleport
    

    다음 명령을 실행합니다:

    $ teleport start --config="/etc/teleport.yaml"
    
    1. 앞서 만든 도메인 에서 HTTPS를 통해 Teleport Web UI에 접근하고 Teleport Community Edition 사용 약관에 동의합니다.

      로컬 Docker 컨테이너에서 Teleport를 실행하는 경우, https://localhost:3080으로 방문합니다.

      다음과 유사한 환영 화면이 표시됩니다:

      Teleport Welcome Screen

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

    이 단계에서는 root, ubuntu, 또는 ec2-user 중 어느 주체로든 SSH 호스트에 로그인할 수 있는 새 Teleport 사용자 teleport-admin을 만들 것입니다.

    1. 로컬 컨테이너로 이 가이드를 따르는 경우, 다른 터미널을 열고 컨테이너에 접근합니다:

      $ docker exec -it 
        
        
      
      
      

      Teleport에서 단기 인증서를 받으려면 로그인합니다. 을 위에서 구성한 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-pty
      

      3/3단계. Teleport로 서버 접근#

      이제 Teleport가 실행되고 사용자가 구성되었으므로, Teleport Web UI를 통해 Linux 서버에 접근할 수 있습니다(Teleport가 서버에서 실행 중이므로 자동으로 등록됩니다).

      Teleport Web UI showing an SSH server

      웹 기반 터미널을 통해 접근하려면 Connect를 클릭하거나, Teleport의 tsh CLI 도구를 사용하여 SSH로 접속합니다:

      $ tsh ssh root@<server-name>
      

    2. 다음 단계: Teleport 에이전트 배포#

      이 시점에서 자체 Teleport Community Edition 클러스터를 시작하고 사용자를 만들었습니다. 이제 인프라를 연결하는 다음 단계로 이동할 수 있습니다.