Kā konfigurēt pamata HTTP autentifikāciju programmā Nginx


Pamata HTTP autentifikācija ir drošības mehānisms, kas ierobežo piekļuvi jūsu vietnei/lietojumprogrammai vai dažām tās daļām, iestatot vienkāršu lietotājvārda/paroles autentifikāciju. To var galvenokārt izmantot, lai aizsargātu visu HTTP serveri, atsevišķus serveru blokus (virtuālos resursdatorus Apache) vai atrašanās vietas blokus.

Kā norāda nosaukums, paļauties tā nav droša metode; jums tas jālieto kopā ar citiem uzticamākiem drošības pasākumiem. Piemēram, ja jūsu tīmekļa lietojumprogramma darbojas ar HTTP, lietotāja akreditācijas dati tiek nosūtīti vienkāršā tekstā, tāpēc jums vajadzētu apsvērt HTTPS iespējošanu.

Šīs rokasgrāmatas mērķis ir palīdzēt jums pievienot nelielu, bet noderīgu drošības slāni, lai aizsargātu privātu/priviliģētu saturu jūsu tīmekļa lietojumprogrammās (piemēram, bet neaprobežojoties ar administratora pusēm). Varat arī to izmantot, lai neļautu piekļūt vietnei vai lietojumprogrammai, kas joprojām ir izstrādes fāzē.

  1. CentOS/RHEL 7 instalējiet LEMP skursteni
  2. Instalējiet LEMP Stack operētājsistēmā Ubuntu/Debian

Izveidojiet HTTP autentifikācijas lietotāja failu

Vispirms jums jāizveido fails, kurā tiks glabāti pāri username: password . Lai izveidotu šo failu, mēs izmantosim utilītu htpasswd no Apache HTTP servera.

Vispirms pārbaudiet, vai apache2-utils vai httpd-tools, paketes, kas nodrošina htpasswd lietderību, ir instalētas jūsu sistēmā, pretējā gadījumā palaidiet atbilstošo izplatīšanas komandu, lai to instalētu:

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

Pēc tam palaidiet zemāk esošo komandu htpasswd, lai izveidotu paroles failu ar pirmo lietotāju. Opcija -c tiek izmantota, lai norādītu passwd failu. Kad nospiedīsit [Enter], jums tiks lūgts ievadīt lietotāja paroli.

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

Pievienojiet otru lietotāju un šeit neizmantojiet opciju -c .

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

Tagad, kad paroles fails ir gatavs, konfigurējiet tās tīmekļa servera daļas, kurām vēlaties ierobežot piekļuvi. Lai skatītu paroles faila saturu (kas ietver lietotājvārdus un šifrētas paroles), izmantojiet zemāk esošo kaķu komandu.

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

Konfigurējiet HTTP autentifikāciju Nginx

Kā mēs jau iepriekš minējām, jūs varat ierobežot piekļuvi savam tīmekļa serverim, vienai vietnei (izmantojot tās serveru bloku) vai atrašanās vietas direktīvai. Lai to panāktu, var izmantot divas noderīgas direktīvas.

  • auth_basic - ieslēdz lietotājvārda un paroles validāciju, izmantojot protokolu “HTTP pamata autentifikācija”.
  • auth_basic_user_file - norāda paroles failu.

Lai ieviestu pamata autentifikāciju visam tīmekļa serverim, kas attiecas uz visiem serveru blokiem, atveriet failu /etc/nginx/nginx.conf un pievienojiet zemāk redzamās rindas http kontekstā:

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

Lai iespējotu pamata autentifikāciju konkrētam domēnam vai apakšdomēnam, atveriet tā konfigurācijas failu sadaļā /etc/nginx/conf.d/ vai/etc/nginx/conf/sites-available (atkarībā no tā, kā instalējāt Nginx), pēc tam pievienojiet konfigurācija zemāk servera blokā vai kontekstā:

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

Atrašanās vietas direktīvā varat arī iespējot pamata autentifikāciju. Tālāk sniegtajā piemērā visiem lietotājiem, kuri mēģina piekļūt atrašanās vietas blokam /admin , tiks lūgts autentificēties.

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

Ja esat konfigurējis pamata HTTP autentifikāciju, visiem lietotājiem, kuri mēģina piekļūt jūsu tīmekļa serverim vai apakšdomēnam vai noteiktai vietnes daļai (atkarībā no tā, kur to ieviesāt), tiks lūgts ievadīt lietotājvārdu un paroli, kā parādīts zemāk esošajā ekrānuzņēmumā. .

Neveiksmīgas lietotāja autentifikācijas gadījumā tiks parādīta kļūda “Nepieciešama autorizācija 401”, kā parādīts zemāk.

Plašāku informāciju varat atrast, ierobežojot piekļuvi ar pamata HTTP autentifikāciju.

Varat arī izlasīt šīs noderīgās ar Nginx HTTP serveri saistītās rokasgrāmatas.

  1. Kā Nginx aizsargāt tīmekļa direktorijus ar paroli
  2. galvenais ceļvedis Nginx drošai, cietinātai un veiktspējas uzlabošanai
  3. HTTPS iestatīšana, šifrējot Nginx SSL sertifikātu

Šajā rokasgrāmatā mēs parādījām, kā ieviest pamata HTTP autentifikāciju Nginx HTTP tīmekļa serverī. Lai uzdotu jautājumus, izmantojiet zemāk esošo atsauksmju veidlapu.