Cài đặt OpenClaw an toàn (Cách duy nhất bạn nên thực hiện)

Tại sao 135.000 người lại mắc sai lầm này?

🔄 Tóm tắt nhanh: Trong bài học trước, chúng ta đã đề cập rằng hơn 135.000 phiên bản OpenClaw đang bị phơi bày ra Internet. Đó không phải là rủi ro lý thuyết - mà là do cách thức hoạt động của cài đặt mặc định.

Đây là nguyên nhân gây ra vấn đề: Thiết lập mặc định của OpenClaw liên kết với 0.0.0.0:18789. Nói một cách đơn giản, điều đó có nghĩa là "cho phép bất kỳ ai trên bất kỳ mạng nào kết nối với bạn". Mọi người đã làm theo hướng dẫn nhanh, không thay đổi cài đặt này và vô tình khiến AI agent của họ - cùng với email, lịch và file của họ - có thể truy cập được bởi toàn bộ Internet.

Bài học này tồn tại để bạn không trở thành người thứ 135.001.

Sau khi hoàn thành bài học này, bạn sẽ có thể:

  • Cài đặt Docker trên máy tính của bạn
  • Chạy OpenClaw bên trong một container Docker an toàn
  • Áp dụng các biện pháp tăng cường bảo mật để chặn những vectơ tấn công phổ biến nhất

Docker là gì? (Phiên bản 60 giây)

Hãy tưởng tượng bạn đang cho thuê một phòng trong nhà mình. Bạn có hai lựa chọn:

Lựa chọn A: Ra vào tự do. Người thuê có thể tự do vào phòng ngủ của bạn, mở két sắt, đọc thư và sử dụng thẻ tín dụng của bạn. Đó là cài đặt OpenClaw trực tiếp lên máy tính của bạn.

Lựa chọn B: Một căn hộ khép kín. Người thuê ở trong phòng của họ. Họ có lối vào riêng, tiện ích riêng và không thể tiếp cận phần còn lại của ngôi nhà. Nếu họ làm bẩn, bạn có thể phá bỏ căn hộ và xây dựng lại trong vài phút. Đó là Docker.

Docker tạo ra một container - một môi trường khép kín, biệt lập chạy trên máy tính nhưng không thể truy cập vào các file cá nhân, mật khẩu hoặc những ứng dụng khác của bạn. Nếu OpenClaw bị xâm nhập bên trong Docker, kẻ tấn công sẽ bị mắc kẹt trong container.

Liệu nó có hoàn hảo không? Câu trả lời là không. Lỗ hổng bảo mật CVE-2026-24763 cho thấy một kẻ tấn công tinh vi có thể thoát khỏi Docker thông qua việc thao tác biến môi trường PATH. Nhưng Docker đã nâng tầm tiêu chuẩn lên một cách đáng kể - giống như sự khác biệt giữa việc để cửa trước nhà mở và việc khóa cửa bằng chốt an toàn. Ai đó có thể phá khóa, nhưng hầu hết các mối đe dọa đều bị ngăn chặn.

Kiểm tra nhanh: Trong ví dụ về căn hộ, "phá dỡ căn hộ và xây dựng lại trong vài phút" tượng trưng cho điều gì?

Đáp án: Xóa và tạo lại container Docker - xóa sạch mọi nguy cơ bị xâm phạm và bắt đầu lại từ đầu.

Bước 1: Cài đặt Docker

Trên máy Mac:

  1. Truy cập docker.com và tải xuống Docker Desktop cho Mac
  2. Mở file đã tải xuống và kéo Docker vào thư mục Applications của bạn
  3. Khởi chạy Docker Desktop từ Applications
  4. Chờ biểu tượng cá voi xuất hiện trên thanh menu của bạn - điều đó có nghĩa là Docker đang chạy

Trên Windows:

  1. Truy cập docker.com và tải xuống Docker Desktop cho Windows
  2. Chạy trình cài đặt (bạn có thể cần bật "WSL 2" - trình cài đặt sẽ hướng dẫn bạn)
  3. Khởi động lại máy tính của bạn khi được nhắc
  4. Khởi chạy Docker Desktop

Trên Linux:

Làm theo hướng dẫn cài đặt Docker chính thức cho bản phân phối của bạn tại docs.docker.com.

Cách xác minh Docker hoạt động:

Mở Terminal (Mac/Linux) hoặc Command Prompt (Windows) và gõ:

docker --version

Bạn sẽ thấy thông tin tương tự như Docker version 27.x.x. Nếu bạn nhận được lỗi, nghĩa là Docker chưa chạy.

Bước 2: Cài đặt OpenClaw trong Docker (cách an toàn)

OpenClaw cung cấp một tập lệnh thiết lập Docker. Đây là cách tiếp cận an toàn:

# 1. Tạo thư mục cho OpenClaw
mkdir ~/openclaw && cd ~/openclaw

# 2. Tải xuống file Docker Compose
curl -fsSL https://openclaw.ai/docker-compose.yml -o docker-compose.yml

Trước khi chạy bất cứ thứ gì, hãy đọc phần tiếp theo. Cấu hình mặc định không đủ an toàn.

Ghi chú phiên bản (tháng 3 năm 2026): Phiên bản mới nhất là v2026.3.13, đã thêm chế độ đính kèm Chrome DevTools. Phiên bản v2026.3.7 là bản cập nhật lớn nhất từ ​​trước đến nay (89 commit), giới thiệu plugin ContextEngine. Nếu bạn đang nâng cấp, hãy lưu ý rằng v2026.3.2 đã thêm hệ thống SecretRef (64 mục tiêu xác thực cho Docker/K8s) và loại bỏ auth: none khỏi cấu hình gateway - đây là một thay đổi gây ảnh hưởng nếu bạn dựa vào truy cập không được xác thực.

Bước 3: Tăng cường bảo mật (Quan trọng)

Đây là nơi hầu hết các hướng dẫn dừng lại, khiến hầu hết mọi người bị tấn công. Chúng ta sẽ áp dụng 5 lớp bảo mật:

Lớp 1: Chỉ liên kết với Localhost

Mở file docker-compose.yml của bạn và tìm phần ports. Thay đổi:

# MẶC ĐỊNH NGUY HIỂM:
ports:
- "0.0.0.0:18789:18789"

# AN TOÀN:
ports:
- "127.0.0.1:18789:18789"

Thay đổi này có nghĩa là OpenClaw chỉ chấp nhận kết nối từ máy tính của bạn - chứ không phải từ Internet.

Lớp 2: Chạy với quyền người dùng không phải root

Image Docker chính thức đã chạy với quyền người dùng node không phải root. Hãy xác minh điều này trong file compose của bạn:

user: "node"

Nếu ghi là root hoặc không chỉ định người dùng, hãy thêm dòng trên.

Lớp 3: Loại bỏ tất cả các quyền hạn

Thêm các flag bảo mật này vào định nghĩa container:

security_opt:
  - no-new-privileges:true
cap_drop:
  - ALL

Chức năng của các lệnh này: `cap_drop: ALL` loại bỏ mọi đặc quyền hệ thống đặc biệt. `no-new-privileges` ngăn không cho container có thêm bất kỳ đặc quyền mới nào. Cả hai lệnh này cùng nhau có nghĩa là container chỉ có thể thực hiện các thao tác cơ bản, không nguy hiểm.

Lớp 4: Hệ thống file chỉ đọc

read_only: true
tmpfs:
  - /tmp:rw,noexec,nosuid,size=64M

Điều này khiến hệ thống file của container chỉ có thể đọc - nó không thể tạo file mới hoặc sửa đổi file hiện có ngoại trừ trong một thư mục tạm thời nhỏ, bị hạn chế. Ngay cả khi kẻ tấn công xâm nhập được, chúng cũng không thể cài đặt phần mềm độc hại.

Lớp 5: Thiết lập Gateway Token mạnh

Trong quá trình thiết lập, OpenClaw tạo ra một gateway token (lưu ý: kể từ phiên bản v2026.3.2, auth: none đã bị xóa - xác thực hiện là bắt buộc). Đây là mật khẩu của bạn. Hãy đặt mật khẩu mạnh:

  • Sử dụng trình tạo mật khẩu ngẫu nhiên (ít nhất 32 ký tự)
  • Không bao giờ chia sẻ mật khẩu
  • Không sử dụng cùng một mật khẩu bạn sử dụng ở nơi khác

Kiểm tra nhanh: Lớp bảo mật nào trong 5 lớp ngăn OpenClaw truy cập được qua Internet?

Đáp án: Lớp 1 - liên kết với 127.0.0.1 thay vì 0.0.0.0.

Bước 4: Chạy trình hướng dẫn thiết lập

Bây giờ, hãy khởi động container và chạy setup:

# Khởi động container
docker compose up -d

# Chạy trình hướng dẫn thiết lập
docker exec -it openclaw openclaw onboard --install-daemon

Trình hướng dẫn sẽ:

  1. Yêu cầu bạn chọn nhà cung cấp AI (Claude, GPT, DeepSeek)
  2. Yêu cầu API key của bạn từ nhà cung cấp đó
  3. Tạo gateway token
  4. Thiết lập giao diện điều khiển tại http://127.0.0.1:18789/

Lưu ý quan trọng: Khi được hỏi về các kênh nhắn tin, hãy bỏ qua bước này. Chúng ta sẽ thiết lập chúng trong bài học 4 sau khi xác nhận mọi thứ hoạt động.

File docker-compose.yml được tăng cường bảo mật hoàn chỉnh

Đây là file cuối cùng của bạn (với tất cả 5 lớp bảo mật):

version: '3.8'
services:
  openclaw:
    image: openclaw/openclaw:latest
    container_name: openclaw
    user: "node"
    ports:
      - "127.0.0.1:18789:18789"
    volumes:
      - openclaw-data:/app/data
    environment:
      - NODE_ENV=production
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    read_only: true
    tmpfs:
      - /tmp:rw,noexec,nosuid,size=64M
    restart: unless-stopped

volumes:
  openclaw-data:

Những điều chúng ta KHÔNG nên làm (và lý do)

Bạn có thể nhận thấy chúng ta không cài đặt OpenClaw bằng dòng lệnh đơn giản từ trang web:

# KHÔNG NÊN LÀM THẾ NÀY:
curl -fsSL https://openclaw.ai/install.sh | bash

Lệnh đó cài đặt OpenClaw trực tiếp trên máy tính của bạn mà không cần Docker. Nó cho phép OpenClaw toàn quyền truy cập vào các file, mật khẩu, email và mọi thứ khác của bạn. Bạn còn nhớ ví dụ về căn hộ chứ? Đây là phương án A - người thuê nhà đi khắp nhà bạn.

Simon Willison, nhà nghiên cứu bảo mật đã đặt ra thuật ngữ "prompt injection", đã nói rõ: "Tôi không đủ can đảm để chạy OpenClaw trực tiếp trên máy Mac của mình".

Hãy làm theo lời khuyên của ông ấy. Chỉ sử dụng Docker.

Mọi việc sẽ ra sao nếu có sự cố xảy ra?

Container không khởi động được: Chạy lệnh `docker logs openclaw` để xem thông báo lỗi. Hầu hết các sự cố là do API key không chính xác hoặc xung đột cổng.

Không thể truy cập bảng điều khiển: Hãy đảm bảo Docker đang chạy (kiểm tra biểu tượng cá voi) và truy cập http://127.0.0.1:18789/ - không phải localhost, vì nó có thể được phân giải khác nhau trên một số hệ thống.

Cần bắt đầu lại từ đầu: Đó là vẻ đẹp của Docker. Chỉ cần chạy lệnh:

docker compose down -v
docker compose up -d

Thao tác này sẽ phá hủy container hiện có và tạo ra một container mới. Giống như việc phá dỡ một căn hộ và xây dựng một căn hộ mới chỉ trong 30 giây.

Những điểm chính cần ghi nhớ

  • Luôn sử dụng Docker - không bao giờ cài đặt OpenClaw trực tiếp trên máy tính của bạn
  • Kết nối với 127.0.0.1 - thay đổi bảo mật quan trọng nhất (ngăn chặn việc bị lộ thông tin ra internet)
  • Áp dụng cả 5 lớp bảo mật: kết nối với localhost, người dùng không phải root, hạn chế quyền truy cập, hệ thống file chỉ đọc, gateway token mạnh
  • Bỏ qua trình cài đặt một dòng - nó cho phép OpenClaw truy cập không hạn chế vào toàn bộ hệ thống của bạn
  • Docker không hoàn hảo nhưng nó nâng cao mức độ bảo mật từ "cửa trước mở toang" lên "cửa khóa chặt có chốt an toàn"
  • Câu 1:

    Cài đặt OpenClaw mặc định liên kết với 0.0.0.0:18789. Tại sao điều này lại nguy hiểm?

    GIẢI THÍCH:

    Việc liên kết với 0.0.0.0 có nghĩa là 'lắng nghe trên tất cả các interface mạng' - bao gồm cả Internet công cộng. SecurityScorecard đã tìm thấy hơn 135.000 trường hợp bị lộ do cài đặt mặc định này. Bạn phải giới hạn nó ở 127.0.0.1 (chỉ localhost).

  • Câu 2:

    Flag '--cap-drop=ALL' trong thiết lập Docker có tác dụng gì?

    GIẢI THÍCH:

    Flag --cap-drop=ALL loại bỏ mọi đặc quyền hệ điều hành đặc biệt khỏi container. Nó giống như việc loại bỏ tất cả các chìa khóa chính khỏi một căn phòng - người ở trong phòng chỉ có thể thực hiện những thao tác cơ bản, không thể làm gì yêu cầu quyền truy cập nâng cao.

  • Câu 3:

    Tại sao bạn nên cài đặt OpenClaw trong Docker thay vì cài đặt trực tiếp trên máy tính của mình?

    GIẢI THÍCH:

    Docker cô lập OpenClaw trong một container - giống như chạy nó trong một phòng riêng biệt. Nếu có sự cố xảy ra, thiệt hại sẽ nằm trong container và không thể lan sang các file cá nhân, mật khẩu hoặc các ứng dụng khác của bạn.

Thứ Tư, 15/04/2026 08:57
51 👨
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo