Làm ngay trong 5 phút (Quick Start)
Thay vì ngồi lý thuyết, anh em hãy thử “show” ngay một ứng dụng đang chạy dưới localhost (ví dụ port 8080) ra internet. Chúng ta sẽ làm điều này một cách an toàn, không cần đụng vào config NAT hay mở port trên Router.
Bước 1: Cài đặt cloudflared lên server hoặc máy cá nhân.
# Với Ubuntu/Debian
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb
Bước 2: Xác thực với Cloudflare.
cloudflared tunnel login
Lệnh này trả về một đường link. Bạn chỉ cần click vào và chọn domain muốn ủy quyền.
Bước 3: Tạo Tunnel và ánh xạ dịch vụ.
# Tạo tunnel định danh 'itfromzero-demo'
cloudflared tunnel create itfromzero-demo
# Kết nối port 8080 ra internet
cloudflared tunnel --url http://localhost:8080
Lúc này, ứng dụng đã online qua một subdomain ngẫu nhiên. Tuy nhiên, bất kỳ ai có link cũng có thể truy cập. Ở các phần tiếp theo, mình sẽ hướng dẫn cách chặn đứng những vị khách không mời này bằng Zero Trust.
Tại sao mình lại bỏ VPN để sang Zero Trust?
Sau khi audit bảo mật cho hơn 10 dự án startup, mình thấy một kịch bản quen thuộc. Anh em thường mở port SSH (22) public hoặc để Dashboard Jenkins, Grafana lộ thiên cho tiện làm việc từ xa. Nhiều bên dùng VPN, nhưng việc hướng dẫn một bạn Designer mới cài phần mềm rồi cấu hình file .ovpn thường mất cả buổi sáng.
3 cái “khó chịu” của VPN truyền thống
- Quyền hạn quá rộng: Một khi đã connect VPN, nhân viên thường thấy được toàn bộ dải IP nội bộ. Nếu máy cá nhân dính malware, nó sẽ lây lan sang cả hệ thống server chỉ trong vài phút.
- Tốc độ gây ức chế: Mọi traffic phải đi qua server VPN trung gian. Điều này khiến độ trễ (latency) tăng cao, đặc biệt khi anh em làm việc từ quán cafe hoặc dùng 4G.
- Quản lý mệt mỏi: Việc cấp mới hoặc thu hồi chứng chỉ (certificate) mỗi khi có người nghỉ việc là một công việc lặp đi lặp lại rất tốn thời gian.
Zero Trust hoạt động thực tế ra sao?
Thay vì tin tưởng thiết bị chỉ vì nó có “chìa khóa” VPN, Zero Trust hoạt động theo nguyên tắc: Luôn luôn xác thực lại. Mỗi khi bạn click vào link ứng dụng, Cloudflare sẽ kiểm tra danh tính qua Google/GitHub, check thiết bị và địa điểm truy cập. Nếu mọi thứ khớp, bạn mới được vào. Toàn bộ trải nghiệm diễn ra ngay trên trình duyệt, không cần cài thêm client phức tạp.
Hướng dẫn chi tiết triển khai cho ứng dụng thực tế
B1: Thiết lập Identity Provider
Vào Cloudflare Dashboard > Zero Trust > Settings > Authentication. Tại đây, mình ưu tiên kết nối với GitHub hoặc Google.
Với team nội bộ, mình thường dùng Google Workspace. Nếu bạn làm dự án cá nhân, dùng GitHub là gọn nhất. Chỉ cần tạo một OAuth App trên GitHub, lấy Client ID và Secret dán vào Cloudflare. Từ giây phút này, anh em chỉ cần click “Login with GitHub” là xong.
B2: Tạo Application bảo vệ
Chuyển đến Access > Applications > Add an application. Chọn Self-hosted.
- Application Name: Dashboard Nội Bộ (Hoặc bất cứ tên gì bạn muốn).
- Domain:
admin.itfromzero.com.
B3: Thiết lập Policy (Chính sách truy cập)
Đây là linh hồn của hệ thống. Bạn có thể giới hạn chỉ email công ty mới được phép vào:
Selector: Emails ending in
Value: @itfromzero.com
Kinh nghiệm xương máu của mình là hãy thêm điều kiện Country là “Vietnam”. Chiêu này giúp chặn đứng 95% các cuộc scan tự động từ các dải IP lạ ở nước ngoài ngay từ lớp bảo vệ đầu tiên.
Tuyệt chiêu: Bảo mật SSH không cần mở port 22
Đây là tính năng mình thích nhất. Bạn có thể đóng hoàn toàn port 22 trên firewall (ufw/iptables). Kẻ xấu scan IP server sẽ chỉ thấy một bức tường kín mít.
Trên máy tính của bạn, hãy thêm vài dòng vào file ~/.ssh/config:
Host server-noi-bo.itfromzero.com
ProxyCommand /usr/local/bin/cloudflared access ssh --hostname %h
Khi gõ ssh [email protected], trình duyệt sẽ tự bật lên để bạn login. Xác thực xong, tunnel SSH mới được thiết lập. Vừa an toàn, vừa không lo bị Brute-force mật khẩu SSH.
Vài lưu ý nhỏ từ trải nghiệm cá nhân
- Luôn có phương án dự phòng: Hãy bật thêm mã PIN dùng một lần (OTP) qua Email. Nếu chẳng may GitHub hay Google gặp sự cố, bạn vẫn không bị “nhốt” bên ngoài hệ thống của mình.
- Tận dụng Log Audit: Cloudflare ghi lại chi tiết: Ai đã vào, lúc nào, từ IP nào. Mình thường dành 5 phút mỗi sáng thứ Hai để kiểm tra log này, giúp phát hiện sớm các hành vi truy cập bất thường.
- Xử lý nhanh khi nhân sự nghỉ việc: Đừng chỉ xóa email. Hãy vào phần Application và nhấn “Revoke all sessions” để đá ngay lập tức mọi phiên đăng nhập cũ của họ ra khỏi hệ thống.
Chuyển từ VPN sang Zero Trust ban đầu có vẻ hơi lạ lẫm. Tuy nhiên, một khi đã quen với việc không phải quản lý file config, bạn sẽ thấy đây là lựa chọn sáng suốt nhất cho DevOps. Chúc anh em triển khai mượt mà!

