Infograb logo
IP 핀닝
Warning

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

IP 핀닝은 Teleport 사용자가 로그인 프로세스 중 사용한 IP 주소에서만 리소스에 접근할 수 있도록 하여 무단 접근으로부터 보호하는 보안 기능입니다. 이것은 해킹된 자격 증명이 다른 위치에서 사용될 위험을 최소화하는 데 도움이 됩니다.

작동 방식

Note

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

고정 IP - 로그인 프로세스 중 관찰된 클라이언트의 IP로, 사용자의 인증서에 내장됩니다.

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

사용자의 역할이 IP 핀닝을 요구하지만 Teleport 서비스에 제출된 사용자의 인증서에 고정 IP 정보가 내장되지 않은 경우, 액세스가 거부됩니다. 이는 어떤 역할에 대해 IP 핀닝을 활성화하면, 해당 역할로 이미 인증된 모든 사용자가 인증서를 재생성하기 위해 다시 로그인해야 함을 의미합니다. 필요할 경우 클라이언트의 관찰된 IP는 Teleport 서비스 간에 내부적으로 전달됩니다. 그래서 Teleport는 올바른 IP에 대해 IP 핀닝 검사를 수행합니다.

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

IP 핀닝 구성하기

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

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

역할 예시

역할에 대한 IP 핀닝 설정 예제를 살펴보겠습니다.

Teleport 관리자가 IP 핀닝을 사용자에게 강제하는 다음 역할을 추가합니다:

# 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 네트워크 로드 밸런서와 같은 레이어 4 로드 밸런서의 경우, 클라이언트 IP 보존 또는 PROXY 프로토콜을 활성화합니다.

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

Teleport 원문 보기