باختصار، ستجد في هذا البرنامج التعليمي أسطر الأوامر التي يمكنك من خلالها تثبيت Fail2Ban وتكوينه Wordيضعط. يؤمن المصادقة WordPress والاستعلامات بالقوة الغاشمة لـ xmlrpc.php.
المدونات والمواقع الإلكترونية التي تم تطويرها على المنصة WordPress غالبًا ما تكون أهدافًا للهجمات الإلكترونية. معظم الهجمات هي هجمات القوة الغاشمة التي تستهدف جلسة المصادقة أو تستغل XML-RPC (استدعاء الإجراء عن بعد باستخدام XML). لحسن الحظ، يعد fail2ban حلاً أمنيًا مفيدًا للغاية لهذه المواقف. إذا كنت تريد تأمين موقع الويب WordPress مع fail2ban، اتبع خطوات التكوين في هذا البرنامج التعليمي.
أولاً، تأكد من أن لديك إمكانية الوصول إلى خادم الويب عبر اتصال SSH وأن تطبيق fail2ban مثبت.
تكوين Fail2Ban لـ WordPress على ديبيان
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 لـ Wordيضعط. قم بتشغيل سطر الأوامر في المحطة الطرفية لإنشاء الفلتر وتحريره 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. الخطوة التالية هي تكوين "السجن" لـ Wordيضعط. هذا هو المكان الذي يرتبك فيه معظم المستخدمين، لأنه يجب تعيين القواعد بشكل مختلف اعتمادًا على نظام إدارة الاستضافة (إن وجد) أو تكوين خادم الويب.
إذا كنت تستخدم 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 محاولات متكررة من نفس عنوان IP خلال فترة 5 دقيقة، فسيتم حظره لمدة 3600 دقيقة باستخدام إجراء HestiaCP للويب. (hestia[name=WEB]
). هنا سوف تحتاج إلى المساعدة اعتمادًا على النظام الذي لديك على الخادم.
ومن المهم جدًا أيضًا "logpath
". من هذه السجلات، يتم استخراج البيانات التي سيتم اتخاذ الإجراء بشأنها. تأكد من أن الموقع صحيح.
إذا لم يكن لديك نظام إدارة مثبتًا، فسوف تحتاج إلى حظر عناوين IP باستخدام 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 الأعمال:
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:
بمجرد العثور على عناوين IP المحظورة في هذه القائمة، تأكد من حظرها أيضًا iptables
. لقد واجهت الموقف حيث رأيت أنه بسبب سوء التكوين في fail2ban، تم حظر عنوان IP، ولكن في الواقع لا يزال بإمكانه الوصول wp-login.php
أو xmlrpc.php
.
للتأكد من أن كل شيء يعمل بشكل صحيح، اختر عنوان IP محظورًا من قائمة fail2ban وابحث عنه في iptables.
قم بتشغيل سطر الأوامر:
iptables -L -v -n --line-numbers
إذا كان عنوان IP الذي يبدو أنه محظور بواسطة fail2ban موجودًا أيضًا في هذه القائمة، فهذا يعني أنك قمت بتكوين fail2ban له بشكل صحيح. Wordصحافة.
هذا الموضوع ذو علاقة بـ: كيفية إعادة تعيين كلمة مرور المستخدم المسؤول في Wordيضعط. لا يمكن الوصول إلى البريد الإلكتروني.
في الوقت نفسه، يوصى بشدة بالتحقق من السجل باستخدام إجراءات fail2ban:
sudo tail -f /var/log/fail2ban.log
ومع ذلك، إذا كان لديك أي أسئلة أو تحتاج إلى مساعدة، يمكنني مساعدتك في التعليقات.