[EP.31] Protect your network with DHCP Snooping to avoid DHCP rogue server
ปัญหาที่พบเจอกับระบบเครือข่าย
ปัญหาที่ผู้ดูแลระบบหลาย ๆ คนเจอในระบบเครือข่ายที่มีขนาดใหญ่ คือ ผู้ใช้งานทั่วไป ซื้ออุปกรณ์ WiFi Router มาต่อใช้งานในระบบเครือข่ายของเราโดยที่ไม่ได้ทำการ Config ตัวอุปกรณ์ทำให้ค่าเดิมของตัวอุปกรณ์ WiFi Router จ่าย DHCP Server ออกมาด้วย ซึ่งทำให้ DHCP Server สวนกลับเข้าไปในระบบเครือข่ายหลัก และผู้ใช้งานท่านอื่นได้รับ IP Address ที่ไม่ได้จ่ายมาจาก DHCP Servers หลักส่งผลให้เกิดปัญหาใช้งานไม่ได้ ดังนั้นหัวข้อนี้เราจะมาดูวิธีป้องกันปัญหานี้ด้วยการทำ DHCP Snooping กัน
หากจะศึกษาทำ LAB เกี่ยวกับ MikroTik แนะนำ Product ตัว hAP ac² จำนวน 2 ตัว เพื่อจำลอง R1 1 ตัว และเป็น SW 1 ตัว สาเหตุที่เลือก hAP ac² เพราะ Performance มีความคุ้มค่าต่อราคา และมี Switch Chip ที่เป็น Atheros8327 มาให้อีก
เนื่องจาก Lab นี้ผมใช้ GNS3 CHR ในการจำลองทำ Lab ไม่ได้ใช้ hAP ac² ดังนั้น CHR จึงไม่สามารถทำงานในระดับของ Bridge Hardware Offloading และ Mikrotik จะปรับการทำงานทั้งหมดกลับมาที่ CPU ทั้งหมด
# ฝั่ง R1 (MikroTik) Version 6.49.2
- Connect To R1 with Winbox
2. Go to System → Identity → Change name to “R1” → Press OK
3. รับ Internet ที่ขา Interface ETH1 แบบ DHCP-Client
- Go to IP → DHCP Client
- กด +
- Interface: ether1
- Use Peer DNS: เอาเครื่องหมายติ๊กออก
- Use Peer NTP: เอาเครื่องหมายติ๊กออก
- Add Default Route: yes
- กด OK
4. ปรับเวลาให้ตรงกับเวลามาตรฐานไทย GMT+07:00
- System → Clock → Manual Time Zone (Tab)
- Time Zone: +07:00
- กด Apply และ OK
5. Assign IP Address ให้กับขา Interface ETH5 (วง LAN)
- Go to IP → Addresses
- กด +
- Address: 192.168.20.1/24
- Network: 192.168.20.0
- Interface: เลือก Ether5
- Comment: LAN
- กด OK
6. ตั้งค่า DNS Server ให้ R1
- Servers: 8.8.8.8, 8.8.4.4
- กด OK
7. สร้าง DHCP Server ให้กับ ETH5 (วง LAN)
- Go to IP → DHCP Server
- กด “DHCP Setup”
- DHCP Server Interface: ether5
- กด Next
- DHCP Address Space: 192.168.20.0/24
- กด Next
- Gateway for DHCP Network: 192.168.20.1
- กด Next
- Addresses to Give Out: 192.168.20.2-192.168.20.254 (วง LAN แจก IP ตั้งแต่หมายเลข 2–254 ให้กับ Client)
- กด Next
- กำหนด DNS Servers เป็น: 8.8.8.8 และ 8.8.4.4
- กด Next
- ตั้ง Lease Time: 1d 00:00:00 (ปรับตามความต้องการ)
- กด Next
8. ทำ masquerade เพื่อให้วง LAN (192.168.20.0/24) ออกสู่อินเตอร์ได้
- Go to IP → Firewall → NAT กด +
- chain: srcnat
- Out. interface: ether1
- action: masquerade
ฝั่ง SW (MikroTik) Version 6.49.2
- Connect To SW with Winbox
- Go to System → Identity → Change name to “SW” → Press OK
- สร้าง Bridge ชื่อ “LAN-ALL-PORTs” และ Assign Ether1-Ether5 เข้าไปใน Bridge “LAN-ALL-PORTS” เพื่อทำ Switch
## สร้าง Bridge ชื่อ “LAN-ALL-PORTs” ##
- Go to Bridge → Bridge Tabs,
- กด +
- Name: LAN-ALL-PORTs
## Assign Ether1-Ether5 เข้าไปใน Bridge “LAN-ALL-PORTS” เพื่อทำ Switch ##
- Go to Bridge → Ports tabs,
- กด +
- Interface: ether1
- Bridge: LAN-ALL-PORTs
- กด OK
- กด +
- Interface: ether2
- Bridge: LAN-ALL-PORTs
- กด OK
- กด +
- Interface: ether3
- Bridge: LAN-ALL-PORTs
- กด OK
- กด +
- Interface: ether4
- Bridge: LAN-ALL-PORTs
- กด OK
- กด +
- Interface: ether5
- Bridge: LAN-ALL-PORTs
- กด OK
4. เปิดใช้งาน DHCP Snooping บน Bridge และ กำหนด Trusted Port
## เปิดใช้งาน DHCP Snooping บน Bridge ##
- Go to Bridge → Bridge tabs,
- Double Click “LAN-ALL-PORTs” Bridge
- ติ๊ก DHCP Snooping เพื่อเปิดใช้งาน
## กำหนด Trusted Port ##
Trusted Port (พอร์ตน่าเชื่อถือ) คือ อนุญาตให้มี DHCP Server ผ่านเข้ามาได้
Untrusted Port (พอร์ตไม่น่าเชื่อถือ) คือ ไม่อนุญาตให้มี DHCP Server จ่ายสวนเข้ามา
- จาก Scenario, R1 ทำ DHCP Server บน ETH5 แล้วลงมาเข้า SW ETH1 ดังนั้นต้อง Trusted ETH1 บน SW เพื่อ อนุญาตให้มี DHCP Server ผ่านเข้ามาได้ ส่วน ETH2-ETH5 ต้องเป็น Untrusted เพราะ หาก ETH2-ETH5 มีใครก็ตามเอา Router WiFi มาเสียบแล้วปล่อย DHCP Server ไอพีแอดเดรสจะไม่ถูกจ่ายสวนเข้ามาในระบบหลัก
- Go to Bridge → Ports
- Double Click “Ether1”
- ติ๊ก Trusted เพื่ออนุญาต
- กด Apply OK
- สำหรับ Ether2-Ether5 เป็น Untrusted โดย Default อยู่แล้ว