Kako konfigurirati osnovno overjanje HTTP v Nginxu


Osnovno preverjanje pristnosti HTTP je varnostni mehanizem za omejitev dostopa do vašega spletnega mesta/aplikacije ali nekaterih njenih delov z nastavitvijo preprostega preverjanja pristnosti uporabniškega imena/gesla. Uporablja se lahko predvsem za zaščito celotnega strežnika HTTP, posameznih strežniških blokov (navidezni gostitelji v Apacheju) ali lokacijskih blokov.

Kot že ime pove, se ni mogoče zanašati na varen način; uporabite ga skupaj z drugimi bolj zanesljivimi varnostnimi ukrepi. Na primer, če se vaša spletna aplikacija izvaja prek protokola HTTP, se uporabniške poverilnice pošiljajo v navadnem besedilu, zato razmislite o omogočanju protokola HTTPS.

Namen tega priročnika je, da vam pomaga dodati majhen, a uporaben sloj varnosti za zaščito zasebnih/privilegiranih vsebin v vaših spletnih aplikacijah (na primer, vendar ne omejeno na skrbniške strani). Z njim lahko preprečite tudi dostop do spletnega mesta ali aplikacije, ki je še v fazi razvoja.

  1. Namestite sklad LEMP v CentOS/RHEL 7
  2. Namestite sklad LEMP v Ubuntu/Debian

Ustvarite uporabniško datoteko za preverjanje pristnosti HTTP

Začeti morate z ustvarjanjem datoteke, v kateri bodo shranjeni pari username: password . Za ustvarjanje te datoteke bomo uporabili pripomoček htpasswd iz strežnika HTTP Apache.

Najprej preverite, ali so apache2-utils ali httpd-tools, paketi, ki ponujajo pripomoček htpasswd, nameščeni v vašem sistemu, sicer za namestitev distribucije zaženite ustrezen ukaz:

# yum install httpd-tools		[RHEL/CentOS]
$ sudo apt install apache2-utils	[Debian/Ubuntu]

Nato zaženite spodnji ukaz htpasswd, da ustvarite datoteko gesla s prvim uporabnikom. Možnost -c se uporablja za določitev datoteke passwd. Ko pritisnete [Enter], boste morali vnesti uporabniško geslo.

# htpasswd -c /etc/nginx/conf.d/.htpasswd developer

Dodajte drugega uporabnika in tukaj ne uporabljajte možnosti -c .

# htpasswd /etc/nginx/conf.d/.htpasswd admin

Zdaj, ko imate datoteko z geslom pripravljeno, nadaljujte z konfiguracijo delov spletnega strežnika, do katerih želite omejiti dostop. Če si želite ogledati vsebino datoteke z geslom (ki vključuje uporabniška imena in šifrirana gesla), uporabite spodnji ukaz cat.

# cat /etc/nginx/conf.d/.htpasswd 

Konfigurirajte preverjanje pristnosti HTTP za Nginx

Kot smo že omenili, lahko omejite dostop do svojega spletnega strežnika, enega spletnega mesta (z uporabo strežniškega bloka) ali direktive o lokaciji. Za dosego tega lahko uporabimo dve koristni direktivi.

  • auth_basic - vklopi preverjanje uporabniškega imena in gesla s protokolom\"Osnovno preverjanje pristnosti HTTP".
  • auth_basic_user_file - podaja datoteko z geslom.

Če želite izvesti osnovno preverjanje pristnosti za celoten spletni strežnik, ki velja za vse strežniške bloke, odprite datoteko /etc/nginx/nginx.conf in dodajte spodnje vrstice v kontekst http:

http{
	auth_basic           "Restricted Access!";
    	auth_basic_user_file /etc/nginx/conf.d/.htpasswd; 
	……...
}

Če želite omogočiti osnovno preverjanje pristnosti za določeno domeno ali poddomeno, odprite njeno konfiguracijsko datoteko pod /etc/nginx/conf.d/ ali/etc/nginx/conf/sites-available (odvisno od tega, kako ste namestili Nginx), nato dodajte konfiguracija spodaj v strežniškem bloku ali kontekstu:

server {
	listen 			80;
	server_name    	  example.com;
	auth_basic           	"Restricted Access!";
    	auth_basic_user_file 	/etc/nginx/conf.d/.htpasswd; 
	location /  {
		……..
	}
	……...
}

V direktivi o lokaciji lahko omogočite tudi osnovno preverjanje pristnosti. V spodnjem primeru bodo vsi uporabniki, ki poskušajo dostopati do lokacijskega bloka /admin , pozvani k preverjanju pristnosti.

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
	}
	……..
}

Če ste konfigurirali osnovno preverjanje pristnosti HTTP, bodo vsi uporabniki, ki poskušajo dostopati do vašega spletnega strežnika ali poddomene ali določenega dela spletnega mesta (odvisno od tega, kje ste ga implementirali), zahtevali uporabniško ime in geslo, kot je prikazano na spodnjem posnetku zaslona. .

V primeru neuspešnega preverjanja pristnosti uporabnika se prikaže napaka\"401 Zahtevano pooblastilo", kot je prikazano spodaj.

Več informacij lahko najdete pri omejevanju dostopa z osnovno overitvijo HTTP.

Morda boste želeli prebrati tudi te uporabne vodnike, povezane s strežnikom Nginx HTTP.

  1. Kako zaščititi spletne imenike z geslom v Nginxu
  2. Končni vodnik za varovanje, utrjevanje in izboljšanje delovanja Nginxa
  3. Nastavitev HTTPS s šifriranjem potrdila SSL za Nginx

V tem priročniku smo pokazali, kako izvajati osnovno preverjanje pristnosti HTTP v spletnem strežniku HTTP Nginx. Če želite zastaviti kakršno koli vprašanje, uporabite spodnji obrazec za povratne informacije.