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