Access Control List (ACL) คืออะไร?
ACL (Access Control List) คือชุดกฎ (Rules) ที่ใช้ในการ กรองทราฟฟิกเครือข่าย (Packet Filtering) บน Router, Firewall, Switch, Load Balancer เพื่อ อนุญาต (Permit) หรือปฏิเสธ (Deny) การสื่อสารตามเงื่อนไขที่กำหนด ทำหน้าที่เป็น Stateless Packet Filter (ตรวจสอบแพ็กเก็ตแต่ละตัวแยกกัน ไม่มี State Table)
ACL ปรับปรุง Network Security ได้อย่างไร?
- Traffic Filtering: บล็อกทราฟฟิกอันตราย/ไม่จำเป็น (Malicious IPs, Unused Ports, Suspicious Protocols)
- Access Control: จำกัดการเข้าถึงระบบสำคัญ (Management Plane, Databases, Admin Interfaces)
- Network Segmentation Enforcement: บังคับให้ VLAN/Zones สื่อสารได้เฉพาะที่อนุญาต
- Anti-Spoofing: บล็อก Source IP ที่เป็น Private/RFC1918 บน Ingress, หรือ Source ไม่ตรง Subnet
- DDoS Mitigation (Basic): Rate Limiting, Block Known Attack Sources
- Routing Control: Distribute-list, Route-map ใช้ ACL ควบคุม Route Advertisement
- QoS Classification: จำแนกทราฟฟิกเพื่อ Priority/Policing
- NAT/PAT Control: กำหนดว่า IP ใดถูก NAT/ไม่ถูก NAT
- VPN Traffic Selection: กำหนด Interesting Traffic สำหรับ IPsec Tunnel
ประเภท ACL (Cisco IOS Style)
| ประเภท | หมายเลข/ชื่อ | Match Criteria | ใช้เมื่อไหร่ |
|---|---|---|---|
| Standard ACL | 1-99, 1300-1999 | Source IP Only | Simple Filtering, Near Destination |
| Extended ACL | 100-199, 2000-2699 | Source IP, Dest IP, Protocol (TCP/UDP/ICMP), Source Port, Dest Port, Flags, ToS/DSCP, Precedence, TTL, Option, Established | Granular Control, Near Source (Best Practice) |
| Named ACL | Alphanumeric Name | Same as Standard/Extended + Sequence Numbers, Removable Entries | ทุกกรณี (Best Practice - Readable, Manageable) |
| IPv6 ACL | Named Only | Source/Dest IPv6, Next Header, Flow Label, DSCP | IPv6 Networks |
| Object-Group ACL | Network/Port/Protocol Groups | Reference Object Groups | Large Rule Sets, Maintainability |
Extended ACL Match Attributes (สำคัญสำหรับสอบ/สัมภาษณ์)
Extended ACL สามารถ Match ได้:
- Source IP Address / Prefix
- Destination IP Address / Prefix
- Protocol: IP, TCP, UDP, ICMP, OSPF, EIGRP, GRE, AH, ESP, SCTP, Port Range (eq, neq, lt, gt, range)
- TCP Flags: established (ACK/RST), match-any, match-all (SYN, ACK, FIN, RST, PSH, URG)
- ICMP Type/Code
- DSCP / ToS / Precedence
- TTL, Option, Fragments
- Time-based ACL (time-range)
Best Practice: ACL Placement
| ACL Type | Placement Guideline | เหตุผล |
|---|---|---|
| Extended ACL | ใกล้ Source (Source Router/Interface) มากที่สุด | กรองทิ้งเร็วที่สุด ประหยัด Bandwidth/CPU ทางไกล |
| Standard ACL | ใกล้ Destination (Destination Router/Interface) มากที่สุด | เพราะ Match แค่ Source IP หากวางใกล้ Source อาจบล็อก Traffic ที่ควรไปที่อื่น |
ตัวอย่าง ACL ใช้งานจริง (Cisco Syntax)
! Anti-Spoofing Ingress (บน Interface WAN/Internet Incoming)
ip access-list extended ANTI_SPOOF_IN
deny ip 10.0.0.0 0.255.255.255 any log
deny ip 172.16.0.0 0.15.255.255 any log
deny ip 192.168.0.0 0.0.255.255 any log
deny ip 127.0.0.0 0.255.255.255 any log
deny ip 169.254.0.0 0.0.255.255 any log
deny ip 224.0.0.0 15.255.255.255 any log
deny ip host 0.0.0.0 any log
permit ip any any
! Management Access Control (บน Control Plane / VTY / SNMP)
ip access-list standard MGMT_ALLOW
permit 10.10.10.0 0.0.0.255 ! Network Management Subnet
permit 192.168.100.0 0.0.0.255 ! Admin Subnet
deny any log
! VTY Access Class
line vty 0 15
access-class MGMT_ALLOW in
transport input ssh
! Outbound Internet Filtering (บน Interface LAN Outgoing)
ip access-list extended OUTBOUND_WEB
permit tcp any any eq 80
permit tcp any any eq 443
permit udp any any eq 53
permit tcp any any eq 22 ! SSH to specific bastion if needed
deny ip any any log
ACL vs Stateful Firewall
| คุณสมบัติ | ACL (Stateless) | Stateful Firewall |
|---|---|---|
| Connection Tracking | ไม่มี (Per-packet) | มี (State Table: SYN→SYN-ACK→ACK) |
| Return Traffic | ต้อง Allow Explicitly (Outbound ACL) | Allow อัตโนมัติ (Session Established) |
| Performance | สูงมาก (Hardware TCAM) | ต่ำกว่า (State Lookup) |
| Inspection Depth | L3/L4 Only | L7 (App-ID, IPS, AV, SSL Decrypt) |
| ใช้ร่วมกัน? | ใช่ ACL = First Line (High-speed Filtering) + Firewall = Deep Inspection | |
คำถามสอบ/สัมภาษณ์ที่เกี่ยวข้อง (จากเนื้อหาต้นฉบับ)
- How access lists can be used to improve network security?
- Filter traffic based on IP header info (Source/Dest IP, Protocol, Port) → Permit/Deny → Reduce Attack Surface, Enforce Segmentation, Anti-spoofing
- Which describes how ACLs improve network security?
- ACLs filter/define traffic per IP header (source/dest IP, protocol, port) - Packet Filtering Firewalls use ACLs
- Good general rule for Extended ACL placement?
- As close to source as possible
- Good general rule for Standard ACL placement?
- As close to destination as possible
- Extended ACL numbering range?
- 100-199, 2000-2699
- Attributes Extended ACLs filter by? (Select two)
- Source/Destination IP, Protocol (TCP/UDP/ICMP), Port Number
สรุป
ACL = Stateless Packet Filter (L3/L4) ใช้ Permit/Deny ตาม IP, Protocol, Port วาง Extended ใกล้ Source, Standard ใกล้ Destination เป็น Foundation ของ Network Security แต่อยู่ในชั้นนอก (Perimeter/Edge) ควรใช้ร่วมกับ Stateful Firewall/NDR/Zero Trust สำหรับ Defense in Depth