ใช้ Fail2ban block เวลาโดนถล่ม wp-login.php

สวัดดีครับ มาอีกแล้วหลังจากไร้สาระมานาน :026:

หลังจากวันก่อนโดนถล่ม เล่นเอาซะเครื่องเดี้ยงเลย หาวิธีแก้อยู่นาน ตอนแรกใช้วิธีให้ลูกค้าลง plugin เอา แต่คิดไปคิดมา ให้มานั่งลงทุกคนก็ไม่ไหว เราจัดการให้ดีกว่า

หาวิธีจนเจอ fail2ban วิธีติดตั้งไม่สอนแล้วกัน หากันเอาเองนะครับ ใช้ fail2ban คู่กับ iptables

สั่ง
nano /etc/fail2ban/jail.conf

ยัดข้อความไว้ล่างสุด

[wordpress-wp-login]
enabled = true
port = http,https
action = iptables[name=WP, port=http, protocol=tcp]
filter = wordpress-wp-login
logpath = /var/log/httpd/domains/*.log  ###ใครใช้ controlpanel ตัวอื่นก็แก้ path เอานะครับ
bantime = 1200  (เวลาที่บลอค)
maxretry = 5 #login ผิดกี่ครั้งให้บล๊อค

เสร็จแล้วสั่ง
nano /etc/fail2ban/filter.d/wordpress-wp-login.conf

ยัด

# Fail2Ban configuration file
[Definition]
failregex = <HOST>.*] "POST /wp-login.php
ignoreregex =


แล้วให้ restart fail2ban 1ทีครับ

ให้ลองสั่ง
/etc/init.d/iptables status

จะมีบรรทัดนึงเขียนว่า
Chain fail2ban-WP (1 references)

ก็เป็นอันใช้ได้นะครับ

[COLOR=#ff0000][B]บอกกันไว้ก่อน ว่าผมก็พึ่งเคยใช้ ใช้มาได้ 2-3 วัน ยังไม่รู้ข้อดีข้อเสีย ใครมีอะไรเสริม พิมไว้แล้วกันครับ[/B][/COLOR]

เพิ่มเติมให้ต่อจากเท็นนะครับ

itpables เมื่อใช้ไปนานๆมันจะกิน CPU ครับ ทีนี้ให้ใช้ ipset แทนครับ

[wordpress-wp-login]
enabled = true
port = http,https
action = iptables-ipset-proto4[name=WP, port=http, protocol=tcp]
filter = wordpress-wp-login
logpath = /var/log/httpd/domains/*.log ###ใครใช้ controlpanel ตัวอื่นก็แก้ path เอานะครับ
bantime = 1200 (เวลาที่บลอค)
maxretry = 5 #login ผิดกี่ครั้งให้บล๊อค

แบบนี้ก็น่าจะได้ครับ (ผมเขียนสดนะ ไม่ได้เทส ช่วยเทสแล้วปรับหน่อยครับ)

เยี่ยมเลย แต่ผมเจอปัญหานึง เครื่องไหน log เยอะจะstart fail2ban 2วันก็ไม่เสร็จ มีทางแก้ไหม