Zero Trust Cloudflare là gì?

Đây là hệ thống bảo mật tại Cloudflare để khi sử dụng Cloudflare Tunnel hoặc đưa IP nội bộ ra ngoài mạng có thể bảo mật tránh bị hack. Zero Trust là giải pháp đảm bảo với trường hợp sử dụng Local Server (tự làm server bằng MiniPC hoặc Armbian…)

Cấu hình Zero Trust như thế nào?

Để cấu hình Zero Trust chúng ta cần một số yêu cầu sau:
1. Tài khoản Cloudflare
2. Tên miền đã chuyển sang Cloudflare (chỉ cần chuyển DNS để quản lý)
3. Đã cấu hình Cloudflare Tunnel tại Zero Trust > Networks > Connector

Sau khi cấu hình tại mục 3 truy cập Zero Trust > Access Control > Applications. Tại đây chúng ta tạo các Application tương ứng với tên miền mà chúng ta sử dụng hoặc cho các tên miền từ home, company… (Vì 1 tunnel có thể sử dụng cho nhiều tên miền và IP nội bộ khác nhau).

Ví dụ: SSH, Home APP hoặc theo tên miền như Portainer cho portainer.domain.com; n8n cho n8n.domain.com để dễ nhớ

Tạo Polices (các xác thực đăng nhập) tại Zero Trust > Access Control >Polices điền Policy name, Add rules…Đơn giản nhất thì Add Rules chọn như sau:
Selector: Emails
Value: [email protected]

Sau đó vào Zero Trust > Access Control > Applications bấm vào app và chọn Polices rồi chọn Select existing polices và chọn Polices vừa tạo ở trên.

Như vậy, sau này nếu truy cập dạng portainer.domain.com thì Cloudflare sẽ yêu cầu nhập email để cung cấp OTP cho lần truy cập đó (chỉ email đáp ứng polices mới có thể truy cập).

Ngoài ra, có thể vào Zero Trust > Access Control > Access Settings để cài đặt chung cho các Application trong Cloudflare.

Xác thực thẳng bằng gmail thông qua Google

Đây là hướng dẫn chính thức của Cloudflare https://developers.cloudflare.com/cloudflare-one/integrations/identity-providers/google/. Tuy nhiên, tôi sẽ hướng dẫn nhanh như sau:

1. Truy cập Console để tạo Project mới ví dụ API Cloudflare
2. Truy cập APIs & Services > Credentials > Configure Consent Screen để tạo thông tin đăng nhập
3. Điền các thông tin App name và User support email, chọn External, thêm Contact Information và đồng ý chính sách sau đó chọn Create
4. Tại OAuth Page chọn Create OAuth client chọn và điền như sau:
Application type: Web Application
Authorized JavaScript origins URL: https://<your-team-name>.cloudflareaccess.com
Authorized redirect URIs: https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback
Lấy your-team-name tại Cloudflare One chọn Settings > Team name and domain > Team name
Sau khi tạo xong lưu lại:
OAuth Client ID
Client secret
5. Vào Cloudflare One, vào Integrations > Identity providers tại Your identity providers, chọn Add new identity provider. Chọn Google sau đó điền OAuth Client IDClient secret ở bước trên.

Như vậy là xong. Tuy nhiên, khi thực hiện thực tế tôi đã gặp lỗi. Theo đó, sau khi tìm kiếm nhiều cách có một số yêu cầu sau:
1. Bật People API, tại https://console.cloud.google.com/apis/dashboard
2. Tại phần Data Access > Add Scopes và chọn userinfo.email; userinfo.profile; user.emails.read
3. Tuyệt đối đừng điền Email claim trong Integrations > Identity providers của Cloudflare

Sau khi thành công, truy cập Zero Trust > Access controls > Polices và chọn
Selector: Login Methods
Value: Google

Nhớ cấu hình điều kiện đăng nhập bằng google và Require (ghi địa chỉ mail) nếu không bất cứ ai có Gmail để có thể truy cập. Sau đó bạn có thể truy cập mà không cần lấy OTP nữa.