ในกรณีที่เราพบว่าเครื่องให้บริการถูกโจมตีโดยความพยายามเดาสุ่มรหัสผ่าน ดังตัวอย่าง Log
Aug 16 11:12:09 FreeBSD sshd[20296]: Failed keyboard-interactive/pam for root from 172.17.12.51 port 55095 ssh2
Aug 16 11:12:10 FreeBSD sshd[20296]: error: PAM: authentication error for root from 172.17.12.51
Aug 16 11:12:10 FreeBSD sshd[20296]: Failed keyboard-interactive/pam for root from 172.17.12.51 port 55095 ssh2
Aug 16 11:12:10 FreeBSD sshd[20296]: error: PAM: authentication error for root from 172.17.12.51
Aug 16 11:12:10 FreeBSD sshd[20296]: Failed keyboard-interactive/pam for root from 172.17.12.51 port 55095 ssh2
Aug 16 11:12:18 FreeBSD sshd[20304]: error: PAM: authentication error for root from 172.17.12.51
Aug 16 11:12:18 FreeBSD last message repeated 3 times
จาก Log ก็เห็นว่าเครื่อง IP 172.17.12.51 พยายามที่จะเดา password เข้ามา ดังนั้นถ้าเราต้องการไม่ให้ IP ดังกล่าว สามารถทำอย่างนั้นได้อีก จึงจำเป็นต้องมีการ Block การเข้าถึง SSH ซึ่งอาจใช้ผ่าน Firewall เช่น ipfw ก็ได้
แต่ถ้ามี host ที่พยายามเข้าถึงเป็นจำนวนมาก การที่ block ผ่าน ipfw อาจเกิดความยุ่งยากในการจัดการ ดังนั้นจึงจะมาใช้วิธี block ผ่าน hosts.allow ของ FreeBSD แทน ดังนี้
สร้างไฟล์เก็บ IP Blacklist ดังตัวอย่าง
สร้างไฟล์ /root/sshd.blacklist
172.17.1.1 <---- block เป็นราย IP
172.17.12.0/255.255.255.0 <----- block ทั้ง Subnet /24 แก้ไขไฟล์ /etc/hosts.allow โดยหาแถวที่เขียนว่า ALL : ALL : allow แล้วเพิ่ม sshd : /root/sshd.blacklist : deny ไว้ข้างบน ดังนี้
sshd : /root/sshd.blacklist : deny
ALL : ALL : allow
ทำการ save ไฟล์ แล้วทดสอบการใช้งาน
ตัวอย่าง log ที่เกิดขึ้น
Aug 16 11:32:39 FreeBSD sshd[1041]: refused connect from 172.17.12.51 (172.17.12.51)
ขออนุญาตปรึกษาด้วยครับ ไม่ทราบว่าท่านใช้เฟสบุ๊คชื่ออะไรครับ ....
ตอบลบ