Bảo mật VPS chạy AI Agent bằng Tailscale là cách đưa SSH, Dashboard và các cổng quản trị của AI Agent vào một mạng riêng, thay vì mở trực tiếp ra Internet. Cách triển khai hiệu quả nhất là cài Tailscale trên VPS và máy tính quản trị, kiểm tra kết nối qua mạng riêng, sau đó dùng UFW đóng các cổng public không cần thiết. Cùng Tino tìm hiểu qua bài viết dưới đây nhé!
Tại sao VPS chạy AI Agent dễ bị tấn công?
Những rủi ro thực tế
Một AI Agent có thể đọc email, chạy lệnh, truy cập tệp, gọi API trả phí và thao tác thay bạn. Nếu kẻ xấu chiếm được quyền điều khiển, hậu quả không dừng ở việc hỏng một trang web mà còn gồm:
- Lộ khóa API: khóa của OpenAI, Anthropic hay Google bị lấy cắp và bị dùng đến cạn tiền.
- Mất dữ liệu: tài liệu, email, cơ sở dữ liệu mà Agent được cấp quyền đọc bị sao chép.
- Bị lợi dụng làm bàn đạp: VPS bị biến thành máy đào tiền ảo hoặc nơi phát tán thư rác.
- Bị điều khiển từ xa: giao diện web của Agent để mở công khai và không có mật khẩu mạnh thì ai cũng ra lệnh được.
Một VPS mới tạo thường bị các công cụ tự động dò quét chỉ sau vài phút. Cổng SSH (22) và các cổng giao diện như 3000, 5678, 8080 là mục tiêu quen thuộc.

Vì sao tường lửa thông thường chưa đủ?
Tường lửa chặn cổng không dùng là bước tốt, nhưng bạn vẫn phải mở ít nhất một cổng để tự đăng nhập quản trị. Cổng đó chính là cửa sổ cho kẻ tấn công thử vận may. Cách tiếp cận tốt hơn là không mở cổng nào ra Internet, và để thiết bị của bạn vào VPS qua một đường hầm riêng. Đó là việc Tailscale làm rất tốt.
Vậy Tailscale là gì? Giúp bảo mật VPS chạy AI Agent như thế nào?
Tailscale là nền tảng kết nối mạng riêng dựa trên danh tính, cho phép các máy tính, VPS, điện thoại và dịch vụ giao tiếp với nhau thông qua một mạng riêng gọi là tailnet.
Thay vì phải mở SSH hoặc Dashboard quản trị ra Internet, bạn có thể đưa các dịch vụ này vào tailnet và chỉ cho thiết bị đã đăng nhập Tailscale truy cập.
Tailscale xây dựng kết nối dựa trên WireGuard. Dữ liệu giữa các thiết bị được mã hóa đầu cuối kể cả khi kết nối phải chuyển tiếp qua hệ thống relay của Tailscale.
Ví dụ, VPS AI Agent có:
- Public IP: 103.xxx.xxx.xxx
- Tailscale IP: 100.xxx.xxx.xxx
- SSH: port 22
- Dashboard AI Agent: port 3000
Thay vì truy cập: http://103.xxx.xxx.xxx:3000 bạn có thể chặn port 3000 trên public Internet và chỉ truy cập qua mạng Tailscale.
Đây chính là điểm quan trọng nhất khi bảo mật VPS chạy AI Agent bằng Tailscale.

Mô hình bảo mật VPS AI Agent với Tailscale
Một cấu hình phù hợp cho phần lớn VPS AI Agent là:
Thành phần Phương thức truy cập SSH Chỉ qua Tailscale Dashboard AI Agent Chỉ qua Tailscale Database Chỉ localhost hoặc Tailscale Redis Chỉ localhost hoặc Tailscale API quản trị Chỉ Tailscale OpenAI/OpenRouter/Claude API Cho phép kết nối outbound Telegram/Discord/Slack Cho phép kết nối outbound Website public Giữ 80/443 nếu cần Webhook public Chỉ public endpoint thực sự cần thiết
Điểm quan trọng là không phải đóng toàn bộ Internet của VPS. AI Agent vẫn cần truy cập Internet để gọi model, tìm kiếm dữ liệu, tải website hoặc giao tiếp với API bên ngoài. Phần cần hạn chế chủ yếu là kết nối đi vào VPS.
Chuẩn bị trước khi bảo mật VPS chạy AI Agent bằng Tailscale
Bạn cần có:
- Một VPS chạy Ubuntu hoặc Debian (các lệnh trong bài dùng Ubuntu 22.04/24.04).
- Quyền đăng nhập hiện tại vào VPS (SSH hoặc bảng điều khiển của nhà cung cấp).
- Một tài khoản Google, Microsoft hoặc GitHub để đăng ký Tailscale.
- Máy cá nhân (Windows, macOS, Linux) hoặc điện thoại để cài ứng dụng Tailscale.
Mẹo an toàn: hãy mở sẵn bảng điều khiển console của nhà cung cấp VPS trong một tab khác. Nếu lỡ khóa nhầm, bạn vẫn có đường vào để sửa.
Hướng dẫn bảo mật VPS chạy AI Agent bằng Tailscale
Bước 1: Cài Tailscale trên máy tính quản trị
Trước tiên, cài Tailscale trên máy tính bạn sử dụng để quản trị VPS.
Tailscale hỗ trợ Windows, macOS, Linux, Android và iOS.

Sau khi cài đặt:
- Mở Tailscale.
- Đăng nhập bằng tài khoản Google, Microsoft, GitHub hoặc nhà cung cấp danh tính được hỗ trợ.
- Giữ Tailscale hoạt động trên máy tính.

Tailscale dựa vào nhà cung cấp danh tính để xác thực người dùng và hỗ trợ các chính sách như MFA từ nhà cung cấp đó.
Bước 2: Cài Tailscale trên VPS
Trên VPS, SSH vào máy chủ như bình thường rồi chạy:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --ssh
Lệnh thứ hai sẽ hiển thị một đường dẫn xác thực.

Mở đường dẫn trên trình duyệt, đăng nhập tài khoản Tailscale đang sử dụng trên máy cá nhân và xác nhận thêm VPS vào tailnet.

Bước 3: Kiểm tra kết nối trước khi đóng SSH public
Trên VPS, chạy:
tailscale ip -4
Bạn sẽ nhận được địa chỉ dạng:
100.x.x.x

Trên máy cá nhân đã bật Tailscale, mở Terminal hoặc PowerShell và thử:
ssh tenuser@100.x.x.x
Nếu đăng nhập thành công, kết nối qua Tailscale đã hoạt động.

Quan trọng: Chỉ chuyển sang bước tiếp theo sau khi đã SSH thành công qua Tailscale. Nên giữ phiên SSH hiện tại đang mở để có đường khôi phục nếu cấu hình firewall sai.
Bước 4: Đóng các cổng quản trị công khai bằng UFW
Sau khi chắc chắn có thể SSH qua Tailscale, cấu hình UFW.
Cài UFW:
apt update
apt install ufw -y
Sau đó chạy các lệnh:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow in on tailscale0
sudo ufw enable

Kiểm tra:
sudo ufw status
Nếu trước đây đã mở port SSH 22:
sudo ufw status numbered

Sau đó xóa rule tương ứng:
sudo ufw delete <số-rule>
Ví dụ:
sudo ufw delete 1
Nếu nhà cung cấp VPS có Cloud Firewall, Security Group hoặc Network Firewall, hãy kiểm tra và đóng port 22 public tại đây sau khi SSH qua Tailscale đã hoạt động ổn định.
Lưu ý nếu AI Agent chạy bằng Docker
Docker có thể tạo firewall rule riêng khi publish port. Vì vậy, cấu hình:
-p 3000:3000
có thể khiến Dashboard được truy cập từ Internet ngay cả khi UFW đang chặn port tương ứng.
Thay vào đó, hãy bind Dashboard vào localhost:
-p 127.0.0.1:3000:3000
Ví dụ với Docker Compose:
ports:
- "127.0.0.1:3000:3000"
Như vậy, Dashboard chỉ được truy cập trực tiếp từ VPS. Ở bước tiếp theo, Tailscale Serve sẽ tạo đường truy cập riêng an toàn hơn.
Nếu VPS còn chạy website, webhook hoặc API bắt buộc phải public, đừng chặn các cổng cần thiết như 80/443. Chỉ khóa những cổng quản trị không cần Internet truy cập trực tiếp.
Bước 5: Sử dụng Tailscale SSH
Do đã chạy:
sudo tailscale up --ssh
ở Bước 2, VPS đã bật Tailscale SSH.
Bạn có thể SSH qua Tailscale IP:
ssh tenuser@100.x.x.x
hoặc MagicDNS:
ssh tenuser@ten-vps
Tailscale SSH xử lý việc xác thực cho các kết nối SSH đi qua mạng Tailscale, nhờ đó giảm nhu cầu tự phân phối SSH key giữa nhiều thiết bị.
Nếu VPS vẫn còn dịch vụ OpenSSH truyền thống, bạn cũng nên tắt đăng nhập bằng mật khẩu.
Mở:
sudo nano /etc/ssh/sshd_config
Tìm hoặc thêm:
PasswordAuthentication no
Sau đó lưu file rồi chạy lệnh:
sudo systemctl restart ssh
Chỉ thực hiện thay đổi này sau khi đã kiểm tra Tailscale SSH hoạt động bình thường.
Bước 6: Đưa Dashboard AI Agent vào mạng riêng bằng Tailscale Serve
Giả sử Dashboard AI Agent đang chạy nội bộ tại: 127.0.0.1:3000
Chạy:
sudo tailscale serve --bg localhost:3000
Tailscale sẽ cung cấp địa chỉ HTTPS dạng: https://ten-vps.ten-tailnet.ts.net

Mở địa chỉ này trên máy đã tham gia tailnet để truy cập Dashboard.
Nếu HTTPS chưa được bật cho tailnet, Tailscale có thể hiển thị đường dẫn để bạn xác nhận kích hoạt.

Luồng truy cập lúc này sẽ là:
Máy cá nhân
↓
Tailscale
↓
HTTPS Serve
↓
127.0.0.1:3000
↓
AI Agent
Dashboard không cần mở port 3000 trực tiếp ra Internet.
Serve khác Funnel thế nào?
- Tailscale Serve: chỉ thiết bị được cấp quyền trong tailnet truy cập.
- Tailscale Funnel: đưa dịch vụ ra Internet công khai.
Với Dashboard quản trị AI Agent, nên sử dụng Serve. Funnel chỉ phù hợp khi bạn chủ động cần public một dịch vụ, chẳng hạn webhook nhận request từ nền tảng bên ngoài.
Bước 7: Giới hạn quyền truy cập bằng Grants
Mặc định, tailnet mới có chính sách cho phép các thiết bị kết nối với nhau. Vì vậy, nếu tailnet có nhiều laptop, server hoặc thành viên khác, bạn nên thiết lập Access Controls để áp dụng nguyên tắc quyền tối thiểu.
Tailscale hiện khuyến nghị sử dụng Grants cho các cấu hình mới. Ví dụ bạn có tài khoản admin@example.com và muốn dành VPS cho AI Agent. Trước tiên, vào Tailscale Admin Console → Access controls -> JSON Editor.

Nhập lệnh cấu hình:
{
"tagOwners": {
"tag:ai-agent": ["admin@example.com"]
},
"grants": [
{
"src": ["admin@example.com"],
"dst": ["tag:ai-agent"],
"ip": ["tcp:22", "tcp:443"]
}
],
"ssh": [
{
"action": "check",
"src": ["admin@example.com"],
"dst": ["tag:ai-agent"],
"users": ["tenuser"]
}
]
}
Lưu ý: Thay admin@example.com bằng tài khoản Tailscale của bạn và tenuser bằng tài khoản Linux trên VPS.
Cấu hình trên có ý nghĩa:
- Chỉ tài khoản quản trị đã chỉ định được truy cập VPS.
- Chỉ cho phép TCP 22 và TCP 443.
- Tailscale SSH yêu cầu bước xác nhận bằng chế độ check.
- Chỉ cho đăng nhập bằng tài khoản Linux được chỉ định.
- VPS được nhận dạng bằng tag:ai-agent.
Sau đó gắn tag cho VPS:
sudo tailscale set --advertise-tags=tag:ai-agent
Kiểm tra:
tailscale status
Một lợi ích khác của tag là key expiry được tắt mặc định cho thiết bị gắn tag, phù hợp với VPS và server cần chạy AI Agent liên tục.
Tuy nhiên, sau khi gắn tag, VPS sử dụng danh tính của tag thay cho danh tính người dùng. Vì vậy, hãy thiết lập Grants và SSH policy trước hoặc đồng thời với quá trình gắn tag để tránh mất quyền truy cập.
Lưu ý: giao diện và tính năng của Tailscale có thể thay đổi theo thời gian. Hãy đối chiếu với tài liệu chính thức tại tailscale.com/kb trước khi áp dụng cho hệ thống quan trọng.
Những lỗi thường gặp khi bảo mật VPS chạy AI Agent bằng Tailscale
- Đóng cổng 22 trước khi kiểm tra Tailscale: Dẫn đến tự khóa mình ngoài máy chủ. Luôn làm Bước 3 trước Bước 4.
- Quên Docker bỏ qua tường lửa: Cổng vẫn mở dù UFW báo đã chặn. Hãy gắn cổng vào 127.0.0.1.
- Để chính sách mặc định “cho phép tất cả”: Ai vào được mạng là vào được mọi máy. Hãy viết grants cụ thể.
- Dùng Funnel cho giao diện Agent: Việc này đưa Agent ra công khai, đi ngược mục tiêu bảo mật.
- Cấp khóa API quá rộng: Ngay cả khi VPS an toàn, hãy giới hạn hạn mức chi tiêu và quyền của khóa API. Agent chỉ cần quyền đủ dùng.
- Không cập nhật hệ thống: Chạy sudo apt update && sudo apt upgrade định kỳ và cập nhật Tailscale để nhận bản vá mới.

Danh sách kiểm tra bảo mật nhanh
- Tailscale đã cài và đăng nhập trên VPS lẫn máy cá nhân
- SSH vào VPS qua địa chỉ Tailscale thành công
- UFW chặn mọi kết nối đến, chỉ cho phép giao diện tailscale0
- Đã đóng cổng 22 và các cổng giao diện ở tường lửa nhà cung cấp
- Container Docker gắn cổng vào 127.0.0.1
- Giao diện Agent truy cập qua Tailscale Serve (HTTPS)
- Đã viết grants thay cho chính sách mặc định cho phép tất cả
- Khóa API có hạn mức chi tiêu và quyền tối thiểu
- Hệ thống và Tailscale được cập nhật định kỳ
Kết luận
Bảo mật VPS chạy AI Agent bằng Tailscale không yêu cầu thay đổi toàn bộ kiến trúc máy chủ. Bạn chỉ cần đưa các dịch vụ quản trị như SSH, Dashboard và database vào mạng riêng, kiểm tra kết nối qua Tailscale rồi dùng firewall đóng những port public không cần thiết.
Hãy bắt đầu ngay hôm nay với VPS đang chạy Agent của bạn, và dùng danh sách kiểm tra phía trên để rà soát từng mục. Một thiết lập bảo mật gọn gàng sẽ giúp bạn yên tâm giao việc cho AI Agent mà không phải lo ngại về những vị khách không mời.
Những câu hỏi thường gặp
Tailscale có thay thế firewall trên VPS không?
Không. Tailscale tạo mạng riêng và kiểm soát quyền truy cập giữa các thiết bị, nhưng VPS vẫn có thể nhận traffic từ Internet qua public IP nếu firewall cho phép. Vì vậy, nên sử dụng Tailscale kết hợp UFW hoặc firewall của nhà cung cấp VPS.
Dùng Tailscale có cần mở port 22 ra Internet không?
Không. Sau khi xác nhận SSH qua Tailscale hoạt động, bạn có thể đóng port 22 public và chỉ SSH thông qua địa chỉ Tailscale.
Tailscale có phù hợp cho VPS chạy AI Agent 24/7 không?
Có. Server có thể duy trì trong tailnet và tiếp tục chạy AI Agent 24/7. Với VPS quan trọng, hãy chú ý chính sách key expiry, phương thức khôi phục truy cập và quyền của từng thiết bị. Tailscale cho phép điều chỉnh key expiry; với server đáng tin cậy, quản trị viên cũng có thể cấu hình phù hợp với nhu cầu vận hành.
Tôi có thể truy cập AI Agent từ điện thoại không?
Được. Cài ứng dụng Tailscale trên iOS hoặc Android, đăng nhập cùng tài khoản, rồi mở địa chỉ HTTPS do Tailscale Serve cung cấp. Bạn không cần mở cổng công khai.
Nếu Tailscale gặp sự cố, tôi có bị mất quyền vào VPS không?
Kết nối giữa các thiết bị thường đi trực tiếp, nhưng việc đăng nhập và cấp quyền vẫn phụ thuộc dịch vụ điều phối của Tailscale. Vì vậy, hãy luôn giữ sẵn đường dự phòng là bảng điều khiển console của nhà cung cấp VPS để xử lý khi cần.
