Πώς ρυθμίζετε το Fail2BAN για το WordPress (WP-Login, XMLRPC)

Εν ολίγοις, σε αυτό το σεμινάριο θα βρείτε τις γραμμές εντολών μέσω των οποίων μπορείτε να εγκαταστήσετε και να ρυθμίσετε το Fail2BAN για το WordPress. Ασφαλίστε τον έλεγχο ταυτότητας WordPress και το XMLRPC.php Gross Ass.

Τα blogs και οι ιστότοποι που αναπτύχθηκαν στην πλατφόρμα 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 (OK) για πρόσβαση.

Αποθηκεύει το αρχείο /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 λεπτά με τη βοήθεια του Web 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 λειτουργεί:

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. Χωρίς πρόσβαση σε email.

Ταυτόχρονα, είναι πολύ σκόπιμο να ελέγξετε το αρχείο καταγραφής με τις ενέργειες Fail2BAN:

sudo tail -f /var/log/fail2ban.log

Τούτου λεχθέντος, αν έχετε οποιεσδήποτε ανησυχίες ή χρειάζεστε βοήθεια, μπορούν να σας βοηθήσουν στα σχόλια.

Παθιασμένος με την τεχνολογία, γράφω με ευχαρίστηση στο stealthsetts.com ξεκινώντας από το 2006. Έχω μια πλούσια εμπειρία στα λειτουργικά συστήματα: MacOs, Windows και Linux, αλλά και σε γλώσσες προγραμματισμού και πλατφόρμες blogging (WordPress) και για ηλεκτρονικά καταστήματα (WooCommerce, Magento, Presashop).

Home Η πηγή σας σε μαθήματα, χρήσιμες συμβουλές και νέα. Πώς ρυθμίζετε το Fail2BAN για το WordPress (WP-Login, XMLRPC)
Αφήστε ένα σχόλιο