Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> ความปลอดภัยเครือข่าย

ACL (Access Control List) ในความปลอดภัยเครือข่าย: ประเภท สถานการณ์ใช้งาน และการเพิ่มประสิทธิภาพ

ACL (Access Control List) คืออะไร?

Access Control List (ACL) คือรายการกฎ (Rules) ที่กำหนดว่า อนุญาต (Permit) หรือปฏิเสธ (Deny) การไหลของแพ็กเก็ตข้อมูลผ่านอุปกรณ์เครือข่าย (Router, Switch, Firewall) ตามเงื่อนไขที่กำหนด เช่น IP ต้นทาง/ปลายทาง, Port, Protocol, Time

ประเภท ACL หลักใน Networking (Cisco)

สถานการณ์ใช้งาน ACL เพิ่มประสิทธิภาพความปลอดภัย (Use Cases)

1. Management Plane Protection (ป้องกัน Management Access)

! เฉพาะ Management Network (10.10.10.0/24) เข้า SSH/HTTPS/SNMP ได้
ip access-list standard MGMT-ACCESS
 permit 10.10.10.0 0.0.0.255
 deny any log

line vty 0 15
 access-class MGMT-ACCESS in
 transport input ssh
!
snmp-server community READONLY RO MGMT-ACCESS

2. Control Plane Policing (CoPP) / Infrastructure Protection

! ป้องกัน DoS ต่อ Control Plane (BGP, OSPF, SSH, ICMP, NTP)
ip access-list extended COPP-ALLOW
 permit tcp any host 192.0.2.1 eq bgp
 permit ospf any host 192.0.2.1
 permit udp any host 192.0.2.1 eq ntp
 permit icmp any host 192.0.2.1 echo-reply
 deny ip any any

control-plane
 service-policy input COPP-POLICY

3. VTY/SSH/HTTPS Access Restriction

ip access-list standard VTY-ACCESS
 permit 192.168.100.0 0.0.0.255  ! Admin Subnet
 permit 10.0.0.5  ! Jump Host
 deny any log

line vty 0 15
 access-class VTY-ACCESS in
 ipv6 access-class VTY-ACCESS-V6 in
 transport input ssh

4. Anti-Spoofing / RFC 1918 / Bogon Filtering (Ingress/Egress)

! Ingress ACL บน Internet Edge - บล็อก Source IP ที่เป็น Private/Bogon
ip access-list extended ANTI-SPOOF-IN
 deny ip 10.0.0.0 0.255.255.255 any
 deny ip 172.16.0.0 0.15.255.255 any
 deny ip 192.168.0.0 0.0.255.255 any
 deny ip 169.254.0.0 0.0.255.255 any  ! Link-local
 deny ip 127.0.0.0 0.255.255.255 any  ! Loopback
 deny ip 224.0.0.0 15.255.255.255 any ! Multicast
 deny ip host 0.0.0.0 any
 permit ip any any

! Egress ACL - อนุญาตเฉพาะ Public IP ขององค์กรออกไป
ip access-list extended EGRESS-FILTER
 permit ip 203.0.113.0 0.0.0.255 any  ! Public IP Range ของเรา
 deny ip any any log

5. Restrict Risky Protocols/Ports (Lateral Movement Prevention)

! บล็อก SMB, RDP, WinRM, RPC, SSH ระหว่าง User VLANs (East-West)
ip access-list extended BLOCK-LATERAL
 deny tcp any any range 135 139   ! RPC, NetBIOS
 deny tcp any any eq 445           ! SMB
 deny tcp any any eq 3389          ! RDP
 deny tcp any any eq 5985          ! WinRM HTTP
 deny tcp any any eq 5986          ! WinRM HTTPS
 deny tcp any any eq 22            ! SSH
 permit ip any any

! ใช้บน SVI / L3 Interface ของ User VLANs (In/Out ทั้งคู่)

6. Guest/Internet Access Control

! Guest VLAN - ออกอินเทอร์เน็ตได้ แตะเข้าถึง Internal ไม่ได้
ip access-list extended GUEST-ACCESS
 permit udp any any eq domain      ! DNS
 permit tcp any any eq www         ! HTTP
 permit tcp any any eq 443         ! HTTPS
 permit udp any any eq ntp         ! NTP
 deny ip any 10.0.0.0 0.255.255.255  ! Block Internal RFC1918
 deny ip any 172.16.0.0 0.15.255.255
 deny ip any 192.168.0.0 0.0.255.255
 permit ip any any                 ! Allow Internet

7. Server Farm / DMZ Protection

! DMZ Web Server - เฉพาะ Port 80, 443 จาก Internet
ip access-list extended DMZ-WEB-IN
 permit tcp any host 203.0.113.10 eq 80
 permit tcp any host 203.0.113.10 eq 443
 deny ip any any log

! DMZ to Internal - เฉพาะ DB Port จาก App Server
ip access-list extended DMZ-TO-INTERNAL
 permit tcp host 10.10.20.10 host 10.10.30.20 eq 1433  ! SQL
 permit tcp host 10.10.20.10 host 10.10.30.20 eq 3306  ! MySQL
 deny ip any any log

8. SNMP / NTP / Syslog Access Control

ip access-list standard SNMP-ACCESS
 permit 10.10.100.10  ! NMS Server
 permit 10.10.100.11  ! Backup NMS
 deny any log

snmp-server community READONLY RO SNMP-ACCESS
snmp-server community READWRITE RW SNMP-ACCESS

ip access-list standard NTP-ACCESS
 permit 10.10.100.5  ! Internal NTP Server
 deny any

ntp access-group peer NTP-ACCESS
ntp access-group serve NTP-ACCESS

Best Practices การเขียนและจัดการ ACL

  1. Implicit Deny All: ทุก ACL มี `deny ip any any` อยู่ท้ายสุด (Hidden) - Log มันไว้
  2. Top-Down Processing: เรียงกฎ Specific ก่อน General (Permit Specific > Deny General)
  3. Named ACLs: ใช้ชื่อที่มีความหมาย (MGMT-ACCESS, ANTI-SPOOF-IN) แทนหมายเลข
  4. Sequence Numbers: ใช้ `10, 20, 30...` เพื่อแทรกกฎระหว่างได้
  5. Document & Comment: `remark ### Block SMB for Lateral Movement Prevention ###`
  6. Test in Lab/Staging First: อย่า Deploy Production ทันที
  7. Monitor Hits: `show access-lists` ดู Hit Count, ปรับกฎที่ไม่ถูก Hit / Hit มากผิดปกติ
  8. Regular Review: Quarterly Review - ลบกฎไม่ใช้, อัปเดต IP, ทบทวนความจำเป็น
  9. Performance: Standard ACL ใกล้ Destination, Extended ACL ใกล้ Source (ประหยัด CPU)
  10. Object Groups: จัดกลุ่ม IP/Port/Protocol (ASA/Firepower/Palo Alto) เพื่อจัดการง่าย

ACL vs Firewall vs Zero Trust

ประเภท หมายเลข/ชื่อ ความสามารถ Use Case
Standard ACL 1-99, 1300-1999 กรองเฉพาะ Source IP Address เท่านั้น ควบคุมการเข้าถึงพื้นฐาน, ใกล้ปลายทาง (Destination)
Extended ACL 100-199, 2000-2699 กรอง Source IP, Destination IP, Protocol (TCP/UDP/ICMP), Port, DSCP, ToS, Established, Time-range ส่วนใหญ่ของ Enterprise, ใกล้ต้นทาง (Source)
Named ACL ชื่อที่ตั้งเอง Standard หรือ Extended แต่เรียกด้วยชื่อ (อ่านง่าย, จัดการง่าย, ลบ/เพิ่ม Sequence ได้) แนะนำใช้แทน Numbered ACL
IPv6 ACL Named Only รองรับ IPv6 Address, Next Header, Flow Label IPv6 Network
Reflexive ACL Dynamic (IP Session Filtering) อนุญาต Traffic กลับ (Return Traffic) ชั่วคราว Stateful Firewall แบบง่าย (Legacy)
Time-based ACL Extended + Time-range Enforce กฎตามเวลา (เช่น บล็อก Facebook เวลาทำงาน) Policy-Based Access Control
คุณสมบัติ ACL (Router/Switch) Stateful Firewall Zero Trust (ZTNA)
Layer L3/L4 (mostly) L3-L7 (App-ID, User-ID) L7 + Identity + Context
Stateful No (Stateless*) Yes Continuous Verification
Performance Very High (Hardware) High (ASIC/NPU) Depends on Proxy/Agent
Granularity IP, Port, Protocol App, User, Content, Threat Identity, Device Posture, Context
Management CLI, Decentralized Centralized (Panorama, FMC) Cloud Centralized Policy

* Reflexive ACL ให้ Stateful แบบจำกัด | Modern Router ACLs (Cisco ACI, SR Linux) รองรับ Stateful

สรุป

ACL เป็น Fundamental Building Block ของ Network Security ที่ยังคงสำคัญและจำเป็น แม้มี Firewall/Zero Trust แล้ว เพราะ:

  • ทำงานที่ Line Rate (Hardware ASIC) - เร็วมาก
  • เป็น First Line of Defense ที่ Edge และ Infrastructure Protection
  • รองรับได้ทุก Vendor (Standard CLI)
  • เป็นพื้นฐานของ Micro-segmentation และ ZTNA

ควรใช้ ACL ร่วมกับ Firewall/NDR/ZTNA ในแนวคิด Defense in Depth เพื่อความปลอดภัยสูงสุด