OCN Firewall User Guide¶
Chào mừng bạn đến với OCN Firewall! Tài liệu này là cẩm nang toàn diện giúp bạn hiểu rõ và sử dụng hiệu quả hệ thống tường lửa phân tán OCN Firewall để bảo vệ hạ tầng máy chủ của mình. Dù bạn là người mới bắt đầu hay đã có kinh nghiệm quản trị hệ thống, hướng dẫn này sẽ cung cấp các bước chi tiết, giải thích khái niệm và các mẹo hữu ích.
Đối tượng sử dụng:
Tài liệu này được thiết kế cho:
- Người dùng cuối cần quản lý và cấu hình tường lửa cho máy chủ.
- Quản trị viên hệ thống chịu trách nhiệm vận hành và duy trì bảo mật mạng.
- Bất kỳ ai muốn tìm hiểu cách hoạt động và sử dụng OCN Firewall thông qua giao diện dòng lệnh (CLI) hoặc giao diện web.
Những gì bạn cần:
- Tài khoản truy cập vào hệ thống OCN Firewall.
- Công cụ dòng lệnh
ocnfwctl
(nếu bạn sử dụng CLI) được cài đặt trên máy trạm của bạn. - Trình duyệt web hiện đại (nếu bạn sử dụng giao diện web).
- Quyền truy cập cần thiết đến các máy chủ mà bạn muốn quản lý tường lửa.
Nội dung chính:
- Giới thiệu về OCN Firewall
- Các Khái niệm Cốt lõi
- Bắt đầu Nhanh
- Sử dụng Giao diện Dòng lệnh (ocnfwctl)
- Quản lý Vùng (Zone)
- Quản lý Chính sách (Policy)
- Quản lý Quy tắc (Rule) Chi tiết
- Sử dụng Giao diện Web
- Giám sát và Khắc phục sự cố
- Các Thực hành Tốt nhất
1. Giới thiệu về OCN Firewall¶
OCN Firewall là một hệ thống quản lý tường lửa mạnh mẽ và linh hoạt, được thiết kế để giúp bạn kiểm soát luồng lưu lượng mạng đến và đi từ các máy chủ trong hạ tầng của mình một cách tập trung và hiệu quả. Thay vì phải cấu hình tường lửa riêng lẻ trên từng máy chủ, OCN Firewall cho phép bạn định nghĩa các chính sách bảo mật từ một nơi duy nhất và tự động áp dụng chúng trên quy mô lớn.
Lợi ích chính:
- Quản lý Tập trung: Định nghĩa và quản lý tất cả các quy tắc tường lửa từ một bảng điều khiển trung tâm (CLI hoặc Web UI).
- Tự động hóa: Dễ dàng triển khai và cập nhật chính sách trên hàng trăm, hàng nghìn máy chủ một cách tự động.
- Nhất quán: Đảm bảo các chính sách bảo mật được áp dụng đồng bộ và nhất quán trên toàn bộ hệ thống.
- Linh hoạt: Sử dụng các khái niệm như Vùng (Zone) và Bộ chọn (Selector) để tạo ra các chính sách mạnh mẽ và dễ bảo trì.
- Giám sát: Theo dõi trạng thái tường lửa, các kết nối mạng và xem nhật ký chi tiết để phân tích và xử lý sự cố.
2. Các Khái niệm Cốt lõi¶
Để sử dụng OCN Firewall hiệu quả, bạn cần nắm vững một số khái niệm cơ bản:
- Máy chủ (Server): Là các máy ảo hoặc máy chủ vật lý cần được bảo vệ bởi tường lửa. Mỗi máy chủ trong OCN Firewall thường được định danh bằng IP, hostname và có thể được gán các nhãn (labels) để phân loại (ví dụ:
app=web
,env=production
). - Nhãn (Label): Là các cặp khóa-giá trị (key-value) được gán cho máy chủ để phân loại và nhóm chúng (ví dụ:
role=database
,tier=backend
). - Bộ chọn (Selector): Là một biểu thức logic sử dụng các nhãn để xác định một nhóm máy chủ cụ thể mà một chính sách sẽ áp dụng. Ví dụ:
app=api AND env=production
sẽ chọn tất cả máy chủ có cả hai nhãn này. - Vùng (Zone): Là một tập hợp các địa chỉ mạng được đặt tên (ví dụ: “internal-network”, “dmz”, “trusted-partners”). Vùng có thể chứa các dải địa chỉ IP (CIDR), địa chỉ IP đơn lẻ, hoặc tên miền. Sử dụng Vùng giúp đơn giản hóa việc định nghĩa nguồn và đích trong các quy tắc tường lửa.
- Chính sách (Policy): Là thành phần trung tâm, chứa một tập hợp các quy tắc tường lửa (Ingress và Egress) cùng với một Bộ chọn (Selector) để xác định chính sách này áp dụng cho máy chủ nào. Chính sách cũng có thể có độ ưu tiên để xử lý trường hợp nhiều chính sách cùng áp dụng cho một máy chủ.
- Quy tắc Vào (Ingress Rule): Xác định lưu lượng nào được phép (hoặc bị chặn) đi vào các máy chủ được chọn bởi chính sách.
- Quy tắc Ra (Egress Rule): Xác định lưu lượng nào được phép (hoặc bị chặn) đi ra từ các máy chủ được chọn bởi chính sách.
- Quy tắc (Rule): Là một chỉ thị cụ thể trong một Chính sách, xác định hành động (Allow/Deny/Log) đối với lưu lượng mạng dựa trên nguồn (source), đích (destination), giao thức (protocol) và cổng (port).
- Độ ưu tiên (Priority): Một giá trị số gán cho Chính sách. Khi nhiều chính sách cùng áp dụng cho một máy chủ, chính sách có độ ưu tiên cao hơn (số nhỏ hơn) sẽ được ưu tiên áp dụng trước.
- API Server (Firewalld): Thành phần trung tâm, nơi lưu trữ cấu hình, chính sách và xử lý các yêu cầu từ CLI hoặc Web UI. Bạn thường không tương tác trực tiếp với nó.
- Agent (Firewall): Phần mềm chạy trên mỗi máy chủ được quản lý. Agent nhận chính sách từ API Server và áp dụng chúng vào hệ thống tường lửa của máy chủ đó (iptables/nftables).
- CLI (ocnfwctl): Công cụ dòng lệnh chính để bạn tương tác với OCN Firewall: quản lý chính sách, vùng, xem trạng thái, v.v.
- Giao diện Web (Web UI): Giao diện đồ họa trên trình duyệt, cung cấp một cách trực quan để thực hiện hầu hết các tác vụ quản lý.
3. Bắt đầu Nhanh¶
Phần này hướng dẫn các bước cơ bản để bạn bắt đầu làm việc với OCN Firewall bằng công cụ dòng lệnh ocnfwctl
.
3.1. Yêu cầu chuẩn bị¶
- Đảm bảo bạn đã được cấp tài khoản và biết địa chỉ của OCN Firewall API Server.
- Máy trạm của bạn có kết nối mạng đến API Server.
- (Tùy chọn, nếu chưa có) Cài đặt công cụ
ocnfwctl
.
3.2. Cài đặt CLI (ocnfwctl)¶
Nếu bạn chưa cài đặt ocnfwctl
, hãy làm theo các bước sau (ví dụ cho Linux):
- Tải xuống:
# Thay thế URL bằng liên kết tải xuống phù hợp với hệ điều hành của bạn curl -L https://git.ocn.com.vn/firewall/firewall/releases/latest/download/ocnfwctl-linux-amd64 -o ocnfwctl
- Cấp quyền thực thi:
chmod +x ocnfwctl
- Di chuyển vào PATH (tùy chọn, để dễ sử dụng):
sudo mv ocnfwctl /usr/local/bin/
- Kiểm tra cài đặt:
Nếu lệnh hiển thị thông tin phiên bản, bạn đã cài đặt thành công.
ocnfwctl version
3.3. Cấu hình Kết nối đến API Server¶
Cho ocnfwctl
biết địa chỉ API Server cần kết nối:
# Thay thế URL bằng địa chỉ API Server thực tế của bạn
ocnfwctl config set-server http://firewall-api.example.com:8080
3.4. Đăng nhập¶
Sử dụng tên người dùng và mật khẩu được cấp để đăng nhập:
ocnfwctl login
Bạn sẽ được nhắc nhập tên người dùng và mật khẩu. Nếu có yêu cầu xác thực hai yếu tố (2FA), hãy nhập mã từ ứng dụng xác thực của bạn. Sau khi thành công, một token xác thực sẽ được lưu lại để bạn không cần đăng nhập lại cho các lệnh tiếp theo (cho đến khi token hết hạn).
3.5. Các lệnh khám phá cơ bản¶
Sau khi đăng nhập, hãy thử một vài lệnh để làm quen:
- Kiểm tra trạng thái máy chủ quản lý:
ocnfwctl server status
- Liệt kê các máy chủ đang được quản lý:
ocnfwctl server list
[Đề xuất chèn ảnh chụp màn hình ví dụ output của lệnh server list]
- Liệt kê các chính sách hiện có:
ocnfwctl policy list
- Liệt kê các vùng đã định nghĩa:
ocnfwctl zone list
3.6. Tạo Vùng (Zone) đầu tiên¶
Vùng giúp nhóm các địa chỉ mạng lại. Hãy tạo một vùng cho mạng nội bộ tin cậy:
ocnfwctl zone create \
--name internal-trusted \
--description "Mạng nội bộ tin cậy (Văn phòng, VPN)" \
--cidr "192.168.1.0/24,10.10.0.0/16" \
--ip "172.16.5.10"
Lệnh này tạo một vùng tên internal-trusted
chứa hai dải mạng CIDR và một địa chỉ IP cụ thể.
3.7. Tạo Chính sách (Policy) đầu tiên¶
Giả sử bạn có các máy chủ web với nhãn app=web
. Hãy tạo chính sách cho phép truy cập HTTP/HTTPS từ vùng internal-trusted
vừa tạo và cho phép máy chủ web kết nối ra ngoài đến bất kỳ đâu trên cổng 53 (DNS):
ocnfwctl policy create \
--name web-basic-access \
--description "Cho phép truy cập web cơ bản từ mạng nội bộ" \
--selector "app=web" \
--ingress-allow "tcp:80,tcp:443" \
--ingress-from-zones internal-trusted \
--egress-allow "udp:53,tcp:53" \
--egress-to-zones internet
--name
: Tên định danh cho chính sách.--description
: Mô tả mục đích.--selector "app=web"
: Áp dụng chính sách này cho tất cả máy chủ có nhãnapp=web
.--ingress-allow "tcp:80,tcp:443"
: Cho phép lưu lượng vào trên cổng TCP 80 và 443.--ingress-from-zones internal-trusted
: Chỉ cho phép lưu lượng vào từ các địa chỉ thuộc vùnginternal-trusted
.--egress-allow "udp:53,tcp:53"
: Cho phép lưu lượng ra trên cổng UDP 53 và TCP 53.--egress-to-zones internet
: Cho phép lưu lượng ra này đi đến vùnginternet
(vùng mặc định đại diện cho mọi địa chỉ IP công cộng).
Chúc mừng! Bạn đã thực hiện các bước cơ bản để tương tác với OCN Firewall. Hãy tiếp tục khám phá các phần sau để tìm hiểu sâu hơn.
4. Sử dụng Giao diện Dòng lệnh (ocnfwctl)¶
ocnfwctl
là công cụ chính để bạn quản lý OCN Firewall từ terminal. Hầu hết các lệnh tuân theo cấu trúc:
ocnfwctl <DANH_TỪ> <ĐỘNG_TỪ> [TÙY_CHỌN]
- DANH TỪ (Noun): Đối tượng bạn muốn thao tác (ví dụ:
policy
,zone
,server
,rule
). - ĐỘNG TỪ (Verb): Hành động bạn muốn thực hiện (ví dụ:
list
,create
,get
,update
,delete
,add-cidr
,remove-ip
). - TÙY CHỌN (Options/Flags): Các tham số bổ sung để chỉ định chi tiết (ví dụ:
--name
,--selector
,--cidr
,--port
,--confirm
).
Một số mẹo hữu ích:
- Sử dụng
ocnfwctl <DANH_TỪ> --help
hoặcocnfwctl <DANH_TỪ> <ĐỘNG_TỪ> --help
để xem hướng dẫn chi tiết cho từng lệnh. - Hầu hết các lệnh
delete
yêu cầu xác nhận. Bạn có thể bỏ qua bước xác nhận bằng cách thêm cờ--confirm
. - Nhiều lệnh
list
hỗ trợ lọc bằng cờ--name
hoặc các cờ khác. - Các lệnh
get
thường yêu cầu--name
hoặc--id
để chỉ định đối tượng cụ thể.
Các phần tiếp theo sẽ đi sâu vào cách sử dụng ocnfwctl
để quản lý từng loại đối tượng.
5. Quản lý Vùng (Zone)¶
Vùng (Zone) là cách để bạn nhóm các địa chỉ mạng (IP, CIDR, tên miền) lại với nhau và đặt cho chúng một cái tên dễ nhớ. Điều này giúp việc viết chính sách trở nên đơn giản và dễ bảo trì hơn rất nhiều.
5.1. Liệt kê Vùng¶
- Xem tất cả các vùng:
ocnfwctl zone list
- Lọc theo tên (hỗ trợ wildcard
*
):ocnfwctl zone list --name "internal*"
- Xem thông tin chi tiết của một vùng:
Lệnh
ocnfwctl zone get --name trusted-network
get
sẽ hiển thị mô tả, danh sách CIDR, IP và tên miền thuộc vùng đó.[Đề xuất chèn ảnh chụp màn hình ví dụ output của lệnh zone get]
5.2. Tạo Vùng mới¶
Sử dụng lệnh ocnfwctl zone create
với các tùy chọn:
--name
: Tên định danh duy nhất cho vùng (bắt buộc).--description
: Mô tả mục đích của vùng (khuyến nghị).--cidr
: Danh sách các dải mạng CIDR, cách nhau bởi dấu phẩy (ví dụ:10.0.0.0/16,10.1.0.0/16
).--ip
: Danh sách các địa chỉ IP đơn lẻ, cách nhau bởi dấu phẩy (ví dụ:192.168.1.10,192.168.1.11
).--domain
: Danh sách các tên miền, cách nhau bởi dấu phẩy (ví dụ:example.internal,service.internal
). OCN Firewall sẽ tự động phân giải các tên miền này thành địa chỉ IP (lưu ý: việc phân giải có thể cần thời gian và phụ thuộc vào cấu hình DNS).
Ví dụ: Tạo vùng cho các dịch vụ nội bộ quan trọng.
ocnfwctl zone create \
--name core-services \
--description "Các dịch vụ nội bộ cốt lõi (LDAP, DNS nội bộ)" \
--cidr "10.5.0.0/24" \
--ip "10.5.1.5,10.5.1.6" \
--domain "ldap.mycorp.local,dns.mycorp.local"
5.3. Cập nhật Vùng¶
Bạn có thể cập nhật mô tả hoặc thay thế hoàn toàn danh sách CIDR/IP/Domain bằng lệnh ocnfwctl zone update
.
ocnfwctl zone update \
--name core-services \
--description "Các dịch vụ nội bộ cốt lõi (LDAP, DNS, NTP)" \
--ip "10.5.1.5,10.5.1.6,10.5.1.7" # Thay thế danh sách IP cũ
update
sẽ ghi đè lên danh sách cũ của tham số được chỉ định. Nếu bạn chỉ muốn thêm hoặc bớt thành phần, hãy sử dụng các lệnh add-*
và remove-*
dưới đây.
5.4. Thêm/Xóa thành phần vào Vùng¶
Cách linh hoạt hơn để quản lý thành viên của vùng là sử dụng các lệnh add-*
và remove-*
:
- Thêm CIDR:
ocnfwctl zone add-cidr --name core-services --cidr "10.5.2.0/24"
- Xóa CIDR:
ocnfwctl zone remove-cidr --name core-services --cidr "10.5.2.0/24"
- Thêm IP:
ocnfwctl zone add-ip --name core-services --ip "10.5.1.8"
- Xóa IP:
ocnfwctl zone remove-ip --name core-services --ip "10.5.1.8"
- Thêm Domain:
ocnfwctl zone add-domain --name core-services --domain "ntp.mycorp.local"
- Xóa Domain:
ocnfwctl zone remove-domain --name core-services --domain "ntp.mycorp.local"
5.5. Xóa Vùng¶
ocnfwctl zone delete --name core-services
ocnfwctl zone delete --name core-services --confirm
5.6. Kiểm tra Thành viên Vùng¶
Kiểm tra xem một địa chỉ IP hoặc tên miền cụ thể thuộc về những vùng nào:
ocnfwctl zone check-membership --ip 10.5.0.15
ocnfwctl zone check-membership --domain ldap.mycorp.local
5.7. Tìm Chính sách sử dụng Vùng¶
Để biết việc thay đổi hoặc xóa một vùng sẽ ảnh hưởng đến những chính sách nào:
ocnfwctl zone policies --name core-services
5.8. Xuất và Nhập Vùng¶
Bạn có thể quản lý Vùng dưới dạng mã (Infrastructure as Code) bằng cách xuất/nhập định dạng YAML.
- Xuất một vùng ra file YAML:
ocnfwctl zone export --name core-services > core-services-zone.yaml
- Nhập (tạo hoặc cập nhật) vùng từ file YAML:
ocnfwctl zone import --file core-services-zone.yaml # Hoặc dùng lệnh apply tổng quát hơn ocnfwctl apply -f core-services-zone.yaml
- Nhập tất cả các file YAML trong một thư mục:
ocnfwctl zone import-dir --directory ./my-zones/ # Hoặc ocnfwctl apply -f ./my-zones/
Ví dụ file core-services-zone.yaml
:
apiVersion: ocnfw/v1
kind: Zone
metadata:
name: core-services
spec:
description: "Các dịch vụ nội bộ cốt lõi (LDAP, DNS, NTP)"
cidrs:
- 10.5.0.0/24
ips:
- 10.5.1.5
- 10.5.1.6
- 10.5.1.7
domains:
- ldap.mycorp.local
- dns.mycorp.local
5.9. Các Vùng Mặc định¶
OCN Firewall có sẵn một số vùng tiện ích:
internet
: Đại diện cho mọi địa chỉ IP công cộng (không bao gồm các dải IP riêng).private
: Đại diện cho các dải IP riêng theo RFC1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16).localhost
: Đại diện cho địa chỉ loopback (127.0.0.0/8, ::1/128).any
hoặc*
(thường dùng trong chính sách): Đại diện cho tất cả các địa chỉ IP.
Bạn không thể sửa đổi hay xóa các vùng này, nhưng có thể sử dụng chúng trong chính sách.
6. Quản lý Chính sách (Policy)¶
Chính sách (Policy) là trái tim của OCN Firewall. Chúng liên kết các quy tắc tường lửa (ai được phép/bị chặn làm gì) với các nhóm máy chủ cụ thể (thông qua Selector).
6.1. Thành phần của một Chính sách¶
- Tên (Name): Định danh duy nhất.
- Mô tả (Description): Giải thích mục đích.
- Bộ chọn (Selector): Biểu thức logic chọn máy chủ áp dụng (ví dụ:
role=database
,app=api AND env=production
). Selector*
hoặc để trống sẽ áp dụng cho tất cả máy chủ. - Quy tắc Vào (Ingress Rules): Danh sách các quy tắc kiểm soát lưu lượng đi vào máy chủ.
- Quy tắc Ra (Egress Rules): Danh sách các quy tắc kiểm soát lưu lượng đi ra từ máy chủ.
- Độ ưu tiên (Priority): Số nguyên xác định thứ tự áp dụng khi có xung đột (số nhỏ hơn = ưu tiên cao hơn). Mặc định thường là 1000.
6.2. Liệt kê Chính sách¶
- Xem tất cả chính sách:
ocnfwctl policy list
- Lọc theo tên:
ocnfwctl policy list --name "web*"
- Xem chi tiết một chính sách (bao gồm các quy tắc):
ocnfwctl policy get --name web-server-policy
[Đề xuất chèn ảnh chụp màn hình ví dụ output của lệnh policy get]
6.3. Tạo Chính sách mới¶
Sử dụng lệnh ocnfwctl policy create
. Các tùy chọn quan trọng:
--name
,--description
,--selector
,--priority
: Như mô tả ở trên.- Định nghĩa quy tắc Ingress:
--ingress-allow <PROTO:PORT,...>
: Cho phép lưu lượng vào trên các cổng/giao thức chỉ định.--ingress-deny <PROTO:PORT,...>
: Chặn lưu lượng vào.--ingress-from-zones <ZONE_NAME,...>
: Chỉ áp dụng quy tắc ingress này cho lưu lượng từ các vùng chỉ định. Mặc định làany
.--ingress-from-cidrs <CIDR,...>
: Chỉ áp dụng cho lưu lượng từ các CIDR chỉ định.--ingress-from-ips <IP,...>
: Chỉ áp dụng cho lưu lượng từ các IP chỉ định.
- Định nghĩa quy tắc Egress:
--egress-allow <PROTO:PORT,...>
: Cho phép lưu lượng ra.--egress-deny <PROTO:PORT,...>
: Chặn lưu lượng ra.--egress-to-zones <ZONE_NAME,...>
: Chỉ áp dụng quy tắc egress này cho lưu lượng đến các vùng chỉ định. Mặc định làany
.--egress-to-cidrs <CIDR,...>
: Chỉ áp dụng cho lưu lượng đến các CIDR chỉ định.--egress-to-ips <IP,...>
: Chỉ áp dụng cho lưu lượng đến các IP chỉ định.
Định dạng <PROTO:PORT,...>
:
tcp:80
: Cổng TCP 80.udp:53
: Cổng UDP 53.tcp:80,tcp:443
: Cổng TCP 80 và 443.tcp:1000-2000
: Dải cổng TCP từ 1000 đến 2000.tcp:*
: Tất cả các cổng TCP.icmp
: Giao thức ICMP.any
hoặc*
: Bất kỳ giao thức và cổng nào (thường dùng vớitcp:*,udp:*
).
Ví dụ 1: Chính sách cơ bản cho máy chủ Database
(Chỉ cho phép kết nối MySQL/PostgreSQL từ vùng app-servers
, cho phép ra DNS)
ocnfwctl policy create \
--name db-access-policy \
--description "Cho phép truy cập DB từ App Servers" \
--selector "role=database" \
--ingress-allow "tcp:3306,tcp:5432" \
--ingress-from-zones app-servers \
--egress-allow "tcp:53,udp:53" \
--egress-to-zones dns-servers \
--egress-deny "tcp:*,udp:*" \
--egress-to-zones internet # Chặn ra internet trừ DNS đã allow ở trên
Ví dụ 2: Chính sách phức tạp hơn cho API Server (Cho phép API ports từ trusted, monitoring port từ monitoring, chặn từ untrusted, cho phép ra trusted, chặn ra untrusted)
ocnfwctl policy create \
--name api-server-policy \
--description "Chính sách tường lửa cho máy chủ API" \
--selector "app=api" \
--ingress-allow "tcp:8080,tcp:8443" --ingress-from-zones trusted-networks \
--ingress-allow "tcp:9090" --ingress-from-zones monitoring \
--ingress-deny "tcp:*,udp:*" --ingress-from-zones untrusted \
--egress-allow "tcp:*,udp:*" --egress-to-zones trusted-networks \
--egress-deny "tcp:*,udp:*" --egress-to-zones untrusted
--ingress-allow
, --ingress-deny
, --egress-allow
, --egress-deny
để tạo nhiều quy tắc với các nguồn/đích khác nhau trong cùng một chính sách. Thứ tự các quy tắc này trong lệnh có thể quan trọng (kiểm tra tài liệu OCN Firewall cụ thể về thứ tự ưu tiên nội bộ chính sách).
Ví dụ 3: Chính sách chặn khẩn cấp với độ ưu tiên cao (Chặn mọi truy cập từ internet vào môi trường production)
ocnfwctl policy create \
--name emergency-block-internet \
--description "Chặn khẩn cấp mọi truy cập từ Internet vào Production" \
--selector "env=production" \
--priority 100 \
--ingress-deny "tcp:*,udp:*" \
--ingress-from-zones internet
priority=100
(ưu tiên cao) sẽ ghi đè các quy tắc allow
từ internet có độ ưu tiên thấp hơn (ví dụ: 1000).
6.4. Cập nhật Chính sách¶
Sử dụng ocnfwctl policy update
. Lệnh này chỉ thay đổi các tham số bạn chỉ định, các tham số khác giữ nguyên.
# Cập nhật chính sách web-server-policy để cho phép thêm cổng 8080 từ trusted và monitoring
ocnfwctl policy update \
--name web-server-policy \
--ingress-allow "tcp:80,tcp:443,tcp:8080" \
--ingress-from-zones trusted-networks,monitoring
--ingress-allow
, --egress-deny
, v.v.), lệnh update
thường thay thế toàn bộ danh sách quy tắc cho loại hành động đó (allow/deny) và hướng đó (ingress/egress) bằng giá trị mới bạn cung cấp. Nó không chỉ thêm vào danh sách cũ. Hãy cẩn thận và đảm bảo bạn cung cấp đầy đủ danh sách quy tắc mong muốn khi cập nhật. Nếu bạn chỉ muốn sửa đổi nhỏ, việc sử dụng quản lý quy tắc chi tiết (xem phần 7) hoặc xuất ra YAML, sửa đổi rồi nhập lại có thể an toàn hơn.
6.5. Xóa Chính sách¶
ocnfwctl policy delete --name web-server-policy
ocnfwctl policy delete --name web-server-policy --confirm
6.6. Kiểm tra Chính sách áp dụng cho Máy chủ¶
Xem những chính sách nào đang thực sự ảnh hưởng đến một máy chủ cụ thể hoặc một nhóm máy chủ:
- Theo ID máy chủ:
ocnfwctl server policies --id server-abc-123
- Theo Selector:
ocnfwctl server policies --selector "app=web AND env=staging"
6.7. Xử lý Xung đột và Thứ tự áp dụng¶
Khi nhiều chính sách cùng áp dụng cho một máy chủ (do selector trùng khớp), OCN Firewall sẽ quyết định chính sách nào có hiệu lực dựa trên quy tắc sau:
- Độ ưu tiên (Priority): Chính sách có giá trị
priority
nhỏ hơn sẽ được ưu tiên áp dụng trước. - Quy tắc Chặn (Deny) ưu tiên hơn Cho phép (Allow): Nếu một chính sách ưu tiên cao hơn nói
deny
một kết nối, thì kết nối đó sẽ bị chặn ngay cả khi một chính sách khác có độ ưu tiên thấp hơn nóiallow
. - Quy tắc Cụ thể hơn ưu tiên hơn Quy tắc Chung: (Điều này thường áp dụng bên trong một chính sách hoặc khi các chính sách có cùng độ ưu tiên). Ví dụ, quy tắc cho
tcp:80
sẽ được ưu tiên hơn quy tắc chotcp:*
. Quy tắc từ một CIDR/24
cụ thể sẽ ưu tiên hơn quy tắc từ CIDR/16
bao trùm nó.
Để xem thứ tự các chính sách sẽ được đánh giá cho một máy chủ cụ thể:
ocnfwctl server policy-order --id server-abc-123
6.8. Xuất và Nhập Chính sách (Policy as Code)¶
Tương tự như Vùng, bạn có thể quản lý Chính sách dưới dạng file YAML.
- Xuất chính sách:
ocnfwctl policy export --name web-server-policy > web-policy.yaml
- Nhập chính sách:
ocnfwctl policy import --file web-policy.yaml # Hoặc ocnfwctl apply -f web-policy.yaml
- Nhập nhiều chính sách từ thư mục:
ocnfwctl policy import-dir --directory ./policies/ # Hoặc ocnfwctl apply -f ./policies/
Ví dụ file web-policy.yaml
:
apiVersion: ocnfw/v1
kind: Policy
metadata:
name: web-server-policy
spec:
description: "Chính sách tường lửa cho máy chủ web"
selector: "role=web"
priority: 500 # Độ ưu tiên trung bình
ingress:
# Cho phép HTTP/HTTPS từ internet
- action: allow
ports:
- protocol: tcp
port: 80
- protocol: tcp
port: 443
fromZones:
- internet
# Cho phép SSH từ mạng quản lý
- action: allow
ports:
- protocol: tcp
port: 22
fromZones:
- management-zone
egress:
# Cho phép kết nối ra DB và DNS
- action: allow
ports:
- protocol: tcp
port: 3306
toZones:
- database-zone
- action: allow
ports:
- protocol: tcp
port: 53
- protocol: udp
port: 53
toZones:
- dns-zone
# Chặn tất cả các kết nối ra khác
- action: deny
ports:
- protocol: tcp
port: "*"
- protocol: udp
port: "*"
toZones:
- any # Hoặc "*"
6.9. Kiểm tra Hiệu quả Chính sách (Mô phỏng Kết nối)¶
Trước hoặc sau khi áp dụng chính sách, bạn có thể mô phỏng một kết nối để xem liệu nó có được phép hay bị chặn theo các chính sách hiện hành hay không:
ocnfwctl policy test-connection \
--source 1.2.3.4 \
--destination 10.0.1.10 \
--port 443 \
--protocol tcp
ALLOW
hoặc DENY
) và chính sách/quy tắc nào đã quyết định kết quả đó. Đây là công cụ cực kỳ hữu ích để kiểm tra và gỡ lỗi.
7. Quản lý Quy tắc (Rule) Chi tiết¶
Trong khi bạn có thể định nghĩa các quy tắc cơ bản khi tạo hoặc cập nhật chính sách bằng các cờ như --ingress-allow
, OCN Firewall cũng cung cấp các lệnh ocnfwctl rule
để quản lý các quy tắc một cách chi tiết hơn, đặc biệt là khi bạn cần sửa đổi hoặc sắp xếp lại các quy tắc trong một chính sách hiện có mà không muốn định nghĩa lại toàn bộ chính sách.
Lưu ý: Việc sử dụng lệnh ocnfwctl rule
thường yêu cầu bạn biết ID của chính sách chứa quy tắc đó. Bạn có thể lấy ID này bằng lệnh ocnfwctl policy list
hoặc ocnfwctl policy get
.
7.1. Liệt kê Quy tắc trong một Chính sách¶
# Lấy ID của chính sách trước (ví dụ: p-abcdef123)
ocnfwctl policy get --name web-server-policy --output jsonpath='{.metadata.id}'
# Liệt kê các quy tắc trong chính sách đó
ocnfwctl rule list --policy-id p-abcdef123
[Đề xuất chèn ảnh chụp màn hình ví dụ output của lệnh rule list]
Bạn cũng có thể lọc theo trạng thái (--state active/disabled
) hoặc các tiêu chí khác.
7.2. Xem chi tiết một Quy tắc¶
Mỗi quy tắc cũng có ID riêng (ví dụ: r-xyz789
).
ocnfwctl rule show --rule-id r-xyz789
7.3. Tạo Quy tắc mới vào Chính sách hiện có¶
ocnfwctl rule create \
--policy-id p-abcdef123 \
--direction ingress \
--action allow \
--source-zones trusted-partners \
--protocol tcp \
--ports 9999 \
--description "Cho phép cổng đặc biệt từ đối tác"
policy create
, nhưng bạn cần chỉ định --policy-id
và --direction
(ingress/egress).
7.4. Cập nhật Quy tắc¶
Bạn có thể thay đổi các thuộc tính của một quy tắc hiện có.
# Thay đổi cổng và mô tả của quy tắc
ocnfwctl rule update \
--rule-id r-xyz789 \
--ports 9998 \
--description "Đổi cổng đặc biệt từ đối tác"
# Vô hiệu hóa (disable) một quy tắc thay vì xóa
ocnfwctl rule update --rule-id r-xyz789 --state disabled
7.5. Sắp xếp Thứ tự Quy tắc¶
Thứ tự các quy tắc bên trong một chính sách rất quan trọng, vì OCN Firewall thường xử lý chúng từ trên xuống dưới (quy tắc đầu tiên khớp sẽ được áp dụng).
- Di chuyển quy tắc lên trên:
ocnfwctl rule move --rule-id r-xyz789 --position up
- Di chuyển quy tắc xuống dưới:
ocnfwctl rule move --rule-id r-xyz789 --position down
- Di chuyển đến vị trí cụ thể (ví dụ: vị trí số 1 - đầu tiên):
ocnfwctl rule move --rule-id r-xyz789 --position 1
7.6. Xóa Quy tắc¶
ocnfwctl rule delete --rule-id r-xyz789
ocnfwctl rule delete --rule-id r-xyz789 r-abc123 r-def456 --confirm
7.7. Kiểm tra Quy tắc (Rule Tester)¶
Tương tự như policy test-connection
, nhưng có thể tập trung vào việc kiểm tra trong phạm vi một chính sách cụ thể.
ocnfwctl rule test \
--policy-id p-abcdef123 \
--source 1.2.3.4 \
--destination 10.0.1.10 \
--protocol tcp \
--port 80
p-abcdef123
sẽ khớp với kết nối mô phỏng và hành động tương ứng.
7.8. Xuất/Nhập Quy tắc (Ít phổ biến hơn)¶
Việc xuất/nhập toàn bộ chính sách (bao gồm các quy tắc của nó) thường phổ biến hơn. Tuy nhiên, nếu cần, bạn có thể xuất/nhập danh sách quy tắc cho một chính sách cụ thể.
- Xuất quy tắc của một chính sách:
ocnfwctl rule export --policy-id p-abcdef123 --output rules-for-policy-abc.yaml
- Nhập quy tắc vào một chính sách (thường sẽ thay thế các quy tắc hiện có):
ocnfwctl rule import --policy-id p-abcdef123 --input rules-for-policy-abc.yaml
8. Sử dụng Giao diện Web¶
Ngoài CLI, OCN Firewall cung cấp một giao diện web trực quan để bạn thực hiện hầu hết các tác vụ quản lý.
8.1. Truy cập và Đăng nhập¶
- Mở trình duyệt và truy cập vào địa chỉ URL của giao diện web OCN Firewall (ví dụ:
https://firewall.mycompany.com/
). - Nhập tên người dùng và mật khẩu của bạn.
- Nếu được yêu cầu, nhập mã xác thực hai yếu tố (2FA).
-
Nhấn nút “Đăng nhập”.
-
[Đề xuất chèn ảnh chụp màn hình giao diện đăng nhập Web UI]
8.2. Tổng quan Giao diện (Dashboard)¶
Sau khi đăng nhập, trang tổng quan (Dashboard) thường hiển thị các thông tin chính:
- Biểu đồ lưu lượng mạng, số lượng kết nối.
- Trạng thái các máy chủ (Servers).
- Số lượng chính sách (Policies) và vùng (Zones) đang hoạt động.
- Các cảnh báo hoặc sự kiện gần đây.
-
Các hoạt động quản trị mới nhất.
-
[Đề xuất chèn ảnh chụp màn hình Dashboard Web UI]
8.3. Điều hướng¶
Sử dụng thanh điều hướng bên trái (hoặc menu trên cùng) để truy cập các khu vực quản lý chính:
- Máy chủ (Servers)
- Chính sách (Policies)
- Vùng (Zones)
- Quy tắc (Rules) (Thường được quản lý trong ngữ cảnh của Chính sách)
- Kết nối (Connections)
- Nhật ký (Logs)
- Cài đặt (Settings)
8.4. Quản lý Máy chủ (Servers)¶
- Xem danh sách: Xem tên, IP, trạng thái, nhãn (labels) của các máy chủ.
- Lọc và Tìm kiếm: Tìm kiếm theo tên, IP, hoặc lọc theo nhãn bằng cách nhập selector.
- Xem chi tiết: Nhấp vào một máy chủ để xem thông tin chi tiết, các chính sách đang áp dụng, kết nối hiện tại.
-
Thêm/Sửa/Xóa: (Nếu có quyền) Thêm máy chủ mới, chỉnh sửa thông tin (như nhãn), hoặc xóa máy chủ khỏi quản lý.
-
[Đề xuất chèn ảnh chụp màn hình trang quản lý Servers Web UI]
8.5. Quản lý Vùng (Zones)¶
- Xem danh sách: Xem tên, mô tả, số lượng thành viên (CIDR/IP/Domain).
- Xem chi tiết: Nhấp vào một vùng để xem danh sách thành viên cụ thể và các chính sách đang sử dụng vùng này.
- Tạo/Sửa/Xóa: Giao diện trực quan để tạo vùng mới, thêm/bớt CIDR, IP, tên miền, hoặc xóa vùng.
-
Kiểm tra thành viên: Công cụ để nhập IP/Domain và xem nó thuộc vùng nào.
-
[Đề xuất chèn ảnh chụp màn hình trang quản lý Zones Web UI]
8.6. Quản lý Chính sách (Policies)¶
- Xem danh sách: Xem tên, selector, độ ưu tiên, trạng thái (active/disabled).
- Xem chi tiết: Nhấp vào chính sách để xem mô tả, selector, và quan trọng nhất là danh sách các quy tắc Ingress và Egress.
- Tạo chính sách: Giao diện form trực quan để nhập tên, mô tả, selector, độ ưu tiên.
- Thêm quy tắc: Có các nút “Thêm quy tắc Ingress”, “Thêm quy tắc Egress”. Mỗi quy tắc sẽ có các trường để chọn Hành động (Allow/Deny), Nguồn/Đích (chọn từ Vùng, nhập CIDR/IP), Giao thức, Cổng.
- Chỉnh sửa chính sách: Chỉnh sửa thông tin cơ bản hoặc thêm/sửa/xóa các quy tắc bên trong.
- Kích hoạt/Vô hiệu hóa: Nút bật/tắt nhanh để tạm dừng áp dụng chính sách.
-
Thay đổi thứ tự quy tắc: Trong trang chi tiết chính sách, bạn thường có thể kéo thả hoặc dùng nút mũi tên để thay đổi thứ tự các quy tắc Ingress/Egress. Nhớ lưu lại thay đổi thứ tự.
-
[Đề xuất chèn ảnh chụp màn hình trang tạo/sửa Policy Web UI, bao gồm phần quản lý Rules]
[Đề xuất chèn ảnh chụp màn hình tính năng sắp xếp Rules trong Web UI]
8.7. Giám sát Kết nối (Connections)¶
- Xem danh sách các kết nối mạng đang hoạt động hoặc vừa kết thúc đi qua các máy chủ được quản lý.
- Thông tin bao gồm: Nguồn IP:Port, Đích IP:Port, Giao thức, Trạng thái (Established, Closing, Denied), Máy chủ liên quan, Chính sách/Quy tắc đã áp dụng.
- Công cụ lọc mạnh mẽ theo thời gian, máy chủ, IP, cổng, trạng thái, hành động (Allowed/Denied).
-
Thường có biểu đồ phân tích lưu lượng và kết nối.
-
[Đề xuất chèn ảnh chụp màn hình trang giám sát Connections Web UI]
8.8. Xem Nhật ký (Logs)¶
- Truy cập các loại nhật ký khác nhau:
- Nhật ký Tường lửa (Firewall Logs): Ghi lại các kết nối bị chặn hoặc được phép (nếu cấu hình ghi log). Rất quan trọng để gỡ lỗi.
- Nhật ký Hệ thống (System Logs): Nhật ký hoạt động của API Server, Agents.
- Nhật ký Thay đổi (Audit Logs): Ghi lại ai đã làm gì, khi nào (ví dụ: tạo chính sách, sửa vùng).
- Công cụ lọc và tìm kiếm mạnh mẽ theo thời gian, mức độ nghiêm trọng, từ khóa, máy chủ.
-
Khả năng xuất nhật ký ra file (CSV, JSON).
-
[Đề xuất chèn ảnh chụp màn hình trang xem Logs Web UI]
8.9. Cài đặt (Settings)¶
- Thông tin tài khoản: Đổi mật khẩu, quản lý xác thực hai yếu tố.
- Quản lý người dùng/nhóm: (Nếu là admin) Tạo/quản lý tài khoản người dùng, phân quyền.
- Cài đặt hệ thống: Cấu hình thông báo, tích hợp (ví dụ: SMTP, Syslog), quản lý API token.
- API Explorer: Giao diện để khám phá và thử nghiệm các API của OCN Firewall.
9. Giám sát và Khắc phục sự cố¶
Khi có vấn đề về kết nối mạng, OCN Firewall cung cấp nhiều công cụ để bạn chẩn đoán.
9.1. Kiểm tra Chính sách đang áp dụng¶
Bước đầu tiên khi một kết nối mong muốn bị chặn (hoặc kết nối không mong muốn được phép) là xem chính sách nào đang thực sự áp dụng cho máy chủ liên quan.
# Xem chính sách áp dụng cho máy chủ có ID server-123
ocnfwctl server policies --id server-123
# Xem thứ tự các chính sách sẽ được đánh giá
ocnfwctl server policy-order --id server-123
9.2. Mô phỏng và Gỡ lỗi Kết nối (CLI)¶
Đây là công cụ mạnh nhất để hiểu tại sao một kết nối cụ thể lại bị chặn hoặc được phép.
- Kiểm tra nhanh (Kết quả Allow/Deny):
ocnfwctl policy test-connection \ --source <IP_NGUỒN> \ --destination <IP_ĐÍCH> \ --port <CỔNG_ĐÍCH> \ --protocol <tcp|udp|icmp>
- Gỡ lỗi chi tiết (Xem quy tắc nào khớp):
Lệnh
ocnfwctl policy debug-connection \ --source <IP_NGUỒN> \ --destination <IP_ĐÍCH> \ --port <CỔNG_ĐÍCH> \ --protocol <tcp|udp|icmp> \ --verbose # Thêm cờ này để có output chi tiết hơn
debug-connection
sẽ chỉ ra chính xác chính sách và quy tắc nào (cả allow và deny) đã được đánh giá và quy tắc nào là quy tắc cuối cùng quyết định kết quả.
9.3. Xem Nhật ký Tường lửa (Firewall Logs)¶
Nếu một kết nối bị chặn, nhật ký tường lửa (thường là từ Agent trên máy chủ đích) sẽ ghi lại thông tin chi tiết về kết nối đó (IP nguồn/đích, port, protocol) và thường là lý do bị chặn (ví dụ: “Denied by policy X, rule Y”).
Truy cập nhật ký qua Web UI (mục Logs -> Firewall Logs) hoặc kiểm tra file log trực tiếp trên máy chủ Agent (vị trí file log phụ thuộc vào cấu hình). Lọc nhật ký theo IP nguồn hoặc đích để tìm dòng log liên quan.
9.4. Xem Kết nối Hiện tại¶
Kiểm tra xem kết nối có thực sự được thiết lập hay không.
ocnfwctl connections list --selector "app=web" --filter "dst_port=80"
9.5. Các Vấn đề Thường gặp¶
- Kết nối bị chặn ngoài ý muốn:
- Sử dụng
policy debug-connection
để xác định quy tắcdeny
nào đang chặn. - Kiểm tra thứ tự ưu tiên (
priority
) của các chính sách. Một chính sáchdeny
có ưu tiên cao hơn có thể đang ghi đè. - Kiểm tra định nghĩa Vùng (Zone). Có thể IP nguồn/đích không thuộc vùng bạn mong đợi. Dùng
zone check-membership
. - Kiểm tra thứ tự quy tắc bên trong chính sách (nếu quản lý bằng
ocnfwctl rule
hoặc Web UI).
- Sử dụng
- Kết nối được phép ngoài ý muốn:
- Sử dụng
policy debug-connection
để xác định quy tắcallow
nào đang cho phép. - Kiểm tra xem có thiếu quy tắc
deny
cụ thể hơn hoặc quy tắcdeny all
mặc định ở cuối không. - Kiểm tra độ ưu tiên. Có thể một chính sách
allow
có ưu tiên cao đang ghi đè quy tắcdeny
mong muốn.
- Sử dụng
- Chính sách không áp dụng cho máy chủ:
- Kiểm tra lại
selector
của chính sách. - Kiểm tra các
label
được gán cho máy chủ (ocnfwctl server get --id <server_id>
). Đảm bảo chúng khớp với selector. - Kiểm tra trạng thái của Agent trên máy chủ (
ocnfwctl server status --id <server_id>
). Agent phải đang hoạt động và kết nối được với API Server.
- Kiểm tra lại
- Vấn đề với Vùng dựa trên Tên miền:
- Kiểm tra xem Agent/API Server có phân giải được tên miền đó không (
ocnfwctl diagnose dns --domain ...
). - Kiểm tra cấu hình DNS của hệ thống.
- Lưu ý rằng IP được phân giải từ tên miền có thể thay đổi và có độ trễ trong việc cập nhật.
- Kiểm tra xem Agent/API Server có phân giải được tên miền đó không (
10. Các Thực hành Tốt nhất¶
Để sử dụng OCN Firewall hiệu quả và bảo mật:
- Đặt tên và Mô tả Rõ ràng: Sử dụng tên có ý nghĩa cho Chính sách, Vùng, Quy tắc và cung cấp mô tả chi tiết về mục đích của chúng.
- Nguyên tắc Đặc quyền Tối thiểu: Chỉ cho phép những kết nối thực sự cần thiết. Bắt đầu bằng việc chặn tất cả (default deny) và chỉ mở những gì cần thiết.
- Sử dụng Vùng (Zone) hiệu quả: Nhóm các mạng có cùng mức độ tin cậy hoặc chức năng vào các Vùng. Ưu tiên sử dụng Vùng thay vì IP/CIDR trực tiếp trong chính sách để dễ bảo trì.
- Sử dụng Bộ chọn (Selector) và Nhãn (Label) một cách nhất quán: Phân loại máy chủ bằng nhãn một cách có hệ thống (ví dụ:
app
,role
,env
,tier
). Sử dụng selector cụ thể để giới hạn phạm vi ảnh hưởng của chính sách. - Chính sách Mặc định Chặn (Default Deny): Tạo một chính sách có độ ưu tiên thấp nhất (ví dụ:
priority=9999
) với selector*
để chặn tất cả lưu lượng Ingress và Egress không được cho phép rõ ràng bởi các chính sách khác.ocnfwctl policy create \ --name default-deny-all \ --selector "*" \ --priority 9999 \ --ingress-deny "tcp:*,udp:*" --ingress-from-zones any \ --egress-deny "tcp:*,udp:*" --egress-to-zones any
- Kiểm tra Trước khi Áp dụng: Sử dụng
policy test-connection
hoặcpolicy debug-connection
để kiểm tra tác động của thay đổi trước khi áp dụng rộng rãi. - Quản lý như Mã (Policy as Code): Sử dụng tính năng xuất/nhập YAML để lưu trữ cấu hình Vùng và Chính sách trong hệ thống quản lý phiên bản (như Git). Tích hợp với quy trình CI/CD để tự động hóa việc triển khai.
- Đánh giá Định kỳ: Thường xuyên xem xét lại các chính sách và vùng để loại bỏ những gì không còn cần thiết, cập nhật theo thay đổi kiến trúc và đảm bảo chúng vẫn phù hợp với yêu cầu bảo mật.
- Ghi Nhật ký Hợp lý: Bật ghi nhật ký cho các quy tắc
deny
quan trọng để hỗ trợ gỡ lỗi. Tránh ghi nhật ký cho các quy tắcallow
có lưu lượng rất lớn trừ khi thực sự cần thiết (để tránh quá tải hệ thống log). - Phân quyền Hợp lý: Sử dụng tính năng quản lý người dùng/nhóm (nếu có) để giới hạn quyền của người dùng chỉ trong phạm vi cần thiết.