วันศุกร์ที่ 7 สิงหาคม พ.ศ. 2558

Port Security บน Cisco Catalyst Switch

     สวัสดีครับ วันนี้ผมจะเขียนบทความเกี่ยวกับ Port Security บน Cisco Catalyst Switch พอดีโดนหัวหน้าใช้ให้ Test และ Config Cisco 3750 Core Switch   เพื่อป้องกัน End Point ที่ไม่ได้รับอนุญาติแอบมาใช้งานใน Network ของบริษัท ผมจะอธิบายแบบง่ายๆ และมีการ config ตัว Switch อีกนิดหน่อยด้วยครับ  ^_^

*********************************************************************************

Port Security บน Cisco Catalyst Switch

     Port Security มีความสามารถในการป้องกันการโจมตีหรือลักลอบใช้งานในรูปแบบต่าง ๆ ได้ เช่น การ Flood Mac Address , การป้องกันไม่ให้ผู้ใช้นำเครื่อง PC หรือ Notebook ที่มี Mac Address ที่ไม่ได้รับอนุญาตมาเชื่อมต่อเข้าระบบ ซึ่งการใช้งาน Port Security นั้น จะทำให้สามารถจำกัดจำนวนและหมายเลขของ Mac Address ที่ได้รับอนุญาตให้ใช้งานในแต่ละ Port ได้ ซึ่งในการทำงาน เมื่อแต่ละ port นั้นได้รับเฟรมข้อมูลมา มันจะนำมาเปรียบเทียบกับรายการของ Mac Address ที่ได้รับอนุญาตให้ใช้งาน หากพบว่า Mac Address ที่เข้ามาทาง port นั้น ไม่ตรงกับรายการที่มีอยู่ มันก็จะทำตามนโยบายที่กำหนดไว้ เช่น ไม่อนุญาตให้ทำการส่งต่อข้อมูลจากต้นทาง Mac Address นั้น หรือทำการ Shutdown Port นั้นไป
     โดยการกำหนดรายการของ Mac Address ที่อนุญาตให้ใช้งานในแต่ละ Port นั้น สามารถทำการกำหนดได้โดยการระบุหมายเลข Mac Address ด้วยตนเอง หรือให้สวิตซ์เรียนรู้ค่า Mac Address มาโดยอัตโนมัติก็ได้ ซึ่งจะมีรูปแบบในการกำหนดอยู่ 3 วิธี ดังนี้ครับ

          - Static : เป็นการกำหนด Mac Address ต้นทางที่อนุญาตให้ใช้งานในแต่ละ Port ด้วยตนเอง ซึ่งหมายเลข Mac Address นี้จะถูกเก็บไว้บน Address Table และอยู่ใน Running-config ด้วย ซึ่งเมื่อมีการ Write ไปยัง Startup-config แล้ว ก็จะทำให้หมายเลข Mac Address นี้จะยังคงอยู่ถึงแม้จะมีการรีบูตสวิตซ์ก็ตาม
          - Dynamic : เป็นการกำหนด Mac Address ต้นทางที่อนุญาตให้ใช้งานในแต่ละ Port โดยให้สวิตซ์เรียนรู้หมายเลข Mac Address จากเครื่องที่เชื่อมต่ออยู่ในแต่ละ Port มาโดยอัตโนมัติตามลำดับของ Packet ที่ได้รับมา จนกว่าจะครบตามจำนวนที่กำหนด ซึ่งหมายเลข Mac Address นี้จะถูกเก็บไว้บน Address Table เท่านั้น ไม่มีการเก็บไว้บนค่า Configuration ซึ่งเมื่อมีการรีบูตสวิตซ์ จะทำให้ค่า Mac Address ต้นทางที่เก็บไว้หายไป และจะทำการเรียนรู้ใหม่อีกครั้ง
          - Sticky : เป็นการกำหนด Mac Address ต้นทางที่อนุญาตให้ใช้งานในแต่ละ Port โดยให้สวิตซ์เรียนรู้หมายเลข Mac Address จากเครื่องที่เชื่อมต่ออยู่ในแต่ละ Port มาโดยอัตโนมัติตามลำดับของ Packet ที่ได้รับมา จนกว่าจะครบตามจำนวนที่กำหนด  เหมือนกับแบบ Dynamic แต่จะต่างกันที่วิธีนี้จะทำการเก็บหมายเลข Mac Address ทั้งบน Address Table และบน Running-config ซึ่งเมื่อมีการ Write ไปยัง Startup-config แล้ว ก็จะทำให้หมายเลข Mac Address นี้จะยังคงอยู่ถึงแม้จะมีการรีบูตสวิตซ์ก็ตาม

     เมื่อทำการกำหนดรูปแบบรายการของ Mac Address เรียบร้อยแล้ว ขั้นต่อมาก็จะเป็นการกำหนดวิธีการที่จะใช้ตอบโต้กับเครื่องที่ละเมิดนโยบายของเรา เช่น Mac Address ไม่อยู่ในรายการที่อนุญาต หรือจำนวนของ Mac Address เกินกว่าที่อนุญาตเอาไว้ การตอบโต้นี้ก็อาจจะทำโดยการ Shutdown port นั้นไป หรืออาจจะ Block เฉพาะทราฟิก ที่ละเมิดเท่านั้นก็ได้ครับ ซึ่งนโยบายที่กำหนดไว้เพื่อการตอบโต้การละเมิดนี้จะเรียกว่า Security Violations และจะมีการตอบโต้โดยมี 3 รูปแบบ ดังนี้

          - Protect : เมื่อมีการเกิด Security Violations ข้อใดข้อหนึ่งตามหัวข้อด้านบนเกิดขึ้น Packet ที่ไม่ได้รับอนุญาตให้ใช้งานใน Port นั้น ๆ จะถูก Drop ทิ้ง แต่ Packet ของเครื่องที่ได้รับอนุญาตจะสามารถใช้งานได้ต่อไป โดยจะไม่มีการส่งการแจ้งเตือนมาว่าเกิดการละเมิดขึ้น
          - Restrict : เมื่อมีการเกิด Security Violations ข้อใดข้อหนึ่งตามหัวข้อด้านบนเกิดขึ้น Packet ที่ไม่ได้รับอนุญาตให้ใช้งานใน Port นั้น ๆ จะถูก Drop ทิ้ง แต่ Packet ของเครื่องที่ได้รับอนุญาตจะสามารถใช้งานได้ต่อไป และจะมีการแจ้งเตือนว่ามีการละเมิดเกิดขึ้น ผ่านทาง SNMP หรือ Syslog และจะมีการนับจำนวนครั้งของการละเมิดเก็บเป็นข้อมูลเอาไว้
          - Shutdown : (เป็นค่าที่กำหนดไว้โดย default) เมื่อมีการเกิด Security Violations ข้อใดข้อหนึ่งตามหัวข้อด้านบนเกิดขึ้น จะทำการ Shutdown Port นั้นทันที และจะมีสถานะว่า "Error-disabled" เมื่อทำการใช้ คำสั่ง " show interface G1/0/1 " ซึ่งจะทำให้ Packet ของเครื่องทุก ๆ เครื่องที่เชื่อมต่ออยู่กับ Port นั้นจะไม่สามารถใช้งานได้ โดยจะมีการแจ้งเตือนว่ามีการละเมิดเกิดขึ้น ผ่านทาง SNMP หรือ Syslog และจะมีการนับจำนวนครั้งของการละเมิดเก็บเป็นข้อมูลเอาไว้ สามารถใช้คำสั่ง shutdown และ no shutdown ให้ interface configuration mode เพื่อให้ Port นั้นกลับมาทำงานเป็นปกติได้ครับ

การกำหนดเวลา Port Security Aging

      การกำหนดค่า Aging เป็นการตั้งช่วงเวลาที่จะให้สวิตซ์จำค่า Static หรือ Dynamic MAC Address ของแต่ละพอร์ตไว้ เพื่อให้สวิตซ์สามารถลบและเพิ่ม MAC Address ใหม่ ๆ เข้าไปได้โดยอัตโนมัติ โดยมี 2 ชนิดคือ

          - Absolute  : ค่า MAC Address ที่กำหนดจะถูกลบออกหลังจากครบช่วงเวลาที่กำหนดไว้
          - Inactivity : ค่า MAC Address ที่กำหนดจะถูกลบหลังจากที่ MAC Address นั้นๆไม่มีกิจกรรมใดๆในช่วงเวลาที่กำหนดไว้

     ค่า default ของ Port Security บนอุปกรณ์ Cisco Catalyst Switch คือ ค่าที่มีอยู่ติดมาตั้งแต่ต้นแล้วซึ่งถ้าสังเกตดูค่า default ด้านล่าง Port security จะทำการ Disable อยู่ ซึ่งถ้าเราต้องการใช้งาน Port security นั้น เราก็ต้องทำการ Enable ก่อน ถึงจะใช้งานได้ เดี๋ยวผมจะอธิบายวิธี Enable ในการ Config อีกทีนะครับ

               Ports security is disabled.
               Maximum MAC addresses setting is 1.
               Violation mode is shutdown.
               Sticky address learning is disabled.
               Port security aging is disabled. Aging time is 0 and the default type is absolute.
       
     เอาล่ะครับคราวนี้เราจะมาเริ่มทำการ Config Port Security บนอุปกรณ์ Cisco Catalyst Switch โดยผมจะเริ่มตั้งแต่การเข้าโหมดต่างๆ ของตัว Switch เลยนะครับ

          3700-SW  > enable
       
     เมื่อเข้า Switch มา เราก็จะอยู่ในโหมด  user exec mode เพื่อที่จะไปยังโหมด  priviledge exec mode ก็ต้องใช้ Command ด้านบนครับ
   
          3750-SW # configure terminal

     ตอนนี้เราก็อยู่ในโหมด  priviledge แล้ว Command ด้านบน ก็จะเป็นการเข้าไปที่โหมด  global configuration mode

          3750-SW (config) # interface g1/0/1

     เป็นการเข้าไปในโหมด Interface configuration mode เพื่อที่เราจะไป config ค่าต่างๆใน Interface นั้นๆ ซึ่งในที่นี้เราจะ Config เกี่ยวกับ Port-security นั่นเองครับ (ผมใช้ Port g1/0/1 นะ)

          3750-SW (config-if) # switchport mode access

     ทำให้ Port นี้เป็นโหมด Access

          3750-SW (config-if) # switchport port-security

     เป็นการเปิดใช้งาน Port-security

          3750-SW (config-if) # switchport port-security maximum 2

      เป็นการกำหนดจำนวน Mac-address ที่อนุญาตให้ใช้งานผ่าน Interfece นี้ เท่ากับ 2 หมายเลขครับ แต่ถ้าเราไม่ทำการใช้คำสั่งนี้ Port นี้ก็จะใช้ค่า Default คืออนุญาติให้ใช้งานแค่ 1 Mac-address เท่านั้น

          3750-SW (config-if) # switchport port-security mac-address sticky

     เป็นการตั้งค่าให้สวิตซ์เรียนรู้ Mac Address มาโดยอัตโนมัติ โดยมันจะเรียนรู้ Mac Address มาโดยเรียงตามลำดับจนกว่าจะครบตามจำนวนที่ได้กำหนดไว้ในขั้นตอนที่แล้ว และยังทำการเก็บค่า Mac Address ไว้บน Configuration ด้วย ทำให้เมื่อมีการรีบูตสวิตซ์ ค่า Mac Address นี้ก็ยังจะคงอยู่

          3750-SW (config-if) # Switch(config-if)#switchport port-security violation restrict

          เป็นการกำหนดค่า security violation ไว้เป็น restict ซึ่งเมื่อมีการละเมิด เช่น มี Mac Address ที่นอกเหนือจากรายการที่อนุญาตไว้มาใช้งาน ทราฟิกนั้นจะไม่อนุญาตให้ส่งต่อไปได้ และก็จะมีการแจ้งเตือนโดยใช้ snmp หรือ syslog ได้อีกด้วย

          3750-SW (config-if) # switchport port-security aging time 60

     เป็นการกำหนดระยะเวลาที่จะให้สวิตซ์จำค่า Mac Address เอาไว้ เพื่อที่จะให้สวิตซ์สามารถเรียนรู้ Mac Address ใหม่ ๆ ได้เมื่อถึงเวลาที่กำหนด ซึ่งเป็นขั้นตอนที่ไม่จำเป็นที่จะต้องทำการตั้งค่าเสมอไป (โดย default ค่า aging นั้นจะอยู่ในสถานะ disable ซึ่งก็คือไม่มีการกำหนดระยะเวลาเอาไว้ หรือให้สวิตซ์จำค่า Mac Address เอาไว้ตลอดไปนั่นเอง)

     เพียงเท่านี้ก็สามารถใช้งาน Port Security บนสวิตซ์ของเราได้แล้วนะครับ ซึ่งการตั้งค่าตามตัวอย่างนี้ก็จะเป็นการกำหนดให้ Interface g1/0/1 ให้เครื่องโฮสต์สามารถใช้งานผ่านอินเทอร์เฟสนี้ได้สูงสุด 2 หมายเลข และจะเรียนรู้ Mac Address มาโดยอัตโนมัตและทำการเก็บค่า Mac Address นี้ไว้บนค่า configuration และถ้ามีการละเมิดนโยบายที่ได้กำหนดไว้ก็จะไม่อนุญาตให้ทราฟิกที่ละเมิดนั้นผ่านไปได้ และจะทำการส่งการแจ้งเตือนโดยการใช้ snmp หรือ syslog ครับ

     เมื่อทำการตั้งค่าเรียบร้อยแล้วในขั้นตอนต่อมาจะเป็นการตรวจสอบการตั้งค่าครับ ซึ่งสามารถทำได้โดยการใช้คำสั่ง ดังนี้ครับ

          - show port-security
          - show port-security address
          - show port-security interface <type> <number>

*********************************************************************************

ขอขอบคุณข้อมูลดีๆจาก : http://running-config.blogspot.com   Click Link



ไม่มีความคิดเห็น:

แสดงความคิดเห็น