ในระยะสั้นในบทช่วยสอนนี้คุณจะพบบรรทัดคำสั่งที่คุณสามารถติดตั้งและกำหนดค่า fail2ban สำหรับ WordPress รักษาความปลอดภัยการตรวจสอบ WordPress และ XMLRPC.PHP Gross Ass
บล็อกและเว็บไซต์ที่พัฒนาบนแพลตฟอร์ม WordPress มักจะเป็นเป้าหมายการโจมตีทางไซเบอร์ การโจมตีส่วนใหญ่เป็นประเภทแรงรวมและกำลังกำหนดเป้าหมายเซสชันการตรวจสอบสิทธิ์หรือการใช้ประโยชน์จาก XML-RPC (การโทรขั้นตอนระยะไกลโดยใช้ XML) โชคดีที่ Fail2ban เป็นโซลูชันความปลอดภัยที่มีประโยชน์มากสำหรับสถานการณ์เหล่านี้ หากคุณต้องการรักษาความปลอดภัยไซต์ WordPress ด้วย Fail2Ban ให้ทำตามขั้นตอนการกำหนดค่าในบทช่วยสอนนี้
ก่อนอื่นตรวจสอบให้แน่ใจว่าคุณสามารถเข้าถึงเว็บเซิร์ฟเวอร์โดยการเชื่อมต่อ SSH และติดตั้งแอปพลิเคชัน fail2ban
การกำหนดค่า fail2ban สำหรับ WordPress บน Debian
1. ก่อนอื่นคุณต้องตรวจสอบให้แน่ใจว่าแอปพลิเคชัน fail2ban ติดตั้งและทำงานบนเซิร์ฟเวอร์ ดำเนินการบรรทัดคำสั่งด้านล่าง:
systemctl status fail2ban
ในผลลัพธ์คุณควรเห็นบางอย่างของแบบฟอร์ม:
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-03-11 00:39:32 EET; 6 days ago
Docs: man:fail2ban(1)
Main PID: 917 (fail2ban-server)
Tasks: 17 (limit: 76843)
Memory: 33.2M
CPU: 17min 1.752s
CGroup: /system.slice/fail2ban.service
└─917 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
หากไม่ได้ติดตั้ง fail2ban บนเซิร์ฟเวอร์คุณจะต้องติดตั้ง ดำเนินการบรรทัดคำสั่งสำหรับการติดตั้ง fail2ban บน debian / ubuntu:
sudo apt install fail2ban
2. ขั้นตอนต่อไปคือการสร้างตัวกรอง fail2ban สำหรับ WordPress ดำเนินการในเทอร์มินัลบรรทัดคำสั่งเพื่อสร้างและแก้ไขตัวกรอง wordpress.conf
-
sudo nano /etc/fail2ban/filter.d/wordpress.conf
ในไฟล์ wordpress.conf
ตั้งค่าตัวกรองการรับรองความถูกต้องของ WordPress และการตรวจสอบไฟล์ xmlrpc.php
ดังนี้:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =
ซึ่งหมายความว่าโดยวิธีใด ๆ GET
หรือ POST
จะเข้าถึงไฟล์ wp-login.php หรือ xmlrpc.php ซึ่งเป็นกฎสำหรับ Fail2ban สามารถสร้างได้ เงื่อนไขคือไฟล์เหล่านี้มีอยู่และสามารถเข้าถึงได้โดยผู้โจมตี นั่นคือการส่งคืนรหัส 200 (ตกลง) เพื่อเข้าถึง
บันทึกไฟล์ /etc/fail2ban/filter.d/wordpress.conf
-
3. ขั้นตอนต่อไปคือการกำหนดค่า “คุก” สำหรับ WordPress ในขั้นตอนนี้ผู้ใช้ส่วนใหญ่สับสนเนื่องจากกฎจะต้องมีการกำหนดแตกต่างกันไปขึ้นอยู่กับระบบการจัดการโฮสติ้ง (ถ้ามีอยู่) หรือการกำหนดค่าเว็บเซิร์ฟเวอร์
หากคุณใช้ hestiacp, vestacp หรือ myVesta ให้สร้างและแก้ไขไฟล์ /etc/fail2ban/jail.local
-
nano /etc/fail2ban/jail.local
เพิ่มในไฟล์นี้บรรทัดด้านล่าง:
[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/nginx/domains/*.log #or apache2.
maxretry = 5
findtime = 1800
bantime = 3600
action = hestia[name=WEB] #hestacp action.
ปรับพารามิเตอร์ข้างต้นตามความต้องการของคุณ ในการกำหนดค่าที่ฉันได้รับหากภายในปี 1800 มีความพยายาม 5 ครั้งจาก IP เดียวกันมันจะถูกบล็อกเป็นเวลา 3600 นาทีด้วยความช่วยเหลือของเว็บ hestiacp -hestia[name=WEB]
- ที่นี่คุณจะต้องช่วยตามระบบที่คุณมีบนเซิร์ฟเวอร์
นอกจากนี้ยังมีความสำคัญมากและ “logpath
“- จากบันทึกเหล่านี้จะถูกแยกข้อมูลบนพื้นฐานของการกระทำที่จะดำเนินการ ตรวจสอบให้แน่ใจว่าตำแหน่งถูกต้อง
หากคุณไม่มีระบบการจัดการที่ติดตั้งคุณจะต้องมีการดำเนินการบล็อก IPS ด้วย Fail2ban เพื่อให้ WordPress ทำโดยตรงโดย iptables
- บรรทัดสำหรับการดำเนินการจะเป็นดังนี้:
action = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]
เป็นวงเล็บแทนที่จะเป็น /etc/fail2ban/jail.local
คุณยังสามารถใช้ไฟล์กำหนดค่าแยกต่างหากเช่น: /etc/fail2ban/jail.d/wordpress.conf
-
หลังจากที่คุณทำการปรับเปลี่ยนแล้วให้ใช้การเปลี่ยนแปลง
sudo systemctl restart fail2ban
4. หลังจากรีสตาร์ทตรวจสอบว่า fail2ban สำหรับ WordPress Works:
fail2ban-client status wordpress
Status for the jail: wordpress
|- Filter
| |- Currently failed: 355
| |- Total failed: 33873
| `- File list: (log files per domain)
- Actions
|- Currently banned: 127
|- Total banned: 680
`- Banned IP list:
หลังจากพบในรายการนี้บล็อก IPS ตรวจสอบให้แน่ใจว่าพวกเขาถูกบล็อกและใน iptables
- ฉันได้พบกับสถานการณ์ที่เกิดจากการกำหนดค่าที่ไม่ถูกต้องใน Fail2ban เพื่อดูว่ามันเป็น IP ที่ถูกบล็อก แต่ในความเป็นจริงมันยังสามารถเข้าถึงได้ wp-login.php
หรือ xmlrpc.php
-
หากต้องการตรวจสอบว่าทุกอย่างทำงานได้อย่างถูกต้องให้เลือก IP ที่ถูกบล็อกจากรายการ fail2ban และค้นหาใน iptables
ดำเนินการบรรทัดคำสั่ง:
iptables -L -v -n --line-numbers
หากพบ IP ที่ปรากฏโดย fail2ban ในรายการนี้ก็หมายความว่าคุณได้กำหนดค่า Fail2ban ที่ถูกต้องสำหรับ WordPress
ที่เกี่ยวข้อง: วิธีรีเซ็ตรหัสผ่านผู้ใช้ผู้ดูแลระบบใน WordPress ไม่สามารถเข้าถึงอีเมลได้
ในเวลาเดียวกันขอแนะนำให้ตรวจสอบบันทึกด้วยการกระทำที่ล้มเหลว 2ban:
sudo tail -f /var/log/fail2ban.log
ที่ถูกกล่าวว่าหากคุณมีข้อกังวลหรือต้องการความช่วยเหลือพวกเขาสามารถช่วยคุณในความคิดเห็น