Brute Force Attack

เทคนิคป้องกันคนมา Bruteforce VPN Server บน Mikrotik

สวัสดีครับ อ.ศุภเดช ครับ

ช่วงนี้ใน Facebook Group ของกลุ่ม Mikrotik จะเจอคนพยายามเจาะเข้ามาใน Mikrotik เราด้วยวิธี Bruteforce ผ่านระบบ VPN เช่น PPTP ผมเองก็โดนกับเค้าเหมือนกัน พอเห็นใน Log แล้วรำคาญเลยทำ Script ขึ้นมาเพื่อกันมันซักหน่อยครับ

ก่อนอื่นเลย ช่วงนี้หลายๆบริษัทเริ่มทำ Work From Home และ Service VPN เป็น Network Service หลักที่ใช้สำหรับการทำ Work from Home เลยครับ เพราะสามารถทำให้ Client ที่อยู่ที่บ้านหรือร้านกาแฟ สามารถเชื่อมต่อมาใช้งาน File Server / Database Server ที่ Office ได้อย่างปลอดภัยมากขึ้น

SNAG 0490 1

แต่การเปิด VPN Server บน Mikrotik ก็เป็นเรื่องธรรมดาที่พวกเหล่า Hacker จ้องจะเล่นงานอยู่แล้ว เพราะหลายๆคน เวลาทำ VPN Server ก็จะใช้ User Password ง่ายๆด้วยเหตุผลว่า เดี๋ยว User จำไม่ได้ แล้วตัวเองต้องมาเหนื่อย Support ก็เลยทำ User ง่ายๆกีน

ก็เลยเป็นสาเหตุให้พวก Hacker เค้าเขียน Bot เพื่อสแกนเน็ตเวิร์ค พอเจอ Mikrotik มันก็โจมตีด้วยการ Login VPN เข้ามารัวๆ ถ้า User ไหนผ่านระบบเข้ามาได้ ก็จะใช้ User นั้นเจาะเข้ามาในระบบข้างใน Office เราต่ออีกทีครับ

ช่วงนี้ผมเห็นเพื่อนๆใน Facebook Group มา Post ว่า โดนเล่นงานบ่อย ผมเองก็โดนกับเค้าเหมือนกัน ก็เลยทำ Firewall Rules ชุดนี้ขึ้นมาป้องกันครับ

/ip firewall filter
add action=drop chain=input comment=”Drop VPN Attacker” src-address-list=\
    vpn-attacker
add action=add-dst-to-address-list address-list=vpn-attacker \
    address-list-timeout=1d chain=output content=”authentication failed” \
    limit=1,5:packet out-interface=pppoe-out1
 
หลักๆแล้ว Script นี้ทำหน้าที่ 2 ส่วนด้วยกัน
บรรทัดแรก ทำหน้าที่ Block ใครก็ตามที่อยู่ใน Address List ที่ชื่อว่า vpn-attacker
และบรรทัดที่สอง ก็คือทำการตรวจจับว่า ถ้า Mikrotik Router ตอบกลับใครไปว่า “authentication failed” ก็ให้เอา dst-address เข้าไปใส่ใน address-list ที่ชื่อว่า vpn-attacker ด้วย
พูดง่ายๆก็คือ ใครมา Bruteforce เรา แล้วเรา ตอบกลับไปว่า Password ผิดนะเฟ้ย ก็ให้เอา IP Address ของปลายทางที่เราตอบไป ไปใส่ address-list หลังจากนั้น IP นั้นก็จะโดน block ไปเลยครับ จบข่าว
SNAG 0491
 
Script นี้ ผมทำให้มันตอบรับบน pppoe-out1 ที่เป็น WAN interface เท่านั้น
ใครมี Interface อื่นๆ ก็ลองเอาไปแก้ไขดูละกันนะครับ