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:
- 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