Brute Force Attacks With Fail2ban

Install Fail2ban

พอดีได้เครื่องมาใหม่ 1 เครื่องลงต้องหาอะไรลงป้องกันไว้ พอดีจะหาใน blog ลง Fail2ban แต่หาไม่เจอสงสัยไม่ได้ลงไว้ก็เลยมาเขียนใหม่เลยแล้วกันครับโปรแกรม Fail2ban เอาไว้ป้องกันการ login หรือว่า hack ต่างๆได้เบื้องต้นครับ เช่นการ login 3 ครั้งถ้าผิดมันจะทำการบล๊อค ip นั้นไปเลยเราสามารถตั้งเวลาในการบล๊อคได้ด้วยครับโปรแกรมตัวนี้ใช้งานได้ดีเหมือนกันครับ มาลงกันดีกว่า

#apt-get install fail2ban

หลังจากลงเสร็จแล้วให้ทำการ copy ไฟล์ใหม่ขึ้นมานะครับเพื่อทำการแก้ไข

#cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

หลังจากนั้นก็ทำการแก้ไข config ของมันครับลองอ่านแล้วตั้งดูตามต้องการได้เลยนะครับ

#nano /etc/fail2ban/jail.local
...
[DEFAULT]
ignoreip = 127.0.0.1 # เป็น ip ที่จะไม่มีการ Ban
bantime =600 # เป็นเวลาที่จะ Ban IPสามารถเพิ่มลดได้ตามต้องการครับ
maxretry = 3 # คือตัวระบุการทำผิดพลาด 3ครั้งสามารถตั้งได้ตามต้องการ
...
[ssh-ddos]
enabled = true # ผมเปลี่ยนจาก false เป็น true เพื่อเพิ่มการตรวจสอบ SSH DoS
port = ssh, sftp
filter = sshd-ddos
...

เมื่อทำการแก้ไข config เสร็จแล้วให้ทำการ restart หervice ให้ทำงานได้เลยครับ

#/etc/init.d/fail2ban restart

และคุณสามารถเช็ค log ได้ที่นี่ครับ

#tail /var/log/fail2ban.log

อยากรู้ว่าใช้งานได้ไม่ได้นั้นลองทำการ login ได้เลยครับใส่มั่วๆลองเข้าไปดูแล้วรอเวลาที่เราตั้งให้มัน unban เองครับหรือว่ามีอีกเครื่องนึงก็ลอง ssh เข้าไปดู

#tail /var/log/fail2ban.log
iptables -X fail2ban-[name]
2007-11-28 13:25:59,853 fail2ban.actions.action: INFO
Set actionStart = iptables -N fail2ban-[name]
iptables -A fail2ban-[name]. -j RETURN
iptables -I INPUT -p  -m multiport --dports
[port] -j fail2ban-[name]
2007-11-28 13:25:59,854 fail2ban.actions.action: INFO
Set actionUnban = iptables -D fail2ban-[name] -s  -j DROP
2007-11-28 13:25:59,855 fail2ban.actions.action: INFO
Set actionCheck = iptables -n -L INPUT | grep -q fail2ban-[name]
2007-11-28 19:01:00,896 fail2ban.actions: WARNING [ssh] Ban 124.121.118.234
2007-11-28 19:03:46,896 fail2ban.actions: WARNING [ssh] Ban 202.142.215.206

หลังจากดู log แล้วระบบสามารถใช้งานได้ปกตินะครับ WARNING [ssh] Ban 124.121.118.234 อันนี้เป็น ip เครื่อง pc ที่ผมลอง login ดูครับอีกตัวนึง WARNING [ssh] Ban 202.142.215.206 อันนี้ผมลองใช้ server อีกเครื่อง login ดูครับสามารถ ban ได้ปกติ หากเราต้องการ unban นั้นสามารถใช้คำสั่งดีได้นะครับ

root@gootum:/home/redcode# iptables -n -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
fail2ban-ssh  tcp  --  0.0.0.0/0      0.0.0.0/0      multiport dports 22,115

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
DROP       0    --  202.142.215.206      0.0.0.0/0
DROP       0    --  124.121.118.234      0.0.0.0/0
RETURN     0    --  0.0.0.0/0            0.0.0.0/0

แล้วจากนั้นก็ใส่ DROP iptables โดยระบุ IP ที่เราต้องการ DROP ไปซ่ะ

root@gootum:/home/redcode# iptables -D fail2ban-ssh -s 124.121.118.234 -j DROP

DROP แล้วทำการเช็คดู iptable ดูครับว่า IP ที่เรา DROP ไปนั้นออกไปยัง

root@gootum:/home/redcode# iptables -n -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
fail2ban-ssh  tcp  --  0.0.0.0/0       0.0.0.0/0     multiport dports 22,115

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
DROP       0    --  202.142.215.206      0.0.0.0/0
RETURN     0    --  0.0.0.0/0            0.0.0.0/0

สังเกตุได้ว่า IP 124.121.118.234 ออกไปจากระบบแล้วเพียงเท่านี้ก็สามารถ login ได้ปกติแล้วครับ
ระบบที่ลงเป็นอัยสิ้นสุดสมบูรณ์และสามารถป้องกัน hacker ได้เบื้องต้นแล้วนะครับ(แค่เบื้องต้นนะส่วนอย่างอื่นตัวใครตัวมันครับ อิอิ)

HACKED BY SudoX — HACK A NICE DAY.

  • I am impressed with this site, very I am a fan .