Kaip sukonfigūruoti pagrindinį HTTP autentifikavimą „Nginx“.
Pagrindinis HTTP autentifikavimas yra saugos mechanizmas, skirtas apriboti prieigą prie jūsų svetainės/programos ar kai kurių jos dalių, nustatant paprastą vartotojo vardo/slaptažodžio autentifikavimą. Jis gali būti naudojamas iš esmės apsaugoti visą HTTP serverį, atskirus serverio blokus (virtualiuosius „Apache“ pagrindinius kompiuterius) arba vietos blokus.
Taip pat skaitykite: kaip nustatyti vardais ir IP pagrįstas virtualias prieglobas (serverio blokus) naudojant NGINX
Kaip rodo pavadinimas, tai nėra saugus metodas, kuriuo galima pasikliauti; turėtumėte jį naudoti kartu su kitomis patikimesnėmis apsaugos priemonėmis. Pavyzdžiui, jei jūsų žiniatinklio programa veikia naudojant HTTP, vartotojo kredencialai perduodami paprastu tekstu, todėl turėtumėte apsvarstyti galimybę įjungti HTTPS.
Šio vadovo tikslas – padėti jums pridėti nedidelį, bet naudingą saugos sluoksnį, kad būtų apsaugotas privatus/privilegijuotas žiniatinklio programų (pvz., administratoriaus pusės, bet tuo neapsiribojant) turinys. Taip pat galite jį naudoti norėdami užkirsti kelią prieigai prie svetainės ar programos, kuri vis dar tik kuriama.
Reikalavimai
- Įdiekite LEMP Stack į CentOS/RHEL 7
- Įdiekite LEMP Stack Ubuntu/Debian
Sukurkite HTTP autentifikavimo vartotojo failą
Pirmiausia turėtumėte sukurti failą, kuriame bus saugomos naudotojo vardas:slaptažodis
poros. Šiam failui sukurti naudosime htpasswd iš Apache HTTP serverio.
Pirmiausia patikrinkite, ar apache2-utils arba httpd-tools, paketai, kurie teikia htpasswd paslaugų programą, yra įdiegti jūsų sistemoje, kitu atveju paleiskite atitinkamą komandą jūsų platinimas, kad jį įdiegtumėte:
yum install httpd-tools [RHEL/CentOS]
sudo apt install apache2-utils [Debian/Ubuntu]
Tada paleiskite toliau pateiktą komandą htpasswd, kad sukurtumėte slaptažodžio failą su pirmuoju vartotoju. Parinktis -c
naudojama nurodyti passwd failą, kai paspausite [Enter], būsite paprašyti įvesti vartotojo slaptažodį.
htpasswd -c /etc/nginx/conf.d/.htpasswd developer
Pridėkite antrą vartotoją ir čia nenaudokite parinkties -c
.
htpasswd /etc/nginx/conf.d/.htpasswd admin
Dabar, kai slaptažodžio failas yra paruoštas, konfigūruokite žiniatinklio serverio dalis, prie kurių norite apriboti prieigą. Norėdami peržiūrėti slaptažodžių failo turinį (įskaitant vartotojo vardus ir užšifruotus slaptažodžius), naudokite toliau pateiktą komandą cat.
cat /etc/nginx/conf.d/.htpasswd
Sukonfigūruokite „Nginx“ HTTP autentifikavimą
Kaip minėjome anksčiau, galite apriboti prieigą prie savo žiniatinklio serverio, vienos svetainės (naudodami jos serverio bloką) arba vietos nurodymą. Tam gali būti naudojamos dvi naudingos direktyvos.
- auth_basic – įjungia vartotojo vardo ir slaptažodžio patvirtinimą naudojant „HTTP pagrindinio autentifikavimo“ protokolą.
- auth_basic_user_file – nurodo slaptažodžio failą.
Apsaugokite Nginx virtualiuosius kompiuterius slaptažodžiu
Norėdami įdiegti pagrindinį viso žiniatinklio serverio autentifikavimą, kuris taikomas visiems serverio blokams, atidarykite failą /etc/nginx/nginx.conf ir pridėkite toliau pateiktas eilutes http kontekste:
http{
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
……...
}
Apsaugokite „Nginx“ svetainę arba domeną slaptažodžiu
Norėdami įgalinti pagrindinį konkretaus domeno ar padomenio autentifikavimą, atidarykite jo konfigūracijos failą /etc/nginx/conf.d/ arba /etc/nginx/conf/sites-available. (atsižvelgiant į tai, kaip įdiegėte Nginx), tada pridėkite toliau pateiktą konfigūraciją serverio bloke arba kontekste:
server {
listen 80;
server_name example.com;
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
location / {
……..
}
……...
}
Slaptažodžio apsaugos žiniatinklio katalogas Nginx
Taip pat galite įjungti pagrindinį autentifikavimą pagal vietos nurodymą. Toliau pateiktame pavyzdyje visų vartotojų, bandančių pasiekti /admin
vietos bloką, bus paprašyta autentifikuoti.
server {
listen 80;
server_name example.com www.example.com;
location / {
……..
}
location /admin/ {
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
}
location /public/{
auth_basic off; #turns off basic http authentication off for this block
}
……..
}
Jei sukonfigūravote pagrindinį HTTP autentifikavimą, visų vartotojų, kurie bando pasiekti jūsų žiniatinklio serverį arba padomenį arba konkrečią svetainės dalį (atsižvelgiant į tai, kur tai įdiegėte), bus paprašyta įvesti naudotojo vardą ir slaptažodį, kaip parodyta toliau esančioje ekrano kopijoje. .
Jei naudotojo autentifikavimas nepavyko, bus rodoma klaida „Reikia 401 prieigos teisės“, kaip parodyta toliau.
Galite rasti daugiau informacijos apie prieigos apribojimą naudojant pagrindinį HTTP autentifikavimą.
Taip pat galbūt norėsite perskaityti šiuos naudingus su Nginx HTTP serveriu susijusius vadovus.
- Kaip slaptažodžiu apsaugoti žiniatinklio katalogus Nginx
- Galutinis vadovas, kaip apsaugoti, sustiprinti ir pagerinti Nginx veikimą
- HTTPS nustatymas naudojant „Nginx“ SSL sertifikatą
Šiame vadove parodėme, kaip Nginx HTTP žiniatinklio serveryje įdiegti pagrindinį HTTP autentifikavimą. Jei norite užduoti klausimų, naudokite toliau pateiktą atsiliepimų formą.