Kako zaštititi web imenike lozinkom u Nginxu


Menadžeri web projekata često moraju zaštititi svoj rad na ovaj ili onaj način. Ljudi često pitaju kako zaštititi svoju web stranicu lozinkom dok je još u razvoju.

U ovom vodiču ćemo vam pokazati jednostavnu, ali efikasnu tehniku kako zaštićen lozinkom web direktorij kada koristite Nginx kao web server.

U slučaju da koristite Apache web server, možete provjeriti naš vodič za zaštitu lozinkom web direktorija:

  1. Zaštitite web imenike lozinkom u Apacheu

Zahtjevi

Da biste dovršili korake u ovom vodiču, morat ćete imati:

  • Instaliran je Nginx web server
  • Root pristup serveru

Korak 1: Kreirajte korisnika i lozinku

1. Da bismo zaštitili naš web direktorij lozinkom, morat ćemo kreirati datoteku koja će sadržavati naše šifrirano korisničko ime i lozinku.

Kada koristite Apache, možete koristiti uslužni program “htpasswd”. Ako imate taj uslužni program instaliran na vašem sistemu, možete koristiti ovu naredbu za generiranje datoteke lozinke:

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

Kada pokrenete ovu naredbu, od vas će se tražiti da postavite lozinku za gore navedenog korisnika i nakon toga će datoteka .htpasswd biti kreirana u navedenom direktoriju.

2. Ako nemate instaliran taj alat, možete ručno kreirati datoteku .htpasswd. Datoteka bi trebala imati sljedeću sintaksu:

username:encrypted-password:comment

korisničko ime koje ćete koristiti zavisi od vas, odaberite šta god želite.

Važniji dio je način na koji ćete generirati lozinku za tog korisnika.

Korak 2: Generirajte šifrovanu lozinku

3. Za generiranje lozinke koristite Perl integriranu funkciju “crypt”.

Evo primjera te naredbe:

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

Primjer iz stvarnog života:

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

Sada otvorite datoteku i stavite svoje korisničko ime i generirano u niz, odvojeno tačkom i zarezom.

Evo kako:

vi /home/tecmint/.htpasswd

Unesite svoje korisničko ime i lozinku. U mom slučaju to izgleda ovako:

tecmint:1xV2Rdw7Q6MK.

Sačuvajte datoteku pritiskom na “Esc” nakon čega slijedi “:wq”.

Korak 3: Ažurirajte Nginx konfiguraciju

4. Sada otvorite i uredite Nginx konfiguracijsku datoteku povezanu sa web-mjestom na kojoj radite. U našem slučaju koristit ćemo zadanu datoteku na:

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]

U našem primjeru, zaštitit ćemo lozinkom korijenski direktorij za nginx, a to je: /usr/share/nginx/html.

5. Sada dodajte sljedeća dva reda odjeljka ispod putanje koju želite zaštititi.

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

Sada sačuvajte datoteku i ponovo pokrenite Nginx sa:

systemctl restart nginx
OR
service nginx restart

6. Sada kopirajte/zalijepite tu IP adresu u svoj preglednik i od vas će se tražiti lozinka:

To je to! Vaš glavni web imenik je sada zaštićen. Kada želite ukloniti zaštitu lozinkom na web lokaciji, jednostavno uklonite dva reda koje ste upravo dodali u datoteku .htpasswd ili koristite sljedeću naredbu da uklonite dodanog korisnika iz datoteke lozinke.

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