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

Access Control List (ACL) คืออะไร? บทบาทในการป้องกันเครือข่าย และการตั้งค่า

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

ACL (Access Control List) คือ **รายการกฎ (Rules) ที่กำหนดว่า "ใคร" (Source) สามารถ "ทำอะไร" (Action: Permit/Deny) กับ "ที่ไหน" (Destination) "ผ่านทางไหน" (Protocol/Port) ได้** ใช้ควบคุมการไหลของแพ็กเก็ต (Packet Filtering) บน Router, Switch, Firewall, หรือ Load Balancer

ACL ช่วยปรับปรุง Network Security อย่างไร?

  • 🛡️ **Packet Filtering:** อนุญาต/บล็อกทราฟฟิกตาม IP, Port, Protocol (Layer 3/4)
  • 🛡️ **Traffic Control:** จำกัด Bandwidth, QoS, Rate Limiting
  • 🛡️ **Access Restriction:** บล็อกการเข้าถึง Management Plane (SSH, SNMP, HTTP/HTTPS to Router)
  • 🛡️ **Anti-Spoofing:** บล็อก Source IP ที่เป็น Private/RFC1918 จาก Internet (Ingress Filtering)
  • 🛡️ **Segmentation:** แยก VLAN/Subnet (Inter-VLAN ACL) จำกัด Lateral Movement
  • 🛡️ **Compliance:** Enforce Policy (เช่น PCI-DSS: บล็อก Cardholder Data Network ออก Internet)

ประเภทของ ACL (Cisco Style)

ประเภทลำดับหมายเลขการจับคู่ (Match Criteria)ใช้เมื่อไหร่
Standard ACL1-99, 1300-1999Source IP เท่านั้นง่าย, ใกล้ Destination (เพราะไม่เห็น Dest)
Extended ACL100-199, 2000-2699Src IP, Dst IP, Protocol (TCP/UDP/ICMP), Src/Dst Port, TCP Flags, ToS, Precedenceส่วนใหญ่ ใกล้ Source (Best Practice)
Named ACLชื่อตัวอักษรเหมือน Standard/Extended แต่มีชื่อ อ่านง่าย, จัดการง่าย, ลบ/แก้ไข Entry ได้แนะนำใช้แทน Numbered
Dynamic ACL (Lock-and-Key)-User Auth (Telnet/SSH) แล้วสร้าง Temporary PermitRemote Access ชั่วคราว
Reflexive ACL-สร้าง Temporary Permit สำหรับ Return Traffic (Stateful-lite)ไม่มี Firewall/Stateful Inspection
Time-based ACL-ผูกกับ Time Range (เช่น บล็อก Facebook เฉพาะเวลาทำงาน)Policy-based Access

ACL ใน Firewall vs Router ACL

ด้านRouter ACL (Stateless)Firewall ACL (Stateful)
InspectionPacket-by-packet (ไม่จำ State)Stateful (จำ Connection State: SYN, ESTAB, FIN)
Return Trafficต้อง Allow Explicitly (ใน ACL)Allow อัตโนมัติ (State Table)
Performanceเร็ว (Hardware/ASIC)ช้ากว่า (แต่ Smart)
Application Awarenessไม่มี (L3/L4 เท่านั้น)มี (L7: App-ID, URL Filtering, SSL Decrypt)

Best Practices การเขียน ACL

  1. Implicit Deny All: ท้าย ACL ทุกตัวมี `deny ip any any` (Hidden) -> ต้อง Permit ก่อน Deny
  2. Top-Down Processing: ใส่กฎเฉพาะเจาะจง (Specific) ไว้บน, กฎกว้าง (General) ไว้ล่าง
  3. Place Standard ACL near Destination, Extended near Source
  4. ใช้ Named ACL แทน Numbered (อ่านง่าย, จัดการ Entry ได้)
  5. Document ทุก Entry: `remark` คำอธิบาย (Change Request, Owner, Date)
  6. Test ก่อนนำไป Production: Lab / `access-list compile` / Simulation
  7. Review แบบ定期 (Quarterly): ลบกฎไม่ใช้, ปรับลำดับ, ตรวจ Shadowed Rules
  8. Anti-Spoofing Ingress/Egress: RFC 2827 / BCP 38

ตัวอย่าง ACL (Cisco Extended Named ACL)

ip access-list extended WAN_INBOUND
 remark === ALLOW MANAGEMENT FROM TRUSTED NETWORK ===
 permit tcp host 192.168.10.5 host 203.0.113.10 eq 22 log   # SSH from Mgmt Host
 permit tcp host 192.168.10.5 host 203.0.113.10 eq 443 log  # HTTPS Mgmt
 remark === ALLOW PUBLIC SERVICES ===
 permit tcp any host 203.0.113.10 eq 80    # Web Server HTTP
 permit tcp any host 203.0.113.10 eq 443   # Web Server HTTPS
 permit udp any host 203.0.113.10 eq 53    # DNS
 remark === DENY PRIVATE/RFC1918 FROM INTERNET (ANTI-SPOOF) ===
 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  # Multicast
 remark === DENY ALL ELSE & LOG ===
 deny ip any any log

Network ACL (AWS/Azure/GCP) vs Security Group

ด้านNetwork ACL (Stateless)Security Group (Stateful)
ScopeSubnet LevelInstance/ENI Level
RulesAllow + Deny (Numbered, Ordered)Allow Only (Implicit Deny All)
Stateful❌ ต้อง Allow Return Traffic เอง✅ อัตโนมัติ
EvaluationTop-down (First Match)All Rules Evaluated
Use CaseSubnet Border, Stateless FilteringInstance Firewall, Application Tier

คำถามที่พบบ่อย (FAQ)

ACL และ Firewall ต่างกันยังไง?

ACL = Stateless Packet Filter (L3/L4) บน Router/Switch | Firewall = Stateful Inspection (L3-L7) + App Control + IPS + VPN + Management

ACL ใช้แทน Firewall ได้ไหม?

**ไม่ได้** ACL เป็นชั้นหนึ่ง (Layer) ใน Defense in Depth ใช้ร่วมกับ Firewall (Edge: Firewall, Internal: ACL/SG)

Shadowed Rule ใน ACL คืออะไร?

กฎที่อยู่ล่าง แต่ Match Criteria ถูกครอบคลุมโดยกฎบนสุดแล้ว -> ไม่มีโอกาสทำงาน -> ควรลบ/ย้าย

ACL 影响 Performance ไหม?

Router ACL มักรันบน **Hardware/ASIC/TCAM** -> **ไม่กระทบ CPU/Throughput** (จน TCAM เต็ม) Firewall Stateful ต้องใช้ CPU/Memory มากกว่า