Kuinka määrittää HTTP-perustodennus Nginxissä
HTTP-perustodennus on suojausmekanismi, jolla rajoitetaan pääsyä verkkosivustollesi/sovellukseesi tai joihinkin sen osiin määrittämällä yksinkertainen käyttäjätunnus/salasana todennus. Sitä voidaan käyttää ensisijaisesti suojaamaan koko HTTP-palvelinta, yksittäisiä palvelinlohkoja (Apachen virtuaalisia isäntiä) tai sijaintilohkoja.
Lue myös: Nimi- ja IP-pohjaisten virtuaalipalvelinten (palvelinlohkojen) määrittäminen NGINX:n avulla
Kuten nimestä voi päätellä, se ei ole turvallinen tapa luottaa; sinun tulee käyttää sitä yhdessä muiden luotettavampien turvatoimien kanssa. Jos esimerkiksi verkkosovelluksesi toimii HTTP:llä, käyttäjätunnukset lähetetään pelkkänä tekstinä, joten kannattaa harkita HTTPS:n ottamista käyttöön.
Tämän oppaan tarkoituksena on auttaa sinua lisäämään pieni mutta hyödyllinen suojauskerros yksityisen tai etuoikeutetun sisällön suojaamiseksi verkkosovelluksissasi (kuten, mutta ei rajoittuen järjestelmänvalvojan puoleen). Voit myös estää pääsyn verkkosivustolle tai sovellukseen, joka on vielä kehitysvaiheessa.
Vaatimukset
- Asenna LEMP Stack CentOS/RHEL 7:ään
- Asenna LEMP Stack Ubuntuun/Debianiin
Luo HTTP-todennuskäyttäjätiedosto
Aloita luomalla tiedosto, joka tallentaa käyttäjänimi:salasana
-parit. Käytämme tämän tiedoston luomiseen Apache HTTP Serverin htpasswd-apuohjelmaa.
Tarkista ensin, että apache2-utils tai httpd-tools, paketit, jotka tarjoavat htpasswd-apuohjelman, on asennettu järjestelmääsi. Muussa tapauksessa suorita asianmukainen komento jakelusi asentaaksesi sen:
yum install httpd-tools [RHEL/CentOS]
sudo apt install apache2-utils [Debian/Ubuntu]
Suorita seuraavaksi alla oleva htpasswd-komento luodaksesi salasanatiedoston ensimmäisen käyttäjän kanssa. -c
-vaihtoehtoa käytetään passwd-tiedoston määrittämiseen. Kun painat [Enter], sinua pyydetään antamaan käyttäjän salasana.
htpasswd -c /etc/nginx/conf.d/.htpasswd developer
Lisää toinen käyttäjä äläkä käytä -c
-vaihtoehtoa tässä.
htpasswd /etc/nginx/conf.d/.htpasswd admin
Nyt kun salasanatiedosto on valmis, määritä verkkopalvelimesi osat, joihin haluat rajoittaa pääsyä. Voit tarkastella salasanatiedoston sisältöä (joka sisältää käyttäjätunnukset ja salatut salasanat) käyttämällä alla olevaa cat-komentoa.
cat /etc/nginx/conf.d/.htpasswd
Määritä HTTP-todennus Nginxille
Kuten aiemmin mainitsimme, voit rajoittaa pääsyä verkkopalvelimellesi, yksittäiselle web-sivustolle (käyttäen sen palvelinlohkoa) tai sijaintiohjeeseen. Tämän saavuttamiseksi voidaan käyttää kahta hyödyllistä direktiiviä.
- auth_basic – ottaa käyttöön käyttäjänimen ja salasanan vahvistuksen käyttämällä HTTP Basic Authentication -protokollaa.
- auth_basic_user_file – määrittää salasanatiedoston.
Salasanasuojaa Nginx Virtual Hosts
Ota käyttöön koko verkkopalvelimen perustodennus, joka koskee kaikkia palvelinlohkoja, avaamalla /etc/nginx/nginx.conf-tiedoston ja lisäämällä alla olevat rivit http-kontekstiin:
http{
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
……...
}
Salasanasuojaa Nginx-verkkosivusto tai verkkotunnus
Ota perustodennus käyttöön tietylle verkkotunnukselle tai aliverkkotunnukselle avaamalla sen määritystiedosto kohdassa /etc/nginx/conf.d/ tai /etc/nginx/conf/sites-available. (riippuen siitä, kuinka asensit Nginxin), lisää sitten alla olevat asetukset palvelinlohkoon tai kontekstiin:
server {
listen 80;
server_name example.com;
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
location / {
……..
}
……...
}
Salasanasuojattu verkkohakemisto Nginxissä
Voit myös ottaa perustodennuksen käyttöön sijaintidirektiivissä. Alla olevassa esimerkissä kaikkia käyttäjiä, jotka yrittävät päästä /admin
-sijaintilohkoon, pyydetään todentamaan.
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
}
……..
}
Jos olet määrittänyt HTTP-perustodennuksen, kaikilta käyttäjiltä, jotka yrittävät käyttää verkkopalvelintasi tai aliverkkotunnusta tai tiettyä sivuston osaa (riippuen siitä, missä otit sen käyttöön), kysytään käyttäjätunnusta ja salasanaa alla olevan kuvakaappauksen mukaisesti. .
Jos käyttäjän todennus epäonnistuu, 401-valtuutus vaaditaan -virhe näytetään alla olevan kuvan mukaisesti.
Saat lisätietoja kohdasta Pääsyn rajoittaminen HTTP-perustodennuksen avulla.
Saatat myös haluta lukea nämä seuraavat hyödylliset Nginx HTTP -palvelimeen liittyvät oppaat.
- Kuinka suojata salasanalla verkkohakemistoja Nginxissä
- Lopullinen opas Nginxin turvaamiseen, vahvistamiseen ja suorituskyvyn parantamiseen
- HTTPS:n määrittäminen Let's Encrypt SSL-sertifikaatilla Nginxille
Tässä oppaassa näytimme, kuinka HTTP-perustodennus voidaan ottaa käyttöön Nginx HTTP -verkkopalvelimessa. Jos haluat esittää kysymyksiä, käytä alla olevaa palautelomaketta.