웹사이트 검색

Debian 11에 텔레포트 클러스터를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. Debian 서버에 Teleport 설치
  3. 텔레포트 서버 구성
  4. 텔레포트 사용자 설정
  5. 명령줄을 통한 텔레포트 클러스터 관리\n
  6. 텔레포트 클러스터에 노드 추가
    1. 설치 프로그램 스크립트를 통해 client1 추가\n
    2. 수동으로 client2 노드 추가

    Teleport는 글로벌 인프라의 액세스 평면으로 사용할 수 있는 오픈 소스입니다. 서버, Kubernetes 클러스터, 데이터베이스 서버, AWS Management Console과 같은 DevOps 애플리케이션, CI/CD, 버전 제어 및 데스크톱과 같은 다양한 서비스에 대한 제로 트러스트 액세스를 제공합니다. Teleport는 전체 인프라에서 동기화되는 액세스를 위한 단일 정보 소스입니다.

    Teleport는 글로벌 컴퓨팅 인프라에 액세스할 수 있는 단일 게이트웨이를 제공하여 VPN과 같은 서비스의 필요성을 제거합니다. 인프라에 안전하게 액세스할 수 있게 해주는 Identity-Native Access Proxy입니다.

    Teleport는 Cure53 및 Doyensec과 같은 보안 회사의 공개 감사를 받았습니다. Teleport는 현재 Samsung, NASDAQ, IBM, Epic Games 등과 같은 회사에서 생산에 배포 및 사용하고 있습니다.

    이 가이드에서는 Debian 11 서버의 인프라에 대한 액세스 플레인인 Teleport를 설치하고 구성합니다. 보안 Teleport 클러스터를 초기화하고 Teleport 사용자를 설정한 다음 두 가지 다른 방법으로 Teleport 클러스터에 노드를 추가하는 방법을 배웁니다.

    전제 조건

    시작하려면 다음 요구 사항이 필요합니다.

    • Debian 11 서버 - 이 예에서는 호스트 이름이 teleport-server이고 IP 주소가 192.168.5.100인 Debian 서버를 사용합니다.\n
    • sudo/root 관리자 권한이 있는 루트가 아닌 사용자.\n
    • 서버 IP 주소를 가리키는 도메인 이름.
    • 도메인 이름에 대해 SSL Letsencrypt를 생성했습니다.\n
    • 컴퓨터 사용자용 KeepassXC, Android 사용자용 Aegis 또는 iOS용 Google Authenticator와 같은 2단계 인증 앱.\n

    Teleport 서버에 추가할 다른 노드/서버도 필요합니다. 다른 Linux 배포판을 사용할 수 있습니다. 이 예에서는 두 서버 client1client2를 Debian 시스템과 함께 사용합니다.

    계속할 준비가 되면 사용자로 로그인하고 다음 명령 실행을 시작하여 시작하십시오.

    데비안 서버에 텔레포트 설치하기

    먼저 teleport-server에 Teleport 패키지를 설치합니다. Teleport는 Debian 기반 배포용 DEB 패키지와 RHEL 기반 배포용 RPM 패키지를 제공합니다.

    이 단계에서는 Debian 서버에 Teleport 저장소를 추가합니다. 그런 다음 APT를 통해 Teleport 패키지를 설치합니다.

    아래 apt 명령을 실행하여 리포지토리 관리를 위한 기본 종속성을 설치합니다.

    sudo apt install curl wget apt-transport-https gnupg2

    메시지가 표시되면 y를 입력하고 ENTER를 눌러 계속 진행합니다.

    다음으로 아래 명령을 실행하여 /etc/os-release 파일에서 사용 가능한 환경 변수를 로드합니다.

    source /etc/os-release

    아래 curl 명령을 실행하여 Teleport 저장소의 GPG 키를 다운로드합니다. 그런 다음 아래의 echo 및 tee 명령을 통해 Debian 기반 배포용 Teleport 저장소를 추가합니다.

    sudo curl https://apt.releases.teleport.dev/gpg \
    -o /usr/share/keyrings/teleport-archive-keyring.asc
    echo "deb [signed-by=/usr/share/keyrings/teleport-archive-keyring.asc] https://apt.releases.teleport.dev/${ID?} ${VERSION_CODENAME?} stable/v11" | \
    sudo tee /etc/apt/sources.list.d/teleport.list > /dev/null

    Teleport 저장소를 추가한 후 아래 apt 명령을 실행하여 패키지 관리자 캐시를 업데이트하십시오.

    sudo apt update

    Teleport 저장소가 데비안 서버에 추가된 것을 볼 수 있습니다.

    이제 아래의 apt 명령을 통해 Teleport를 설치하십시오. 이제 Teleport 설치가 자동으로 시작됩니다.

    sudo apt install teleport

    Teleport를 설치한 후 Teleport 배포를 설정할 수 있습니다.

    텔레포트 서버 구성

    Teleport를 사용하려면 먼저 Teleport 자체를 구성해야 합니다. Teleport 배포 보안을 위해 Teleport 및 생성된 SSL 인증서에 사용될 도메인 이름이 있어야 합니다.

    이 단계에서는 Debian 서버에서 Teleport 설치를 초기화하고 Teleport 웹 애플리케이션 대시보드를 활성화한 다음 Teleport 서비스를 시작하고 활성화합니다.

    이 예에서는 /etc/letsencrypt/live/tele.hwdomain.io/ 디렉터리에서 생성된 Teleport 배포 및 SSL 인증서에 도메인 이름 tele.hwdomain.io를 사용합니다.

    시작하려면 아래 teleport 명령을 실행하여 Teleport 서버 구성을 초기화하십시오. 또한 도메인 이름, 클러스터 이름, SSL 인증서의 경로, 공개 키와 개인 키를 모두 변경해야 합니다.

    sudo teleport configure -o file \
    --cluster-name=tele.hwdomain.io \
    --public-addr=tele.hwdomain.io:443 \
    --cert-file=/etc/letsencrypt/live/tele.hwdomain.io/fullchain.pem \
    --key-file=/etc/letsencrypt/live/tele.hwdomain.io/privkey.pem

    터미널의 출력에서 /etc/teleport.yml 파일에 생성된 Teleport 구성을 볼 수 있습니다.

    다음으로 아래의 nano 편집기 명령을 사용하여 Teleport 구성 파일 /etc/teleport.yaml을 엽니다.

    sudo nano /etc/teleport.yaml

    줄 끝에 다음 줄을 추가합니다. 이 줄을 사용하여 관리 대시보드를 제공하는 Teleport 웹 서비스를 활성화합니다. 또한 도메인 이름 tele.hwdomain.io도 변경해야 합니다.

    app_service:
      enabled: yes
      apps:
      - name: "teleport-webapp"
        uri: "http://localhost:9000"
        public_addr: "tele.hwdomain.io"

    파일을 저장하고 완료되면 편집기를 종료합니다.

    이제 아래의 systemctl 명령 유틸리티를 실행하여 Teleport 서비스를 시작하고 활성화하십시오.

    sudo systemctl start teleport
    sudo systemctl enable teleport

    Teleport 서비스가 실행 중이고 활성화되어 있어야 부팅 시 서비스가 자동으로 시작됩니다. 아래 명령을 사용하여 Teleport 서비스를 확인합니다.

    sudo systemctl status teleport

    출력에서 Teleport 서비스 상태가 실행 중이고 활성화되어 있어야 합니다.

    이 시점에서 Teleport Cluster는 웹 서비스가 활성화된 상태로 실행 중입니다. Teleport 웹 서비스가 활성화되었는지 확인하려면 웹 브라우저를 열고 Teleport 설치의 도메인 이름(예: https://tele.hwdomain.io/)을 방문하십시오.

    이제 Teleport 웹 서비스 로그인 페이지가 나타납니다.

    다음 단계에서는 명령줄 및 웹 관리 대시보드를 통해 Teleport 관리 사용자 구성을 시작합니다.

    텔레포트 사용자 설정

    Teleport 서비스 및 웹 서비스가 실행 중이지만 여전히 새 Teleport 사용자를 추가해야 하므로 로그인할 수 없습니다. Teleport 사용자가 있으면 명령줄(tctl 및 tsh)을 통해 또는 Teleport 웹 서비스에서 제공하는 웹 관리 대시보드를 사용하여 Teleport 클러스터를 관리할 수 있습니다.

    Teleport 사용자를 생성하기 전에 Two Factor Authentication 앱이 장치에 설치되어 있는지 확인하십시오. Aegis 또는 Google 인증을 통해 모바일 앱을 사용하거나 컴퓨터 사용자를 위한 2FA 플러그인과 함께 KeepassXC를 사용할 수 있습니다.

    teleport-server 시스템에서 아래 명령을 실행하여 새 Teleport 사용자를 생성합니다.

    sudo tctl users add teleport-admin --roles=editor,access --logins=root,debian,ec2-user

    이 명령은 역할 편집자 및 액세스 권한이 있는 새 사용자 teleport-admin을 생성합니다. 또한 --logins 플래그를 사용하면 teleport-admin이 사용자 root, debian을 통해 모든 노드에 로그인할 수 있습니다. , 또는 ec2-user. --login 플래그 뒤의 사용자는 대상 노드에서 생성되어야 합니다.

    다음은 터미널에서 수신해야 하는 유사한 출력입니다. Teleport 사용자 teleport-admin을 설정하는 데 사용되는 생성된 링크를 볼 수 있습니다.

    생성된 링크를 복사하여 웹 브라우저에 붙여넣습니다. 그리고 새로운 Teleport 사용자를 설정하기 위한 환영 메시지를 받아야 합니다. 시작하기 버튼을 클릭하여 새 사용자 구성을 시작합니다.

    이제 Teleport 사용자의 사용자 이름을 입력하고 새로운 강력한 암호를 입력하고 반복하십시오. 그런 다음 다음을 클릭하여 계속하십시오.

    다음으로 Teleport 사용자에 대한 이중 인증을 설정해야 합니다. 2FA 애플리케이션에 새 애플리케이션을 추가하려면 화면의 QR 코드를 스캔하세요.

    2FA 애플리케이션에서 생성된 인증 코드를 입력하고 제출을 클릭합니다.

    2FA 코드가 정확하면 화면에 등록 성공 메시지가 표시됩니다. 이는 새 사용자 teleport-admin이 추가 및 구성되었음을 의미합니다.

    대시보드로 이동을 클릭합니다.

    이제 HTTPS가 활성화된 상태로 안전하게 실행되고 2FA가 활성화된 상태에서 사용자가 생성된 Teleport 배포의 웹 관리 대시보드를 가져와야 합니다.

    명령줄을 통한 텔레포트 클러스터 관리

    Teleports는 Teleport Cluster 관리에 사용할 수 있는 명령줄 tsh 및 tctl을 제공합니다. 두 명령줄 모두 기본적으로 Teleport 패키지에 포함되어 있습니다.

    tsh 명령을 사용하면 사용자가 터미널에서 Teleport Cluster를 인증하고 관리할 수 있습니다. 클러스터에서 Teleport 리소스를 추가, 편집 또는 삭제할 수 있습니다. 보안을 위해 루트가 아닌 사용자로 tsh 명령을 실행해야 합니다.
    tctl 명령은 Teleport Auth Service를 설정하고 구성합니다. 이것은 sudo 또는 루트 권한으로 실행해야 합니다.

    이 단계에서는 명령줄 tsh 및 tctl을 통해 Teleport Cluster에 액세스하고 관리합니다.

    먼저 아래 명령을 통해 루트가 아닌 사용자로 로그인합니다. 이 예에서는 사용자 debian을 사용합니다.

    su - debian

    이제 아래 tsh 명령을 실행하여 Teleport Cluster에 인증하십시오. 이 예제는 teleport-admin 사용자로 도메인 이름 tele.hwdomain.io에서 실행되는 Teleport 클러스터에 인증합니다.

    tsh login --proxy=tele.hwdomain.io --user=teleport-admin

    teleport-admin 사용자의 비밀번호를 입력하고 OTP 인증 코드를 입력하라는 메시지가 표시됩니다. 사용자의 올바른 비밀번호와 2FA 애플리케이션의 올바른 OTP 코드를 입력하세요.

    성공하고 인증되면 다음과 같이 Teleport Cluster에 대한 자세한 연결을 수신해야 합니다.

    아래 tsh 명령을 통해 Teleport Cluster에 대한 현재 연결을 확인할 수도 있습니다. 그러면 상단의 스크린샷과 동일한 출력이 생성됩니다.

    tsh status

    이제 tsh를 통해 Teleport Cluster에 인증했으므로 이제 터미널을 통해 Teleport에서 리소스를 관리할 수 있습니다.

    아래 tsh 명령을 실행하여 Teleport Cluster에서 사용 가능한 호스트/노드/서버 목록을 확인합니다.

    tsh ls

    이제 아래의 tsh 명령을 통해 Teleport CLuster에서 활성화된 애플리케이션을 확인합니다.

    tsh apps ls

    출력에서 Teleport Cluster(teleport-server)에서 하나의 노드를 사용할 수 있고 teleport-webapp 응용 프로그램이 활성화된 것을 볼 수 있습니다.

    다음으로 아래와 같이 tsh 명령을 통해 Teleport Cluster에서 사용 가능한 노드에 로그인할 수도 있습니다. 이것으로 root 또는/및 debian 사용자로 tsh 명령을 통해 teleport-server에 로그인하게 됩니다.

    tsh ssh 

    다음과 같은 출력이 표시되어야 합니다. 두 tsh 명령을 모두 사용하여 tsh 명령을 통해 teleport-server에 성공적으로 로그인했습니다.

    tctl 명령의 경우 처음에 sudo로 실행해야 합니다. 아래 tctl 명령을 실행하여 Teleport Cluster에서 사용 가능한 노드/서버를 확인하십시오.

    sudo tctl nodes ls

    다음 단계에서는 웹 관리 대시보드를 통해 자동으로 또는 명령줄을 통해 수동으로 두 가지 다른 방법을 통해 Teleport 클러스터에 노드/서버를 추가하는 방법을 배웁니다.

    텔레포트 클러스터에 노드 추가

    텔레포트 클러스터에 노드/서버를 추가하려면 서버에 연결할 수 있는지 확인해야 합니다. 그리고 두 가지 다른 방법을 사용하여 Teleport Cluster에 노드/서버를 추가할 수 있습니다.

    Teleport를 서버, Kubernetes 클러스터, 데이터베이스 서버, 애플리케이션 및 데스크톱과 같은 다양한 서비스에 대한 컨트롤 플레인 관리로 사용할 수 있습니다.

    이 단계에서는 두 개의 서로 다른 서버를 Teleport CLuster에 추가합니다. 웹 관리 대시보드에서 생성되는 설치 프로그램 스크립트를 통해 시스템 client1을 추가하고 명령줄을 통해 수동으로 client2 시스템을 추가합니다.

    설치 프로그램 스크립트를 통해 client1 추가

    먼저 Teleport 웹 관리 대시보드로 돌아가 서버 추가 버튼을 클릭합니다.

    추가할 리소스 유형을 선택합니다. Kubernetes 클러스터, 데이터베이스 서버, 애플리케이션 및 데스크톱을 추가할 수 있습니다. SERVERS를 선택하여 자원 유형 서버를 추가하고 다음을 클릭하십시오.

    이제 client1 시스템을 추가하는 데 사용할 수 있는 생성된 설치 프로그램 스크립트와 명령줄이 표시됩니다. 생성된 명령줄을 복사합니다.

    이제 client1 시스템에 로그인하고 sudo 명령을 통해 루트 권한에 액세스한 다음 client1 시스템에서 생성된 명령줄을 붙여넣고 실행합니다. 그러면 생성된 스크립트가 client1 시스템에 다운로드되고 스크립트가 실행됩니다.

    터미널에서 이와 유사한 출력을 받게 됩니다. 설치 프로그램 스크립트는 생성된 토큰과 Teleport Cluster의 ca 핀을 사용하여 client1 시스템을 추가합니다. 또한 설치 프로그램 스크립트는 현재 운영 체제를 자동으로 감지하고 Teleport 패키지를 자동으로 설치하며 Teleport 구성 /etc/teleport.yaml 파일을 생성합니다.

    프로세스가 완료되면 다음과 같은 출력을 받아야 합니다. client1 시스템의 Teleport 서비스도 자동으로 시작되고 활성화되었습니다.

    이제 Teleport 웹 관리 대시보드로 돌아가면 서버가 이 Teleport 클러스터에 성공적으로 가입했습니다와 같은 메시지가 표시되어야 합니다. 계속하려면 다음을 클릭하십시오.

    이제 client1 시스템에 액세스할 수 있는 사용자 이름을 입력하십시오. 사용자가 client1 시스템에서 사용 가능하고 생성되었는지 확인하십시오. 계속하려면 다음을 다시 클릭하십시오.

    마지막으로 웹 관리 대시보드에서 사용할 수 있는 단계를 사용하여 client1 시스템에 대한 연결을 확인할 수 있습니다.

    • 먼저 로그인에 사용할 사용자를 선택합니다.\n
    • 두 번째로 2단계에서 TEST SERVER 버튼을 클릭하고 모든 테스트가 완료된 것으로 확인/표시되었는지 확인합니다.\n
    • 마지막으로 START SESSION 버튼을 클릭하면 웹 브라우저에서 새 탭이 자동으로 열리고 선택한 사용자를 통해 client1 시스템에 액세스합니다.\n

    아래는 성공적인 상태의 연결 테스트 섹션의 스크린샷입니다.

    아래는 3단계의 START SESSION을 통해 client1 시스템에 로그인한 후의 스크린샷입니다.

    완료를 클릭하여 프로세스를 완료하십시오.

    그러면 Teleport 웹 관리 대시보드로 리디렉션되고 client1 시스템이 Teleport 클러스터에 추가된 것을 볼 수 있습니다.

    tshtctl 명령줄을 통해 Teleport Cluster의 노드/서버 목록을 확인할 수도 있습니다.

    teleport-server로 돌아가서 아래 명령을 실행하여 Teleport Cluster의 노드/서버 목록을 확인합니다.

    tsh ls
    sudo tctl nodes ls

    다음과 유사한 출력을 수신해야 합니다. client1 머신이 사용 가능하고 Teleport 클러스터에 추가되었습니다.

    마지막으로 아래 tsh 명령을 실행하여 client1 시스템에 debian 사용자로 로그인합니다. 이제 Teleport를 통해 client1 시스템에 로그인해야 합니다.

    tsh ssh 

    아래는 Teleport를 통해 client1 시스템으로 이동한 후의 터미널 화면입니다.

    이를 염두에 두고 이제 Teleport 웹 관리 대시보드에서 생성된 설치 프로그램 스크립트를 통해 자동으로 client1 노드/서버를 Teleport 클러스터에 성공적으로 추가했습니다.

    수동으로 client2 노드 추가

    아래 명령을 실행하여 Teleport Cluster의 CA 핀 지문을 확인하십시오. CA 핀 지문은 client2 시스템을 추가하는 데 사용됩니다.

    sudo tctl status

    다음은 수신해야 하는 유사한 출력입니다. CA pin 지문을 복사해야 합니다.

    다음으로 아래 tctl 명령을 실행하여 client2 머신이 Teleport Cluster에 가입하는 데 사용할 새 토큰을 생성합니다. 그런 다음 Teleport Cluster에서 토큰 목록을 확인하십시오.

    sudo tctl nodes add --ttl=30m --roles=node | grep "invite token:" | grep -Eo "[0-9a-z]{32}"
    sudo tctl token ls

    이와 유사한 출력을 수신해야 합니다. client2 시스템이 Teleport Cluster에 가입하는 데 사용할 생성된 토큰을 복사해야 합니다.

    이제 client2 시스템에 연결하고 APT를 통해 Teleport 패키지를 설치합니다.

    아래 명령을 실행하여 Teleport 저장소를 client2 머신에 추가합니다.

    /etc/os-release 파일에 환경 변수를 로드합니다.

    source /etc/os-release

    Teleport GPG 키와 저장소를 추가합니다.

    sudo curl https://apt.releases.teleport.dev/gpg \
    -o /usr/share/keyrings/teleport-archive-keyring.asc

    echo "deb [signed-by=/usr/share/keyrings/teleport-archive-keyring.asc] https://apt.releases.teleport.dev/${ID?} ${VERSION_CODENAME?} stable/v11" | \
    sudo tee /etc/apt/sources.list.d/teleport.list > /dev/null

    이제 아래 apt 명령을 실행하여 시스템 패키지 인덱스를 업데이트하고 새로 고칩니다. 그런 다음 아래 apt 명령을 통해 Teleport를 설치합니다.

    sudo apt update
    sudo apt install teleport

    이제 Teleport 설치가 시작됩니다.

    Teleport 패키지를 설치한 후 아래의 nano 편집기 명령을 사용하여 새로운 Teleport 구성 파일 /etc/teleport.yaml을 생성합니다.

    sudo nano /etc/teleport.yaml

    다음 Teleport 구성을 파일에 추가합니다. 머신 호스트 이름으로 namenode, 생성된 토큰으로 token_name, Teleport Cluster의 도메인 이름으로 proxy_server, Teleport Cluster CA 핀 지문으로 ca_pin을 변경해야 합니다.

    version: v3
    teleport:
      nodename: client2
      data_dir: /var/lib/teleport
      join_params:
        token_name: 361b76eac6360da13f1a202fa8164024
        method: token
      proxy_server: tele.hwdomain.io:443
      log:
        output: stderr
        severity: INFO
        format:
          output: text
      ca_pin: sha256:2c96568d7bfa05f0a32b7681eb31b52a5c2a3414274579cbe9ece23e0b5e5443
      diag_addr: ""
    auth_service:
      enabled: "no"
    ssh_service:
      enabled: "yes"
      commands:
      - name: hostname
        command: [hostname]
        period: 1m0s
    proxy_service:
      enabled: "no"
      https_keypairs: []
      acme: {}

    파일을 저장하고 완료되면 편집기를 종료합니다.

    다음으로 아래 systemctl 명령 유틸리티를 실행하여 client2 시스템에서 Teleport 서비스를 시작하고 활성화합니다.

    sudo systemctl start teleport
    sudo systemctl enable teleport

    그런 다음 아래 명령을 통해 Teleport 서비스를 확인합니다.

    sudo systemctl status teleport

    다음 스크린샷과 유사한 출력을 받아야 합니다. client2 시스템의 Teleport 서비스가 구성되고 실행 중이며 활성화되었습니다.

    이제 teleport-server 터미널로 돌아가 사용 가능한 노드/서버 목록을 확인하십시오. 아래 명령을 실행하여 Teleport Cluster의 노드 목록을 확인하십시오.

    sudo tctl nodes ls

    client2 머신이 사용 가능하고 Teleport Cluster에 추가되었는지 확인해야 합니다.

    다음으로 아래 tsh 명령을 실행하여 Teleport SSH를 통해 client2 시스템에 액세스합니다. 이제 Teleport를 통해 client2 시스템에 로그인해야 합니다. client2 시스템에서 debian 사용자를 사용할 수 있는지 확인하십시오.

    tsh ssh 

    아래는 Teleport를 통해 client2 머신에 로그인한 후 얻어야 하는 출력입니다.

    이제 Teleport 웹 관리 대시보드로 돌아가서 Teleport 클러스터에서 client2 머신을 사용할 수 있는지 확인해야 합니다.

    마지막으로 client2 시스템에서 CONNECT 버튼을 클릭하여 client2를 시작하고 연결합니다. 이제 Teleport 웹 관리 대시보드를 통해 client2 시스템에 로그인해야 합니다.

    이를 염두에 두고 이제 Teleport 토큰을 생성하고 Teleport 클러스터의 CA 핀 지문을 사용하고 Teleport 패키지를 설치하고 Teleport 구성 파일을 생성하여 수동으로 client2 시스템을 성공적으로 추가하고 구성했습니다.

    결론

    이제 서버 인프라가 Teleport Cluster를 통해 보호되며 이제 모든 노드에서 SSH 서비스를 비활성화하고 Teleport Server의 액세스만 허용할 수 있습니다. 이제 Debian 11 시스템에 Teleport Cluster를 설치하는 방법과 Teleport를 설정하기 위한 기본 구성을 배웠습니다.

    또한 이중 인증이 활성화된 Teleport 사용자를 설정하는 방법과 Teleport 클러스터 관리를 위해 Teleport 명령줄(tsh 및 tctl)을 사용하는 방법을 배웠습니다.

    마지막으로 서로 다른 두 가지 방법을 사용하여 두 개의 노드 client1과 client2를 Teleport Cluster에 성공적으로 구성하고 추가했습니다. 첫 번째 방법은 Teleport 웹 관리 대시보드에서 생성된 설치 프로그램 스크립트를 사용하는 것입니다. 두 번째 방법은 대상 시스템에 Teleport를 설치 및 구성하여 노드/서버를 수동으로 추가하는 것입니다.