📘 Tài liệu

Hướng dẫn sử dụng
NgocNguyen WP Manager

Toàn bộ tài liệu từ cài đặt, cấu hình, bảo mật đến xử lý sự cố — dành cho cả Dashboard và Client.

Dashboard v2.8.0 • Client v1.6.0 • Cập nhật 08/10/2026

1. Tổng quan

NgocNguyen WP Manager là bộ 2 plugin giúp bạn quản lý tập trung nhiều website WordPress từ một nơi duy nhất: xem tình trạng, cập nhật core/plugin/theme, khoá việc update/sửa file, và theo dõi các tài khoản admin để phát hiện sớm dấu hiệu bị hack.

PluginCài ở đâuVai trò
NgocNguyen WP Manager
Dashboard
1 site quản trị của bạn Giao diện điều khiển: danh sách site, nút Check/Update, khoá update, cảnh báo
NgocNguyen WP Manager for Client
Client / Agent
Mỗi site khách cần quản lý Nhận lệnh từ Dashboard, trả thông tin và thực hiện update
💡 Luồng hoạt động: Dashboard gọi qua REST API tới Client trên từng site. Mỗi lệnh được ký bằng chữ ký HMAC nên chỉ Dashboard có Secret Key mới ra lệnh được.

Bạn có thể làm gì với bộ plugin này

  • Xem phiên bản WordPress, số plugin/theme chờ update, trạng thái online/offline của tất cả site.
  • Update core, plugin, theme cho từng site hoặc hàng loạt (chọn riêng từng loại).
  • Bật/tắt khoá chặn update, cài đặt và sửa file ngay trên site khách bằng một cái toggle.
  • Xem danh sách tài khoản admin của từng site, cảnh báo admin mới.
  • Tự động check tất cả site mỗi ngày, hiện số site cần xử lý ngay trên menu.

2. Cách bảo mật hoạt động

Hiểu phần này giúp bạn dùng đúng và xử lý sự cố nhanh hơn.

  • Site ID — mã định danh (UUID) của mỗi site khách. Không bí mật, nhưng cần khớp khi kết nối.
  • Secret Key — chuỗi 64 ký tự hex dùng để ký lệnh. Đây là thứ quan trọng nhất, giữ kín.
  • Chữ ký HMAC-SHA256 — mỗi request kèm Site ID, timestamp và chữ ký. Client chỉ chấp nhận khi chữ ký đúng và timestamp lệch không quá 5 phút.
  • Danh sách IP/tên miền cho phép — Client chỉ nhận lệnh từ các địa chỉ bạn khai báo.
  • Secret được mã hoá (AES-256) khi lưu trong database, cả ở Dashboard lẫn Client. Ở Client, secret chỉ hiện một lần lúc tạo.
  • Chủ sở hữu (owner) — trên mỗi site khách, chỉ 1 tài khoản admin được thấy, cấu hình, tắt hoặc xoá plugin Client.

3. Yêu cầu

  • WordPress 5.9 trở lên (khuyến nghị bản mới), PHP có extension openssl.
  • Site khách phải gọi được REST API (/wp-json/) và cho phép PHP ghi file (để update được).
  • Dashboard phải truy cập được các site khách qua HTTPS.

4. Cài đặt và kết nối site đầu tiên

Bước 1 — Cài Dashboard

Vào Plugins → Cài mới → Tải plugin lên, chọn file ngocnguyen-wp-manager-vXX.zip rồi Kích hoạt. Menu NgocNguyen WP Manager xuất hiện ở sidebar.

Bước 2 — Cài Client trên site khách

Cài file ngocnguyen-wp-manager-for-client-vXX.zip và kích hoạt bằng chính tài khoản admin bạn muốn làm chủ sở hữu (tài khoản kích hoạt sẽ tự thành chủ sở hữu).

Bước 3 — Lấy thông tin kết nối

Trên site khách vào Cài đặt → NgocNguyen WP Manager:

  1. Sao chép Site ID ở mục 1.
  2. Ở mục 2 bấm Tạo Secret Key và sao chép ngay (chỉ hiện một lần, tối đa 5 phút).
  3. Ở mục 3 nhập IP hoặc tên miền của site Dashboard rồi bấm Lưu danh sách.

Bước 4 — Thêm site vào Dashboard

Bấm Thêm site và điền: Tên site, URL (dạng https://example.com), Site ID, Secret Key. Có thể bấm nút kiểm tra để xem Client đã sẵn sàng chưa. Dashboard sẽ thử kết nối trước khi lưu; thành công thì site hiện ngay trong bảng.

Bước 5 — Khoá bảo mật

Vào Plugins trên site khách kiểm tra mọi thứ ổn, rồi cân nhắc bật khoá update (xem mục 7).

⚠️ Lưu ý: Nếu bạn đổi Secret Key trên site khách, Dashboard sẽ mất kết nối với site đó. Hãy xoá site khỏi Dashboard và thêm lại với key mới.

5. Plugin Client — trang Cài đặt

Trang nằm ở Cài đặt → NgocNguyen WP Manager (chỉ chủ sở hữu mới thấy).

Chủ sở hữu

  • Site mới cài: người kích hoạt plugin là chủ sở hữu. Site cài từ bản cũ chưa có chủ thì trang hiện nút Tôi là chủ sở hữu, hãy bấm ngay, kẻo admin khác bấm trước.
  • Admin khác không thấy menu, không thấy plugin trong danh sách Plugins, Site Health hay REST, và bị chặn bật, tắt, xoá plugin này (kể cả gửi request tay).
  • Bỏ quyền chủ sở hữu để trả site về trạng thái chưa có chủ (nhớ nhận quyền lại ngay).
  • Nếu tài khoản chủ sở hữu bị xoá, site tự quay về trạng thái chưa có chủ.

Mục 1 — Site ID

Mã định danh của site, sao chép để dán vào Dashboard.

Mục 2 — Secret Key

  • Tạo Secret Key: sinh key mới, hiển thị một lần duy nhất rồi chỉ còn hiện dấu chấm.
  • Tạo lại Secret Key: huỷ key cũ, Dashboard mất kết nối đến khi bạn thêm lại site với key mới.
  • Có thể đặt secret cố định trong wp-config.php thay vì database (an toàn hơn): define('BWM_SECRET', 'chuoi-hex-64-ky-tu'); — khi đó nút tạo key bị ẩn.

Mục 3 — Danh sách cho phép (IP / tên miền)

  • Mỗi dòng một mục (hoặc ngăn cách bằng dấu phẩy). Nhập được IP hoặc tên miền; tên miền được phân giải sang IP (lưu đệm 5 phút).
  • Để trống nghĩa là cho phép mọi nơi gửi lệnh (không khuyến nghị).
  • Dùng tên miền trỏ đúng tới server Dashboard và không đặt sau Cloudflare/proxy, nếu không IP sẽ không khớp và bạn nhận lỗi "IP không được phép".

Mục 4 — Khoá Agent

Xoá Secret Key. Dashboard mất kết nối hoàn toàn cho tới khi bạn tạo lại key. Dùng khi cần ngắt kết nối khẩn cấp (nghi ngờ lộ key).

Cấu hình qua wp-config.php (tuỳ chọn)

Hằng sốTác dụng
BWM_SECRETĐặt secret cố định ngoài database
BWM_OWNER_IDCố định ID chủ sở hữu, không ai đổi được qua giao diện

Nên thêm define('DISALLOW_FILE_EDIT', true); để tắt trình sửa file của WordPress.

6. Dashboard — các phần của giao diện

Bốn ô thống kê

  • Tổng số site, Đang online, Offline, Bản cập nhật chờ (tổng số core + plugin + theme đang chờ update trên mọi site).
  • Các số này luôn tính trên toàn bộ site, kể cả khi bạn đang xem trang khác.

Bảng danh sách site

CộtÝ nghĩa
SiteTên và domain.
Admin UserCác tài khoản có quyền quản trị (xem mục 8).
WPPhiên bản WordPress.
Core"Mới nhất" hoặc phiên bản mới đang chờ.
Plugins / Themes"Mới nhất" hoặc huy hiệu số lượng chờ update. Bấm huy hiệu để chỉ update loại đó trên site này.
Khoá updateToggle chặn update/sửa file (mục 7).
Trạng tháiONLINE / OFFLINE.
Check cuốiLần check gần nhất (tay hoặc tự động).
Hành độngCheck, Update All, Xoá.

Nút trên mỗi dòng

  • Check: hỏi lại Client để làm mới dữ liệu của site đó.
  • Update All: update plugin, theme rồi core trên site đó, sau đó tự check lại. Lỗi (nếu có) hiện ở thông báo màu đỏ, kèm tên plugin lỗi.
  • Xoá: chỉ xoá site khỏi Dashboard, không ảnh hưởng gì tới site khách (plugin Client vẫn còn).

Nút phía trên

  • Check tất cả: check toàn bộ site ở mọi trang (tối đa 5 site chạy song song).
  • Thêm site: mở form kết nối site mới.

Thanh thao tác hàng loạt (đáy trang)

  1. Tick các site cần xử lý (ô tiêu đề bảng chọn mọi site trong trang hiện tại).
  2. Bấm Check để làm mới các site đã chọn.
  3. Chọn loại update bằng 3 ô bật/tắt Core / Plugins / Themes (mặc định bật cả ba, lựa chọn được nhớ), rồi bấm Update. Hộp xác nhận ghi rõ loại và số site. Nếu bỏ hết 3 ô thì nút Update bị khoá.

Phân trang

Mỗi trang hiện 50 site. Thanh phân trang xuất hiện ở đáy bảng khi có hơn 50 site. Chuyển trang sẽ bỏ các ô đã tick.

Bong bóng đỏ trên menu

Số đỏ cạnh tên menu là số site cần xử lý. Một site được tính nếu: đang offline, hoặc có bản cập nhật chờ, hoặc có tài khoản admin tạo trong 7 ngày gần đây. Số tự cập nhật sau mỗi lần Check/Update.

Tự động check mỗi ngày

Dashboard đặt lịch WP-Cron để check mọi site 1 lần/ngày (mỗi site chờ tối đa 45 giây). WP-Cron chỉ chạy khi site Dashboard có truy cập; để chạy đúng giờ, thêm define('DISABLE_WP_CRON', true); vào wp-config.php và đặt cron thật trên hosting, ví dụ mỗi 15 phút:

curl -s https://domain-dashboard/wp-cron.php?doing_wp_cron

7. Khoá update và sửa file

Toggle ở cột Khoá update bật/tắt tính năng chặn ngay trên site khách (mỗi lần bấm có hộp xác nhận). Khi Đã khoá, plugin Client chặn tương đương 3 hằng số trong wp-config.php:

Tương đươngTác dụng
DISALLOW_FILE_MODSChặn cài, update, xoá plugin/theme/core từ trang quản trị và request tay
AUTOMATIC_UPDATER_DISABLEDTắt mọi auto update (core, plugin, theme, bản dịch)
DISALLOW_FILE_EDITTắt trình sửa file plugin/theme
⚠️ Lưu ý quan trọng:
  • Update từ Dashboard vẫn chạy được trên site đang khoá (khoá chỉ chặn admin trên site và auto update). Dashboard là đường update duy nhất được phép.
  • Nhãn "+ wp-config" nghĩa là site còn bị khoá bằng hằng số trong wp-config.php; toggle không gỡ được phần đó.
  • Nhãn "Update bị khoá" trong cột Site là tình huống khác: Client không ghi được file (do DISALLOW_FILE_MODS/AUTOMATIC_UPDATER_DISABLED trong wp-config.php hoặc quyền thư mục), nên update từ Dashboard cũng sẽ lỗi.
  • Dấu "---" ở cột này: site đang chạy Client bản cũ, hãy cập nhật Client.
  • Mặc định là Mở cho mọi site.

Khoá nằm trong plugin Client nên mạnh hơn hết là kết hợp thêm hằng số trong wp-config.php làm lớp chính.

8. Theo dõi admin user và phát hiện bị hack

Cột Admin User liệt kê các tài khoản có quyền quản trị (manage_options, gồm cả role tuỳ chỉnh). Rê chuột vào từng tên để xem email, ngày tạo và ID.

Dấu hiệuÝ nghĩa
Chip xanh lá có ★Chủ sở hữu plugin Client trên site đó.
Chip đỏ "MỚI"Admin tạo trong 7 ngày gần đây, hãy kiểm tra ngay nếu bạn không tạo.
Chip vàng "chưa có chủ"Plugin Client chưa có chủ sở hữu: ai là admin cũng thấy và tắt được. Vào site nhận quyền ngay.
Chip "+N"Còn N admin chưa hiển thị (hiện tối đa 6; rê chuột xem tên).
💡 Cảnh báo khi Check: Dashboard so danh sách admin với lần check trước. Nếu có admin mới sẽ hiện thông báo đỏ "phát hiện admin MỚI" trong 20 giây; có admin bị xoá hoặc hạ quyền thì hiện thông báo xám. Lần check đầu tiên chỉ lưu mốc nên chưa so sánh được.
⚠️ Lưu ý: Ngày tạo tài khoản do site khách ghi nên có thể bị làm giả. Thông báo so sánh với lần check trước đáng tin hơn chip "MỚI".

9. Quy trình khuyến nghị

Hằng ngày

Nhìn bong bóng đỏ trên menu. Có số thì mở Dashboard, xử lý site offline, admin lạ, rồi update.

Khi update

  1. Bấm Check tất cả để có dữ liệu mới nhất.
  2. Update thử 1-2 site trước, mở site kiểm tra giao diện và chức năng chính.
  3. Tick các site còn lại, chọn Core/Plugins/Themes phù hợp, bấm Update.
  4. Site cần giữ ổn định thì giữ toggle ở trạng thái Đã khoá và chỉ update qua Dashboard.

Hằng tuần

Xem lại cột Admin User, chip "chưa có chủ" và các site offline lâu.

10. Khuyến nghị bảo mật

  • Bật 2FA và dùng mật khẩu mạnh cho tài khoản admin của site Dashboard. Hack được site này là ra lệnh được cho mọi site khách.
  • Giữ ít admin nhất có thể trên Dashboard và trên các site khách; nên giới hạn IP truy cập wp-admin.
  • Luôn điền danh sách IP/tên miền cho phép trên từng site khách.
  • Ưu tiên đặt BWM_SECRET, BWM_OWNER_ID và các hằng số khoá trong wp-config.php.
  • Không đổi salts/keys (AUTH_KEY, SECURE_AUTH_KEY...) của WordPress sau khi đã kết nối: secret được mã hoá bằng các khoá này, đổi đi sẽ không giải mã được và phải thêm lại site.
  • Chủ sở hữu có thể tắt plugin Client; admin khác có quyền FTP/database vẫn có thể phá được. WordPress không khoá tuyệt đối với admin.

11. Xử lý sự cố

Hiện tượng / thông báoNguyên nhân thường gặpCách xử lý
Site ID sai Dán nhầm Site ID, hoặc site khách bị đổi Site ID Lấy lại Site ID ở trang Cài đặt trên site khách
Chữ ký sai Secret Key sai hoặc đã bị tạo lại Xoá site và thêm lại với key mới
Timestamp hết hạn Giờ server Dashboard hoặc site khách lệch hơn 5 phút Đồng bộ giờ server
IP không được phép (403) IP Dashboard không có trong danh sách cho phép, hoặc Dashboard nằm sau Cloudflare/proxy Thêm IP/tên miền đúng của server Dashboard
Agent đã bị khoá (423) Đã bấm Khoá Agent nên không còn secret Tạo lại Secret Key rồi thêm lại site
OFFLINE Site chết, chặn REST API, plugin bảo mật chặn /wp-json/, SSL lỗi Mở thử https://site/wp-json/bwm/v1/ping; kiểm tra tường lửa/WAF
Số liệu không đổi sau update Cache (LiteSpeed...) lưu response cũ Client mới đã gửi header chống cache; thêm wp-json/bwm vào mục "Do Not Cache URIs" của plugin cache
Update lỗi một vài plugin Plugin premium cần license, hết dung lượng, quyền ghi file Đọc dòng lỗi ghi theo từng plugin ở thông báo đỏ
Cột Khoá update hiện "---" Site chạy Client bản cũ Cập nhật Client lên bản mới nhất
Không thấy Admin User Client bản cũ Cập nhật Client, bấm Check lại
Cần hỗ trợ thêm?

Nhắn Zalo để được giải đáp trực tiếp.

Chat Zalo →
Trợ Lý Sún