Cách chạy OpenClaw an toàn trên VPS
OpenClaw có thể chạy shell command và duyệt web. Làm theo cách harden VPS với user không có quyền root, firewall, secrets và systemd để giảm rủi ro.
OpenClaw là gì và tại sao phải harden nó trước
OpenClaw là một AI agent tự host. Bạn chạy nó trên server của mình, kết nối nó với một large language model, rồi nó có thể chạy shell command, điều khiển browser, đọc và ghi file, cũng như xử lý các message bạn gửi từ ứng dụng chat. Khả năng truy cập rộng đó là mục đích chính của công cụ, đồng thời cũng là toàn bộ rủi ro. Một agent có thể chạy bất kỳ command nào chỉ an toàn khi server chạy nó an toàn và các giới hạn bạn đặt xung quanh nó đủ chặt.
Hai thực tế định hướng cho hướng dẫn này. Thứ nhất, OpenClaw được thiết kế để do bạn harden. Mô hình bảo mật của nó giao trách nhiệm đặt tool policy chặt, bật sandbox và cấp quyền cẩn thận cho operator, thay vì cung cấp safe default. Thứ hai, dự án đã trải qua một đợt sự cố bảo mật nghiêm trọng: National Vulnerability Database liệt kê 199 CVE của OpenClaw được công bố riêng trong tháng 3 năm 2026, trong đó 46 CVE xuất hiện trong 4 ngày từ 4 đến 7 tháng 3 (số liệu được kiểm tra ngày 13 tháng 10 năm 2026). Một trong các lỗi của tháng đó là lỗi leo thang đặc quyền nghiêm trọng, CVE-2026-32922, được chấm 9.9 trên 10 và đã được sửa trong version 2026.3.11. Hai thực tế này không có nghĩa là bạn nên tránh OpenClaw. Chúng có nghĩa là bạn không nên chạy nó theo cách sơ sài; hướng dẫn này trình bày cách làm cẩn thận. Một phần của cách làm đó là quyết định trước agent được phép làm gì mà không cần hỏi, tương tự lựa chọn mà Claude Code nêu rõ bằng permission mode, trong đó server không có người ngồi trực tiếp trước màn hình cần setting chặt hơn laptop bạn đang theo dõi.
Tin tốt là OpenClaw đã chọn sẵn một thiết lập an toàn: gateway của nó, tức process duy nhất điều khiển mọi thứ, mặc định listen trên địa chỉ loopback, nên không thể truy cập từ Internet trừ khi bạn chủ động expose nó. Phần lớn công việc bên dưới là giữ nguyên thiết lập đó và giới hạn blast radius nếu có sự cố.
Cấp cho OpenClaw một user không có quyền đặc biệt riêng
Không bao giờ chạy agent bằng root. Nếu OpenClaw chạy bằng root và có sự cố xảy ra, dù là bug, chỉ dẫn sai hoặc CVE như lỗi nêu trên, mức độ thiệt hại sẽ không có giới hạn. Hãy tạo một system user riêng, không có login shell và không có quyền sudo, rồi chạy agent bằng user đó:
sudo useradd --system --home /opt/openclaw --shell /usr/sbin/nologin openclawMọi thứ OpenClaw sở hữu đều nằm dưới /opt/openclaw và thuộc quyền sở hữu của account đó. Đây là bước quan trọng nhất. Đây cũng là nguyên tắc được trình bày trong chạy service bằng user không có quyền đặc biệt: account mà agent chạy bằng sẽ giới hạn tối đa những gì agent có thể làm hỏng.
Cài đặt OpenClaw
OpenClaw được phân phối dưới dạng npm package, vì vậy hãy cài Node.js trước nếu server chưa có; dự án yêu cầu Node 24.16 trở lên, hoặc 26.1 trở lên. Cài package globally để binary openclaw được đưa vào PATH cho mọi user, sau đó chạy bước onboarding một lần:
sudo npm install -g openclaw@latest --allow-scripts=openclaw
sudo -u openclaw openclaw onboardFlag --allow-scripts=openclaw cần thiết vì npm 12 mặc định chặn package install script, trong khi OpenClaw cần chạy script riêng của nó. Trên npm 11.15 hoặc cũ hơn, vốn không có option này, hãy bỏ flag đó. Chạy onboarding bằng user openclaw để configuration của agent được lưu trong home directory của user đó, /opt/openclaw, thay vì trong home directory của root. Dự án cũng cung cấp installer curl -fsSL https://openclaw.ai/install.sh | bash để thực hiện toàn bộ việc cài đặt bằng một dòng lệnh. Bỏ qua flag --install-daemon trong quá trình onboarding: flag này sẽ đăng ký service riêng của OpenClaw, trong khi systemd unit được harden mà bạn tạo bên dưới chặt chẽ hơn.
Giữ gateway trên loopback, phía sau firewall
Gateway bind vào 127.0.0.1 theo mặc định. Hãy giữ nguyên như vậy. Hầu như không có lý do nào để public port đó ra internet. Làm vậy sẽ cho bất kỳ ai tìm thấy nó một foothold từ xa vào một process chuyên chạy command.
Đặt firewall theo chính sách mặc định deny ở phía trước máy chủ, để không có dịch vụ nào vô tình bị expose:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableCó hai bẫy cần tránh. Firewall chỉ áp dụng cho IPv4 có thể để cùng service đó mở hoàn toàn trên IPv6. Đây chính là khoảng trống firewall trên IPv6 khiến rất nhiều người gặp sự cố. Nếu cần truy cập gateway từ laptop, đừng mở port. Hãy truy cập qua VPN hoặc SSH tunnel để agent không bao giờ listen trên internet công cộng.
Cô lập secret của nó
OpenClaw cần một API key cho language model mà bạn kết nối. Key đó có thể tiêu tiền của bạn và, thông qua agent, thực hiện hành động thay mặt bạn, vì vậy hãy xử lý nó như password. Không đặt key trong unit file hoặc bất kỳ repository nào. Lưu key trong một file mà chỉ user OpenClaw có thể đọc:
sudo install -o openclaw -g openclaw -m 600 /dev/null /opt/openclaw/openclaw.env
sudoedit /opt/openclaw/openclaw.env # add ANTHROPIC_API_KEY=... or your model provider's keysystemd unit nạp file đó bằng EnvironmentFile, nên key được chuyển đến process mà không xuất hiện trong command line, log hoặc shell history. Cách này áp dụng cho mọi secret trên máy: hardening self-hosted Vaultwarden tập trung vào admin token và file backup, không phải encryption, vì quyền trên file mới thực sự quyết định ai có thể đọc secret khi secret đang được lưu trữ.
Chạy dưới dạng systemd service được hardening
Chạy agent dưới systemd giúp tự động restart, ghi log rõ ràng qua journalctl và quan trọng nhất là cung cấp các tùy chọn sandbox ở cấp kernel. Các tùy chọn này giới hạn những gì process có thể truy cập ngay cả khi process đã bị breach. Với agent, các tùy chọn quan trọng nhất là NoNewPrivileges để agent không thể có thêm quyền, ProtectSystem=strict để filesystem ở chế độ chỉ đọc trừ những nơi bạn cho phép ghi, PrivateTmp để tạo thư mục tạm riêng biệt cho agent và ProtectHome để agent không thể đọc các thư mục home.
Tạo một unit đầy đủ với các thiết lập hardening tại đây, sau đó copy vào /etc/systemd/system/openclaw.service:
Unit này khởi động openclaw gateway, process chạy liên tục để điều khiển agent. Nếu which openclaw hiển thị path khác trên server của bạn, hãy điều chỉnh ExecStart cho khớp. Phần hướng dẫn đầy đủ về các directive này, cũng như daemon-reload và enable --now, có trong chạy một chương trình dưới dạng systemd service. Tóm tắt các bước sau khi bạn đã paste unit:
sudo systemctl daemon-reload
sudo systemctl enable --now openclawTăng cường bảo vệ lớp ngoài cùng
Một máy chủ chạy agent chỉ an toàn khi server xung quanh nó cũng an toàn. Thêm 2 lớp nữa là hoàn tất. Chuyển SSH sang chỉ xác thực bằng key và tắt đăng nhập bằng root, như hướng dẫn trong Tăng cường bảo mật SSH trên VPS, để tài khoản bạn dùng quản trị máy chủ không thể bị brute-force. Sau đó thêm Fail2ban để chặn các scanner liên tục quét mọi cổng public. Cả 2 lớp này không tác động trực tiếp đến OpenClaw, nhưng chúng loại bỏ các đường mà attacker có thể dùng để tiếp cận nó.
Cố ý cập nhật thường xuyên
Các công bố vào tháng 3 năm 2026 là lý do rõ ràng nhất để luôn dùng phiên bản mới. Lỗ hổng leo thang đặc quyền trong một agent nghiêm trọng hơn nhiều so với lỗ hổng trong một web app thông thường, vì agent vốn đã có thể chạy các command. Hãy theo dõi các bản release của project, nhanh chóng cài đặt security update và xem việc upgrade OpenClaw là bảo trì định kỳ, không phải việc có thể trì hoãn.
Để hiểu chính xác bạn đang hardening thành phần nào, kiến trúc của một agent kiểu OpenClaw trình bày các thành phần chính, còn xây dựng AI agent của riêng bạn trên một VPS mô tả cấu trúc tổng quát của mọi agent. Nếu bạn chạy thêm một agent bên cạnh agent này, hãy nhớ rằng hai session Claude Code trên một VPS có thể chuyển công việc cho nhau, vì vậy mỗi agent cần account riêng và các giới hạn riêng, thay vì kế thừa account và giới hạn của bạn.
FAQ
Chạy OpenClaw trên một VPS public có an toàn không?
Có thể an toàn nếu bạn harden đúng cách. OpenClaw vốn có quyền năng lớn: nó chạy shell command và điều khiển browser, vì vậy cấu hình bất cẩn thực sự nguy hiểm. Project này cũng đã từng có một CVE nghiêm trọng (CVE-2026-32922 vào tháng 3 năm 2026). Mô hình bảo mật của OpenClaw yêu cầu bạn, với vai trò operator, tự thêm các giới hạn. Hãy chạy nó bằng user không có quyền đặc biệt, giữ gateway trên loopback phía sau firewall mặc định từ chối mọi kết nối, tách riêng API key và chạy nó dưới dạng systemd service đã harden.
Có nên expose OpenClaw gateway ra Internet không?
Không. Gateway mặc định bind vào loopback và bạn nên giữ nguyên như vậy. Đây là process duy nhất điều khiển agent, nên gateway bị expose sẽ tạo ra một đường truy cập từ xa vào một thành phần chuyên chạy command. Nếu cần truy cập từ xa, hãy dùng VPN hoặc SSH tunnel thay vì mở port.
OpenClaw nên chạy bằng user nào?
Một system user riêng, không có login shell và không có sudo; tuyệt đối không dùng root. Nếu agent bị compromise, user account của nó sẽ giới hạn mức độ thiệt hại. Vì vậy, account này chỉ nên sở hữu các file của chính nó trong một directory như /opt/openclaw, không sở hữu thứ gì khác.
Làm thế nào để bảo vệ API key của OpenClaw?
Lưu key trong một file chỉ OpenClaw user có thể đọc (mode 600) và nạp file đó vào service bằng EnvironmentFile của systemd. Không đặt key trong unit file, shell history hoặc git repository. Hãy rotate key nếu bạn nghi ngờ key đã bị lộ.