ACL (Access Control List) là gì?
Access Control List (ACL) là tập hợp các quy tắc (rules) được áp dụng trên thiết bị mạng (Router, Switch, Firewall) để lọc gói tin (packet filtering) dựa trên thông tin header Layer 3/4: Địa chỉ IP nguồn/đích, Giao thức (TCP/UDP/ICMP...), Port số nguồn/đích (Extended ACL) hoặc chỉ IP nguồn (Standard ACL). Mục đích: Cho phép (permit) hoặc Từ chối (deny) traffic theo chính sách bảo mật.
Cách ACL cải thiện bảo mật mạng
- Kiểm soát truy cập biên (Perimeter Access Control): Chặn traffic độc hại từ internet (scanner, botnet, C2 known IP) vào mạng nội bộ. Chỉ cho phép port/service cần thiết (80/443 web, 25/587 mail, 443 VPN).
- Phân đoạn mạng (Network Segmentation / East-West Control): Áp dụng ACL trên Switch (VACL/RACL) hoặc Firewall zone-based để chặn lateral movement giữa VLAN (User ↔ Server, Server ↔ DB, OT ↔ IT).
- Bảo vệ Management Plane: Chỉ cho phép SSH/HTTPS/SNMP/NETCONF từ subnet quản trị (Jump Host, NOC) đến interface quản trị của router/switch/firewall.
- Chống Spoofing / Anti-Spoofing: Ingress filtering (RFC 2827/BCP 38): Drop packet nguồn IP private/bogon/multicast từ external interface. Egress filtering: Chỉ cho phép source IP thuộc subnet được gán ra external interface.
- Rate Limiting / DoS Mitigation: ACL kết hợp policing/rate-limit cho ICMP, SYN flood, DNS amplification.
- Logging & Forensics: Log các gói tin match rule deny (hoặc permit quan trọng) → gửi SIEM/Syslog → correlation, alert, investigation.
- Policy Enforcement cho Routing Protocol: Distribute-list / Route-map filter route advertisement (OSPF, BGP, EIGRP) – ngăn route hijack, leak.
Standard ACL vs Extended ACL
| Đặc điểm | Standard ACL (1-99, 1300-1999) | Extended ACL (100-199, 2000-2699) |
|---|---|---|
| Điều kiện match | Chỉ Source IP | Source IP, Dest IP, Protocol (TCP/UDP/ICMP/...), Source Port, Dest Port, TCP Flags (established), ICMP type/code, DSCP/ToS, Time-range |
| Vị trí đặt khuyến nghị | Gần Destination nhất có thể (vì chỉ lọc source, đặt gần source sẽ chặn sớm nhưng thiếu context dest). | Gần Source nhất có thể (lọc chi tiết sớm, tiết kiệm bandwidth, CPU downstream). |
| Dòng xử lý (Processing) | Tuyến tính (top-down), first match wins. Implicit deny any ở cuối. | Tương tự. Tối ưu: đặt rule permit specific trước, deny broad sau. |
| Ví dụ | access-list 10 permit 192.168.10.0 0.0.0.255 | access-list 101 permit tcp 192.168.10.0 0.0.0.255 host 10.1.1.10 eq 443 |
Best Practice cấu hình ACL (Cisco IOS/IOS-XE/NX-OS style)
- Named ACL (Khuyến nghị): `ip access-list extended WAN_IN` – dễ đọc, dễ sửa, hỗ trợ remark, sequence number.
- Sequence Numbers: Dùng `10 permit ...`, `20 deny ...` → dễ insert rule mới giữa mà không rewrite toàn bộ.
- Remarks (Comment): `remark Allow HTTPS to Web Server` – tài liệu hóa ngay trong config.
- Explicit Deny Log: `deny ip any any log` (hoặc `log-input`) – ghi log gói tin bị chặn để SIEM phân tích.
- Object Groups: `object-group network SERVERS`, `object-group service WEB_PORTS` – quản trị tập trung, giảm lỗi, dễ audit.
- Time-based ACL: `time-range WORK_HOURS` – áp dụng quy tắc theo lịch (vd: chặn social media giờ làm việc).
- Reflexive / Established (Legacy): `permit tcp any any established` – cho phép return traffic cho session outbound-initiated (thay thế stateful firewall nếu thiết bị không hỗ trợ).
- IPv6 ACL: `ipv6 access-list WAN_IN_V6` – riêng biệt IPv4, cùng logic.
- Test trước khi apply: `access-list compile` (nếu hỗ trợ), hoặc apply trên interface test/lab trước production.
- Document & Review định kỳ: Quarterly review: unused rule, shadowed rule, overly broad permit, business justification.
Ví dụ ACL thực tế (Cisco IOS Extended Named ACL)
! --- Inbound từ Internet vào DMZ Web Server ---
ip access-list extended WAN_TO_DMZ_IN
10 remark Allow HTTPS to Web Server
10 permit tcp any host 192.168.50.10 eq 443
20 remark Allow HTTP redirect (optional)
20 permit tcp any host 192.168.50.10 eq 80
30 remark Allow DNS from internal resolver
30 permit udp host 192.168.10.5 any eq domain
40 remark Block known malicious IP (threat intel feed)
40 deny ip host 203.0.113.50 any log
50 remark Block private/bogon source from Internet (Anti-spoof)
50 deny ip 10.0.0.0 0.255.255.255 any log
51 deny ip 172.16.0.0 0.15.255.255 any log
52 deny ip 192.168.0.0 0.0.255.255 any log
53 deny ip 127.0.0.0 0.255.255.255 any log
54 deny ip 224.0.0.0 15.255.255.255 any log
999 remark Implicit deny all - explicit for logging
999 deny ip any any log-input
! Apply trên interface outside (WAN)
interface GigabitEthernet0/0
description WAN_Outside
ip access-group WAN_TO_DMZ_IN in
ACL trên Switch (VACL / RACL / PACL)
- RACL (Router ACL / Routed Port / SVI): Lọc traffic routed giữa VLAN (Layer 3). Giống router ACL.
- VACL (VLAN ACL / VLAN Map): Lọc tất cả traffic trong VLAN (bridged + routed) – mạnh hơn, không cần gateway. Dùng cho micro-segmentation east-west.
- PACL (Port ACL): Áp dụng trên physical port (access/trunk) – lọc ingress (Layer 2/3). Dùng cho port security, dot1x fallback.
Kết luận
ACL là khối xây dựng cơ bản (building block) của bảo mật mạng: lọc gói tin stateless tại Layer 3/4. Để hiệu quả: Dùng Extended Named ACL, đặt gần Source, Object Group, Sequence Number, Remarks, Explicit Deny Log, IPv6 ACL, Review định kỳ. ACL bổ sung cho (không thay thế) Stateful Firewall, IPS, Zero Trust Segmentation – cùng tạo nên Defense-in-Depth.