Πώς να προστατεύσετε τους καταλόγους Ιστού με κωδικό πρόσβασης στο Nginx


Οι διαχειριστές έργων Ιστού χρειάζεται συχνά να προστατεύουν την εργασία τους με τον έναν ή τον άλλον τρόπο. Συχνά οι άνθρωποι ρωτούν πώς να προστατεύσουν τον ιστότοπό τους με κωδικό πρόσβασης ενώ είναι ακόμα σε εξέλιξη.

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

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

  1. Κατάλογοι Web Protect με κωδικό πρόσβασης στον Apache

Απαιτήσεις

Για να ολοκληρώσετε τα βήματα σε αυτό το σεμινάριο, θα χρειαστεί να έχετε:

  • Εγκαταστάθηκε ο διακομιστής ιστού Nginx
  • Πρόσβαση root στον διακομιστή

Βήμα 1: Δημιουργία χρήστη και κωδικού πρόσβασης

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

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

htpasswd -c /path/to/file/.htpasswd username

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

2. Εάν δεν έχετε εγκαταστήσει αυτό το εργαλείο, μπορείτε να δημιουργήσετε το αρχείο .htpasswd μη αυτόματα. Το αρχείο πρέπει να έχει την ακόλουθη σύνταξη:

username:encrypted-password:comment

Το όνομα χρήστη που θα χρησιμοποιήσετε εξαρτάται από εσάς, επιλέξτε ό,τι θέλετε.

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

Βήμα 2: Δημιουργήστε κρυπτογραφημένο κωδικό πρόσβασης

3. Για να δημιουργήσετε τον κωδικό πρόσβασης, χρησιμοποιήστε την ενσωματωμένη λειτουργία "crypt" της Perl.

Ακολουθεί ένα παράδειγμα αυτής της εντολής:

perl -le 'print crypt("your-password", "salt-hash")'

Ένα πραγματικό παράδειγμα ζωής:

perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'

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

Να πώς:

vi /home/tecmint/.htpasswd

Βάλτε το όνομα χρήστη και τον κωδικό πρόσβασής σας. Στην περίπτωσή μου μοιάζει με αυτό:

tecmint:1xV2Rdw7Q6MK.

Αποθηκεύστε το αρχείο πατώντας “Esc” ακολουθούμενο από “:wq”.

Βήμα 3: Ενημερώστε τη διαμόρφωση Nginx

4. Τώρα ανοίξτε και επεξεργαστείτε το αρχείο διαμόρφωσης Nginx που σχετίζεται με τον ιστότοπο στον οποίο εργάζεστε. Στην περίπτωσή μας θα χρησιμοποιήσουμε το προεπιλεγμένο αρχείο στη διεύθυνση:

vi /etc/nginx/conf.d/default.conf       [For CentOS based systems]
OR
vi /etc/nginx/nginx.conf                [For CentOS based systems]


vi /etc/nginx/sites-enabled/default     [For Debian based systems]

Στο παράδειγμά μας, θα προστατεύσουμε με κωδικό πρόσβασης τη ρίζα του καταλόγου για το nginx, που είναι: /usr/share/nginx/html.

5. Τώρα προσθέστε την ακόλουθη ενότητα δύο γραμμών κάτω από τη διαδρομή που θέλετε να προστατεύσετε.

auth_basic "Administrator Login";
auth_basic_user_file /home/tecmint/.htpasswd;

Τώρα αποθηκεύστε το αρχείο και επανεκκινήστε το Nginx με:

systemctl restart nginx
OR
service nginx restart

6. Τώρα αντιγράψτε/επικολλήστε αυτήν τη διεύθυνση IP στο πρόγραμμα περιήγησής σας και θα σας ζητηθεί κωδικός πρόσβασης:

Αυτό είναι! Ο κύριος κατάλογος ιστού σας είναι πλέον προστατευμένος. Όταν θέλετε να καταργήσετε την προστασία με κωδικό πρόσβασης στον ιστότοπο, απλώς αφαιρέστε τις δύο γραμμές που μόλις προσθέσατε στο αρχείο .htpasswd ή χρησιμοποιήστε την ακόλουθη εντολή για να αφαιρέσετε τον χρήστη που προστέθηκε από ένα αρχείο κωδικού πρόσβασης.

htpasswd -D /path/to/file/.htpasswd username