Infograb logo
네트워킹

공용 주소

모든 Teleport 서비스(예: Proxy Service, Auth Service 및 에이전트)는 각 서비스의 구성 파일에서 수정할 수 있는 선택적 public_addr 속성을 가지고 있습니다. 공용 주소는 IP 또는 DNS 이름이 될 수 있습니다. 또한 값의 목록이 될 수 있습니다:

public_addr: ["service1.example.com", "service2.example.com"]
참고

Proxy Service의 public_addr는 단일로 구성해야 합니다. 여러 주소를 설정하면 첫 번째 목록의 주소로 리디렉션될 수 있으며, 이는 클라이언트가 사용할 수 없을 수 있습니다.

Teleport 서비스에 대해 공용 주소를 지정하는 것은 다음과 같은 사용 사례에서 유용할 수 있습니다:

  • 로드 밸런서 뒤에 여러 동일한 서비스(예: Proxy Service 인스턴스)가 있습니다.
  • 추가 주체가 있는 서비스에 대해 Teleport가 SSH 인증서를 발급하도록 하기를 원합니다(예: 호스트 이름).

모든 Teleport 서비스(예: Application Service 및 Database Service)는 각 서비스의 구성 파일에서 수정할 수 있는 선택적 public_addr 속성을 가지고 있습니다. 공용 주소는 IP 또는 DNS 이름이 될 수 있습니다. 또한 값의 목록이 될 수 있습니다:

public_addr: ["service-one.example.com", "service-two.example.com"]

Teleport 에이전트에 대해 공용 주소를 지정하는 것은 다음과 같은 사용 사례에서 유용할 수 있습니다:

  • 로드 밸런서 뒤에 여러 동일한 서비스가 있습니다.
  • 추가 주체가 있는 서비스에 대해 Teleport가 SSH 인증서를 발급하도록 하기를 원합니다(예: 호스트 이름).

HTTP CONNECT 프록시

일부 네트워크는 모든 연결을 프록시 서버를 통해 집계하여 감사하고 접근 제어 규칙을 적용할 수 있습니다. 이러한 시나리오에 대해 Teleport는 HTTP CONNECT 터널링을 지원합니다. HTTP CONNECT는 다음에 적용됩니다:

  • 모든 경우의 tsh.
  • Teleport 서비스(예: SSH Service 및 Database Service)로, Teleport Proxy Service에 다시 연결합니다.

HTTP CONNECT 터널링을 사용하려면 Teleport를 실행할 때 HTTPS_PROXYHTTP_PROXY 환경 변수를 설정하십시오. 또한 특정 호스트/넷마스크/포트를 액세스할 때 프록시 사용을 피하기 위해 NO_PROXY 환경 변수를 선택적으로 설정할 수 있습니다.

기본적으로, 패키지 관리자(예: aptyum)에 기반한 Teleport 설치는 teleport systemd 유닛이 /etc/default/teleport에서 환경 변수를 읽도록 구성하여 EnvironmentFile 필드를 사용합니다:

(!/examples/systemd/teleport.service!)

HTTP CONNECT 터널링을 구성하려면, Teleport 바이너리를 실행하는 머신의 /etc/default/teleport 내에서 이러한 환경 변수를 할당할 수 있습니다. 다음 예제를 사용하여 proxy.example.com을 프록시의 주소로 교체하십시오:

HTTP_PROXY=http://proxy.example.com:8080/
HTTPS_PROXY=http://proxy.example.com:8080/
NO_PROXY=localhost,127.0.0.1,192.168.0.0/16,172.16.0.0/12,10.0.0.0/8

Teleport가 기본 클러스터로의 리버스 터널을 구축하고 설정할 때 모든 트래픽을 프록시를 통해 집계합니다. 특히, 기본 구성을 사용하는 경우 Teleport는 포트 3024(SSH, 리버스 터널) 및 3080(HTTPS, 신뢰 설정)을 프록시를 통해 터널링합니다. 이러한 트래픽 중 일부를 프록시하지 않으려면(예: HTTPS는 프록시하지만 SSH는 프록시하지 않음) NO_PROXY에 HTTP_CONNECT 터널링에서 제외할 Teleport Proxy Service 엔드포인트의 주소를 host:port 형식으로 할당하십시오.

예를 들어, 각 Teleport 바이너리를 실행하는 머신에서 /etc/default/teleport의 환경 파일을 다음과 같이 수정할 수 있습니다:

HTTP_PROXY=http://httpproxy.example.com:8080/
HTTPS_PROXY=http://httpproxy.example.com:8080/
NO_PROXY=teleportproxy.example.com:3024

HTTPS_PROXY 또는 HTTP_PROXY의 값은 scheme://[user[:password]@]host:port 형식이어야 하며 여기서 scheme은 https 또는 http입니다. 값이 host:port인 경우, Teleport는 http를 앞에 추가합니다.

참고

localhost127.0.0.1은 프록시 호스트에 대한 유효하지 않은 값입니다. 어떤 이유로 프록시가 로컬에서 실행되는 경우, 다른 DNS 이름이나 개인 IP 주소를 제공해야 합니다.

참고

Proxy Service는 로컬 Kubernetes 클러스터에 연결할 때 HTTPS_PROXYHTTP_PROXY를 존중하지만 작동하지 않을 수 있습니다. 이를 해결하려면 kube.teleport.cluster.localNO_PROXY에 추가하십시오.

포트

이 섹션에서는 Teleport 인스턴스에서 열어야 할 포트를 설명합니다.

Proxy Service 포트

참고

Teleport Proxy Service 인스턴스의 할당된 포트 목록을 얻으려면 다음 명령을 사용하십시오:

curl https://teleport.example.com:443/webapi/ping | jq

auth_service.proxy_listener_mode가 Teleport 구성에서 multiplex로 설정된 경우, 이는 여러 서비스가 Proxy를 통해 단일 포트를 사용함을 의미합니다.

TLS 라우팅이 있는 포트

TLS 라우팅은 기본적으로 활성화됩니다. 이 모드에서 Teleport 서비스(예: Teleport SSH Service 또는 Kubernetes)에 대한 모든 연결은 Proxy Service의 공용 웹 주소를 통해 라우팅됩니다.

자세한 내용은 TLS 라우팅 가이드를 참조하십시오.

포트다운스트림 서비스설명
443Proxy ServiceTLS 라우팅 모드에서 Proxy는 모든 프로토콜을 처리하며, 여기에는 Web UI, HTTPS, Kubernetes, SSH 및 모든 데이터베이스가 포함됩니다.
3021Proxy ServiceProxy Peering 모드에서 Teleport Proxy Service 인스턴스가 에이전트에 걸리는 포트입니다.

TLS 라우팅이 없는 포트

일부 경우, 관리자는 서로 다른 서비스에 대해 별도의 포트를 사용하려고 할 수 있습니다. 이 경우 구성 파일에서 별도의 리스너를 설정할 수 있습니다.

포트다운스트림 서비스설명
3021Proxy ServiceProxy Peering 모드에서 Teleport Proxy Service 인스턴스가 에이전트에 걸리는 포트입니다.
3023모든 클라이언트클라이언트가 연결하는 SSH 포트입니다. Proxy Service는 이 연결을 대상 서비스의 포트 3022로 전달하거나 리버스 터널 연결을 사용합니다.
3024Auth Service방화벽 뒤 환경에서 신뢰받는 Proxy Service 인스턴스에 리버스 SSH 터널을 만들기 위해 사용되는 SSH 포트입니다. 모든 Teleport 서비스(예: SSH Service 및 Database Service)는 이 포트를 사용하여 리버스 터널 연결을 형성합니다.
3080 또는 443Proxy Service클러스터에 tsh 사용자를 인증하기 위한 HTTPS 연결입니다. 같은 연결이 Web UI를 제공하는 데 사용됩니다.
3036Database ServiceMySQL 데이터베이스로의 트래픽입니다.
5432Database ServicePostgres 데이터베이스로의 트래픽입니다.
27017Database ServiceMongoDB 인스턴스로의 트래픽입니다.
6379Database ServiceRedis 인스턴스로의 트래픽입니다.

Auth Service 포트

포트다운스트림 서비스설명
3025모든 Teleport 서비스클러스터 내 다른 Teleport 서비스에 gRPC API를 제공하는 Auth Service에 의해 사용되는 TLS 포트입니다.

Proxy Service 포트

클라우드 호스팅 Teleport 배포는 각 테넌트의 Proxy Service에 대해 다른 포트 세트를 할당합니다. Teleport 테넌트의 사용 가능한 포트를 보려면 다음과 비슷한 명령을 실행하십시오. mytenant.teleport.sh를 귀하의 테넌트 도메인으로 교체하십시오:

curl https://mytenant.teleport.sh/webapi/ping | jq '.proxy'

출력은 다음과 같아야 하며, 귀하의 테넌트에 할당된 고유한 포트를 포함해야 합니다:

{
  "kube": {
    "enabled": true,
    "public_addr": "mytenant.teleport.sh:11107",
    "listen_addr": "0.0.0.0:3026"
  },
  "ssh": {
    "listen_addr": "[::]:3023",
    "tunnel_listen_addr": "0.0.0.0:3024",
    "public_addr": "mytenant.teleport.sh:443",
    "ssh_public_addr": "mytenant.teleport.sh:11105",
    "ssh_tunnel_public_addr": "mytenant.teleport.sh:11106"
  },
  "db": {
    "postgres_public_addr": "mytenant.teleport.sh:11109",
    "mysql_listen_addr": "0.0.0.0:3036",
    "mysql_public_addr": "mytenant.teleport.sh:11108"
  },
  "tls_routing_enabled": true
}

이 출력은 또한 귀하의 테넌트에 대해 TLS 라우팅이 활성화되어 있는지를 나타냅니다. TLS 라우팅이 활성화되면 Teleport 서비스(예: Teleport SSH Service)에 대한 연결이 서비스에 할당된 포트가 아니라 Proxy Service의 공용 웹 주소를 통해 라우팅됩니다.

이 경우, TLS 라우팅이 활성화되었으며 Proxy Service의 공용 웹 주소(ssh.public_addr)가 mytenant.teleport.sh:443임을 확인할 수 있습니다.

자세한 내용은 TLS 라우팅 가이드를 참조하십시오.

에이전트 포트

Teleport 에이전트는 리버스 터널을 설정하기 위해 Teleport Proxy Service에 연결합니다. 클라이언트 트래픽은 Proxy Service를 통해 에이전트로 흐르고, 에이전트는 트래픽을 귀하의 인프라의 리소스에 전달합니다.

따라서, 에이전트를 실행하는 Teleport 프로세스(예: SSH Service, Kubernetes Service 및 귀하의 인프라의 리소스를 보호하는 다른 서비스)의 경우, 에이전트가 실행되는 머신에서 공용 인터넷으로 포트를 열 필요가 없습니다.

셀프 호스팅 Teleport 클러스터를 실행하는 경우, 에이전트를 Teleport Auth Service에 직접 가입시키는 것이 가능합니다. 이 설정에서는 특정 Teleport 서비스가 리버스 터널을 통해 연결을 수용하는 대신 자체 리스너를 열게 됩니다. Proxy Service는 이러한 에이전트 서비스에 직접 연결하여 다이얼합니다.

아래 표는 각 Teleport 서비스가 프록시 트래픽을 위해 여는 포트를 설명합니다:

포트서비스트래픽 유형
3022SSH Service들어오는 SSH 연결입니다.
3026Kubernetes ServiceKubernetes API 서버로의 HTTPS 트래픽입니다.
3028Windows Desktop ServiceTeleport 클라이언트로부터의 Teleport Desktop Protocol 트래픽입니다.

등록된 애플리케이션 및 데스크톱에 대한 액세스는 Teleport Proxy Service를 통해서만 가능합니다. Teleport Application Service 및 Teleport Database Service는 Teleport Proxy Service를 통한 리버스 터널 연결을 사용하며 포트를 직접 노출할 수 없습니다.

Teleport 원문 보기