.htaccess Μέρος Δεύτερο Ασφάλεια

Χθες αρχίσαμε μια σειρά οδηγών για το καταπληκτικό εργαλείο .htaccess. Για όσους δεν διάβασαν το πρώτο μέρος, το . είναι ένα μικρό αρχειάκι ρύθμισης του Apache server. Σήμερα θα δούμε πως μπορούμε να το επεξεργαστούμε για να βελτιώσουμε την ασφάλεια σε μια εγκατάσταση  .security

Θα αναφέρουμε για άλλη μια φορά τη σημαντικότητα της επεξεργασίας όλων των αρχείων (.php, .sql) που βρίσκονται αποθηκευμένα σε περιβάλλον , με τον editor notepad ++ και όχι με το κλασικό notepad των Windows.

Για να αρχίσουμε με την επεξεργασία του αρχείο θα πρέπει να το κατεβάσετε στον υπολογιστή σας. Αμέσως μετά, και μετά την εγκατάσταση του Notepad plus plus, ένα δεξί κλικ πάνω του θα σας δώσει την επιλογή: Επεξεργασία με Notepad.

Πριν προχωρήσουμε θα πρέπει να κρατήσετε ένα backup στο αρχείο που κατεβάσατε.

Μετά την επεξεργασία του αρχείου υπάρχουν δύο διαφορετικοί τρόποι αποθήκευσης.

Ο ευκολότερος είναι χρησιμοποιώντας το εικονίδιο της δισκέτας saveπου βρίσκεται στην πάνω αριστερή γωνία της εφαρμογής Notepad++.

Ο δεύτερος τρόπος θα σας χρειαστεί αν θέλετε να αποθηκεύσετε το .htaccess σε περιβάλλον Windows με το save as, ή αποθήκευση ως.

Επειδή τα Windows θεωρούν ότι το .htaccess είναι η κατάληξη τύπου αρχείου και ότι της λείπει το όνομα θα σας ζητήσουν να δώσετε κάποιο όνομα στο αρχείο σας. Π.χ. όνομα.htaccess. Μπορείτε να το αποφύγετε χρησιμοποιώντας τα εισαγωγικά.

Έτσι δοκιμάστε να αποθηκεύσετε το αρχείο σας σαν “.htaccess”htaccess 2

Μετά από τα βασικά ας δούμε πως μπορούμε να ασφαλίσουμε το WordPress site μας.

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


order allow,deny
deny from all

Αποκλείστε την πρόσβαση σε πολλά αρχεία μαζί (μπορείτε να προσθέσετε περισσότερα αν χρειάζεστε)


 Order Allow,Deny
 Deny from all

Ας αποκλείσουμε την πρόσβαση περιήγησης στους φακέλους του site

Options All -Indexes
  • Για να την επιτρέψουμε αντί για – χρησιμοποιούμε το +
  14 αστροναύτες με μεταλλάξεις στο DNA τους

Δηλαδή:

Options All +Indexes

Φυσικά αφού μιλάμε για ασφάλεια ξεχάστε την παραπάνω εντολή

Αποκλείστε μια IP


order allow,deny
deny from xxx.xxx.xxx.xxx
allow from all

 

Ας κλείσουμε ορισμένα κενά τώρα

Αποκλείστε την αποστολή κάθε 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]

Αποκλείστε κάθε URL που περιέχει το tag

RewriteCond %{QUERY_STRING} (|%3E) [NC,OR]

Αποκλείστε απόπειρες αλλαγής των μεταβλητών _request

RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})

Απενεργοποίηση των ping στο xmlrpc.php


order deny,allow
deny from all

Αποκλεισμός πρόσβασης στο debug.log


order deny,allow
deny from all

Αποκλεισμός ορισμένων SpyBot (μπορείτε να προσθέσετε όσα θέλετε)


RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^SquigglebotBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^SurveyBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^YottaShopping_Bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^webcrawl\.net [NC]
RewriteRule ^(.*)$ - [F,L]

Απαγόρευση εκτέλεσης διάφορων

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


RedirectMatch 403 \,
RedirectMatch 403 \:
RedirectMatch 403 \;
RedirectMatch 403 \=
RedirectMatch 403 \@
RedirectMatch 403 \[
RedirectMatch 403 \]
RedirectMatch 403 \^
RedirectMatch 403 \`
RedirectMatch 403 \{
RedirectMatch 403 \}
RedirectMatch 403 \~
RedirectMatch 403 \"
RedirectMatch 403 \$
RedirectMatch 403 \
RedirectMatch 403 \|
RedirectMatch 403 \.\.
RedirectMatch 403 \%0
RedirectMatch 403 \%A
RedirectMatch 403 \%B
RedirectMatch 403 \%C
RedirectMatch 403 \%D
RedirectMatch 403 \%E
RedirectMatch 403 \%F
RedirectMatch 403 \%22
RedirectMatch 403 \%27
RedirectMatch 403 \%28
RedirectMatch 403 \%29
RedirectMatch 403 \%3C
RedirectMatch 403 \%3E
RedirectMatch 403 \%3F
RedirectMatch 403 \%5B
RedirectMatch 403 \%5C
RedirectMatch 403 \%5D
RedirectMatch 403 \%7B
RedirectMatch 403 \%7C
RedirectMatch 403 \%7D
# COMMON PATTERNS
Redirectmatch 403 \_vpi
RedirectMatch 403 \.inc
Redirectmatch 403 xAou6
Redirectmatch 403 db\_name
Redirectmatch 403 select\(
Redirectmatch 403 convert\(
Redirectmatch 403 \/query\/
RedirectMatch 403 ImpEvData
Redirectmatch 403 \.XMLHTTP
Redirectmatch 403 proxydeny
RedirectMatch 403 function\.
Redirectmatch 403 remoteFile
Redirectmatch 403 servername
Redirectmatch 403 \&rptmode\=
Redirectmatch 403 sys\_cpanel
RedirectMatch 403 db\_connect
RedirectMatch 403 doeditconfig
RedirectMatch 403 check\_proxy
Redirectmatch 403 system\_user
Redirectmatch 403 \/\(null\)\/
Redirectmatch 403 clientrequest
Redirectmatch 403 option\_value
RedirectMatch 403 ref\.outcontrol
# Συγκεκριμένα Exploits
RedirectMatch 403 errors\.
RedirectMatch 403 config\.
RedirectMatch 403 include\.
RedirectMatch 403 display\.
RedirectMatch 403 register\.
Redirectmatch 403 password\.
RedirectMatch 403 maincore\.
RedirectMatch 403 authorize\.
Redirectmatch 403 macromates\.
RedirectMatch 403 head\_auth\.
RedirectMatch 403 submit\_links\.
RedirectMatch 403 change\_action\.
Redirectmatch 403 com\_facileforms\/
RedirectMatch 403 admin\_db\_utilities\.
RedirectMatch 403 admin\.webring\.docs\.
Redirectmatch 403 Table\/Latest\/index\.

Πιο συγκεκριμένα Request Strings


RedirectMatch 403 (https?|ftp|php)\://
RedirectMatch 403 /(https?|ima|ucp)/
RedirectMatch 403 /(Permanent|Better)$
RedirectMatch 403 (\=\\\'|\=\\%27|/\\\'/?|\)\.css\()$
RedirectMatch 403 (\,|\)\+|/\,/|\{0\}|\(/\(|\.\.\.|\+\+\+|\||\\\"\\\")
RedirectMatch 403 \.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$
RedirectMatch 403 /(contac|fpw|install|pingserver|register)\.php$
RedirectMatch 403 (base64|crossdomain|localhost|wwwroot|e107\_)
RedirectMatch 403 (eval\(|\_vti\_|\(null\)|echo.*kae|config\.xml)
RedirectMatch 403 \.well\-known/host\-meta
RedirectMatch 403 /function\.array\-rand
RedirectMatch 403 \)\;\$\(this\)\.html\(
RedirectMatch 403 proc/self/environ
RedirectMatch 403 msnbot\.htm\)\.\_
RedirectMatch 403 /ref\.outcontrol
RedirectMatch 403 com\_cropimage
RedirectMatch 403 indonesia\.htm
RedirectMatch 403 \{\$itemURL\}
RedirectMatch 403 function\(\)
RedirectMatch 403 labels\.rdf
RedirectMatch 403 /playing.php
RedirectMatch 403 muieblackcat

Αποκλεισμός του SetEnvIfNoCase User-Agent


# SetEnvIfNoCase User-Agent ^$ keep_out
SetEnvIfNoCase User-Agent (binlar|casper|cmsworldmap|comodo|diavol|dotbot|feedfinder|flicky|ia_archiver|jakarta|kmccrew|nutch|planetwork|purebot|pycurl|skygrid|sucker|turnit|vikspider|zmeu) keep_out

Order Allow,Deny
Allow from all
Deny from env=keep_out

Ανακατεύθυνση κάθε αποκλεισμένης αίτησης στην αρχική με κωδικό σφάλματος 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]

Ξεχάσαμε κάτι; Μπορείτε να το προσθέσετε στα σχόλια και εμείς θα το προσθέσουμε στο άρθρο.

  Chrome 105.0.5195.102 ενημερώστε άμεσα

Τέλος Δεύτερου Μέρους.

Written by giorgos

Ο Γιώργος ακόμα αναρωτιέται τι κάνει εδώ....

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Το μήνυμα σας δεν θα δημοσιευτεί εάν:
1. Περιέχει υβριστικά, συκοφαντικά, ρατσιστικά, προσβλητικά ή ανάρμοστα σχόλια.
2. Προκαλεί βλάβη σε ανηλίκους.
3. Παρενοχλεί την ιδιωτική ζωή και τα ατομικά και κοινωνικά δικαιώματα άλλων χρηστών.
4. Διαφημίζει προϊόντα ή υπηρεσίες ή διαδικτυακούς τόπους .
5. Περιέχει προσωπικές πληροφορίες (διεύθυνση, τηλέφωνο κλπ).


28  +    =  35