[EP.31] Protect your network with DHCP Snooping to avoid DHCP rogue server

Krittin Srithong
techblogclub
Published in
4 min readMar 6, 2022

--

Scenario

ปัญหาที่พบเจอกับระบบเครือข่าย

ปัญหาที่ผู้ดูแลระบบหลาย ๆ คนเจอในระบบเครือข่ายที่มีขนาดใหญ่ คือ ผู้ใช้งานทั่วไป ซื้ออุปกรณ์ 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

  1. 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

  1. Connect To SW with Winbox
  2. Go to System → Identity → Change name to “SW” → Press OK
  3. สร้าง 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 อยู่แล้ว

--

--

Krittin Srithong
techblogclub

Hi, I’m Krittin. I am studying in bachelor of Computer Enginnering. I have MikroTik Certificates as following MTCNA, MTCSE, MTCUME. (medium.com/techblogclub)