UniFi – Cấu hình nâng cao USG bằng config.gateway.json
- Tổng quát :
Bài viết này mô tả cách thực hiện các cấu hình nâng cao trên Cổng bảo mật UniFi (USG và USG-PRO-4 ) bằng tệp config.gateway.json . Bài viết này không áp dụng cho các mẫu máy UniFi Dream. Dòng UDM không hỗ trợ các cấu hình được thực hiện bên ngoài Bộ điều khiển UniFi. - Giới thiệu :
Các config.gateway.json là một tập tin đó nằm trong hệ thống tập tin Unifi Mạng điều khiển và cho phép thay đổi tùy chỉnh mà không phải là có sẵn trong giao diện web. Một số tùy chỉnh có thể sẽ là: định cấu hình VPN tại chỗ với tên máy chủ, chính sách định tuyến lưu lượng truy cập nhất định ra WAN2 hoặc thậm chí thêm nhiều địa chỉ IP trên giao diện. Các tính năng này chưa tồn tại trong GUI điều khiển mạng UniFi, vì vậy tệp config.gateway.json sẽ bổ sung các tính năng đó cho đến khi chúng có sẵn trong GUI. Khi thực hiện các tùy chỉnh thông qua tệp config.gateway.json , tốt nhất là chỉ nhập các tùy chỉnh không thể được thực hiện thông qua giao diện người dùng bộ điều khiển. Nếu định dạng không chính xác, vòng cung cấp sẽ được kích hoạt trên USG và quá trình khởi động lại sẽ diễn ra khi USG ra khỏi vòng cung cấp. Tại thời điểm này, tệp config.gateway.json có thể được sửa hoặc xóa để sửa lỗi này. - Tạo tệp config.gateway.json :
Theo mặc định, tệp config.gateway.json không tồn tại, nó phải được tạo để sử dụng nó.- Tạo một tệp mới bằng trình soạn thảo văn bản như TextEdit hoặc Notepad ++.
2. Cấu trúc của tệp .json cũng quan trọng như chính các từ. Vị trí không chính xác của dấu ngoặc, thụt lề, ngắt dòng hoặc bất kỳ thành phần cấu trúc nào khác sẽ làm cho tệp .json không hợp lệ. Bạn nên chạy văn bản thông qua trình xác nhận json để xác minh rằng nó có cú pháp đúng. Các JSON Formatter trang web là một ví dụ trong số rất nhiều tùy chọn của trình xác nhận json bạn sẽ tìm thấy trực tuyến.
3. Khi nội dung của tệp đã được xác thực, hãy lưu nó bằng cách đặt tên tệp config.gateway.json và đặt nó trong thư mục <unifi_base> / data / site / site_ID được lưu trữ trên bộ điều khiển. Vị trí <unifi_base> sẽ thay đổi từ hệ điều hành này sang hệ điều hành khác. Xem bài viết này để biết thêm thông tin. Các site_id có thể được nhìn thấy trong các URL của trình duyệt của bạn trên trang web Controller. Trang web ban đầu được đặt tên là mặc định, và mọi trang web được tạo sẽ được gán một chuỗi ngẫu nhiên. Ví dụ: đây là những gì sẽ thấy trong thanh URL khi bên trong trang bảng điều khiển của trang web:https://127.0.0.1:8443/manage/s/ceb1m27d/dashboard. Trong trường hợp trên, chuỗi ngẫu nhiên ceb1m27d là tên thư mục sẽ được sử dụng trong <unifi_base> / data / site / . Do đó, config.gateway.json nên được đặt bên trong <unifi_base> / data / site / ceb1m27d /.
- Tạo một tệp mới bằng trình soạn thảo văn bản như TextEdit hoặc Notepad ++.
- Chỉnh sửa tệp config.gateway.json :
Trước khi tùy chỉnh các quy tắc tường lửa hoặc NAT, hãy lưu ý các số quy tắc được sử dụng trong bộ điều khiển mạng UniFi trong Cài đặt > Định tuyến & Tường lửa > Tường lửa . Các quy tắc tường lửa mặc định bắt đầu từ 3001 hoặc 6001 và quy tắc NAT cũng sẽ bắt đầu từ 6001 (không trùng với quy tắc tường lửa). Các quy tắc tùy chỉnh được tạo trong config.gateway.json không thể có các số quy tắc trùng lặp với các quy tắc hiện có trong USG hoặc sẽ có một vòng lặp cung cấp. Nên đặt quy tắc tùy chỉnh trước quy tắc hiện có, vì số thấp hơn sẽ giành chiến thắng giữa hai quy tắc khớp.
Sau đây là một ví dụ về cách tạo quy tắc DNAT cho DNS được định cấu hình bằng định dạng EdgeOS:- Kết nối với USG thông qua SSH và ban hành các lệnh sau:

2. Tiếp theo là hiển thị cấu hình. Lệnh sau sẽ hiển thị toàn bộ cấu hình theo định dạng JSON:
mca-ctrl -t dump-cfg
Cấu hình cũng có thể được xuất nếu thích. Ví dụ sau đây xuất kết quả đầu ra config.txt:
mca-ctrl -t dump-cfg > config.txt
3. Tìm phần thích hợp với các thay đổi tùy chỉnh trong đầu ra cấu hình, ví dụ của chúng tôi ở trên sẽ là như sau:

4. Trên đây là quy tắc tùy chỉnh, nhưng nó thiếu tất cả các dấu ngoặc đóng (}) ở cuối để làm cho nó chính xác. Nếu bạn nhìn vào đầu ra cấu hình từ đầu, có một định dạng nhất định được yêu cầu để tệp được đọc chính xác. Mỗi nút trong một phần phải được phân tách bằng dấu phẩy (,) và phần đó phải bắt đầu bằng dấu ngoặc mở ({) và kết thúc bằng dấu đóng (}). Thực hiện theo các định dạng hiện có một cách cẩn thận. Nếu quy tắc trên là thay đổi duy nhất trong
config.gateway.json , bạn sẽ chỉnh sửa nó thành như sau:

5. Nếu có nhiều phần để thêm, giả sử Tường lửa, Dịch vụ, VPN, khung đóng cho phần đó sẽ được theo sau bởi dấu phẩy (},), trước khi bắt đầu phần tiếp theo. Bạn có thể xem các chi tiết định dạng trong ví dụ dưới đây.
Phạm vi # quy tắc DNAT là từ 1-4999 và số quy tắc Nguồn / Giả trang là từ 5000-9999. Nếu bạn muốn thêm một cổng chuyển tiếp (DNAT) trong config.gateway.json cho WAN2 trong thiết lập multiWAN (cân bằng tải), thì đây là giao diện của config.gateway.json chỉ với quy tắc NAT cụ thể này:

Và nếu chúng ta thêm VPN có tên máy chủ vào tệp, config.gateway.json sẽ trông giống như cái bên dưới. Lưu ý dấu ngoặc mở và đóng, cũng như dấu ngoặc có dấu phẩy trước khi bắt đầu với “vpn”phần:

Kiểm tra & Xác minh :
Bạn nên xác thực mã sau khi hoàn tất việc tạo tệp config.gateway.json . Có một số tùy chọn miễn phí ngoài kia, jsonlint.com được sử dụng bởi nhóm hỗ trợ Ubiquiti khá thường xuyên.
Sau khi thêm config.gateway.json vào trang web bộ điều khiển bạn chọn, bạn có thể kiểm tra nó bằng cách chạy “cung cấp lực lượng” cho USG trong Thiết bị điều khiển UniFi > USG > Cấu hình > Quản lý thiết bị > Cung cấp lực lượng . Việc này sẽ mất một chút thời gian để cung cấp (30 giây đến 3 phút) và nếu thời gian cung cấp lâu hơn thế, có thể có lỗi định dạng trong config.gateway.json và bạn đang gặp phải vòng lặp cung cấp đã được đề cập trước đó . Bạn có thể kiểm tra server.log trong bộ điều khiển và tìm kiếm commit error. Bạn thường có thể tìm thấy những gì đã sai với việc cung cấp cấu hình mới được tùy chỉnh trong các tệp nhật ký. Xóa các thay đổi hoặc hoàn nguyên về trạng thái trước đó.
Để xóa một cấu hình nâng cao nhất định, chỉ cần xóa phần thích hợp với cấu hình đó trong tệp config.gateway.json. Để xóa hoàn toàn tất cả các cấu hình nâng cao được tạo trong tệp config.gateway.json, hãy xóa tệp hoặc đổi tên tệp. Điều này sẽ làm mất hiệu lực tất cả các thay đổi thủ công. USG sẽ được cung cấp cấu hình hiện tại có trong Bộ điều khiển UniFi.
Cách tốt nhất khi chỉnh sửa tệp config.gateway.json đã hoạt động là tạo bản sao lưu. Nếu bạn cần thêm các thay đổi bổ sung vào tệp config.gateway.json, hãy đổi tên tệp hiện tại thành config.gateway.json.old, về cơ bản là tạo bản sao lưu và sao chép tất cả các thay đổi hiện có và mới vào một tệp mới có tên config.gateway .json. Theo cách này, nếu có bất kỳ sai sót nào dẫn đến lỗi “cam kết” hoặc vòng cung cấp, bạn có thể xóa config.gateway.json và thử lại bắt đầu từ config.gateway.json.old.