Kako lozinkom zaštititi web imenike u Nginxu


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

U ovom vodiču pokazat ćemo vam jednostavnu, ali učinkovitu tehniku kako zaštititi web-imenik lozinkom kada koristite Nginx kao web poslužitelj.

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

  1. Zaštitite web imenike lozinkom u Apacheu

Zahtjevi

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

  • Nginx web poslužitelj instaliran
  • Root pristup poslužitelju

Korak 1: Stvorite korisnika i lozinku

1. Kako bismo lozinkom zaštitili naš web imenik, morat ćemo stvoriti 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 sustavu, možete koristiti ovu naredbu za generiranje datoteke lozinke:

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

Prilikom pokretanja ove naredbe, od vas će se tražiti da postavite lozinku za gore navedenog korisnika i nakon toga će se datoteka .htpasswd kreirati u navedenom direktoriju.

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

username:encrypted-password:comment

Korisničko ime koje ćete koristiti ovisi o vama, odaberite koje god želite.

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

Korak 2: Generirajte šifriranu lozinku

3. Za generiranje lozinke, upotrijebite Perl-ovu 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 string, odvojene točkom i zarezom.

Evo kako:

vi /home/tecmint/.htpasswd

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

tecmint:1xV2Rdw7Q6MK.

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

Korak 3: Ažurirajte Nginx konfiguraciju

4. Sada otvorite i uredite Nginx konfiguracijsku datoteku pridruženu stranici 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, koji je: /usr/share/nginx/html.

5. Sada dodajte odjeljak sa sljedeća dva retka ispod staze koju želite zaštititi.

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

Sada spremite datoteku i ponovno pokrenite Nginx s:

systemctl restart nginx
OR
service nginx restart

6. Sada kopirajte/zalijepite tu IP adresu u svoj preglednik i trebali biste biti upitani za lozinku:

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

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