> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cystack.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Máy chủ biên

> Cài đặt, đăng ký và vận hành máy chủ biên (edge node) chạy CyStack WAF

**Máy chủ biên** (edge node) là thành phần thực thi của CyStack WAF. Đây là một tiến trình nhẹ tên `cywall` mà tổ chức tự cài trên server của mình. Node tiếp nhận lưu lượng thật từ Internet, chạy bộ máy WAF (OWASP CRS và luật tùy chỉnh), rồi chuyển tiếp các request hợp lệ tới máy chủ gốc.

Một node phục vụ **tất cả** website đã khai báo trong không gian làm việc. Tổ chức có thể chạy nhiều node để tăng tính sẵn sàng và phân tải theo khu vực địa lý; mỗi node nhận cùng một bộ cấu hình từ bảng điều khiển.

<img src="https://mintcdn.com/cystack/WNqxQZcBqN6sgQjq/images/vulnscan/waf/vi-nodes.png?fit=max&auto=format&n=WNqxQZcBqN6sgQjq&q=85&s=20ece6c9bfc245435665203399b55189" alt="Danh sách máy chủ biên" width="3024" height="2000" data-path="images/vulnscan/waf/vi-nodes.png" />

## Yêu cầu

* Một máy chủ Linux, macOS hoặc Windows có **địa chỉ IP công khai** và mở được cổng **80** và **443**.
* Khả năng kết nối ra ngoài để node đăng ký và giữ kênh điều khiển với bảng điều khiển.
* Quyền quản trị (root/Administrator) để cài dịch vụ và lắng nghe trên cổng đặc quyền.

<Note>
  Website chỉ có thể được phục vụ bởi node ở trạng thái **sẵn sàng** (online và truy cập được công khai trên cổng 80/443). Vì vậy cần cài và xác nhận ít nhất một node sẵn sàng trước khi thêm website.
</Note>

## Cài đặt node

Mở mục **WAF → Node** và chọn **Thêm node**. Cửa sổ hướng dẫn hiển thị lệnh tải và lệnh cài đặt theo hệ điều hành; chọn đúng nền tảng của server.

<img src="https://mintcdn.com/cystack/WNqxQZcBqN6sgQjq/images/vulnscan/waf/vi-node-install.png?fit=max&auto=format&n=WNqxQZcBqN6sgQjq&q=85&s=4259a80c1badc16326fc4f2349a6a62b" alt="Cửa sổ hướng dẫn cài đặt node" width="3024" height="2000" data-path="images/vulnscan/waf/vi-node-install.png" />

Quy trình gồm hai lệnh. **Tải binary** `cywall` về server:

```bash theme={null}
sudo curl -fsSL https://d.cystack.net/cywall/cywall-linux-amd64 -o /usr/local/bin/cywall
sudo chmod +x /usr/local/bin/cywall
```

**Cài đặt và khởi động** node bằng token đăng ký lấy từ cửa sổ hướng dẫn:

```bash theme={null}
sudo cywall install --token <token-đăng-ký>
```

Lệnh `install` đăng ký node với bảng điều khiển, đổi token đăng ký lấy token node lâu dài, cài dịch vụ nền và khởi động. Ngay sau khi kết nối, node nhận cấu hình ban đầu (danh sách website và luật) và bắt đầu phục vụ.

Trên macOS/Linux dùng `sudo`; trên Windows chạy lệnh tương ứng trong PowerShell với quyền Administrator.

## Trạng thái node

Sau khi cài, node tự báo cáo thông tin về bảng điều khiển và xuất hiện trong danh sách:

| Cột                      | Ý nghĩa                                                                                                   |
| ------------------------ | --------------------------------------------------------------------------------------------------------- |
| **Node**                 | Tên và địa chỉ IP công khai của máy chủ biên.                                                             |
| **Nền tảng**             | Hệ điều hành và kiến trúc (Linux/macOS/Windows, amd64/arm64).                                             |
| **Trạng thái**           | **Sẵn sàng hoạt động** khi node online và truy cập được trên cổng 80/443; ngược lại sẽ báo chưa sẵn sàng. |
| **Version**              | Phiên bản `cywall` đang chạy.                                                                             |
| **Lần kết nối gần nhất** | Thời điểm node gửi tín hiệu heartbeat gần nhất.                                                           |

Mở rộng một dòng để xem chi tiết: danh sách website node đang phục vụ, khả năng kết nối tới origin, tình trạng chứng chỉ TLS và các chỉ số hệ thống (CPU, bộ nhớ, dung lượng đĩa).

<Tip>
  Node gửi heartbeat định kỳ. Nếu trạng thái chuyển sang chưa sẵn sàng, hãy kiểm tra dịch vụ `cywall` còn chạy không, cổng 80/443 có bị tường lửa chặn không và IP công khai có đúng không.
</Tip>

## Token đăng ký

Token đăng ký dùng để gắn node mới vào không gian làm việc. Nếu nghi ngờ token bị lộ, chọn **Tạo lại token** trong mục Node. Token cũ sẽ mất hiệu lực với các lần đăng ký mới; các node đã đăng ký trước đó vẫn hoạt động bình thường bằng token node riêng của chúng.

## Nhiều node và tính sẵn sàng

Mọi website chạy trên mọi node, nên việc thêm node giúp tăng khả năng chịu tải và dự phòng:

* **Dự phòng**: nếu một node ngừng hoạt động, các node còn lại vẫn phục vụ lưu lượng (khi DNS trỏ tới nhiều IP).
* **Phân tải địa lý**: đặt node gần người dùng để giảm độ trễ.
* **Bảo trì không gián đoạn**: cập nhật lần lượt từng node mà không làm gián đoạn dịch vụ.

Cấu hình luật được phiên bản hóa tập trung; mỗi node báo cáo phiên bản đang áp dụng để bảng điều khiển phát hiện trường hợp lệch phiên bản.

## Môi trường không có IP công khai cho bảng điều khiển

Khi bảng điều khiển VulnScan nằm trong mạng nội bộ không có IP công khai, hệ thống hỗ trợ chế độ **relay**: bảng điều khiển chủ động kết nối ra ngoài tới relay của CyStack, và node kết nối tới relay đó. Toàn bộ kênh giữa bảng điều khiển và node được **mã hóa đầu cuối**; relay chỉ chuyển tiếp dữ liệu đã mã hóa mà không đọc được nội dung. Cấu hình relay được nhúng sẵn trong token cài đặt nên không cần thiết lập thêm.

## Gỡ node

Để gỡ một node, chọn hành động xóa trong danh sách. Bảng điều khiển đóng kết nối điều khiển với node đó. Nếu DNS của website đang trỏ tới IP của node bị gỡ, hãy cập nhật DNS sang node khác trước để tránh gián đoạn.

## Bảo mật vận hành

* Chạy `cywall` bằng tài khoản dịch vụ riêng, hạn chế quyền.
* Chỉ mở cổng 80/443 ra Internet; hạn chế các cổng quản trị khác.
* Theo dõi phiên bản và cập nhật `cywall` khi có bản mới.
* Bảo vệ token đăng ký như một bí mật; tạo lại token nếu nghi ngờ lộ.
