Kaip slaptažodžiu apsaugoti žiniatinklio katalogus Nginx


Interneto projektų vadovams dažnai reikia vienaip ar kitaip apsaugoti savo darbą. Dažnai žmonės klausia, kaip apsaugoti savo svetainę slaptažodžiu, kol ji vis dar kuriama.

Šioje mokymo programoje parodysime paprastą, bet veiksmingą metodą, kaip slaptažodžiu apsaugotą žiniatinklio katalogą naudojant „Nginx“ kaip žiniatinklio serverį.

Jei naudojate „Apache“ žiniatinklio serverį, galite peržiūrėti mūsų vadovą, kaip apsaugoti žiniatinklio katalogą slaptažodžiu:

  1. Apsaugokite slaptažodžiu žiniatinklio katalogus „Apache“.

Reikalavimai

Norėdami atlikti šios pamokos veiksmus, jums reikės:

  • Įdiegtas Nginx žiniatinklio serveris
  • Root prieiga prie serverio

1 veiksmas: sukurkite vartotoją ir slaptažodį

1. Norėdami apsaugoti savo žiniatinklio katalogą slaptažodžiu, turėsime sukurti failą, kuriame bus užšifruotas naudotojo vardas ir slaptažodis.

Naudodami Apache galite naudoti „htpasswd“ priemonę. Jei jūsų sistemoje įdiegta ši programa, galite naudoti šią komandą slaptažodžio failui sugeneruoti:

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

Vykdant šią komandą, jūsų bus paprašyta nustatyti aukščiau nurodyto vartotojo slaptažodį ir po to nurodytame kataloge bus sukurtas failas .htpasswd.

2. Jei to įrankio neįdiegėte, galite neautomatiškai sukurti failą .htpasswd. Failo sintaksė turi būti tokia:

username:encrypted-password:comment

Vartotojo vardas, kurį naudosite, priklauso nuo jūsų. Pasirinkite bet ką, kas jums patinka.

Svarbesnė dalis yra būdas, kuriuo sugeneruosite to vartotojo slaptažodį.

2 veiksmas: sugeneruokite šifruotą slaptažodį

3. Norėdami sugeneruoti slaptažodį, naudokite „Perl“ integruotą funkciją „crypt“.

Štai šios komandos pavyzdys:

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

Tikras gyvenimo pavyzdys:

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

Dabar atidarykite failą ir įveskite savo vartotojo vardą ir sugeneruotą eilutę, atskirtą kabliataškiu.

Štai kaip:

vi /home/tecmint/.htpasswd

Įveskite savo vartotojo vardą ir slaptažodį. Mano atveju tai atrodo taip:

tecmint:1xV2Rdw7Q6MK.

Išsaugokite failą paspausdami "Esc" ir ":wq".

3 veiksmas: atnaujinkite „Nginx“ konfigūraciją

4. Dabar atidarykite ir redaguokite Nginx konfigūracijos failą, susietą su svetaine, kurioje dirbate. Mūsų atveju naudosime numatytąjį failą adresu:

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]

Mūsų pavyzdyje slaptažodžiu apsaugome nginx katalogo šaknį, kuri yra: /usr/share/nginx/html.

5. Dabar po keliu, kurį norite apsaugoti, pridėkite šias dvi eilutes.

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

Dabar išsaugokite failą ir iš naujo paleiskite „Nginx“ naudodami:

systemctl restart nginx
OR
service nginx restart

6. Dabar nukopijuokite/įklijuokite tą IP adresą į savo naršyklę ir jūsų turėtų būti paprašyta įvesti slaptažodį:

Viskas! Dabar jūsų pagrindinis interneto katalogas yra apsaugotas. Jei norite pašalinti svetainės apsaugą slaptažodžiu, tiesiog pašalinkite dvi eilutes, kurias ką tik pridėjote prie .htpasswd failo, arba naudokite šią komandą, kad pašalintumėte pridėtą vartotoją iš slaptažodžio failo.

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