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
cloudflaredhoặ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
- Truy cập Cloudflare và đăng ký tài khoản nếu bạn chưa có.
- 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:
- Tải xuống tệp thực thi từ trang GitHub của Cloudflare.
- Giải nén và di chuyển tệp
cloudflared.exevào thư mụcC:\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
- Mở terminal hoặc dòng lệnh và chạy lệnh:
cloudflared login - 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
cloudflaredtruy cập vào tài khoản của bạn. - 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
- Tạo một Tunnel mới:
cloudflared tunnel create my-web-tunnelLệ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. - 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:404Thay<Tunnel-UUID>bằng UUID của Tunnel mà bạn vừa tạo vàexample.combằng tên miền của bạn. - Khởi động Tunnel:
cloudflared tunnel run my-web-tunnel
Bước 2: Cấu Hình DNS
- Truy cập bảng điều khiển Cloudflare của bạn.
- Đi tới phần DNS và thêm một bản ghi CNAME cho
example.comtrỏ đếnyour-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
- Truy cập phần Access trên bảng điều khiển Cloudflare.
- Tạo một ứng dụng mới và liên kết với Tunnel của bạn.
- Đặ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.com và app2.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
- Đăng nhập vào tài khoản Cloudflare tại Cloudflare Dashboard.
- 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)
- 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).
- 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
- Trong phần Access, tìm mục Tunnels hoặc Connect your applications.
- Chọn Create a Tunnel.
- Đặ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:
- Tải xuống tệp cấu hình và tệp chứng chỉ (
cert.pem). - 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
- 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.
- 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
- Hostname:
- 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:
- Vào phần DNS trong bảng điều khiển Cloudflare.
- 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
- 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. - Đả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.
