- เคยเจอปัญหาพนักงานในองค์กรนำอุปกรณ์กระจายสัญญาณ มาต่อพ่วงเข้ากับสวิตช์ขององค์กร แล้วแจกไอพีชนกันวุ่นวายหรือเปล่าครับ?
- เคยเจอปัญหาอุปกรณ์ของผู้ใช้งานรับไอพี จากเราเตอร์แปลกปลอมและไม่สามารถออกอินเตอร์เน็ตได้หรือเปล่าครับ?
- เคยเจอปัญหา Man in the Middleในองค์กร ที่พยายามเปลี่ยน dns ของเรา ทำ Phishing และให้ redirect ไปยังหน้าเว็บไซต์อื่น แม้ว่าผู้ใช้งานจะพิมพ์ชื่อ domain ของเว็บไซต์นั้นถูกต้องแล้วก็ตามหรือเปล่าครับ
ทุกวันนี้องค์กรต่าง ๆ มีระบบรักษาความปลอดภัยเพื่อลดการโจมตีที่จะเกิดขึ้นในเครือข่ายคอมพิวเตอร์ การควบคุมความปลอดภัยควรเริ่มต้นจากภายในเครือข่ายแลนของตนเอง (Local Area Network) และขยายโครงสร้างพื้นฐานด้านไอทีทั้งหมดไปจนถึงระดับแอปพลิเคชัน
ในบทความนี้ เราจะอธิบายการรักษาความปลอดภัยที่เรียบง่ายและมีประสิทธิภาพซึ่งมีให้ใช้งานอยู่แล้วในสวิตช์ของ Cisco และนี่คือฟีเจอร์ที่มีชื่อว่า DHCP Snooping นั่นเองครับ
ฟีเจอร์นี้สามารถเปิดใช้งานและกำหนดค่าบนสวิตช์ของ Cisco โดยใช้คำสั่งเพียงไม่กี่บรรทัด เพื่อป้องกันเครือข่ายของเราจากผู้โจมตี ที่จะทำตัวเองเป็น DHCP Server ปลอมเข้ากับเครือข่ายคอมพิวเตอร์ และจะกำหนด IP Address และ DNS Server ที่ไม่ถูกต้องให้กับผู้ใช้ของเราได้ ดังนั้นเมื่อผู้โจมตีสามารถแจก IP Address ให้กับเครื่องผู้ใช้งานได้แล้วนั้น ก็จะสามารถ Sniff หรือขโมยข้อมูล รวมถึงการควบคุมการเข้าถึงไปยังที่ต่าง ๆ ของเครื่อง ๆ นั้นได้ หรือบางครั้งเองอาจจะมีการแจก IP Address ชนกันในเครือข่าย ทำให้เครือข่ายในองค์กรของเราล่ม และไม่สามารถใช้งานได้ ซึ่งเป็นปัญหาที่มักจะเจอกันได้บ่อยมากในองค์กรที่ไม่ได้เปิดการใช้งานฟีเจอร์ DHCP Snooping ไว้ครับ
ในบทความนี้เราจะมาดูกันว่าการโจมตีนี้ทำงานอย่างไร และจะกำหนดค่า DHCP Snooping บนสวิตช์ Cisco เพื่อบล็อกการโจมตีดังกล่าวได้อย่างไรกันบ้างครับ
DHCP Snooping คืออะไร
ดูจากตัวอย่างภาพเครือข่ายด้านล่าง เรามีสวิตช์ Layer 2 ทั้งหมด 2 ตัว คือ SW1, SW2 ส่วน Core Switch คือ SW3 โดยมี DHCP Server ซึ่งเป็นเซิร์ฟเวอร์ที่ติดตั้งโดยผู้ดูแลระบบจะทำหน้าที่แจกจ่าย IP, Gateway และ DNS ให้กับผู้ใช้งาน
ผู้โจมตี (ล่างซ้ายในแผนภาพ) เป็น Rogue DHCP Server เชื่อมต่อกับสวิตช์ SW1 ใน VLAN 10 ซึ่งเป็น VLAN เดียวกันกับคอมพิวเตอร์ของผู้ใช้งาน (“เหยื่อ” ตามภาพด้านบนซ้าย) ได้รับการกำหนดค่า LAN Ethernet บน Windows ให้รับการตั้งค่าเครือข่ายจาก DHCP Server ดังนั้นคอมพิวเตอร์จะส่งแพ็กเก็ต “DHCP Discover” ในเครือข่ายดังที่แสดงตามภาพด้านล่างนี้ครับ
โดยสภาวะปกติ DHCP Server ที่ถูกต้องทางด้านขวานั้นจะตอบสนองต่อคำขอด้วยแพ็กเก็ต “DHCP Offer” และกำหนดการตั้งค่าเครือข่ายที่ถูกต้อง (IP, DNS, Gateway และอื่น ๆ) ให้กับเครื่องผู้ใช้งาน
อย่างไรก็ตาม Rogue DHCP Server ของผู้โจมตีจะตอบสนองด้วย “DHCP Offer” เช่นเดียวกัน และหาก Rogue DHCP Server ตอบสนองได้เร็วกว่า DHCP Server ของเรา มันจะกำหนดการตั้งค่าปลอมให้กับผู้ใช้งานได้ก่อนนั่นเองครับ เรียกได้ว่าถ้าใครเร็วกว่าก็จะเป็นผู้ชนะในการแจกข้อมูลไอพีให้กับทางอุปกรณ์ปลายทาง
หาก Rogue DHCP Server แจกไอพีให้กับอุปกรณ์ปลายทางได้แล้ว หมายความว่าผู้โจมตีสามารถกำหนดเกตเวย์เริ่มต้นปลอม และ DNS ให้กับผู้ใช้งานซึ่งจะถูกควบคุมโดยผู้โจมตี จากนั้นผู้โจมตีสามารถทำหน้าที่เป็น “Man in the Middle” หรือส่งผู้ใช้ไปยังเว็บไซต์ปลอมต่าง ๆ ได้ ด้วย DNS ที่ปลอมมาให้เรา พอจะนึกออกแล้วใช่หรือเปล่าครับว่ามันสร้างอันตรายไม่เพียงแค่ระบบเครือข่ายคอมพิวเตอร์ของเราเองเท่านั้น แต่ยังส่งผลถึงทรัพย์สินของผู้ใช้งานอีกด้วย
แต่ข่าวดีก็คือ เมื่อเราเปิดใช้งาน DHCP Snooping สวิตช์จะรับฟังการรับส่งข้อมูล DHCP ในเครือข่าย และจะอนุญาตเฉพาะ “DHCP Offer” ที่มาจากแหล่งที่เชื่อถือได้เท่านั้น ดังนั้น DHCP Offer จาก Rogue DHCP Server ปลอมจะถูกบล็อกโดยสวิตช์ดังที่แสดงด้านล่างนี้ครับ
เมื่อเปิดใช้งาน DHCP Snooping บนสวิตช์ทั้งหมด ตามค่า Default แพ็กเก็ต DHCP Offer ทั้งหมดจะถูกบล็อก (เรียกได้ว่าไม่เชื่อใครไว้ก่อน (Zero Trust) หรือ Untrust นั่นเองครับ) เว้นแต่ว่าสวิตช์จะได้รับการกำหนดค่าไว้อย่างชัดเจนเพื่อ Trust หรือเชื่อว่าพอร์ตที่เชื่อมต่อไปยัง DHCP Server นั้นถูกต้อง ซึ่งจะส่งผลให้อินเทอร์เฟซหรือพอร์ตที่กำหนดค่าเป็น Trust เท่านั้นที่จะได้รับอนุญาตให้ส่งต่อแพ็กเก็ต DHCP Offer ส่วนแพ็คเก็ตที่เป็น Untrust จะถูกบล็อก
ในตัวอย่างข้างต้น อินเทอร์เฟซ Ge0/1 ของทั้ง SW1 และ SW2 และอินเทอร์เฟซ Fe0/1 ของ SW3 จะได้รับการกำหนดค่าให้เชื่อถือ (Trust) แพ็กเก็ต DHCP Offer เนื่องจากแพ็กเก็ตนั้นมาจาก DHCP Server ที่ถูกต้องในระบบเครือข่ายของเราครับ
วิธีกำหนดค่า DHCP Snooping บน Cisco Switches
ตอนนี้เรามาดูการกำหนดค่าทีละขั้นตอนหรือ Step by Step ของฟีเจอร์นี้ในโทโพโลยีตัวอย่างของเราที่แสดงด้านบนกันครับ
ขั้นตอนทั่วไป ได้แก่ :
-
- เปิดใช้งาน DHCP Snooping ใน Global Configuration ทุก ๆ Switch
- เปิดใช้งาน DHCP Snooping บน VLAN เฉพาะที่จะต้องการป้องกัน (เช่น VLAN 10 ในตัวอย่างด้านบนของเรา)
- เพื่อทำงานที่เข้ากันของ Switch แต่ละตัว ให้ปิดใช้งาน Option DHCP 82 จาก Switch
- ทำที่สวิตช์ทั้งหมด โดยระบุพอร์ตที่เชื่อมต่อกับ DHCP Server โดยพอร์ตเหล่านี้จะได้รับแพ็กเก็ต DHCP Offer และต้องกำหนดค่าเป็น Trust ซึ่งพอร์ตอื่น ๆ ที่เหลือทั้งหมดนั้นเป็นค่า Default จะทำการบล็อกแพ็กเก็ต DHCP Offer อื่น ๆ
- Option: เราสามารถจำกัดคำขอ DHCP ของเครื่อง Client โดยหน่วยเป็นแพ็กเก็ตต่อวินาที เพื่อป้องกันไม่ให้ผู้โจมตีส่งคำขอ DHCP มากเกินไป และทำให้สูญเสียทรัพยากรในระบบเครือข่ายคอมพิวเตอร์ของเราครับ
Step 1: Enable DHCP Snooping Globally
SW1(config)#ip dhcp snooping
SW2(config)#ip dhcp snooping
SW3(config)#ip dhcp snooping
Step 2: Enable DHCP Snooping on VLAN 10 (หากมีหลาย ๆ VLAN ก็สามารถใช้ comma หรือ hyphen ได้ครับ)
SW1(config)#ip dhcp snooping vlan 10
SW2(config)#ip dhcp snooping vlan 10
SW3(config)#ip dhcp snooping vlan 10
Step 3: Disable the insertion of option 82 in the DHCP packets
SW1(config)#no ip dhcp snooping information option
SW2(config)#no ip dhcp snooping information option
SW3(config)#no ip dhcp snooping information option
NOTE: การกำหนดค่าข้างต้นจะปิดใช้งาน Option 82 ในแพ็กเก็ต DHCP สิ่งนี้จะทำให้ Compatible เข้ากันได้ดียิ่งขึ้นกับ DHCP Server เนื่องจากเซิร์ฟเวอร์บางตัวจะทำการ drop แพ็กเก็ต Option 82 ทิ้งไปครับ
Step 4: Configure the trusted interfaces on switches คือ พอร์ตที่ชี้ไปยัง DHCP Server ของเรา
SW1(config)# interface GigabitEthernet0/1
SW1(config-if)# ip dhcp snooping trust
SW2(config)# interface GigabitEthernet0/1
SW2(config-if)# ip dhcp snooping trust
SW3(config)# interface FastEthernet0/1
SW3(config-if)# ip dhcp snooping trust
Step 5 (Optional): Configure rate limit on DHCP requests from clients
SW1(config)# interface FastEthernet0/1
SW1(config-if)# ip dhcp snooping limit rate 20
SW2(config)# interface FastEthernet0/1
SW2(config-if)# ip dhcp snooping limit rate 20
Step 6: Verification
SW1#show ip dhcp snooping
Switch DHCP snooping is enabled
DHCP snooping is configured on following VLANs:
10
Insertion of option 82 is disabled
Option 82 on untrusted port is not allowed
Verification of hwaddr field is enabled
Interface Trusted Rate limit (pps)
———————– ——- —————-
GigabitEthernet0/1 yes unlimited
FastEthernet0/1 no 20
NOTE: ข้อควรระวัง หากมี Switch ต่อกันเป็น Chain แนะนำว่าต้องทำ DHCP Snooping Trust บนขา Interface ทั้ง 2 ฝั่ง ไม่ว่าจะเป็น Downlink หรือ Uplink ก็ตาม
ลองนำไปใช้กันดูนะครับ มีประโยชน์มาก ๆ สำหรับองค์กรที่มี Managed Switch ซึ่งส่วนใหญ่สามารถทำฟีเจอร์ DHCP Snooping นี้ได้อยู่แล้วครับ อาจจะนำเสนอข้อมูลที่เป็นอุปกรณ์ Cisco แต่จริง ๆ แล้วหลาย ๆ ยี่ห้อก็ทำ DHCP Snooping ได้เช่นเดียวกัน และ Concept ก็เหมือนกับสิ่งที่ได้เล่าไปแล้วข้างต้นเช่นกันครับ หากมีข้อคำถามเพิ่มสามารถส่งเข้ามาสอบถามในอีเมล์ info กันได้นะครับ และฝากกด Like กด แชร์บทความเหล่านี้ไปยังเพื่อน ๆ คนอื่น ๆ ได้เช่นเดียวกัน ขอบคุณมากครับ ?
อ้างอิงจาก https://www.networkstraining.com/cisco-dhcp-snooping-configuration, https://www.cisco.com/en/US/docs/general/Test/dwerblo/broken_guide/snoodhcp.html