Cách ly sandbox cho AI Agent là chạy các công cụ của agent (lệnh shell, đọc ghi file, trình duyệt) trong một môi trường bị giới hạn, thường là container Docker, để agent không chạm được SSH key, file hệ thống hay tiến trình khác trên VPS. Với OpenClaw, sandbox không bật mặc định; bạn cần bật trong cấu hình rồi kiểm tra lại bằng lệnh openclaw sandbox explain.
Một prompt sai, một nội dung chứa prompt injection hay một Skill không an toàn đều có thể khiến agent làm việc ngoài ý muốn. Sandbox là một lớp trong nhóm bài bảo mật VPS; cách chọn và chuẩn bị máy chủ cho agent xem ở VPS chạy AI Agent.
Cách ly Sandbox cho AI Agent là gì?
Sandbox là một môi trường thực thi bị giới hạn và tách khỏi phần còn lại của máy chủ, giống việc cho trẻ chơi trong hộp cát thay vì thả tự do khắp nhà.
Thay vì cho AI Agent trực tiếp:
- đọc toàn bộ file trên VPS;
- chạy mọi câu lệnh Linux;
- truy cập thư mục chứa SSH Key;
- dùng toàn bộ CPU và RAM;
- kết nối tự do tới Internet;
- can thiệp vào các tiến trình khác;
quản trị viên đưa những hoạt động rủi ro cao vào một sandbox riêng. AI Agent vẫn có môi trường để xử lý công việc, nhưng chỉ tiếp cận tài nguyên đã được cấp phép.
Ví dụ, OpenClaw cần đọc một tài liệu và tạo file kết quả. Bạn chỉ cấp cho agent một workspace cụ thể thay vì cho truy cập /root, /etc, SSH Key và toàn bộ dữ liệu trên VPS.
Đây là nguyên tắc least privilege – quyền tối thiểu: AI Agent chỉ nhận những quyền thực sự cần để hoàn thành tác vụ.
Sandbox hoạt động như thế nào?
Hình dung VPS là một ngôi nhà và AI Agent là nhân viên được thuê làm việc. Trao toàn bộ chìa khoá thì nhân viên vào được mọi phòng. Sandbox giống một phòng làm việc riêng: trong phòng chỉ có tài liệu, công cụ cần thiết, các khu vực khác vẫn khoá.
Với AI Agent trên VPS, sandbox thường giới hạn 4 nhóm:
- Hệ thống file: agent chỉ đọc hoặc ghi trong thư mục được cấp quyền.
- Tiến trình: câu lệnh chạy trong môi trường cách ly thay vì trực tiếp trên hệ điều hành VPS.
- Mạng: chặn hẳn Internet hoặc chỉ mở khi thật sự cần.
- Tài nguyên: giới hạn CPU, RAM, số tiến trình.
Docker là công nghệ phổ biến để tạo lớp cách ly dạng này trên Linux.
Sandbox khác gì với Docker?
Chạy OpenClaw trong Docker và bật sandbox cho công cụ là hai lớp khác nhau, dễ nhầm.
Hình thức Mục đích Chạy OpenClaw Gateway trong Docker Cách ly ứng dụng OpenClaw khỏi hệ điều hành VPS OpenClaw Tool Sandbox Cách ly hoạt động của agent như exec, đọc file, ghi file và processKết hợp cả hai Thêm nhiều lớp bảo vệ
Theo tài liệu OpenClaw, tiến trình Gateway luôn chạy trên host; khi bật sandbox, chỉ phần thực thi công cụ được chuyển vào sandbox (OpenClaw: Sandboxing). Container hoá Gateway và sandbox công cụ có thể dùng song song.
Vì vậy, nếu bạn hỏi “Đã chạy OpenClaw bằng Docker thì có cần sandbox nữa không?”, câu trả lời là vẫn nên bật, đặc biệt khi agent được chạy shell, xử lý file, dùng trình duyệt hoặc nhận nội dung từ người ngoài.
Hướng dẫn cách ly Sandbox cho AI Agent trên VPS
Phần dưới đây minh hoạ cấu hình ưu tiên an toàn cho người đang chạy OpenClaw trên VPS Linux (ảnh chụp với OpenClaw 2026.9.4). Chưa cài OpenClaw thì xem cài đặt OpenClaw trên VPS.
Lưu ý: sao lưu file cấu hình OpenClaw trước khi chỉnh sửa. Cấu hình thực tế có thể cần đổi tuỳ agent, Skill và công cụ đang dùng.
Bước 1: Kiểm tra OpenClaw trên VPS
Trước tiên, SSH vào VPS bằng Xshell, Terminal hoặc công cụ SSH bạn quen dùng (xem cách kết nối VPS). Kiểm tra OpenClaw:
openclaw --version
Nếu hệ thống trả về phiên bản OpenClaw, tiếp tục kiểm tra file cấu hình đang dùng:
openclaw config file
Thông thường file cấu hình nằm tại:
~/.openclaw/openclaw.json

Nên dùng openclaw config file để biết chính xác đường dẫn thay vì tự đoán. OpenClaw có các lệnh config get, config set, config patch, config validate (OpenClaw CLI: config), nên hướng dẫn dưới đây không cần sửa trực tiếp file JSON bằng nano.
Bước 2: Kiểm tra Docker trên VPS
Sandbox Docker cần Docker Engine để tạo container cách ly. Kiểm tra bằng:
docker --version
Sau đó:
docker info
Nếu hai lệnh chạy bình thường, chuyển sang Bước 3.
Nếu VPS chưa có Docker
Kiểm tra hệ điều hành:
cat /etc/os-release

Với Ubuntu, cài Docker Engine từ repository chính thức của Docker (Docker: Install Docker Engine on Ubuntu). Cập nhật hệ thống và cài gói cần thiết:
sudo apt update
sudo apt install -y ca-certificates curl

Tạo thư mục chứa khoá:
sudo install -m 0755 -d /etc/apt/keyrings
Tải khoá chính thức của Docker:
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
Cấp quyền đọc:
sudo chmod a+r /etc/apt/keyrings/docker.asc
Thêm Docker repository:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
Cập nhật repository:
sudo apt update
Cài Docker:
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Kiểm tra Docker:
sudo systemctl status docker

Sau đó thử chạy container:
sudo docker run hello-world
Nếu xuất hiện thông báo Hello from Docker!, Docker đã hoạt động.
Bước 3: Tạo Docker image dành cho OpenClaw Sandbox
OpenClaw cần một Docker image riêng để tạo môi trường sandbox. OpenClaw không tự thay bằng một image Debian trống nếu image này chưa có, nên bạn cần build image trước khi bật sandbox.
Cập nhật 24/10/2026: các bản OpenClaw mới đổi image mặc định thành openclaw-sandbox:trixie-slim (Debian 13) (OpenClaw: Images and setup). Ảnh chụp trong bài dùng bookworm-slim. Cấu hình ở Bước 4 khai báo rõ tên image nên vẫn chạy; nếu cài mới, bạn có thể thay bookworm bằng trixie ở cả Dockerfile, lệnh build và cấu hình.
Image dùng trong ví dụ có tên:
openclaw-sandbox:bookworm-slim
Bước 3.1: Kiểm tra image đã tồn tại chưa
Chạy:
docker images | grep openclaw-sandbox
Nếu xuất hiện dòng tương tự:
openclaw-sandbox bookworm-slim …
image đã có sẵn, chuyển sang Bước 4: Bật Sandbox cho OpenClaw. Nếu lệnh không hiện kết quả, tiếp tục tạo image.
Bước 3.2: Tạo Dockerfile cho sandbox
Để tránh lỗi khi dán khối lệnh nhiều dòng vào Xshell, gộp thành một lệnh printf. Copy nguyên lệnh và dán vào VPS:
printf '%s\n' 'FROM debian:bookworm-slim' 'ENV DEBIAN_FRONTEND=noninteractive' 'RUN apt-get update && apt-get install -y --no-install-recommends bash ca-certificates curl git jq python3 ripgrep && rm -rf /var/lib/apt/lists/*' 'RUN useradd --create-home --shell /bin/bash sandbox' 'USER sandbox' 'WORKDIR /home/sandbox' 'CMD ["sleep", "infinity"]' > /tmp/openclaw-sandbox.Dockerfile
Chạy xong, VPS quay lại dấu nhắc lệnh (ví dụ root@server:~#) và tạo file /tmp/openclaw-sandbox.Dockerfile. Nội dung tương đương image mặc định mà OpenClaw hướng dẫn cho bản cài bằng npm.
Bước 3.3: Kiểm tra Dockerfile vừa tạo
Chạy:
cat /tmp/openclaw-sandbox.Dockerfile
Kết quả cần có dạng:
FROM debian:bookworm-slim
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends bash ca-certificates curl git jq python3 ripgrep && rm -rf /var/lib/apt/lists/*
RUN useradd --create-home --shell /bin/bash sandbox
USER sandbox
WORKDIR /home/sandbox
CMD ["sleep", "infinity"]

Bước 3.4: Build image OpenClaw Sandbox
Tiếp tục chạy:
docker build -t openclaw-sandbox:bookworm-slim -f /tmp/openclaw-sandbox.Dockerfile /tmp

Docker tải Debian, cài bash, curl, git, jq, python3, ripgrep rồi tạo image sandbox. Quá trình mất vài phút tuỳ tốc độ mạng và cấu hình VPS. Khi thành công, cuối kết quả thường có:
=> exporting to image
=> naming to docker.io/library/openclaw-sandbox:bookworm-slim
Bước 3.5: Kiểm tra image sau khi build
Chạy lại:
docker images | grep openclaw-sandbox
Nếu thành công, bạn sẽ thấy tương tự:
openclaw-sandbox bookworm-slim xxxxxxxxxxxx …

Bước 4: Bật Sandbox cho OpenClaw
OpenClaw mặc định để agents.defaults.sandbox.mode là off (OpenClaw: Modes, scope, and backend), nên sandbox chưa được dùng nếu bạn chưa đổi cấu hình. Để không sửa trực tiếp openclaw.json, ta tạo một file cấu hình bổ sung rồi ghép vào cấu hình hiện tại.
Bước 4.1: Tạo file cấu hình sandbox
Chạy:
cat > ~/openclaw-sandbox.patch.json5 <<'EOF'
{
agents: {
defaults: {
sandbox: {
mode: "all",
backend: "docker",
scope: "session",
workspaceAccess: "ro",
docker: {
image: "openclaw-sandbox:bookworm-slim",
readOnlyRoot: true,
tmpfs: [
"/tmp",
"/var/tmp",
"/run"
],
network: "none",
capDrop: [
"ALL"
],
pidsLimit: 256,
memory: "1g",
memorySwap: "2g",
cpus: 1
}
}
}
}
}
EOF

Lệnh trên tạo file ~/openclaw-sandbox.patch.json5 mà không cần mở nano.
Bước 4.2: Kiểm tra nội dung vừa tạo
Chạy:
cat ~/openclaw-sandbox.patch.json5
Nếu toàn bộ cấu hình hiện đầy đủ, tiếp tục bước sau.
Bước 5: Kiểm tra cấu hình trước khi áp dụng
OpenClaw hỗ trợ chế độ --dry-run: kiểm tra schema của patch mà chưa ghi vào cấu hình đang dùng. Chạy:
openclaw config patch --file ~/openclaw-sandbox.patch.json5 --dry-run

- Nếu báo thành công và không lỗi schema, cấu hình có thể áp dụng.
- Nếu báo lỗi, dừng lại và kiểm tra nội dung file trước khi tiếp tục.
Bước 6: Áp dụng cấu hình Sandbox
Khi dry-run không còn lỗi, chạy:
openclaw config patch --file ~/openclaw-sandbox.patch.json5
Lệnh config patch ghép cấu hình sandbox vào cấu hình OpenClaw hiện có thay vì thay cả file. Các phần khác như model, API key, Telegram, Discord hay cấu hình agent vẫn giữ nếu không trùng trường đang patch.
Sau khi áp dụng, kiểm tra:
openclaw config get agents.defaults.sandbox
Bạn nên thấy các giá trị như:
mode: all
backend: docker
scope: session
workspaceAccess: ro
….

Tiếp tục kiểm tra toàn bộ cấu hình:
openclaw config validate
Nếu không có lỗi, sandbox đã được bật trong cấu hình. Ý nghĩa từng giá trị trong ví dụ:
- mode: “all”: mọi session của agent đều chạy trong sandbox.
- backend: “docker”: OpenClaw dùng Docker làm môi trường cách ly.
- scope: “session”: mỗi session có sandbox riêng, chặt hơn mặc định
agent(một container cho mỗi agent). - workspaceAccess: “ro”: workspace chính của agent chỉ được mount quyền đọc.
- network: “none”: container sandbox không kết nối ra Internet.
- readOnlyRoot: true: filesystem gốc của container ở chế độ chỉ đọc.
- capDrop: [“ALL”]: bỏ các Linux capability bổ sung.
- memory: “1g”, cpus: 1, pidsLimit: 256: container chỉ dùng RAM, CPU và số tiến trình trong giới hạn đã đặt.
Ba giá trị network: "none", readOnlyRoot: true, capDrop: ["ALL"] cũng là mặc định của Docker backend (OpenClaw: Docker backend); ghi rõ trong patch để dễ đọc lại sau này.
Bước 7: Tạo lại Sandbox theo cấu hình mới (nếu trước đây từng tạo)
Nếu OpenClaw từng tạo sandbox trước đây, container cũ có thể vẫn giữ cấu hình cũ. Chạy:
openclaw sandbox recreate --all
Nếu hệ thống hỏi xác nhận, chọn đồng ý. Muốn bỏ qua câu hỏi xác nhận:
openclaw sandbox recreate --all --force
OpenClaw xoá runtime sandbox cũ; runtime mới được tạo tự động ở lần tiếp theo agent cần sandbox. Nếu đây là lần đầu bật sandbox, chưa thấy container nào ở bước này là bình thường.
Bước 8: Gửi một yêu cầu cho OpenClaw để tạo Sandbox
Sau khi bật cấu hình, quay lại kênh chat với OpenClaw và gửi một yêu cầu có dùng công cụ, ví dụ:
Hãy kiểm tra các file trong workspace hiện tại.

Hoặc yêu cầu agent làm một tác vụ cần đọc file hay chạy công cụ. Khi agent cần dùng tool, OpenClaw tự tạo container sandbox theo scope đã cấu hình.
Bước 9: Kiểm tra Sandbox đã được tạo hay chưa
Chạy:
openclaw sandbox list
Nếu sandbox đang hoạt động, danh sách runtime sẽ hiện ra.

Bạn cũng có thể kiểm tra trực tiếp bằng Docker:
docker ps --filter "name=openclaw-sbx-"
OpenClaw mặc định đặt tiền tố openclaw-sbx- cho container sandbox Docker.
Bước 10: Kiểm tra OpenClaw có thực sự sử dụng Sandbox hay không
Đây là bước rất nên làm. Chạy:
openclaw sandbox explain
OpenClaw hiển thị sandbox mode, backend, scope, workspace access, Docker mounts và tool policy đang có hiệu lực. Bạn cần kiểm tra các giá trị chính:
mode = allbackend = dockerscope = sessionworkspaceAccess = ro

Lệnh sandbox explain cho biết cấu hình sandbox thực sự đang có hiệu lực, kể cả các khoá cấu hình cần sửa (Fix-it), thay vì chỉ nhìn file cấu hình (OpenClaw: Sandboxing).
Bước 11: Kiểm tra Agent có bị giới hạn quyền hay chưa
Khi sandbox đã chạy, thử vài tác vụ đơn giản: yêu cầu agent đọc file trong workspace, rồi yêu cầu ghi vào workspace chính.
Với workspaceAccess: “ro”: agent không được sửa trực tiếp workspace chính.
Tiếp tục thử một tác vụ cần truy cập mạng. Với network: “none”: tiến trình trong sandbox Docker không có kết nối ra ngoài.
Bước 12: Chạy kiểm tra bảo mật OpenClaw
Sau khi hoàn thành, chạy:
openclaw security audit
Kiểm tra sâu hơn:
openclaw security audit --deep
OpenClaw khuyên chạy security audit sau khi đổi cấu hình hoặc trước khi mở thêm bề mặt truy cập mạng. Chế độ --deep kiểm tra thêm Gateway đang chạy cùng Plugin và Skill liên quan.
Cuối cùng kiểm tra lại bằng openclaw sandbox explain và openclaw sandbox list. Nếu thông tin đều đúng, việc cách ly sandbox cho OpenClaw trên VPS đã xong.
Những sai lầm thường gặp khi cách ly Sandbox cho AI Agent trên VPS
Sai lầm hay gặp là nghĩ chạy Docker là đủ an toàn, trong khi agent vẫn được cấp quá nhiều quyền đọc ghi, mạng và công cụ. Khi thiết lập sandbox cho OpenClaw hay agent tương tự, tránh các lỗi sau:
- Chỉ chạy Docker rồi cho là đã an toàn: Docker cách ly ứng dụng, nhưng vẫn cần kết hợp tool policy, tường lửa, quyền file và sandbox.
- Cấp quyền đọc/ghi quá rộng: không cho agent truy cập toàn bộ /root, /home hay thư mục hệ thống.
- Cho ghi workspace khi không cần: agent chỉ cần đọc thì dùng workspaceAccess: “ro”.
- Mở Internet cho mọi agent: tác vụ không cần mạng thì giữ network: “none”.
- Không giới hạn CPU và RAM: một tác vụ lỗi có thể chiếm hết tài nguyên VPS.
- Cấp quá nhiều công cụ: agent không cần chạy lệnh thì không cấp exec.
- Lưu API Key hoặc SSH Key trong workspace: thông tin nhạy cảm cần quản lý riêng.
- Mount Docker socket vào sandbox: rủi ro cao vì agent có thể điều khiển Docker trên máy chủ.
- Đổi cấu hình mà không tạo lại sandbox: container cũ vẫn dùng thiết lập trước đó.
- Không kiểm tra sau khi cấu hình: dùng openclaw sandbox explain và openclaw security audit –deep để xác nhận.
Sandbox có bảo vệ AI Agent hoàn toàn không?
Không. Tài liệu OpenClaw nói rõ sandbox không phải ranh giới bảo mật kín kẽ, nó chỉ giới hạn đáng kể quyền truy cập file và tiến trình khi mô hình làm sai. Sandbox là một lớp trong hệ thống bảo vệ. Để bảo vệ AI Agent trên VPS tốt hơn, nên kết hợp:
- Xác thực OpenClaw Gateway.
- Giới hạn người được phép nhắn tin với agent.
- Chỉ cấp công cụ thực sự cần.
- Dùng sandbox cho thao tác rủi ro.
- Giới hạn quyền đọc ghi file.
- Giới hạn kết nối Internet.
- Giới hạn CPU, RAM và số tiến trình.
- Không lưu credential ở chỗ agent đọc được dễ dàng.
- Cập nhật OpenClaw và Docker thường xuyên.
- Kiểm tra log và chạy security audit định kỳ.
Hiểu đơn giản: sandbox giảm phạm vi thiệt hại nếu AI Agent làm sai, nhưng không thay được các biện pháp bảo mật khác. Lớp mạng có thể bổ sung bằng Tailscale cho VPS chạy AI Agent, lớp hệ điều hành theo bảo mật VPS Ubuntu.
Kinh nghiệm bảo mật AI Agent trên VPS
Kinh nghiệm cốt lõi khi chạy OpenClaw trên VPS là bắt đầu với ít quyền rồi mở dần. Các nguyên tắc cụ thể:
- Bắt đầu với ít quyền rồi mở thêm khi cần.
- Ưu tiên workspaceAccess: “none” nếu agent không cần workspace chính.
- Dùng workspaceAccess: “ro” nếu agent chỉ cần đọc.
- Chỉ dùng workspaceAccess: “rw” khi agent thật sự cần sửa file.
- Giữ network: “none” nếu tác vụ không cần Internet.
- Dùng scope: “agent” hoặc “session” thay vì chia sẻ một sandbox cho nhiều phiên.
- Không cấp exec nếu agent không cần chạy lệnh Linux.
- Không cho agent tiếp cận SSH Key hoặc file .env.
- Đặt giới hạn CPU, RAM và process cho container.
Agent cần trình duyệt thì có thể tách trình duyệt ra container riêng như hướng dẫn triển khai Browserless trên VPS cho OpenClaw.
Khi nào nên bật Sandbox cho OpenClaw?
Nên bật sandbox khi OpenClaw được cấp các khả năng như:
- Chạy câu lệnh Linux.
- Đọc file trên VPS.
- Sửa hoặc tạo file.
- Viết và chạy code.
- Dùng trình duyệt.
- Truy cập website hoặc API bên ngoài.
- Dùng Skill hoặc Plugin.
- Xử lý file người dùng gửi.
- Phục vụ nhiều người dùng.
- Chạy tự động 24/7.
- Làm tác vụ mà không cần xác nhận từng bước.
Nếu OpenClaw chỉ dùng để trò chuyện và không được cấp công cụ tác động đến hệ thống, nhu cầu sandbox thấp hơn.
Kết luận
Cách ly sandbox là lớp nên có cho mọi AI Agent được chạy lệnh, đọc ghi file hay dùng trình duyệt trên VPS. Bắt đầu từ cấu hình tối giản như trên (mạng tắt, workspace chỉ đọc, giới hạn tài nguyên), kiểm tra bằng sandbox explain, rồi mở quyền dần theo nhu cầu thực tế.
Cần VPS để chạy OpenClaw với sandbox Docker? VPS OpenClaw của Tino có sẵn môi trường OpenClaw, bạn vẫn có quyền root để cài Docker và cấu hình sandbox như trên. Cấu hình và giá xem trên trang sản phẩm.
Những câu hỏi thường gặp
Làm sao kiểm tra Sandbox đang áp dụng đúng chính sách bảo mật đã cấu hình?
Dùng lệnh openclaw sandbox explain để xem phạm vi cách ly, quyền truy cập workspace và chính sách công cụ đang có hiệu lực. Sau mỗi lần đổi cấu hình, chạy openclaw sandbox recreate --all vì thay đổi không tự áp lên container đang chạy.
Nên chọn backend Sandbox nào cho OpenClaw: Docker, SSH hay OpenShell?
Cá nhân và nhóm nhỏ chạy trên một VPS nên dùng Docker, là backend mặc định và dễ duy trì. SSH hợp khi muốn đẩy phần thực thi công cụ sang một máy khác. OpenShell là backend sandbox được quản lý bằng CLI openshell, hợp khi cần sandbox cục bộ hoặc trên hạ tầng riêng do OpenShell điều phối.
Sandbox có ngăn chặn hoàn toàn tấn công prompt injection không?
Không. Prompt injection nhắm vào cách mô hình hiểu văn bản đầu vào, nên sandbox không loại bỏ được. Sandbox giới hạn hậu quả nếu tấn công thành công, bằng cách giữ lệnh độc hại trong môi trường cách ly thay vì ảnh hưởng toàn bộ VPS.
OpenClaw Sandbox có được bật mặc định không?
Không. Theo tài liệu OpenClaw, agents.defaults.sandbox.mode mặc định là off. Quản trị viên cần bật sandbox nếu muốn áp dụng cho agent.
OpenClaw Sandbox có Internet không?
Sandbox Docker mặc định dùng network: "none", tức không có kết nối ra ngoài. Nếu công việc cần Internet, có thể chuyển sang bridge hoặc mạng phù hợp sau khi cân nhắc rủi ro; network: "host" bị chặn.
