Skip to main content

방화벽과 함께 터널 사용하기

Cloudflare Tunnel을 사용하면 모든 인그레스(ingress) 트래픽을 차단하고 cloudflared로부터의 이그레스(egress) 트래픽만 허용하는 포지티브 보안 모델을 구현할 수 있습니다. 터널 설정에 지정된 서비스만 외부 세계에 노출됩니다.

포트

방화벽 내부에서 이그레스 트래픽에 대해 아래 파라미터들을 설정할 수 있습니다. 방화벽 설정 방법은 방화벽 유형에 따라 다릅니다:

  • 방화벽이 도메인 기반 규칙(FQDN 허용 목록)을 지원하는 경우, 아래 나열된 호스트 이름으로의 아웃바운드 연결을 허용할 수 있습니다.
  • 방화벽이 IP 기반 규칙을 요구하는 경우, 각 도메인에 대해 나열된 모든 IP 주소로의 아웃바운드 연결을 허용해야 합니다.

TCP 및 UDP 프로토콜 모두에 대해 7844 포트가 허용되는지 확인하십시오 (http2quic용).

터널 운영에 필요한 사항

cloudflared는 7844 포트에서 Cloudflare의 글로벌 네트워크에 연결됩니다. Cloudflare Tunnel을 사용하려면 방화벽이 7844 포트에서 다음 목적지로의 아웃바운드 연결을 허용해야 합니다 (QUIC 프로토콜 사용 시 UDP, HTTP/2 프로토콜 사용 시 TCP).

  • region1.v2.argotunnel.com
  • region2.v2.argotunnel.com
  • cftunnel.com

방화벽이 SNI(Server Name Indication)를 강제하는 경우 다음 규칙도 필요합니다.

  • _v2-origintunneld._tcp.argotunnel.com
  • h2.cftunnel.com
  • quic.cftunnel.com

선택 사항

443 포트를 열면 일부 선택적 기능이 활성화됩니다. 이러한 연결을 허용하지 않으면 로그 오류가 발생할 수 있지만 cloudflared는 계속 올바르게 실행됩니다.

  • api.cloudflare.com: cloudflared가 소프트웨어 업데이트가 있는지 쿼리할 수 있도록 허용합니다.
  • update.argotunnel.com: cloudflared가 소프트웨어 업데이트가 있는지 쿼리할 수 있도록 허용합니다.
  • github.com: cloudflared가 최신 릴리스를 다운로드하고 소프트웨어 업데이트를 수행할 수 있도록 허용합니다.
  • <your-team-name>.cloudflareaccess.com: cloudflared가 Access JWT를 검증할 수 있도록 허용합니다.
  • pqtunnels.cloudflareresearch.com: cloudflared가 포스트-퀀텀 키 교환 오류를 Cloudflare에 보고할 수 있도록 허용합니다.

방화벽 구성

클라우드 VM 방화벽

클라우드 제공업체의 가상 머신(VM) 인스턴스에서 서비스를 호스팅하는 경우, 인스턴스 수준 방화벽 규칙을 설정하여 모든 인그레스 트래픽을 차단하고 이그레스 트래픽만 허용할 수 있습니다.

OS 방화벽

또는 운영 체제(OS) 수준의 방화벽 규칙을 사용하여 모든 인그레스 트래픽을 차단하고 이그레스 트래픽만 허용할 수 있습니다. 예를 들어, 서버가 Linux에서 실행되는 경우 iptables를 사용하여 방화벽 규칙을 설정할 수 있습니다.

  1. 현재 방화벽 규칙 확인:
    sudo iptables -L
  2. localhost 통신 허용:
    sudo iptables -A INPUT -i lo -j ACCEPT
  3. 이미 설정된 연결 및 관련 트래픽 허용:
    sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  4. 새 SSH 연결 허용:
    sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
  5. 다른 모든 인그레스 트래픽 차단:

    경고: 다음 명령에 매우 주의하십시오. 현재 SSH 연결을 유지하거나 새 SSH 연결을 허용하지 않으면 로그아웃되어 시스템에 다시 SSH로 접속할 수 없게 됩니다.

    sudo iptables -A INPUT -j DROP

연결 테스트

dig로 테스트

dig 명령을 사용하여 Cloudflare에 대한 연결을 테스트할 수 있습니다.

# IPv4 주소 확인
dig A region1.v2.argotunnel.com

# IPv6 주소 확인
dig AAAA region1.v2.argotunnel.com

PowerShell로 테스트

Windows에서는 dig를 사용할 수 없는 경우 PowerShell 명령을 사용할 수 있습니다.

# DNS 테스트
Resolve-DnsName -Name _v2-origintunneld._tcp.argotunnel.com SRV

# 포트 테스트
tnc region1.v2.argotunnel.com -port 7844