Infograb logo
IP 핀ning
Warning

IP 핀ning은 Teleport Enterprise가 필요합니다.

IP 핀ning은 로그인 과정에서 사용한 IP 주소에서만 Teleport 사용자가 리소스에 접근할 수 있도록 보장하여 무단 접근을 방지하는 보안 기능입니다. 이로 인해 다양한 위치에서 손상된 자격 증명이 사용될 위험을 최소화하는 데 도움이 됩니다.

작동 방식

Note

관찰된 IP - 클라이언트의 IP입니다. Teleport는 사용자의 직접 연결 또는 로드 밸런서에서 이러한 기능이 활성화된 경우 PROXY 프로토콜 또는 "X-Forwarded-For" 헤더를 통해 이를 기록합니다.

고정 IP - 로그인 과정에서 관찰된 클라이언트의 IP로, 사용자의 인증서에 포함됩니다.

사용자의 역할 중 하나에서 IP 핀ning이 활성화되면, 로그인 과정 중 Teleport에서 관찰된 IP 주소가 사용자의 인증서에 포함됩니다. 이후 사용자가 Teleport 리소스에 접근할 때마다 시스템은 관찰된 IP 주소와 인증서에 저장된 고정 IP 주소를 비교합니다. IP 주소가 일치하지 않으면 접근이 거부됩니다.

사용자의 역할에 IP 핀ning이 요구되지만 Teleport 서비스에 제시된 사용자의 인증서에 고정 IP 정보가 포함되어 있지 않으면 접근이 거부됩니다. 이는 일부 역할에 대해 IP 핀ning을 활성화하면, 그 역할로 이미 인증된 사용자가 인증서를 다시 생성하기 위해 다시 로그인해야 함을 의미합니다. 필요한 경우 클라이언트의 관찰된 IP는 Teleport 서비스 간 내부적으로 전파되므로 Teleport는 올바른 IP에 대해 IP 핀ning 검사를 수행합니다.

IP 핀ning은 신뢰할 수 있는 클러스터 간에도 작동할 수 있지만, 사용자가 루트 클러스터를 통해 리프 클러스터의 리소스에 접근하려 하고, 리프 클러스터에서 매핑된 역할에 IP 핀ning이 활성화된 경우, 그들의 루트 클러스터 역할에도 IP 핀ning이 활성화되어 있어야 합니다. 그렇지 않으면 인증서에 고정 IP 정보가 포함되지 않습니다.

IP 핀ning 구성

IP 핀ning을 활성화하려면 역할을 업데이트하여 pin_source_ip 옵션을 포함해야 합니다:

kind: role
version: v7
metadata:
  name: example-role-with-ip-pinning
spec:
  options:
    # 이 역할에 대해 IP 핀ning 요구
    pin_source_ip: true
  allow:
    ...
  deny:
    ...

역할 예제

IP 핀ning을 역할에 설정하는 예제를 살펴보겠습니다.

Teleport 관리자가 사용자를 위해 IP 핀ning을 강제하는 다음 역할을 추가합니다:

# pinned-ip.yaml
kind: role
version: v7
metadata:
  name: pinned-ip
spec:
  options:
    pin_source_ip: true

관리자는 이 역할을 사용자 Alice에게 할당하고, Alice는 'tsh' 명령을 사용하여 Teleport에 로그인하고 로그인했을 때와 같은 IP 주소에서 노드에 접근하려고 시도합니다:

curl ifconfig.me

198.51.111.1


tsh ssh telenode.example.com

alice@telenode.example.com >

Alice의 노드 접근 시도는 이번에도 성공적입니다.

이후 Alice는 IP 주소를 변경하고 같은 노드에 접근하려고 시도하면 IP 주소 불일치로 인해 실패하게 됩니다. 이는 다시 로그인 과정을 촉발시켜 Alice에게 다시 인증하도록 요구합니다.

curl ifconfig.me

198.51.222.2


tsh ssh telenode.example.com

Teleport 사용자 alice의 비밀번호를 입력하세요:

로드 밸런서를 통한 IP 관찰

Teleport Proxy가 로드 밸런서 뒤에 있는 경우, 올바른 IP가 관찰되도록 하기 위해 취할 수 있는 몇 가지 단계가 있습니다.

AWS Network Load Balancer와 같은 레이어 4 로드 밸런서의 경우, 클라이언트 IP 보존 또는 PROXY 프로토콜을 사용할 수 있는 경우 이를 활성화하십시오.

AWS Application Load Balancer와 같은 레이어 7 로드 밸런서의 경우, 로드 밸런서가 "X-Forwarded-For" 헤더에 클라이언트 IP를 설정하도록 구성되어 있는지 확인하십시오. 그런 다음 proxy_service.trust_x_forwarded_fortrue 로 설정하고 서비스를 재시작하여 Proxy 구성을 조정하십시오.

Teleport 원문 보기