Όλες οι σελίδες που είναι στημένες στο CMS του WordPress χρησιμοποιούν τον ίδιο σύνδεσμο για την σύνδεση του διαχειριστή και των μελών στον πίνακα διαχείρισης. Ο σύνδεσμος είναι της μορφής www.example.com/wp-admin για τον διαχειριστή και www.example.com/wp-login για τους χρήστες.
Το πρόβλημα που προκύπτει είναι ότι ένας κακόβουλος χρήστης , γνωρίζει τον σύνδεσμο για την σύνδεση στον πίνακα διαχείρισης οπότε μπορεί να δοκιμάσει επιθέσεις BruteForce Attack και να αποκτήσει πρόσβαση διαχειριστή στην σελίδα σας. Επιπλέον μπορεί οποιοσδήποτε χρήστης να δει αν η σελίδα τρέχει σε WordPress. Βέβαια υπάρχουν αρκετοί ακόμα τρόποι για να δει κάποιος έμπειρος χρήστης ότι η σελίδα τρέχει σε wordpress οπότε αυτή η αλλαγή δεν μας προστατεύει από αυτό.
Σημαντικό: Πριν από οπουδήποτε αλλαγή στην σελίδα , πάντα κάνουμε πλήρη backup των αρχείων και της βάσης δεδομένων. Επιπλέον ανάλογα με τα πρόσθετα που έχετε εγκαταστημένα στο WordPress μπορεί κάποιες λειτουργίες να σταματήσουν να δουλεύουν. Όπότε μετά από την αλλαγή ελέγξτε ότι συνεχίζουν να δουλεύουν σωστά όλες οι λειτουργίες της σελίδα σας , διαφορετικά επαναφέρετε την σελίδα στο προηγούμενο backup.
Αλλαγή με την χρήση πρόσθετων
1. All In One WP Security & Firewall
Το All In One WP Security & Firewall έχει πάνω από 800 χιλιάδες ενεργές εγκαταστάσεις και έχει αρκετές επιλογές για την ασφάλεια της σελίδα σας. Μια από τις δυνατότητες του είναι ότι μπορεί να αλλάξει τον σύνδεσμο σύνδεσης στον πίνακα διαχείρισης.
- Μόλις εγκαταστήσετε το πρόσθετο, πηγαίνετε στην επιλογή Brute Force
- Επιλέγετε την επιλογή “Enable Rename Login Page Feature”
- Στο πεδίο “Login Page URL” πληκτρολογείστε τον νέο σύνδεσμο που θα αντικαταστήσει το wp-admin. Προτείνετε μια λέξη στα λατινικά. Στο παράδειγμα χρησιμοποιούμε την λέξη “secret”
- Τέλος πατάμε αποθήκευση.
- Κάνοντας αποσύνδεση και πληκτρολογώντας www.example.com/wp-admin μας βγάζει το μήνυμα ότι η σελίδα δεν υπάρχει, πληκτρολογώντας www.example.com/secret μπορούμε πλέον να συνδεθούμε στην σελίδα διαχείρισης.
2. WPS Hide Login
Το WPS Hide Login έχει πάνω από 600 χιλιάδες ενεργές εγκαταστάσεις , είναι αρκετά ελαφρύ και μας δίνει την δυνατότητα να αλλάξουμε τον σύνδεσμο σε οτιδήποτε θέλουμε. Επιπλέον πληκτρολογώντας www.example.com/wp-admin δεν μας εμφανίζει την επιλογή μη διαθέσιμη σελίδα όπως το παραπάνω πρόσθετο αλλά μας κατευθύνει στην σελίδα 404.
- Μόλις εγκαταστήσετε το πρόσθετο, πηγαίνετε ρυθμίσεις και WPS Hide Login
- Κατεβείτε στο τέλος της σελίδας και στην επιλογή “Login url” πληκτρολογείστε τον νέο σύνδεσμο που θα αντικαταστήσει το wp-admin. Προτείνετε μια λέξη στα λατινικά. Στο παράδειγμα χρησιμοποιούμε την λέξη “secret”
- Στην επιλογή “Redirection url” μπορούμε να αφήσουμε προεπιλεγμένη την επιλογή 404 ή να προσθέσουμε μια σελίδα που έχουμε δημιουργήσει. Εκεί θα κατευθύνονται όσοι προσπαθούν να συνδεθούν στον πίνακα διαχείρισης.
- Τέλος κάνουμε αποθήκευση αλλαγών.
3. iThemes Security
Το iThemes Security έχει πάνω από 900 χιλιάδες ενεργές εγκαταστάσεις και μια από τις δυνατότητες του είναι να αλλάξετε τον σύνδεσμο σε οτιδήποτε θέλετε. Εκτός από αυτό σας παρέχει 30 + τρόπους για να ασφαλίσετε και να προστατεύσετε την σελίδα σας WordPress.
- Μόλις εγκαταστήσετε το πρόσθετο, πηγαίνετε ρυθμίσεις του πρόσθετου > Security > Settings
- Έπειτα στην αναζήτηση πληκτρολογήστε “Hide” επιλέξτε Configure Settings στην καρτέλα “Hide Backend”
- Στην καρτέλα που θα εμφανιστεί ενεργοποιήστε την επιλογή “Hide Backend”
- Στην επιλογή “Login Slug” πληκτρολογήστε την λέξη που θα αντικαταστήσει το wp-admin , στο παράδειγμα χρησιμοποιούμε την λέξη “secret”.
- Αφήνουμε την επιλογή “Enable Redirection” ενεργοποιημένη και την επιλογή “Redirection Slug” προεπιλεγμένη ως “not-found”
- Τέλος πατάμε αποθήκευση , πλέον μπορούμε να συνδεθούμε στην σελίδα μας από το “www.example.com/secret” αν δοκιμάσουμε να συνδεθούμε από “www.example.com/wp-admin” θα μας κάνει ανακατεύθυνση στην σελίδα 404 η σελίδα δεν βρέθηκε.
Bonus ασφάλεια μέσω του iThemes Security
1. Αποτροπή επανειλημμένης προσπάθεια σύνδεσης
Οι παρακάτω ρύθμιση ενεργοποιείτε αυτόματα μόλις εγκαταστήσουμε το πρόσθετο ωστόσο θα δούμε πως μας προστατεύει και τις τροποποιήσεις που μπορούμε να κάνουμε. Κάθε φορά που κάποιος προσπαθεί να συνδεθεί στον πίνακα διαχείρισης το πρόσθετο καταγράφει τις προσπάθειες και το χρόνο αυτών. Οπότε ανάλογα με το τι έχουμε ορίσει δεν επιτρέπει επιπλέον προσπάθειες.
- Στις ρυθμίσεις του πρόσθετου επιλέγετε την καρτέλα “Local Brute Force Protection” και Configure Settings.
- Στην επιλογή “Max Login Attempts Per Host” πληκτρολογείτε πόσες προσπάθειες σύνδεσης μπορεί να κάνει ο κάθε υπολογιστής. Ένας hacker μπορεί να χρησιμοποιεί παραπάνω από ένα υπολογιστή όποτε,
- στην επιλογή “Max Login Attempts Per User” πληκτρολογείτε πόσες προσπάθειες σύνδεσης μπορεί να κάνει ένας χρήστης. Αν ένας hacker δοκιμάσει να συνδεθεί στο όνομά χρήστη “admin” για παράδειγμα, θα μπορεί να κάνει 10 δοκιμές το μέγιστο όσους υπολογιστές και να έχει.
- Στην επιλογή “Minutes to Remember Bad Login (check period)” πληκτρολογείτε το χρόνο που καταγράφονται αυτές οι προσπάθειες σε λεπτά. Αν δηλαδή αυτές οι προσπάθειες γίνουν μέσα σε 5 λεπτά στο παράδειγμα μας, απαγορεύεται η πρόσβαση για επιπλέον προσπάθειες.
Εδώ να τονίσουμε ότι η απαγόρευση πρόσβασης είναι μόνιμη και υπάρχει κίνδυνος να κλειδωθείτε και οι ίδιοι εκτός τις πλατφόρμας αν κάποιος προσπαθήσει να συνδεθεί στον πίνακα διαχείρισης με το όνομα σας. Παρακάτω θα δούμε πως μπορούμε να αποκρύψουμε το όνομα χρήστη μας από τρίτους.
2. Απενεργοποίηση του Rest Api
Το Rest Api εισήχθη στο WordPress από την έκδοση 4.7 και παρέχει στους προγραμματιστές νέους τρόπους διαχείρισης του WordPress. Από προεπιλογή, το Rest Api μπορεί να χρησιμοποιηθεί για την πρόσβαση σε πληροφορίες που μπορεί να θεωρήσετε ότι είναι ιδιωτικές στον ιστότοπό σας, συμπεριλαμβανομένων των εξής: Δημοσιευμένες δημοσιεύσεις, Στοιχεία χρήστη και καταχωρήσεις βιβλιοθήκης πολυμέσων.
Μέσω του Rest Api ο οποιοσδήποτε μπορεί να βρει όλους τους χρήστες που έχει μια σελίδα καθώς και το όνομα χρήστη του διαχειριστή και έτσι να δοκιμάζει επιθέσεις Brute Force για την εύρεση του κωδικού. Βέβαια για να έχουν νόημα η ρυθμίσεις που θα κάνουμε εδώ προϋποθέτει ότι στα άρθρα που δημοσιεύετε στην σελίδα σας δεν εμφανίζετε το όνομα χρήστη σας ή προτείνουμε να χρησιμοποιείτε διαφορετικό λογαριασμό για την δημοσίευση των άρθρων και όχι του διαχειριστή.
- Στις ρυθμίσεις του πρόσθετου επιλέγετε την καρτέλα “WordPress Tweaks” και Configure Settings.
- Στην καρτέλα που θα εμφανιστεί βρείτε τις ρυθμίσεις για το Rest Api και επιλέξτε “Restricted Access”
- Τέλος αποθήκευση ρυθμίσεων
Κάποια πρόσθετα που χρησιμοποιούν το Rest Api εξωτερικά θα σταματήσουν να δουλεύουν για αυτό μετά την αλλαγή δοκιμάστε ότι όλα δουλεύουν σωστά στην σελίδα σας, διαφορετικά ενεργοποιήστε το Rest Api ξανά.
Αλλαγή χωρίς την χρήση πρόσθετων
1. Αλλαγή αρχείων συστήματος WordPress
Οι αλλαγές που θα γίνουν εδώ είναι για έμπειρους χρήστες. Επιπλέον δεν είναι όλες οι λύσεις μόνιμες και μπορεί σε μια ερχόμενη αναβάθμιση του WordPress να χαθούν οι αλλαγές που θα κάνουμε. Για να προχωρήσουμε στην αλλαγή των αρχείων συστήματος του WordPress θα πρέπει φυσικά να έχουμε πρόσβαση στην διαχείριση του server μας , (Web Hosting, Vps , Dedicated Server ή Cloud) και ποίο συγκεκριμένα στα αρχεία που είναι εγκαταστημένο το WordPress. Στο παράδειγμα μας θα δούμε τον τρόπο σε Cpanel (πλατφόρμα για την διαχείριση του server) αν και σε όλες τις πλατφόρμες η διαδικασία είναι σχεδόν ίδια. Επιπλέον θα χρειαστούμε ένα επεξεργαστή κειμένου , στο παράδειγμα μας θα χρησιμοποιήσουμε το Notepad++
- Αρχικά συνδεόμαστε στην πλατφόρμα διαχείρισης του Server, Cpanel στο παράδειγμα μας.
- Μόλις συνδεθούμε επιλέγουμε “File Manager”
- Έπειτα ανοίγουμε τον φάκελο “public_html”
- Κατεβάζουμε το αρχείο “wp-login.php”
- Αποθηκεύουμε το αρχείο σε ασφαλές μέρος ώστε να μπορούμε να το επαναφέρουμε σε περίπτωση που κάτι πάει στραβά.
- Έπειτα ανοίγουμε το αρχείο με το Notepad++ και πατάμε αποθήκευση ως. Το όνομα του αρχείου πρέπει να τελειώνει με την κατάληξη .php , το όνομα που θα επιλέξουμε εδώ θα είναι και αυτό που θα γράφουμε για να συνδεθούμε στον πίνακα διαχείρισης του WordPress. Στο παράδειγμα μας το αποθηκεύουμε ως “secret.php” .
- Έπειτα πατάμε CTRL + F στο πληκτρολόγιο.
- Στο παράθυρο που θα εμφανιστεί πατάμε στην καρτέλα “Replace”
- Στην καρτέλα αυτήν στην επιλογή για “Find what” γράφουμε wp-login.php στην επιλογή “Replace with” γράφουμε το νέο όνομα του αρχείου, στο παράδειγμα μας “secret.php”
- Έπειτα πατάμε “Replace All” και θα βγάλει κάτω με μπλε χρώμα ότι 13 λέξεις αντικαταστάθηκαν. Μπορεί ανάλογα με το ποία έκδοση του WordPress έχετε να γίνει αντικατάσταση σε λιγότερες οι περισσότερες λέξεις, μην σας ανησυχήσει αν ο αριθμός δεν είναι ίδιος.
- Στην συνέχεια αποθηκεύουμε το αρχείο.
- Επιστρέφουμε στο Cpanel και πατάμε Upload για να ανεβάσουμε το νέο αρχείο με όνομα secret.php
- Μόλις ανέβει το αρχείο διαγράφουμε το αρχείο wp-login.php
- Τώρα πλέον αν όλα έχουν πάει καλά δεν θα μπορείτε να συνδεθείτε από το “www.example.com/wp-login” αλλά μέσω του “www.example.com/secret.php”
Σημαντικό σε αντίθεση με τα παραπάνω παραδείγματα που συνδεόμασταν από τον σύνδεσμο “www.example.com/secret” τώρα θα πρέπει να χρησιμοποιούμε και την κατάληξη php στο τέλος “www.example.com/secret.php”
Αν κάτι δεν δουλεύει σωστά όπως περιμένατε απλά σβήστε το αρχείο που ανεβάσατε και ανεβάστε το αρχείο wp-login.php που κατεβάσαμε στην αρχή και το αποθηκεύσαμε σε ασφαλές μέρος.
Ο παρακάτω τρόπος είναι προτιμότερος από τον παραπάνω , ωστόσο είναι ποιο εξειδικευμένος και αποκλειστικά για έμπειρους χρήστες. Λειτουργεί σε server που τρέχει αποκλειστικά apache και όχι ngix, επιπλέον οι αλλαγές που γίνονται είναι μόνιμες και δεν επηρεάζεται από αναβαθμίσεις του WordPress. Αυτό που πετυχαίνουμε με τον παρακάτω τρόπο είναι οποιοσδήποτε προσπαθήσει να συνδεθεί στο “www.example.com/wp-admin” να μην μπορεί ωστόσο εμείς να μπορούμε κανονικά κάνοντας χρήση cookie.
- Αρχικά θα πρέπει να προσθέσουμε τον παρακάτω κώδικα στο αρχείο .htaccess αφού πρώτα κατεβάσουμε το αρχείο και το αποθηκεύσουμε σε ασφαλές μέρος στον υπολογιστή μας μέσα από το Cpanel. Αν δεν σας εμφανίζει το αρχείο .htaccess στο cpanel μέσα στον “File Manager” πατήστε “Settings” και ενεργοποιήστε την επιλογή “Show hidden Files”
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTP_COOKIE} !^.*secret=2917998723.*$ [NC] RewriteRule wp-login.php - [F] </IfModule>
- Στην τέταρτη γραμμή του κώδικα επιλέγετε το νέο όνομα που θα έχει η σελίδα για την σύνδεση στον πίνακα διαχείρισης. Στο παράδειγμα μας το ονομάσαμε secret μπορείτε να το αλλάξετε φυσικά.
Τώρα, τι θα κάνει αυτός ο κώδικας; Αυτό είναι λίγο δύσκολο αλλά θα προσπαθήσω να εξηγήσω. Όπως μπορείτε να δείτε στην 4η γραμμή, ορίσαμε το HTTP_COOKIE για να αποθηκεύσετε προσωρινά ένα cookie που γνωρίζει την
σωστή διεύθυνση για την σύνδεση στο πίνακα διαχείρισης . Έτσι αν κάποιος προσπαθήσει να συνδεθεί στον πίνακα διαχείρισης μέσω του wp-admin θα πάρει μύνημα απαγορευμένο σφάλμα. Για να μπορέσει να συνθεδεί θα πρέπει πρώτα να επισκεφτεί την σελίδα secret.php και μετά θα τον ανακατευθείνει αυτόματα στην σελίδα wp-admin.
- Τώρα θα δημιουργήσουμε την σελίδα secret.php . Μέσα από το Cpanel πάμε στον File Manager > public_html και δημιουργούμε ένα νέο αρχείο με το όνομα που ορίσαμε πριν, στο παράδειγμα μας “secret.php”
- Μέσα στο αρχείο προσθέτουμε τον παρακάτω κώδικα
-
<?php setcookie("secret", 2917998723); header("Location: wp-login.php");
- Προσέχουμε να αλλάξουμε στην δεύτερη γραμμή την λέξη “secret” σε ότι όνομα έχετε ορίσει.
- Αποθηκεύουμε το αρχείο
Είμαστε έτοιμοι , όποιος θέλει πλέον να συνδεθεί στο πίνακα διαχείρισης θα πρέπει πρώτα να ανοίξει την σελίδα “secret” (“www.example.com/secret.php”) .