Một tường lửa lọc gói tin dựa trên danh sách n luật ACL được xét theo đúng thứ tự khai báo; gói tin sẽ áp dụng hành động của luật đầu tiên khớp (first-match-wins). Nếu không luật nào khớp, mặc định DENY.
Mỗi luật có dạng:
ACTION PROTO CIDR PORT_RANGE
ACTION là ALLOW hoặc DENY.PROTO là TCP, UDP, ICMP, hoặc ANY (khớp với mọi giao thức).CIDR dạng A.B.C.D/p — luật khớp nếu địa chỉ nguồn của gói tin nằm trong dải này.PORT_RANGE dạng lo-hi (bao gồm hai đầu mút) — luật khớp nếu cổng đích của gói tin nằm trong đoạn [lo,hi].Một luật khớp với gói tin khi và chỉ khi cả ba điều kiện (giao thức, địa chỉ nguồn, cổng đích) đều thoả mãn.
Mỗi gói tin được cho dưới dạng:
PROTO SRC_IP DST_PORT
Ví dụ:
Input:
3
ALLOW TCP 192.168.1.0/24 80-443
ALLOW UDP 10.0.0.0/8 53-53
DENY ANY 0.0.0.0/0 0-65535
3
TCP 192.168.1.10 443
UDP 10.1.2.3 53
TCP 8.8.8.8 22
Output:
ALLOW
ALLOW
DENY
Dòng đầu là số nguyên n (1≤n≤1000) — số luật.
n dòng tiếp theo là các luật theo đúng thứ tự áp dụng, mỗi dòng dạng ACTION PROTO CIDR PORT_RANGE.
Dòng tiếp theo là số nguyên m (1≤m≤1000) — số gói tin.
m dòng tiếp theo, mỗi dòng dạng PROTO SRC_IP DST_PORT (0≤DST_PORT≤65535).
In ra m dòng, mỗi dòng là ALLOW hoặc DENY — kết quả áp dụng luật cho gói tin tương ứng, theo đúng thứ tự đầu vào.
Ví dụ:
Đầu vào:
1
DENY TCP 1.2.3.0/24 22-22
1
TCP 5.5.5.5 22
Đầu ra:
DENY
Đầu vào:
3
ALLOW TCP 192.168.1.0/24 80-443
ALLOW UDP 10.0.0.0/8 53-53
DENY ANY 0.0.0.0/0 0-65535
3
TCP 192.168.1.10 443
UDP 10.1.2.3 53
TCP 8.8.8.8 22
Đầu ra:
ALLOW
ALLOW
DENY
Đang tải editor...