Giới Thiệu

Cloudflare Tunnel (trước đây gọi là Argo Tunnel) là một dịch vụ mạnh mẽ của Cloudflare cho phép bạn kết nối các ứng dụng nội bộ hoặc các dịch vụ không công khai trên internet thông qua mạng lưới an toàn và phân phối toàn cầu của Cloudflare mà không cần mở cổng (port) trên tường lửa. Điều này giúp tăng cường bảo mật, giảm thiểu rủi ro tấn công từ bên ngoài và cải thiện hiệu suất truy cập cho người dùng.

Lợi Ích Khi Sử Dụng Cloudflare Tunnel

  • Bảo mật cao: Không cần mở cổng trên tường lửa, giảm nguy cơ bị tấn công.
  • Dễ dàng cấu hình: Thiết lập nhanh chóng thông qua công cụ dòng lệnh cloudflared hoặc qua giao diện web của Cloudflare.
  • Hiệu suất tốt: Sử dụng mạng lưới toàn cầu của Cloudflare để tối ưu hóa tốc độ truy cập.
  • Quản lý truy cập: Hỗ trợ các chính sách bảo mật như xác thực hai yếu tố, kiểm soát truy cập dựa trên IP, v.v.

Cài Đặt Cloudflare Tunnel

Bước 1: Đăng Ký Tài Khoản Cloudflare

  1. Truy cập Cloudflare và đăng ký tài khoản nếu bạn chưa có.
  2. Thêm tên miền của bạn vào Cloudflare và cập nhật DNS theo hướng dẫn của họ.

Bước 2: Cài Đặt cloudflared

cloudflared là công cụ dòng lệnh cần thiết để thiết lập Cloudflare Tunnel.

Trên Windows:

  1. Tải xuống tệp thực thi từ trang GitHub của Cloudflare.
  2. Giải nén và di chuyển tệp cloudflared.exe vào thư mục C:\Windows\System32 để dễ dàng truy cập từ dòng lệnh.

Trên macOS:

Sử dụng Homebrew:

brew install cloudflared

Trên Linux:

Sử dụng gói deb hoặc rpm tùy thuộc vào hệ điều hành của bạn. Ví dụ, trên Ubuntu:

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb

Bước 3: Đăng Nhập và Cấu Hình

  1. Mở terminal hoặc dòng lệnh và chạy lệnh: cloudflared login
  2. Trình duyệt sẽ mở và yêu cầu bạn đăng nhập vào tài khoản Cloudflare để cho phép cloudflared truy cập vào tài khoản của bạn.
  3. Sau khi đăng nhập thành công, bạn sẽ nhận được tệp cấu hình cho Tunnel.

Hướng Dẫn Sử Dụng Cloudflare Tunnel Trong Các Trường Hợp Chi Tiết

Trường Hợp 1: Triển Khai Web Server Nội Bộ Cho Truy Cập Từ Bên Ngoài

Giả sử bạn có một web server chạy trên máy chủ nội bộ tại địa chỉ http://localhost:8080 và bạn muốn truy cập nó từ internet thông qua Cloudflare.

Bước 1: Tạo và Cấu Hình Tunnel

  1. Tạo một Tunnel mới: cloudflared tunnel create my-web-tunnel Lệnh này sẽ tạo một Tunnel mới và lưu thông tin vào tài khoản Cloudflare của bạn.
  2. Tạo tệp cấu hình config.yml: tunnel: <Tunnel-UUID> credentials-file: /path/to/.cloudflared/<Tunnel-UUID>.json ingress: - hostname: example.com service: http://localhost:8080 - service: http_status:404 Thay <Tunnel-UUID> bằng UUID của Tunnel mà bạn vừa tạo và example.com bằng tên miền của bạn.
  3. Khởi động Tunnel: cloudflared tunnel run my-web-tunnel

Bước 2: Cấu Hình DNS

  1. Truy cập bảng điều khiển Cloudflare của bạn.
  2. Đi tới phần DNS và thêm một bản ghi CNAME cho example.com trỏ đến your-tunnel-name.cfargotunnel.com.

Trường Hợp 2: Bảo Mật Ứng Dụng Nội Bộ Với Xác Thực

Bạn muốn bảo vệ ứng dụng nội bộ bằng cách yêu cầu xác thực trước khi truy cập.

Bước 1: Cấu Hình Access Policies

  1. Truy cập phần Access trên bảng điều khiển Cloudflare.
  2. Tạo một ứng dụng mới và liên kết với Tunnel của bạn.
  3. Đặt các chính sách xác thực, ví dụ yêu cầu đăng nhập bằng tài khoản Cloudflare hoặc SSO (Single Sign-On).

Bước 2: Cập Nhật Tệp Cấu Hình

Cập nhật config.yml để bao gồm các chính sách truy cập:

tunnel: <Tunnel-UUID>
credentials-file: /path/to/.cloudflared/<Tunnel-UUID>.json

ingress:
  - hostname: secure.example.com
    service: http://localhost:8080
    originRequest:
      connectTimeout: 30s
      noTLSVerify: true
  - service: http_status:404

Trường Hợp 3: Sử Dụng Với Docker

Bạn có thể dễ dàng triển khai Cloudflare Tunnel trong môi trường Docker để quản lý các ứng dụng container.

Bước 1: Tạo Dockerfile hoặc Sử Dụng Docker Compose

Ví dụ sử dụng Docker Compose:

version: '3'
services:
  cloudflared:
    image: cloudflare/cloudflared:latest
    command: tunnel run my-web-tunnel
    volumes:
      - ./config.yml:/etc/cloudflared/config.yml
      - ./cert.pem:/etc/cloudflared/cert.pem
    restart: unless-stopped

Bước 2: Triển Khai Docker Compose

docker-compose up -d

Trường Hợp 4: Sử Dụng Với Kubernetes

Triển khai Cloudflare Tunnel trong cụm Kubernetes để bảo vệ các dịch vụ.

Bước 1: Tạo Secret cho Tunnel

kubectl create secret generic cloudflared-secret --from-file=cert.pem=/path/to/cert.pem

Bước 2: Tạo Deployment cho Cloudflared

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cloudflared
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cloudflared
  template:
    metadata:
      labels:
        app: cloudflared
    spec:
      containers:
        - name: cloudflared
          image: cloudflare/cloudflared:latest
          command: ["cloudflared", "tunnel", "run", "my-web-tunnel"]
          volumeMounts:
            - name: cloudflared-config
              mountPath: /etc/cloudflared
      volumes:
        - name: cloudflared-config
          secret:
            secretName: cloudflared-secret

Bước 3: Áp Dụng Deployment

kubectl apply -f cloudflared-deployment.yaml

Trường Hợp 5: Thiết Lập Nhiều Subdomain

Bạn có thể cấu hình nhiều subdomain trỏ đến các dịch vụ khác nhau thông qua cùng một Tunnel.

Bước 1: Cập Nhật Tệp config.yml

tunnel: <Tunnel-UUID>
credentials-file: /path/to/.cloudflared/<Tunnel-UUID>.json

ingress:
  - hostname: app1.example.com
    service: http://localhost:8081
  - hostname: app2.example.com
    service: http://localhost:8082
  - service: http_status:404

Bước 2: Cấu Hình DNS cho Các Subdomain

Thêm các bản ghi CNAME cho app1.example.comapp2.example.com trỏ đến your-tunnel-name.cfargotunnel.com trong bảng điều khiển Cloudflare.

Trường Hợp 6: Sử Dụng Qua Website của Cloudflare (Nếu Đã Có Tên Miền)

Nếu bạn đã có tên miền được quản lý bởi Cloudflare và muốn thiết lập Cloudflare Tunnel thông qua giao diện web của Cloudflare, hãy làm theo các bước sau:

Bước 1: Truy Cập Bảng Điều Khiển Cloudflare

  1. Đăng nhập vào tài khoản Cloudflare tại Cloudflare Dashboard.
  2. Chọn tên miền mà bạn muốn thiết lập Tunnel.

Bước 2: Vào Phần Zero Trust (hoặc Cloudflare Access)

  1. Từ bảng điều khiển tên miền, tìm và chọn Zero Trust hoặc Access (tùy thuộc vào giao diện hiện tại của Cloudflare).
  2. Nếu bạn chưa thiết lập Cloudflare for Teams, bạn có thể cần thực hiện một số bước cấu hình ban đầu.

Bước 3: Tạo Tunnel Mới

  1. Trong phần Access, tìm mục Tunnels hoặc Connect your applications.
  2. Chọn Create a Tunnel.
  3. Đặt tên cho Tunnel của bạn, ví dụ: my-web-tunnel, và nhấn Next.

Bước 4: Cài Đặt cloudflared Tự Động

Cloudflare sẽ cung cấp một tệp cấu hình hoặc hướng dẫn để tải xuống cloudflared và xác thực Tunnel. Thực hiện theo các hướng dẫn này:

  1. Tải xuống tệp cấu hình và tệp chứng chỉ (cert.pem).
  2. Lưu các tệp này vào máy chủ nơi bạn sẽ chạy cloudflared.

Bước 5: Cấu Hình Tunnel Qua Giao Diện Web

  1. Sau khi Tunnel được tạo, bạn sẽ được yêu cầu cấu hình các ứng dụng liên kết với Tunnel này.
  2. Thêm các ứng dụng bằng cách cung cấp hostname và địa chỉ dịch vụ nội bộ tương ứng. Ví dụ:
    • Hostname: example.com
    • Service: http://localhost:8080
  3. Lưu cấu hình.

Bước 6: Cấu Hình DNS Tự Động

Cloudflare có thể tự động thêm các bản ghi DNS CNAME cần thiết để trỏ các hostname đến Tunnel. Nếu không, bạn có thể thực hiện thủ công:

  1. Vào phần DNS trong bảng điều khiển Cloudflare.
  2. Thêm các bản ghi CNAME cho các hostname đã cấu hình, trỏ đến your-tunnel-name.cfargotunnel.com.

Bước 7: Khởi Động Tunnel

Trên máy chủ của bạn, sử dụng cloudflared để khởi động Tunnel với tệp cấu hình đã tải xuống:

cloudflared tunnel --config /path/to/config.yml run my-web-tunnel

Hoặc, nếu sử dụng Docker hoặc các công cụ quản lý khác, triển khai theo hướng dẫn tương ứng.

Bước 8: Kiểm Tra và Hoàn Tất

  1. Sau khi Tunnel đang chạy, truy cập hostname đã cấu hình (example.com) từ trình duyệt để kiểm tra kết nối.
  2. Đảm bảo rằng các dịch vụ nội bộ của bạn có thể truy cập được qua Tunnel một cách an toàn và hiệu quả.

Kết Luận

Cloudflare Tunnel là một giải pháp linh hoạt và bảo mật để kết nối các ứng dụng nội bộ hoặc dịch vụ không công khai với internet. Bằng cách sử dụng Cloudflare Tunnel, bạn có thể dễ dàng quản lý và bảo vệ các dịch vụ của mình mà không cần phải mở cổng trên tường lửa hoặc lo lắng về các lỗ hổng bảo mật. Hướng dẫn trên đây cung cấp các bước cơ bản để cài đặt và triển khai Cloudflare Tunnel trong nhiều tình huống khác nhau, bao gồm cả việc sử dụng qua giao diện web của Cloudflare nếu bạn đã có tên miền. Hãy tham khảo thêm tài liệu chính thức của Cloudflare để khám phá thêm các tính năng và tùy chọn cấu hình nâng cao.

0 0 đánh giá
Đánh giá bài viết
guest
0 Góp ý
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x