top of page

Access Control List

  • sputtipon
  • 19 มี.ค.
  • ยาว 3 นาที

Access Control List หรือ ACL เป็นอีกหนึ่งเครื่องมือที่ช่วยจัดการควบคุมการเข้าถึง Traffic ประเภทต่างๆ ได้ ตัวอย่างเช่น ถ้าต้องการไม่ให้ User ที่อยู่ในเครือข่าย 172.16.1.0/24 สามารถ Telnet, ssh เข้าสู่อุปกรณ์เครือข่ายได้ แต่ต้องการให้ใช้งาน Internet ก็สามารถนำ ACL มาประยุกต์ใช้งานได้ ซึ่งความเป็นจริงแล้ว ACL สามารถนำไปใช้งานหลากหลาย เช่น นำไปใช้งานร่วมกับ QoS, Route-Map, NAT และอื่นๆอีกมากมาย แต่บทความนี้จะอธิบายในมุมมองของการนำมาใช้การควบคุม Traffic การเข้าถึง Resource ต่างๆ


อาจจะมองได้ว่า ACL เป็นการกรอง (Filtering) ก็ได้ ถ้าหากเป็นกลุ่มที่สนใจ หรือ Match เช่น จากตัวอย่างสนใจ User ที่อยู่ในเครือข่าย 172.16.1.0/24 แล้วจะให้ทำอะไรกับกลุ่มนี้บ้าง ถ้าหากเข้าเงื่อนไขที่ไม่อนุญาตก็อาจจะ Drop Packet นั้นทิ้งไป หรือถ้าเข้าเงื่อนไขที่อนุญาตให้ผ่าน ก็สามารถใช้งานได้ จากตัวอย่างภาพด้านบนจะเห็นว่าเราจะใช้ ACL ทำให้ User ที่มี IP 172.16.1.2 จะไม่สามารถ Telnet เข้า Router R1 แต่สามารถใช้งาน Internet ได้


            การนำ ACL มาประยุกต์งาน

- การทำ QoS (Quality of Service) หรือคุณภาพการให้บริการ

- นำไปใช้ร่วมกับ Routing Protocol เช่น การทำ Route Map, การ Redistribute ระหว่าง Routing Protocol

            - การนำไปใช้ร่วมกับ NAT (Network Address Translation) เพื่อให้ IP Private ภายในองค์กรเปลี่ยนเป็น IP Public ที่กำหนดไว้ได้

 

 

            ประเภทของ ACL  

            ACL สามารถแบ่งออกได้เป็นหลายประเภท แต่บทความนี้จะนำเสนอสัก  2 ประเภท คือ Standard และ Extended



            Standard ACL

            ควบคุมการเข้าถึงโดยที่จะตรวจสอบเฉพาะแค่ Source Address เท่านั้น และไม่สามารถกำหนดเงื่อนไขอย่างอื่นได้เลย เช่น IP ของปลายทาง หมายเลขที่ใช้สำหรับระบุเป็น ACL แบบ Standard มี 2 ช่วง คือ 1-99 และ 1300-1999


ข้อดี

-ตั้งค่าได้ง่าย: มีรูปแบบการเขียนไม่ซับซ้อน เหมาะกับงานพื้นฐาน

-ประหยัด Resource อุปกรณ์: ใช้ทรัพยากรน้อยกว่า Extended ACL

-ใช้บล็อก(Deny)หรืออนุญาต(Permit) IP address ได้รวดเร็ว


ข้อเสีย:

-ควบคุมได้แค่ IP ต้นทางเท่านั้น: ไม่สามารถระบุพอร์ตปลายทาง, โปรโตคอล, หรือ IP ปลายทางได้

-ควบคุมการเข้าถึงได้ไม่ละเอียด: ไม่เหมาะกับงานที่ต้องควบคุม Traffic แบบละเอียด เช่น บล็อกแค่ Web หรือ SSH


            Extended ACL

            มีความยืดหยุ่นกว่าแบบ Standard โดยที่สามารถระบุได้ทั้ง IP ทั้งต้นทางและปลายทางที่ต้องการได้ อีกทั้งยังระบุ Protocol อย่างเช่น TCP/UDP ICMP OSPF เป็นต้น รวมถึงหมายเลข TCP/UDP Port Number ยกตัวอย่างเช่น ถ้าไม่ต้องการให้ใช้งาน Telnet เข้าอุปกรณ์เครือข่าย ก็จะทำการ Block TCP Port 23 กับกลุ่ม IP ที่ไม่อนุญาตให้ใช้งาน หมายเลขที่ใช้สำหรับระบุเป็น ACL แบบ Extended มี 2 ช่วงเช่นกัน คือ 100-199 และ 2000-2699


ข้อดี

-ควบคุมได้ละเอียดมากกว่าวแบบ Standard : ระบุได้ทั้ง IP ต้นทาง, IP ปลายทาง, โปรโตคอล (TCP/UDP/ICMP), และพอร์ต (เช่น HTTP, SSH, etc.)


ข้อเสีย:

-ซับซ้อนกว่าในการเขียนและดูแล: ในการตั้งค่าต้องระบุหลายเงื่อนไข

-ใช้ทรัพยากร หรือ Resource มากขึ้น: ตรวจสอบหลายพารามิเตอร์มากกว่า Standard ACL


            Name ACL

            นอกเหนือจากใช้หมายเลขในการแบ่งแยกประเภทของ ACL แล้ว เรายังสามารถเขียน ACL ในอีกรูปแบบหนึ่งคือ Name Access List ซึ่งใช้ชื่อแทนการใช้ตัวเลขเพื่อแบ่งแยกว่า ACL เบอร์ไหนเป็น ACL แบบ Standard หรือ Extended ทำให้จดจำได้ง่ายกว่าการใช้ตัวเลข

 


ข้อดี

-ใช้ ชื่อ แทนหมายเลข → อ่านง่าย จำง่าย

-มีทั้งแบบ Standard และ Extended

-เหมาะสำหรับ network ขนาดกลาง-ใหญ่ ที่ต้องจัดการ ACL


ข้อเสีย:

-บางอุปกรณ์รุ่นเก่าอาจไม่รองรับ Named ACL


ACL Operation

            จากรูปด้านบนเป็นส่วนประกอบของ Name ACL แบบ Standard โดยใช้ชื่อ ACL_TEST โดยใน 1 ALC อาจจะมีหลาย Statement ก็ได้(ให้นึกภาพว่าคือมีหลายๆบรรทัด) ในตัวอย่างมี 3 Statement คือ 10, 20 และ 30 ซึ่งแต่ละ Statement ก็จะมีเงื่อนไขแตกต่างกัน เช่น


Statement ที่ 10 Permit คือ อนุญาตให้ IP 172.16.1.0/24 ผ่านได้

Statement ที่ 20 Deny ไม่อนุญาตให้ IP 10.0.0.0/8 ผ่านได้


การพิจารณาเงื่อนไขของ ACL ก็จะทำจากบนลงล่างเสมอ ถ้าหากมี Packet ที่เข้าเงื่อนไขใน Statement ที่ 10 แล้ว จะไม่นำ Packet นั้นมาพิจารณากับ Statement ที่เหลืออยู่ในบรรทัดด้านล่างอีกต่อไป แต่ถ้าหากไม่เข้าเงื่อนไขของ Statement ใดๆ เลย ก็จะไม่อนุญาตให้ Packet นั้นผ่านได้ เพราะโดย Default ของ ACL จะเป็น “implicit deny” (เหมือนมี Deny ทุกๆอย่าง) จะไม่แสดงอยู่ใน Configuration ของ Router

 

ACL Configuration

            การตั้งค่าการใช้งานของ ACL จะมีรูปแบบของคำสั่งหรือ Command Line ดังนี้


            ตัวอย่าง Standard ACL 

            - Standard ACL ใช้หมายเลข 1-99 และ 1300-1999 เพื่อเป็นการกำหนดเป็น Standard ACL สำหรับ Standard ACL มีรูปแบบคำสั่งตามที่ได้แสดงด้านล่าง

 


ในตัวอย่างคำสั่งของ ACL แบบ Standard จะเลือกระบุได้เฉพาะ Source IP เท่านั้น โดยสามารถระบุ Source IP เป็นกลุ่มที่สนใจได้ โดยใช้ Wildcard Mask เข้ามาเกี่ยวข้อง หรือระบุเฉพาะ IP ที่สนใจก็ได้ จากตัวอย่างคำสั่งด้านบนจะหมายความว่า ACL Standard หมายเลข 1

            - ไม่อนุญาตให้ Packet ต้นทางที่มี Source IP ในช่วง 10.10.10.0-255 ผ่านได้ (เพราะ Wildcard Mask มีค่าเป็น 0.0.0.255 เรื่อง Wildcard เดี๋ยวขออธิบายแยกเป็นอีกบทความ)

            - อนุญาตให้ Packet ที่มี Source IP 172.16.1.1 เท่านั้นผ่านได้


            ตัวอย่าง Extended ACL

Extended ACL จะใช้หมายเลข 100-199 และ 2000-2699 เพื่อเป็นการระบุว่าเป็นการใช้งาน Extended ACL สำหรับ Extended ACL มีรูปแบบคำสั่งตามที่ได้แสดงด้านล่าง



            จากตัวอย่างคำสั่ง ACL แบบ Extended ด้านบน สามารถแปลความได้ว่า ACL Extended หมายเลข 100

            - ไม่อนุญาตให้ IP ต้นทางที่อยู่ในกลุ่ม 10.10.10.0-255 ไปยัง IP 192.168.1.1 ด้วยการ Telnet ได้

            จะเห็นได้ว่า Extended ACL จะมีความยืดหยุ่นมากขึ้นโดยที่สามารถเลือก Protocol ได้ เช่น OSPF, EIGRP, ARP, ICMP รวมไปถึง TCP/UDP ในรูปด้านล่างจะแสดง Protocol ที่สามารถเลือกใช้งานได้


สำหรับ Protocol TCP/UDP ทำงานอยู่บน Transport Layer จะมีหมายเลข Port ที่คอยกำกับไว้เพื่อรองรับ Application ที่ต้องการใช้งาน ดังเช่นรูปด้านล่าง



            ตัวอย่าง Name ACL 

             - Name ACL จะเป็นการตั้งชื่อของ ACL แทนที่จะใช้หมายเลขเพื่อระบุว่าเป็น ACL ประเภทใด ซึ่งสามารถจดจำได้ง่ายกว่า รูปแบบคำสั่งแสดงในตัวอย่างด้านล่าง


เห็นได้ว่า Configuration ของ ACL แบบ Name จะค่อนข้างดูเป็นระเบียบและดูได้ง่ายกว่าแบบ Number

 


การ Apply บน Interface

            การนำ ACL ไปใช้งานบน Interface จะพิจารณาตามทิศทางเข้า-ออกของ Packet ตัวอย่างตามรูปที่ได้แสดงด้านล่าง ถ้าหาก User ต้องการใช้งาน Internet ทิศทางของการส่งข้อมูล Packet จะออกจากเครื่อง User แล้วเข้า Interface Eth0/0 หรือ Inbound และออกที่ Interface Eth0/1 หรือ Outbound เพื่อไปยัง Internet

ถ้าหากได้มีการสร้าง ACL เพื่อที่จะให้ผู้ใช้งานที่อยู่ใน Network 172.16.1.0/24 สามารถออก Internet ได้ จะเห็นได้ว่าสามารถนำ ACL นี้ไปใช้ได้ 2 จุด คือ Interface Eth0/0 โดยระบุทิศทางเป็น Inbound หรือที่ Interface Eth0/1 ก็ได้ โดยระบุทิศทางเป็น Outbound


            หลังจากทำการสร้าง ACL แล้ว ในลำดับถัดไปจะต้องนำ ACL ไปผูกกับ Interface เพื่อควบคุมหรือ Filter Traffic ที่เราต้องการ สำหรับคำสั่งที่นำ ACL ไปใช้บน Interface จะมีรูปแบบของคำสั่งตามที่ได้ในรูปแสดงด้านล่าง

 



หากทำการ Apply ACL ในทิศทาง In หรือ Inbound ก็จะทำการตรวจสอบ packet ที่ "เข้ามา" interface หรือ กรองก่อนเข้ากระบวนการ routing หากทำการ Appy ACL ในทิศทาง Out  หรือ Outbound ก็จะทำการตรวจสอบ packet ที่ "จะออกไป" interface หรือกรองหลังกระบวนการ routing เสร็จเรียบร้อยแล้ว

 

 


 
 
 

コメント

5つ星のうち0と評価されています。
まだ評価がありません

評価を追加
bottom of page