Nginx-ൽ അടിസ്ഥാന HTTP പ്രാമാണീകരണം എങ്ങനെ ക്രമീകരിക്കാം


ലളിതമായ ഉപയോക്തൃനാമം/പാസ്uവേഡ് പ്രാമാണീകരണം സജ്ജീകരിച്ച് നിങ്ങളുടെ വെബ്uസൈറ്റ്/ആപ്ലിക്കേഷനിലേക്കോ അതിന്റെ ചില ഭാഗങ്ങളിലേക്കോ ഉള്ള ആക്uസസ് നിയന്ത്രിക്കുന്നതിനുള്ള ഒരു സുരക്ഷാ സംവിധാനമാണ് അടിസ്ഥാന HTTP പ്രാമാണീകരണം. മുഴുവൻ എച്ച്ടിടിപി സെർവർ, വ്യക്തിഗത സെർവർ ബ്ലോക്കുകൾ (അപ്പാച്ചെയിലെ വെർച്വൽ ഹോസ്റ്റുകൾ) അല്ലെങ്കിൽ ലൊക്കേഷൻ ബ്ലോക്കുകൾ എന്നിവ സംരക്ഷിക്കുന്നതിന് ഇത് പ്രധാനമായും ഉപയോഗിക്കാനാകും.

പേര് സൂചിപ്പിക്കുന്നത് പോലെ, ആശ്രയിക്കുന്നത് സുരക്ഷിതമായ ഒരു രീതിയല്ല; കൂടുതൽ വിശ്വസനീയമായ മറ്റ് സുരക്ഷാ നടപടികളുമായി ചേർന്ന് നിങ്ങൾ ഇത് ഉപയോഗിക്കണം. ഉദാഹരണത്തിന്, നിങ്ങളുടെ വെബ് ആപ്ലിക്കേഷൻ എച്ച്ടിടിപിയിൽ പ്രവർത്തിക്കുന്നുണ്ടെങ്കിൽ, ഉപയോക്തൃ ക്രെഡൻഷ്യലുകൾ പ്ലെയിൻ ടെക്സ്റ്റിലാണ് കൈമാറുന്നത്, അതിനാൽ നിങ്ങൾ HTTPS പ്രവർത്തനക്ഷമമാക്കുന്നത് പരിഗണിക്കണം.

നിങ്ങളുടെ വെബ് ആപ്ലിക്കേഷനുകളിൽ സ്വകാര്യ/പ്രിവിലേജ്ഡ് ഉള്ളടക്കം പരിരക്ഷിക്കുന്നതിന് ചെറുതും എന്നാൽ ഉപയോഗപ്രദവുമായ ഒരു സുരക്ഷാ പാളി ചേർക്കാൻ നിങ്ങളെ സഹായിക്കുക എന്നതാണ് ഈ ഗൈഡിന്റെ ഉദ്ദേശം (ഉദാഹരണത്തിന്, എന്നാൽ അഡ്മിനിസ്ട്രേറ്റർ വശങ്ങളിൽ മാത്രം പരിമിതപ്പെടുത്തരുത്). ഇപ്പോഴും വികസന ഘട്ടത്തിലുള്ള ഒരു വെബ്സൈറ്റിലേക്കോ ആപ്ലിക്കേഷനിലേക്കോ ഉള്ള ആക്സസ് തടയാനും നിങ്ങൾക്ക് ഇത് ഉപയോഗിക്കാം.

  1. CentOS/RHEL 7-ൽ LEMP സ്റ്റാക്ക് ഇൻസ്റ്റാൾ ചെയ്യുക
  2. ഉബുണ്ടു/ഡെബിയനിൽ LEMP സ്റ്റാക്ക് ഇൻസ്റ്റാൾ ചെയ്യുക

HTTP പ്രാമാണീകരണ ഉപയോക്തൃ ഫയൽ സൃഷ്ടിക്കുക

username:password ജോഡികൾ സംഭരിക്കുന്ന ഒരു ഫയൽ സൃഷ്ടിച്ചുകൊണ്ട് നിങ്ങൾ ആരംഭിക്കണം. ഈ ഫയൽ സൃഷ്ടിക്കാൻ ഞങ്ങൾ Apache HTTP സെർവറിൽ നിന്നുള്ള htpasswd യൂട്ടിലിറ്റി ഉപയോഗിക്കും.

apache2-utils അല്ലെങ്കിൽ httpd-tools, htpasswd യൂട്ടിലിറ്റി നൽകുന്ന പാക്കേജുകൾ നിങ്ങളുടെ സിസ്റ്റത്തിൽ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടോയെന്ന് ആദ്യം പരിശോധിക്കുക, അല്ലാത്തപക്ഷം നിങ്ങളുടെ വിതരണത്തിന് അത് ഇൻസ്റ്റാൾ ചെയ്യാൻ ഉചിതമായ കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

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

അടുത്തതായി, ആദ്യ ഉപയോക്താവിനൊപ്പം പാസ്uവേഡ് ഫയൽ സൃഷ്ടിക്കുന്നതിന് താഴെയുള്ള htpasswd കമാൻഡ് പ്രവർത്തിപ്പിക്കുക. പാസ്uവേഡ് ഫയൽ വ്യക്തമാക്കാൻ -c ഓപ്ഷൻ ഉപയോഗിക്കുന്നു, ഒരിക്കൽ നിങ്ങൾ [Enter] അമർത്തിയാൽ, യൂസർ പാസ്uവേഡ് നൽകാൻ നിങ്ങളോട് ആവശ്യപ്പെടും.

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

രണ്ടാമത്തെ ഉപയോക്താവിനെ ചേർക്കുക, ഇവിടെ -c ഓപ്ഷൻ ഉപയോഗിക്കരുത്.

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

ഇപ്പോൾ നിങ്ങൾക്ക് പാസ്uവേഡ് ഫയൽ തയ്യാറാണ്, നിങ്ങളുടെ വെബ് സെർവറിന്റെ ആക്uസസ്സ് നിയന്ത്രിക്കാൻ ആഗ്രഹിക്കുന്ന ഭാഗങ്ങൾ കോൺഫിഗർ ചെയ്യാൻ തുടരുക. പാസ്uവേഡ് ഫയൽ ഉള്ളടക്കം കാണുന്നതിന് (ഉപയോക്തൃനാമങ്ങളും എൻക്രിപ്റ്റ് ചെയ്ത പാസ്uവേഡുകളും ഉൾപ്പെടുന്നു), ചുവടെയുള്ള cat കമാൻഡ് ഉപയോഗിക്കുക.

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

Nginx-നായി HTTP പ്രാമാണീകരണം കോൺഫിഗർ ചെയ്യുക

ഞങ്ങൾ നേരത്തെ സൂചിപ്പിച്ചതുപോലെ, നിങ്ങളുടെ വെബ്uസെർവറിലേക്കോ ഒരൊറ്റ വെബ്uസൈറ്റിലേക്കോ (അതിന്റെ സെർവർ ബ്ലോക്ക് ഉപയോഗിച്ച്) അല്ലെങ്കിൽ ഒരു ലൊക്കേഷൻ നിർദ്ദേശത്തിലേക്കോ നിങ്ങൾക്ക് ആക്uസസ് നിയന്ത്രിക്കാനാകും. ഇത് നേടുന്നതിന് രണ്ട് ഉപയോഗപ്രദമായ നിർദ്ദേശങ്ങൾ ഉപയോഗിക്കാം.

  • auth_basic – \HTTP അടിസ്ഥാന പ്രാമാണീകരണം പ്രോട്ടോക്കോൾ ഉപയോഗിച്ച് ഉപയോക്തൃനാമത്തിന്റെയും പാസ്uവേഡിന്റെയും മൂല്യനിർണ്ണയം ഓൺ ചെയ്യുന്നു.
  • auth_basic_user_file – പാസ്uവേഡ് ഫയൽ വ്യക്തമാക്കുന്നു.

എല്ലാ സെർവർ ബ്ലോക്കുകൾക്കും ബാധകമായ, മുഴുവൻ വെബ് സെർവറിനുമുള്ള അടിസ്ഥാന പ്രാമാണീകരണം നടപ്പിലാക്കാൻ, /etc/nginx/nginx.conf ഫയൽ തുറന്ന് http സന്ദർഭത്തിൽ താഴെയുള്ള വരികൾ ചേർക്കുക:

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

ഒരു പ്രത്യേക ഡൊമെയ്uനിനോ ഉപ-ഡൊമെയ്uനിനോ അടിസ്ഥാന പ്രാമാണീകരണം പ്രവർത്തനക്ഷമമാക്കുന്നതിന്, അതിന്റെ കോൺഫിഗറേഷൻ ഫയൽ /etc/nginx/conf.d/ അല്ലെങ്കിൽ /etc/nginx/conf/sites-available (നിങ്ങൾ Nginx ഇൻസ്റ്റാൾ ചെയ്തതെങ്ങനെ എന്നതിനെ ആശ്രയിച്ച്) എന്നതിന് കീഴിൽ തുറക്കുക, തുടർന്ന് ചേർക്കുക സെർവർ ബ്ലോക്കിലോ സന്ദർഭത്തിലോ താഴെയുള്ള കോൺഫിഗറേഷൻ:

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

ഒരു ലൊക്കേഷൻ നിർദ്ദേശത്തിനുള്ളിൽ നിങ്ങൾക്ക് അടിസ്ഥാന പ്രാമാണീകരണം പ്രാപ്തമാക്കാനും കഴിയും. ചുവടെയുള്ള ഉദാഹരണത്തിൽ, /admin ലൊക്കേഷൻ ബ്ലോക്ക് ആക്സസ് ചെയ്യാൻ ശ്രമിക്കുന്ന എല്ലാ ഉപയോക്താക്കളോടും പ്രാമാണീകരിക്കാൻ ആവശ്യപ്പെടും.

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

നിങ്ങൾ അടിസ്ഥാന HTTP പ്രാമാണീകരണം കോൺഫിഗർ ചെയ്uതിട്ടുണ്ടെങ്കിൽ, നിങ്ങളുടെ വെബ്uസെർവറോ സബ്-ഡൊമെയ്uനോ സൈറ്റിന്റെ പ്രത്യേക ഭാഗമോ ആക്uസസ് ചെയ്യാൻ ശ്രമിക്കുന്ന എല്ലാ ഉപയോക്താക്കളോടും (നിങ്ങൾ അത് നടപ്പിലാക്കിയ സ്ഥലത്തെ ആശ്രയിച്ച്), ചുവടെയുള്ള സ്uക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു ഉപയോക്തൃനാമവും പാസ്uവേഡും ആവശ്യപ്പെടും. .

ഉപയോക്തൃ പ്രാമാണീകരണം പരാജയപ്പെട്ടാൽ, താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ \401 അംഗീകാരം ആവശ്യമാണ് എന്ന പിശക് ദൃശ്യമാകും.

അടിസ്ഥാന HTTP പ്രാമാണീകരണം ഉപയോഗിച്ച് ആക്uസസ് നിയന്ത്രിക്കുന്നതിൽ നിങ്ങൾക്ക് കൂടുതൽ വിവരങ്ങൾ കണ്ടെത്താനാകും.

ഇനിപ്പറയുന്ന ഉപയോഗപ്രദമായ Nginx HTTP സെർവറുമായി ബന്ധപ്പെട്ട ഗൈഡുകൾ വായിക്കാനും നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം.

  1. Nginx-ൽ വെബ് ഡയറക്uടറികൾ എങ്ങനെ പാസ്uവേഡ് പരിരക്ഷിക്കാം
  2. Nginx-ന്റെ പ്രകടനം സുരക്ഷിതമാക്കാനും കഠിനമാക്കാനും മെച്ചപ്പെടുത്താനുമുള്ള ആത്യന്തിക ഗൈഡ്
  3. Nginx-നുള്ള SSL സർട്ടിഫിക്കറ്റ് നമുക്ക് എൻക്രിപ്റ്റ് ചെയ്യാം ഉപയോഗിച്ച് HTTPS സജ്ജീകരിക്കുന്നു

ഈ ഗൈഡിൽ, Nginx HTTP വെബ് സെർവറിൽ അടിസ്ഥാന HTTP പ്രാമാണീകരണം എങ്ങനെ നടപ്പിലാക്കാമെന്ന് ഞങ്ങൾ കാണിച്ചുതന്നു. എന്തെങ്കിലും ചോദ്യങ്ങൾ ചോദിക്കാൻ, ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം ഉപയോഗിക്കുക.