Χθες αρχίσαμε μια σειρά οδηγών για το καταπληκτικό εργαλείο .htaccess. Για όσους δεν διάβασαν το πρώτο μέρος, το .htaccess είναι ένα μικρό αρχειάκι ρύθμισης του Apache web server. Σήμερα θα δούμε πως μπορούμε να το επεξεργαστούμε για να βελτιώσουμε την ασφάλεια σε μια εγκατάσταση WordPress.
Θα αναφέρουμε για άλλη μια φορά τη σημαντικότητα της επεξεργασίας όλων των αρχείων (.php, .sql) που βρίσκονται αποθηκευμένα σε περιβάλλον Linux, με τον editor notepad ++ και όχι με το κλασικό notepad των Windows.
Για να αρχίσουμε με την επεξεργασία του αρχείο θα πρέπει να το κατεβάσετε στον υπολογιστή σας. Αμέσως μετά, και μετά την εγκατάσταση του Notepad plus plus, ένα δεξί κλικ πάνω του θα σας δώσει την επιλογή: Επεξεργασία με Notepad.
Πριν προχωρήσουμε θα πρέπει να κρατήσετε ένα backup στο αρχείο που κατεβάσατε.
Μετά την επεξεργασία του αρχείου υπάρχουν δύο διαφορετικοί τρόποι αποθήκευσης.
Ο ευκολότερος είναι χρησιμοποιώντας το εικονίδιο της δισκέτας που βρίσκεται στην πάνω αριστερή γωνία της εφαρμογής Notepad++.
Ο δεύτερος τρόπος θα σας χρειαστεί αν θέλετε να αποθηκεύσετε το .htaccess σε περιβάλλον Windows με το save as, ή αποθήκευση ως.
Επειδή τα Windows θεωρούν ότι το .htaccess είναι η κατάληξη τύπου αρχείου και ότι της λείπει το όνομα θα σας ζητήσουν να δώσετε κάποιο όνομα στο αρχείο σας. Π.χ. όνομα.htaccess. Μπορείτε να το αποφύγετε χρησιμοποιώντας τα εισαγωγικά.
Έτσι δοκιμάστε να αποθηκεύσετε το αρχείο σας σαν “.htaccess”
Μετά από τα βασικά ας δούμε πως μπορούμε να ασφαλίσουμε το WordPress site μας.
Ας αρχίσουμε προστατεύοντας το ίδιο το .htaccess Την ίδια εντολή μπορείτε να την χρησιμοποιήσετε για να απαγορέψετε την πρόσβαση σε οποιοδήποτε αρχείο επιθυμείτε, αλλάζοντας απλά το όνομα του αρχείου.
Αποκλείστε την πρόσβαση σε πολλά αρχεία μαζί (μπορείτε να προσθέσετε περισσότερα αν χρειάζεστε)
Ας αποκλείσουμε την πρόσβαση περιήγησης στους φακέλους του site
Options All -Indexes
- Για να την επιτρέψουμε αντί για – χρησιμοποιούμε το +
Δηλαδή:
Options All +Indexes
Φυσικά αφού μιλάμε για ασφάλεια ξεχάστε την παραπάνω εντολή
Αποκλείστε μια IP
Ας κλείσουμε ορισμένα κενά τώρα
Αποκλείστε την αποστολή κάθε script με κωδικοποιημένες εντολές base64_encode
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
Αποκλείστε τη μέθοδο proc/self/environ
RewriteCond %{QUERY_STRING} proc/self/environ [OR]
Προστατευτείτε από κάθε script που προσπαθεί να αλλάξει τις τιμές των php globals
RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]
Προστασία από κάθε script που προσπαθεί να αλλάξει τιμή στο mosConfig
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
Αποκλείστε απόπειρες αλλαγής των μεταβλητών _request
RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})
Απενεργοποίηση των ping στο xmlrpc.php
Αποκλεισμός πρόσβασης στο debug.log
Αποκλεισμός ορισμένων SpyBot (μπορείτε να προσθέσετε όσα θέλετε)
Απαγόρευση εκτέλεσης διάφορων scripts
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi Options -ExecCGI
Απενεργοποίηση του Trace Track
RewriteEngine On RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F]
Αποκλεισμός συνδέσεων με proxy που προσπαθούν να σχολιάσουν
RewriteCond %{REQUEST_METHOD} =POST RewriteCond %{HTTP:VIA}%{HTTP:FORWARDED}%{HTTP:USERAGENT_VIA}%{HTTP:X_FORWARDED_FOR}%{HTTP:PROXY_CONNECTION} !^$ [OR] RewriteCond %{HTTP:XPROXY_CONNECTION}%{HTTP:HTTP_PC_REMOTE_ADDR}%{HTTP:HTTP_CLIENT_IP} !^$ RewriteCond %{REQUEST_URI} !^/(wp-login.php|wp-admin/|wp-content/plugins/|wp-includes/).* [NC] RewriteRule .* - [F,NS,L]
Απενεργοποίηση με redirect σε 403 “κακών” χαρακτήρων και γνωστών κατασκοπευτικών exploit
Πιο συγκεκριμένα Request Strings
Αποκλεισμός του SetEnvIfNoCase User-Agent
Ανακατεύθυνση κάθε αποκλεισμένης αίτησης στην αρχική με κωδικό σφάλματος 403
RewriteRule ^(.*)$ index.php [F,L]
Απενεργοποίηση του hotlinkng
RewriteEngine On #Αλλάξτε το ?mysite\.com/ με το domain της σελίδας σας RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ #αλλάξτε το /images/no-hotlinking.png με μια δική σας φωτογραφία που αποθαρρύνει τους copycats RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/no-hotlinking.png [L]
Ξεχάσαμε κάτι; Μπορείτε να το προσθέσετε στα σχόλια και εμείς θα το προσθέσουμε στο άρθρο.
Τέλος Δεύτερου Μέρους.