Τρόπος προστασίας καταλόγων Ιστού με κωδικό πρόσβασης στον Apache χρησιμοποιώντας αρχείο .htaccess


Όταν διαχειρίζεστε διαδικτυακά έργα, συχνά χρειάζεται να περιορίσετε την πρόσβαση σε αυτό το έργο για να το προστατεύσετε από τον έξω κόσμο. Μπορεί να υπάρχουν διάφοροι λόγοι για αυτό – για παράδειγμα, θέλετε να αποτρέψετε την πρόσβαση των ανιχνευτών μηχανών αναζήτησης στον ιστότοπό σας ενώ βρίσκεται ακόμη σε φάση ανάπτυξης.

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

Η πρώτη μέθοδος διαμορφώνει την προστασία με κωδικό πρόσβασης απευθείας στο αρχείο διαμόρφωσης του Apache, ενώ η δεύτερη χρησιμοποιεί το αρχείο .htaccess.

Απαιτήσεις

Για να ρυθμίσετε την προστασία με κωδικό πρόσβασης για τους καταλόγους Ιστού σας, θα χρειαστεί να έχετε:

  • Ένας διακομιστής ιστού Apache που λειτουργεί
  • Η οδηγία AllowOverride AuthConfig πρέπει να είναι ενεργοποιημένη στο αρχείο διαμόρφωσης του Apache.

Ρύθμιση καταλόγου προστατευμένου με κωδικό πρόσβασης Apache

1. Για αυτό το σεμινάριο, θα προστατεύσουμε τον κύριο ριζικό κατάλογο ιστού /var/www/html. Για να προστατέψετε αυτόν τον κατάλογο, ανοίξτε τη διαμόρφωση του Apache:

---------------- On RedHat/CentOS based systems ----------------
vi /etc/httpd/conf/httpd.conf

---------------- On Debian/Ubuntu based systems ----------------
nano /etc/apache2/sites-available/000-default.conf

2. Βρείτε τη ρίζα του καταλόγου του Apache Document για /var/www/html και προσθέστε τα ακόλουθα πράγματα όπως προτείνεται:

Στην έκδοση Apache 2.2

<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All
Order allow,deny
Allow from all 
</Directory>

Στην έκδοση Apache 2.4

<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All 
Require all granted 
</Directory>

3. Αποθηκεύστε το αρχείο και επανεκκινήστε τον Apache χρησιμοποιώντας την ακόλουθη εντολή:

--------------- On Systemd -------------------
systemctl restart httpd         [On RedHat based systems]
systemctl restart apache2       [On Debian based systems]


--------------- On SysV init -----------------
service httpd restart           [On RedHat based systems]
service apache2 restart         [On Debian based systems]

4. Τώρα θα χρησιμοποιήσουμε την εντολή htpasswd για να δημιουργήσουμε όνομα χρήστη και κωδικό πρόσβασης για τον προστατευμένο μας κατάλογο. Αυτή η εντολή χρησιμοποιείται για τη διαχείριση αρχείων χρήστη για βασικό έλεγχο ταυτότητας.

Η γενική σύνταξη της εντολής είναι:

htpasswd -c filename username

Η επιλογή -c καθορίζει το αρχείο που θα διατηρήσει τον κρυπτογραφημένο κωδικό πρόσβασης και το όνομα χρήστη καθορίζει τον χρήστη για τον έλεγχο ταυτότητας.

5. Το αρχείο κωδικών πρόσβασης πρέπει να βρίσκεται εκτός του καταλόγου προσβάσιμου στον ιστό του Apache, ώστε να είναι καλά προστατευμένο. Για το σκοπό αυτό, θα δημιουργήσουμε νέο κατάλογο:

mkdir /home/tecmint

6. Στη συνέχεια, θα δημιουργήσουμε το όνομα χρήστη και τον κωδικό πρόσβασής μας που θα αποθηκευτούν σε αυτόν τον κατάλογο:

htpasswd -c /home/tecmint/webpass tecmint

Μόλις εκτελέσετε αυτήν την εντολή, θα πρέπει να εισαγάγετε έναν κωδικό πρόσβασης για τον νέο μας χρήστη "tecmint" δύο φορές:

Μετά από αυτό, θα πρέπει να βεβαιωθούμε ότι ο Apache μπορεί να διαβάσει το αρχείο "webpass". Για το σκοπό αυτό, θα χρειαστεί να αλλάξετε την ιδιοκτησία αυτού του αρχείου με την ακόλουθη εντολή:

---------------- On RedHat/CentOS based systems ----------------
chown apache: /home/tecmint/webpass
chmod 640 /home/tecmint/webpass
---------------- On Debian/Ubuntu based systems ----------------
chown www-data /home/tecmint/webpass
chmod 640 /home/tecmint/webpass

7. Σε αυτό το σημείο ο νέος χρήστης και ο κωδικός πρόσβασης είναι έτοιμοι. Τώρα πρέπει να πούμε στον Apache να ζητήσει κωδικό πρόσβασης κατά την πρόσβαση στον στοχευμένο κατάλογό μας. Για το σκοπό αυτό, δημιουργήστε ένα αρχείο που ονομάζεται .htaccess στο /var/www/html:

vi /var/www/html/.htaccess

Προσθέστε τον ακόλουθο κώδικα σε αυτό:

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /home/tecmint/webpass
Require user tecmint

8. Τώρα αποθηκεύστε το αρχείο και δοκιμάστε τις ρυθμίσεις σας. Ανοίξτε το πρόγραμμα περιήγησής σας και εισαγάγετε τη διεύθυνση IP ή το όνομα τομέα σας στο πρόγραμμα περιήγησης ιστού, για παράδειγμα:

http://ip-address

Θα πρέπει να σας ζητηθεί όνομα χρήστη και κωδικός πρόσβασης:

Εισαγάγετε το όνομα χρήστη και τον κωδικό πρόσβασης που έχετε ορίσει για να προχωρήσετε στη σελίδα σας.

επιπρόσθετες σημειώσεις

Εάν χρησιμοποιείτε κοινόχρηστη φιλοξενία, πιθανότατα δεν θα έχετε πρόσβαση στο αρχείο διαμόρφωσης του Apache. Ωστόσο, οι περισσότερες εταιρείες φιλοξενίας έχουν ενεργοποιήσει από προεπιλογή την επιλογή "Να επιτρέπεται η παράκαμψη όλων". Αυτό σημαίνει ότι θα χρειαστεί μόνο να δημιουργήσετε το όνομα χρήστη και τον κωδικό πρόσβασης και στη συνέχεια να επιλέξετε τον κατάλογο που θέλετε να προστατεύσετε. Αυτό διευκολύνει σημαντικά το έργο σας.

συμπέρασμα

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