Cloudflare Tunnel

이미지 Cloudflare Tunnel은 포트 포워딩 또는 공개 IP 주소가 필요하지 않은 경우에도 인터넷을 통해 로컬 서비스에 대한 안전한 원격 액세스를 가능하게 합니다. 연결은 로컬 시스템에서 Cloudflare로 설정됩니다. 따라서 CG-NAT 또는 제한적인 인터넷 연결 뒤에 있는 네트워크도 안전하게 액세스할 수 있습니다.

참고: Cloudflare Tunnel은 Core 2 이상에서만 사용할 수 있습니다.

참고: Antcas Control은 자체 Tunnel을 통해 연결할 수 있으며, 설정이 필요하지 않아도 시각화를 공개로 제공할 수 있습니다.

필수 조건

사용하려면 Cloudflare 계정과 관리되는 도메인이 필요합니다. 관리 작업은 Cloudflare API를 통해 자동으로 수행됩니다. 사용된 API 토큰에는 적절한 권한이 필요합니다. 자세한 내용은 아래의 구성 섹션을 참조하세요.

서버가 제한적인 방화벽 뒤에 있는 경우, Cloudflare로의 outgoing 연결이 가능하도록 해야 합니다. 특히 포트 7844에 대한 액세스가 허용되어야 합니다. 자세한 내용은 다음 링크를 참조하세요:
https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/troubleshoot-tunnels/connectivity-prechecks/

작동 방식

Cloudflare Tunnel은 Cloudflare로의 outgoing 암호화된 연결을 설정합니다. 외부 사용자는 구성된 도메인을 통해 시각화 또는 다른 애플리케이션에 액세스할 수 있습니다. 이 연결은 라우터에서 incoming 포트를 열지 않고도 Cloudflare 인프라를 통해 중계됩니다.

애플리케이션의 포트는 가상 로컬 네트워크 인터페이스에 할당되고, Tunnel을 통해 안전하게 게시됩니다.

구성

다양한 구성 옵션이 있습니다. 다음 장에서는 다양한 구성 및 사용 사례에 대한 절차를 설명합니다.

로컬 관리 구성

이 구성에서 Tunnel 구성은 Antcas Control에 저장되고, 이후 Cloud와 동기화됩니다. 이 변형의 장점은 Tunnel을 쉽게 구성하고 관리할 수 있다는 것입니다. 그러나 모든 서버 구성 권한이 있는 사용자는 Cloud의 Tunnel 구성도 변경할 수 있다는 점에 유의해야 합니다.

Cloudflare 계정에서 사용자 프로필에서 새 API 토큰을 만듭니다. 다음 권한이 필수적입니다:

유형 대상 권한
계정 Cloudflare Tunnel 편집
DNS 편집

참고: DNS 존이 최소한 계정에 할당되어야 계정이 확인될 수 있습니다.

그 후, 이미지 Cloudflare Tunnel이 이미지 인프라의 이미지 서버 이미지 네트워크 이미지 VPN 및 Tunnel에 추가됩니다. 각 Tunnel은 예: 이미지 cf-tunnel0과 같은 가상 네트워크 인터페이스를 만듭니다. 먼저 Tunnel 구성 완료 후 애플리케이션을 구성하는 것이 좋습니다.

주의: 기존 Tunnel을 선택하면 연결을 설정하기 위해 Tunnel 인증 정보가 덮어쓰일 수 있습니다. Antcas Control은 Cloudflare와 동시에 연결되는 Tunnel 하나만 지원합니다.

자동 구성에는 Cloudflare API 토큰이 필요합니다. 이 토큰을 사용하면 Antcas Control이 필요한 DNS 레코드 및 Tunnel 구성을 자동으로 검색, 생성 및 관리할 수 있습니다. API 토큰을 만드는 방법을 설명하는 내용은 다음에서 확인할 수 있습니다:
https://developers.cloudflare.com/fundamentals/api/get-started/create-token/

API 토큰이 이미지 유효성 검사를 통과한 후 계정 및 Tunnel을 선택할 수 있습니다. 새 Tunnel을 만들 수도 있으며, 이 경우 서버 이름과 인터페이스 이름이 결합된 이름이 지정됩니다. 예: 사무실 - cf-tunnel0.

참고: Tunnel 구성은 완전히 자동으로 API를 통해 수행됩니다. 서버가 구성 시 Cloudflare에 연결할 수 있도록 합니다.

Tunnel이 생성되면, Tunnel을 통해 액세스해야 하는 모든 시각화를 네트워크 인터페이스에 할당해야 합니다. 그런 다음 이러한 시각화는 이미지 애플리케이션으로 Tunnel에 추가할 수 있습니다. 이미지 애플리케이션은 구성된 이미지 Tunnel보다 한 단계 위에 있습니다.

구성에서 도메인을 선택하고 서브도메인에 대한 이름을 지정합니다. 그런 다음 엔드포인트를 선택합니다.

참고: 이름이 다른 Tunnel에 이미 사용된 경우, 해당 이름은 할당되지 않으며 연결은 기존 방식대로 설정됩니다. 이름이 변경되면 Antcas Control이 Tunnel ID를 관리하는 경우 서브도메인이 삭제됩니다.

Zero Trust 구성

로컬 관리 구성의 대안은 Zero Trust 구성입니다. 이 경우 구성은 Cloudflare 콘솔에서 수행되고, 이후 Antcas Control과 동기화됩니다. 이 변형의 장점은 Antcas Control을 통해 Cloudflare 구성에 액세스할 수 없다는 것입니다.

이 구성에서는 인터페이스에 포트를 할당해야 하는 것은 아닙니다. 엔드포인트로 네트워크의 임의의 주소를 사용할 수 있습니다. 따라서 메인 인터페이스의 포트 또는 네트워크의 다른 서비스를 공개로 설정할 수 있습니다. 일반적인 구성과 달리 localhost를 엔드포인트로 사용할 수 없습니다.

연결이 암호화되지 않은 경우 Cloudflare 콘솔에서 옵션 noTLSVerifyTRUE로 설정해야 합니다. 서버 외부 서비스의 암호화되지 않은 연결은 보안상의 이유로 권장하지 않습니다.

구성을 위해 이미지 Cloudflare Tunnel이 이미지 인프라의 이미지 서버 이미지 네트워크 이미지 VPN 및 Tunnel에 추가됩니다. 각 Tunnel은 예: 이미지 cf-tunnel0과 같은 가상 네트워크 인터페이스를 만듭니다. 설정에는 Zero Trust Tunnel 토큰만 필요합니다. 이 토큰은 Cloudflare 콘솔에서 직접 복사하여 붙여넣을 수 있습니다. 붙여넣은 텍스트에 전체 설치 명령어가 포함된 경우, 토큰만 저장되도록 자동으로 제거됩니다.