Nginx είναι ένας δωρεάν, ανοιχτού κώδικα διακομιστής ιστού που χρησιμοποιείται για εξισορρόπηση φορτίου, buffering και caching. Από την έναρξή του το 2004, το Nginx έχει κερδίσει δημοτικότητα για την κλιμάκωση διακομιστών ιστού και την αντίστροφη μεσολάβηση (reverse proxying). Λόγω της υψηλής του απόδοσης και των εξαιρετικών δυνατοτήτων του να διαχειρίζεται μεγάλο όγκο συνδέσεων, χρησιμοποιείται για τη διαχείριση και τον έλεγχο της εισερχόμενης κίνησης.
Πώς λειτουργεί ο έλεγχος ταυτότητας HTTP;
Στον βασικό έλεγχο ταυτότητας HTTP, όλες οι διαδρομές στον διακομιστή είναι αποκλεισμένες και απαιτούν τα κατάλληλα διαπιστευτήρια για τον έλεγχο ταυτότητας. Κάθε φορά που ένας χρήστης προσπαθεί να αποκτήσει πρόσβαση σε έναν ασφαλή πόρο, ο διακομιστής στέλνει στον χρήστη μια κεφαλίδα WWW-Authenticate και μια 401 Unauthorized απόκριση. Εάν το όνομα χρήστη και ο κωδικός πρόσβασης που χρησιμοποιούνται από τον χρήστη είναι σωστά και ταιριάζουν με το αρχείο κλειδιού, η σύνδεση δημιουργείται, διαφορετικά απορρίπτεται.
Σε αυτόν τον οδηγό, θα σας καθοδηγήσουμε στα βήματα για τη ρύθμιση βασικού ελέγχου ταυτότητας HTTP με το Nginx στο Ubuntu 20.04.
Προαπαιτούμενα
Για να παρακολουθήσετε αυτόν τον οδηγό, θα χρειαστείτε τα εξής:
- Την τελευταία έκδοση του εγκατεστημένου Ubuntu στο σύστημά σας.
- Οι χρήστες του συστήματος πρέπει να έχουν προνόμια sudo.
- εγκατεστημένο και ρυθμισμένο το Nginx στον διακομιστή σας.
Βήμα 1: Ενημέρωση των αποθετηρίων λογισμικού
Πριν εγκαταστήσετε οποιοδήποτε νέο λογισμικό ή πακέτο API στο σύστημά σας, ανανεώστε τα αποθετήρια για να αποφύγετε σφάλματα ή διενέξεις πακέτων. Αρχικά, θα ενημερώσουμε το λογισμικό χρησιμοποιώντας την sudo εντολή:
|
1 |
sudo apt-get update |
Τώρα που ενημερώσαμε τα αποθετήρια λογισμικού, ας εγκαταστήσουμε τα απαραίτητα apache2 πακέτα.
Βήμα 2: Εγκατάσταση των απαραίτητων πακέτων
Καθώς ρυθμίζουμε τον έλεγχο ταυτότητας HTTP για έναν κατάλογο, θα χρησιμοποιήσουμε την htpasswd εντολή για να δημιουργήσουμε έναν κρυπτογραφημένο κωδικό πρόσβασης. Εγκαταστήστε το πακέτο apache2-utils χρησιμοποιώντας την ακόλουθη εντολή:
|
1 |
sudo apt-get install apache2-utils |
Βήμα 3: Δημιουργία χρήστη και κωδικού πρόσβασης
Σε αυτό το βήμα, θα ρυθμίσουμε τα διαπιστευτήρια του βασικού ελέγχου ταυτότητας HTTP. Κάτω από τον ριζικό κατάλογο, δημιουργήστε ένα αρχείο .htpasswd που σχετίζεται με τον χρήστη. Ο κωδικός πρόσβασης θα είναι κρυπτογραφημένος και το όνομα του αρχείου μπορεί να είναι οποιοδήποτε της επιλογής σας. Χρησιμοποιήστε την ακόλουθη εντολή για να δημιουργήσετε το αρχείο και να προσθέσετε τον χρήστη με κρυπτογραφημένο κωδικό πρόσβασης:
|
1 |
sudo htpasswd -c /etc/nginx/.htpasswd cloudsigma |

Στη συνέχεια, επαληθεύστε το νεοδημιουργηθέν αρχείο χρησιμοποιώντας την ακόλουθη εντολή:
|
1 |
cat /etc/nginx/.htpasswd |
Βήμα 4: Ενημέρωση της παραμετροποίησης του Nginx
Μόλις έχουμε τα διαπιστευτήρια βασικού ελέγχου ταυτότητας HTTP, ας ρυθμίσουμε το Nginx και ας το χρησιμοποιήσουμε στον ιστότοπο-στόχο μας. Απαιτούμε τις οδηγίες auth_basic και auth_basic_user_file για να δημιουργήσουμε τον βασικό έλεγχο ταυτότητας HTTP. Η τιμή της οδηγίας auth_basic είναι σε μορφή συμβολοσειράς, ενώ η τιμή της οδηγίας auth_basic_user_file είναι η διαδρομή προς το αρχείο κωδικού πρόσβασης που δημιουργήθηκε στο Βήμα 3.
Είναι σημαντικό να συμπεριλάβετε τις δύο οδηγίες στο αρχείο ρυθμίσεων του ιστότοπου-στόχου. Θα βρείτε την τοποθεσία του ιστότοπου-στόχου στον κατάλογο /etc/nginx/sites-available directory. Open the configuration file using the nano editor:
|
1 |
sudo nano /etc/nginx/sites-available/default |
Στη συνέχεια, προσθέστε και τις δύο αυτές οδηγίες κάτω από την ενότητα location :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
. . . server_name localhost; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules auth_basic "Private Property"; auth_basic_user_file /etc/nginx/.htpasswd; } . . . |
Αφού προσθέσετε την οδηγία, αποθηκεύστε και κλείστε το αρχείο ρυθμίσεων.
Βήμα 5: Επανεκκίνηση του Nginx
Στη συνέχεια, επαναφορτώστε ή επανεκκινήστε τις υπηρεσίες Nginx για να εφαρμόσετε τις αλλαγές στον εικονικό μας κεντρικό υπολογιστή. Μετά από αυτό, θα προσπαθήσουμε να αποκτήσουμε πρόσβαση στον ασφαλή τομέα χρησιμοποιώντας τη βασική μας πιστοποίηση HTTP. Χρησιμοποιήστε την ακόλουθη εντολή για να ενεργοποιήσετε τις υπηρεσίες Nginx:
|
1 |
sudo service nginx reload |
Βήμα 6: Ασφαλής πρόσβαση στον ιστό
Αφού επανεκκινήσετε το Nginx, το επόμενο βήμα είναι να προσπαθήσετε να αποκτήσετε πρόσβαση στη διεύθυνση IP ή στο όνομα τομέα στο αγαπημένο σας πρόγραμμα περιήγησης. Κάνοντας κλικ στη διεύθυνση IP http://your_domain_name/ στο πρόγραμμα περιήγησής σας, θα ανοίξει ένα παράθυρο που θα σας ζητά να εισαγάγετε τα διαπιστευτήρια για να συνδεθείτε. Μόλις εισαγάγετε το σωστό όνομα χρήστη και κωδικό πρόσβασης, θα δείτε την προεπιλεγμένη αρχική σελίδα του Nginx.
Συμπέρασμα
Σε αυτόν τον οδηγό, μάθαμε πώς να ρυθμίζουμε τη βασική πιστοποίηση HTTP με το Nginx. Η βασική πιστοποίηση με όνομα χρήστη/κωδικό πρόσβασης είναι μόνο μία από τις πολλές επιλογές πιστοποίησης για τη δημιουργία μιας ασφαλούς σύνδεσης στο Nginx.
Υπάρχουν άλλες ισχυρές επιλογές που χρησιμοποιούνται για την πιστοποίηση διακομιστή. Για παράδειγμα, ορισμένες δημοφιλείς μέθοδοι που μπορείτε να χρησιμοποιήσετε περιλαμβάνουν ενσωματώσεις API, JSON Web Tokens, πιστοποιήσεις βάσει κλειδιού SSH. Παρόλο που η απόκτηση ισχυρών μηχανισμών ασφαλείας μπορεί να φαίνεται δύσκολη αρχικά, είναι εξαιρετικά αποτελεσματικοί για την προστασία του απορρήτου σας.
Επιπλέον, υπάρχουν πολλά άλλα εκπαιδευτικά υλικά και οδηγοί για το Nginx στα οποία μπορείτε να έχετε πρόσβαση από τα blogs:
- Επισκόπηση των αλγορίθμων επιλογής Nginx Server και Location Block
- Εγκατάσταση και ρύθμιση του Laravel με Nginx σε Ubuntu 20.04
- Ρύθμιση του Django με PostgreSQL, Nginx και Gunicorn σε Ubuntu 20.04
Καλή συνέχεια!

Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.