ACL (Access Control List) คืออะไร?
Access Control List (ACL) คือรายการกฎ (Rules) ที่กำหนดให้ อนุญาต (Permit) หรือปฏิเสธ (Deny) การผ่านของแพ็กเก็ตข้อมูล ผ่านอินเตอร์เฟซเครือข่าย ตามเงื่อนไขที่กำหนด เช่น Source/Destination IP, Port, Protocol
วัตถุประสงค์หลักของ ACL
- Packet Filtering (การกรองแพ็กเก็ต): ควบคุมทรัฟฟิกที่ไหลผ่าน Router/Firewall/Interface
- Network Security (ความปลอดภัยเครือข่าย): บล็อกทรัฟฟิกอันตราย จำกัดการเข้าถึงทรัพยากรสำคัญ
- Traffic Control (การควบคุมทรัฟฟิก): QoS, Rate Limiting, Policy-based Routing
- Access Management: ควบคุมการเข้าถึงระหว่าง Segment/VLAN (Inter-VLAN ACL)
ประเภท ACL หลัก
| ประเภท | ลำดับหมายเลข | เงื่อนไขการจับคู่ (Match Criteria) | ใช้งานกับ |
| Standard ACL | 1-99, 1300-1999 | Source IP Address เท่านั้น | Filtering แบบง่าย ใกล้ Destination |
| Extended ACL | 100-199, 2000-2699 | Source IP, Dest IP, Protocol (TCP/UDP/ICMP), Source/Dest Port, Flags, ICMP Type | Filtering แบบละเอียด ใกล้ Source |
| Named ACL | ชื่อที่ตั้งเอง | เหมือน Standard/Extended แต่อ้างอิงด้วยชื่อ | จัดการง่าย อ่านง่าย รองรับ Remark |
| IPv6 ACL | Named เท่านั้น | IPv6 Address, Next Header, Flow Label | IPv6 Traffic |
| MAC ACL (Layer 2) | Named | Source/Dest MAC, EtherType, VLAN ID, CoS | Non-IP Traffic บน Switch (Layer 2) |
การทำงานของ ACL (Processing Logic)
- ตรวจสอบ ACE (Access Control Entry) ตามลำดับหมายเลข (Sequence Number) จากบนลงล่าง
- หาก Match เงื่อนไข → ดำเนินการ Action (Permit/Deny) และหยุดประมวลผล
- หากไม่ Match ทุก ACE → Implicit Deny All (ปฏิเสธทุกอย่างที่ไม่ได้ระบุ Permit)
ตัวอย่าง Extended ACL (Cisco IOS)
ip access-list extended WEB_SERVER_INBOUND
remark Allow HTTP/HTTPS to Web Server
permit tcp any host 192.168.10.10 eq 80
permit tcp any host 192.168.10.10 eq 443
remark Allow SSH from Admin Network only
permit tcp 192.168.100.0 0.0.0.255 host 192.168.10.10 eq 22
remark Block Telnet (Insecure)
deny tcp any host 192.168.10.10 eq 23 log
remark Allow ICMP (Ping) for monitoring
permit icmp any host 192.168.10.10 echo-request
remark Implicit Deny All (Auto)
!
interface GigabitEthernet0/1
ip access-group WEB_SERVER_INBOUND in
ACL vs Firewall
| คุณสมบัติ | ACL (Router/Switch) | Stateful Firewall |
| การตรวจสอบ | Stateless (ดูแต่ละแพ็กเก็ตแยกกัน) | Stateful (จำสถานะ Connection) |
| Layer | L3/L4 (Extended), L2 (MAC ACL) | L3-L7 (Application Layer) |
| Performance | สูงมาก (Hardware ASIC) | ปานกลาง (ต้องการ CPU/Memory มากกว่า) |
| Features | Basic Filtering | IPS, App-ID, SSL Decrypt, User-ID, Anti-Virus |
ประโยชน์ของ ACL บน Cisco Router
- ลดทรัฟฟิกที่ไม่จำเป็น (Reduce Unnecessary Traffic) ประหยัด Bandwidth และ CPU
- ป้องกัน IP Spoofing (Anti-Spoofing) ด้วย uRPF หรือ ACL ingress
- ควบคุม VTY/SSH Access ให้เฉพาะ Admin Network (Management Plane Protection)
- Route Filtering (Distribute-list, Route-map) ควบคุม Routing Update
Layer ที่ ACL ทำงาน
- Layer 2: MAC ACL (บน Switch)
- Layer 3-4: IP ACL (Standard/Extended) บน Router, Layer 3 Switch, Firewall
- AWS Network ACL: ทำงานที่ Subnet Level (Stateless) แตกต่างจาก Security Group (Instance Level, Stateful)
สรุป
ACL เป็นเครื่องมือพื้นฐานแต่ทรงพลังสำหรับควบคุมทรัฟฟิกเครือข่าย ใช้ร่วมกับ Firewall เพื่อ Defense in Depth ควรใช้ Named ACL, ใส่ Remark, วาง Permit specific ก่อน Deny general และ Review เป็นระยะ