CentOS 7/8-ൽ സ്ക്വിഡ് ഉപയോഗിച്ച് ഒരു HTTP പ്രോക്സി എങ്ങനെ സൃഷ്ടിക്കാം


വെബ് പ്രോക്സികൾ വളരെക്കാലമായി നിലവിലുണ്ട്, ലോകമെമ്പാടുമുള്ള ദശലക്ഷക്കണക്കിന് ഉപയോക്താക്കൾ ഇത് ഉപയോഗിക്കുന്നു. അവർക്ക് വിപുലമായ ഉദ്ദേശ്യങ്ങളുണ്ട്, ഏറ്റവും ജനപ്രിയമായത് ഓൺലൈൻ അജ്ഞാതതയാണ്, എന്നാൽ നിങ്ങൾക്ക് വെബ് പ്രോക്സികൾ പ്രയോജനപ്പെടുത്താൻ മറ്റ് മാർഗങ്ങളുണ്ട്. ചില ആശയങ്ങൾ ഇതാ:

  • ഓൺലൈൻ അജ്ഞാതത്വം
  • ഓൺലൈൻ സുരക്ഷ മെച്ചപ്പെടുത്തുക
  • ലോഡിംഗ് സമയം മെച്ചപ്പെടുത്തുക
  • ക്ഷുദ്രകരമായ ട്രാഫിക് തടയുക
  • നിങ്ങളുടെ ഓൺലൈൻ പ്രവർത്തനം ലോഗ് ചെയ്യുക
  • പ്രാദേശിക നിയന്ത്രണങ്ങൾ മറികടക്കാൻ
  • ചില സന്ദർഭങ്ങളിൽ ബാൻഡ്uവിഡ്ത്ത് ഉപയോഗം കുറയ്ക്കാം

ക്ലയന്റിനും മറ്റ് സെർവറുകൾക്കുമിടയിൽ ഒരു ഇടനിലക്കാരനായി ഉപയോഗിക്കുന്ന ഒരു കമ്പ്യൂട്ടറാണ് പ്രോക്സി സെർവർ, അതിൽ നിന്ന് ക്ലയന്റ് ഉറവിടങ്ങൾ അഭ്യർത്ഥിച്ചേക്കാം. ഒരു ക്ലയന്റ് ഓൺലൈൻ അഭ്യർത്ഥനകൾ നടത്തുമ്പോൾ (ഉദാഹരണത്തിന് ഒരു വെബ് പേജ് തുറക്കാൻ ആഗ്രഹിക്കുന്നു), അവൻ ആദ്യം പ്രോക്സി സെർവറിലേക്ക് കണക്റ്റുചെയ്യുന്നതാണ് ഇതിന്റെ ലളിതമായ ഉദാഹരണം.

പ്രോക്uസി സെർവർ അതിന്റെ ലോക്കൽ ഡിസ്uക് കാഷെ പരിശോധിക്കുന്നു, അവിടെ ഡാറ്റ കണ്ടെത്താൻ കഴിയുമെങ്കിൽ, അത് ക്ലയന്റിലേക്ക് ഡാറ്റ തിരികെ നൽകും, കാഷെ ചെയ്uതിട്ടില്ലെങ്കിൽ, അത് ക്ലയന്റിനായി പ്രോക്uസി ഐപി വിലാസം ഉപയോഗിച്ച് അഭ്യർത്ഥന നടത്തും (ഇതിൽ നിന്ന് വ്യത്യസ്തമാണ് ക്ലയന്റുകൾ) തുടർന്ന് ഡാറ്റ ക്ലയന്റിലേക്ക് തിരികെ നൽകുക. പ്രോക്uസി സെർവർ പുതിയ ഡാറ്റ കാഷെ ചെയ്യാൻ ശ്രമിക്കും, ഭാവിയിൽ ഇതേ സെർവറിലേക്ക് നടത്തുന്ന അഭ്യർത്ഥനകൾക്കായി അത് ഉപയോഗിക്കുകയും ചെയ്യും.

എന്റെ വിപുലമായ ഓർഗനൈസേഷനുകൾ ഉപയോഗിച്ച ഒരു വെബ് പ്രോക്സിയാണ് സ്ക്വിഡ്. ഇത് പലപ്പോഴും കാഷിംഗ് പ്രോക്സി ആയി ഉപയോഗിക്കുകയും പ്രതികരണ സമയം മെച്ചപ്പെടുത്തുകയും ബാൻഡ്uവിഡ്ത്ത് ഉപയോഗം കുറയ്ക്കുകയും ചെയ്യുന്നു.

ഈ ലേഖനത്തിന്റെ ഉദ്ദേശ്യത്തിനായി, ഞാൻ ഒരു Linode CentOS 7 VPS-ൽ Squid ഇൻസ്റ്റാൾ ചെയ്യുകയും ഒരു HTTP പ്രോക്സി സെർവറായി ഉപയോഗിക്കുകയും ചെയ്യും.

CentOS 7/8-ൽ സ്ക്വിഡ് എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം

ഞങ്ങൾ ആരംഭിക്കുന്നതിന് മുമ്പ്, സ്uക്വിഡിന് മിനിമം ആവശ്യകതകളൊന്നുമില്ലെന്ന് നിങ്ങൾ അറിഞ്ഞിരിക്കണം, എന്നാൽ പ്രോക്uസി സെർവർ വഴി ഇന്റർനെറ്റ് ബ്രൗസ് ചെയ്യുന്ന ക്ലയന്റുകളെ ആശ്രയിച്ച് റാം ഉപയോഗത്തിന്റെ അളവ് വ്യത്യാസപ്പെടാം.

സ്ക്വിഡ് അടിസ്ഥാന ശേഖരത്തിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്, അതിനാൽ ഇൻസ്റ്റാളേഷൻ ലളിതവും ലളിതവുമാണ്. എന്നിരുന്നാലും, ഇത് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുമുമ്പ്, നിങ്ങളുടെ പാക്കേജുകൾ റൺ ചെയ്യുന്നതിലൂടെ കാലികമാണെന്ന് ഉറപ്പാക്കുക.

# yum -y update

സ്ക്വിഡ് ഇൻസ്റ്റാൾ ചെയ്തുകൊണ്ട് മുന്നോട്ട് പോകുക, താഴെ പറയുന്ന കമാൻഡുകൾ ഉപയോഗിച്ച് സിസ്റ്റം സ്റ്റാർട്ടപ്പിൽ ഇത് ആരംഭിച്ച് പ്രവർത്തനക്ഷമമാക്കുക.

# yum -y install squid
# systemctl start squid
# systemctl  enable squid

ഈ സമയത്ത്, നിങ്ങളുടെ സ്uക്വിഡ് വെബ് പ്രോക്uസി ഇതിനകം തന്നെ പ്രവർത്തിക്കുന്നുണ്ടാകണം, കൂടാതെ നിങ്ങൾക്ക് സേവനത്തിന്റെ നില പരിശോധിക്കാൻ കഴിയും.

# systemctl status squid
 squid.service - Squid caching proxy
   Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-09-20 10:07:23 UTC; 5min ago
 Main PID: 2005 (squid)
   CGroup: /system.slice/squid.service
           ├─2005 /usr/sbin/squid -f /etc/squid/squid.conf
           ├─2007 (squid-1) -f /etc/squid/squid.conf
           └─2008 (logfile-daemon) /var/log/squid/access.log

Sep 20 10:07:23 tecmint systemd[1]: Starting Squid caching proxy...
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: will start 1 kids
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: (squid-1) process 2007 started
Sep 20 10:07:23 tecmint systemd[1]: Started Squid caching proxy.

നിങ്ങൾ അറിഞ്ഞിരിക്കേണ്ട ചില പ്രധാനപ്പെട്ട ഫയൽ ലൊക്കേഷനുകൾ ഇതാ:

  • കണവ കോൺഫിഗറേഷൻ ഫയൽ: /etc/squid/squid.conf
  • കണവ ആക്uസസ് ലോഗ്: /var/log/squid/access.log
  • കണവ കാഷെ ലോഗ്: /var/log/squid/cache.log

ഒരു മിനിമം squid.conf കോൺഫിഗറേഷൻ ഫയൽ (അതിൽ അഭിപ്രായങ്ങളില്ലാതെ) ഇതുപോലെ കാണപ്പെടുന്നു:

acl localnet src 10.0.0.0/8	# RFC1918 possible internal network
acl localnet src 172.16.0.0/12	# RFC1918 possible internal network
acl localnet src 192.168.0.0/16	# RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern .		0	20%	4320

Squid ഒരു HTTP പ്രോക്സി ആയി ക്രമീകരിക്കുന്നു

പ്രാമാണീകരണത്തിനായി ക്ലയന്റ് ഐപി വിലാസം മാത്രം ഉപയോഗിച്ച് ഒരു എച്ച്ടിടിപി പ്രോക്സിയായി കണവയെ എങ്ങനെ കോൺഫിഗർ ചെയ്യാം എന്ന് ഞങ്ങൾ ഇവിടെ കാണിച്ചുതരാം.

നിങ്ങളുടെ പുതിയ പ്രോക്സി സെർവർ വഴി വെബിലേക്ക് പ്രവേശിക്കാൻ IP വിലാസത്തെ അനുവദിക്കണമെങ്കിൽ, കോൺഫിഗറേഷൻ ഫയലിൽ നിങ്ങൾ ഒരു പുതിയ ACL (ആക്സസ് കൺട്രോൾ ലിസ്റ്റ്) ലൈൻ ചേർക്കേണ്ടതുണ്ട്.

# vim /etc/squid/squid.conf

നിങ്ങൾ ചേർക്കേണ്ട വരി ഇതാണ്:

acl localnet src XX.XX.XX.XX

നിങ്ങൾ ചേർക്കാൻ ആഗ്രഹിക്കുന്ന യഥാർത്ഥ ക്ലയന്റ് ഐപി വിലാസം XX.XX.XX.XX ആണ്. ACL-കൾ നിർവചിച്ചിരിക്കുന്ന ഫയലിന്റെ തുടക്കത്തിൽ ലൈൻ ചേർക്കണം. ഈ IP വിലാസം ആരാണ് ഉപയോഗിക്കുന്നതെന്ന് വിവരിക്കുന്ന ഒരു അഭിപ്രായം ACL-ന് അടുത്തായി ചേർക്കുന്നത് നല്ല രീതിയാണ്.

നിങ്ങളുടെ പ്രാദേശിക നെറ്റ്uവർക്കിന് പുറത്താണ് സ്uക്വിഡ് സ്ഥിതി ചെയ്യുന്നതെങ്കിൽ, നിങ്ങൾ ക്ലയന്റിന്റെ പൊതു ഐപി വിലാസം ചേർക്കണം എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്.

നിങ്ങൾ Squid പുനരാരംഭിക്കേണ്ടതുണ്ട്, അതിനാൽ പുതിയ മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരും.

# systemctl  restart squid

കോൺഫിഗറേഷൻ ഫയലിൽ നിങ്ങൾ കണ്ടിരിക്കാം, കണക്റ്റുചെയ്യുന്നതിന് ചില പോർട്ടുകൾ മാത്രമേ അനുവദിക്കൂ. കോൺഫിഗറേഷൻ ഫയൽ എഡിറ്റ് ചെയ്യുന്നതിലൂടെ നിങ്ങൾക്ക് കൂടുതൽ ചേർക്കാൻ കഴിയും.

acl Safe_ports port XXX

നിങ്ങൾ ലോഡ് ചെയ്യാൻ ആഗ്രഹിക്കുന്ന യഥാർത്ഥ പോർട്ട് XXX ആണ്. തുറമുഖം എന്തിനുവേണ്ടിയാണ് ഉപയോഗിക്കാൻ പോകുന്നതെന്ന് വിശദീകരിക്കുന്നതിന് അടുത്തായി ഒരു അഭിപ്രായം ഇടുന്നത് നല്ലതാണ്.

മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരുന്നതിന്, നിങ്ങൾ ഒരിക്കൽ കൂടി കണവ പുനരാരംഭിക്കേണ്ടതുണ്ട്.

# systemctl  restart squid

പ്രോക്സി ഉപയോഗിക്കുന്നതിന് മുമ്പ് നിങ്ങളുടെ ഉപയോക്താക്കൾ ആധികാരികമാക്കണമെന്ന് നിങ്ങൾ മിക്കവാറും ആഗ്രഹിച്ചേക്കാം. അതിനായി, നിങ്ങൾക്ക് അടിസ്ഥാന HTTP പ്രാമാണീകരണം പ്രവർത്തനക്ഷമമാക്കാം. ഇത് ക്രമീകരിക്കാൻ എളുപ്പവും വേഗവുമാണ്.

ആദ്യം, നിങ്ങൾക്ക് httpd-tools ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്.

# yum -y install httpd-tools

ഇനി നമുക്ക് ഒരു ഫയൽ സൃഷ്ടിക്കാം, അത് പിന്നീട് പ്രാമാണീകരണത്തിനായി ഉപയോക്തൃനാമം സംഭരിക്കും. \squid എന്ന ഉപയോക്താവിനൊപ്പം സ്ക്വിഡ് പ്രവർത്തിക്കുന്നു, അതിനാൽ ഫയൽ ആ ഉപയോക്താവിന്റെ ഉടമസ്ഥതയിലായിരിക്കണം.

# touch /etc/squid/passwd
# chown squid: /etc/squid/passwd

ഇപ്പോൾ ഞങ്ങൾ \പ്രോക്സിക്ലയന്റ് എന്ന പേരിൽ ഒരു പുതിയ ഉപയോക്താവിനെ സൃഷ്ടിക്കുകയും അതിന്റെ പാസ്uവേഡ് സജ്ജീകരിക്കുകയും ചെയ്യും.

# htpasswd /etc/squid/passwd proxyclient

New password:
Re-type new password:
Adding password for user proxyclient

ഇപ്പോൾ ആധികാരികത ക്രമീകരിക്കുന്നതിന് കോൺഫിഗറേഷൻ ഫയൽ തുറക്കുക.

# vim /etc/squid/squid.conf

പോർട്ടുകൾക്ക് ശേഷം ACL-കൾ ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

പുതിയ മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരുന്നതിന് ഫയൽ സംരക്ഷിച്ച് സ്ക്വിഡ് പുനരാരംഭിക്കുക:

# systemctl restart squid

അവസാനമായി, അനാവശ്യ വെബ്uസൈറ്റുകൾ തടയാൻ ഞങ്ങളെ സഹായിക്കുന്ന അവസാനത്തെ ഒരു ACL ഞങ്ങൾ സൃഷ്ടിക്കും. ആദ്യം, ബ്ലാക്ക്uലിസ്റ്റ് ചെയ്ത സൈറ്റുകൾ സംഭരിക്കുന്ന ഫയൽ സൃഷ്ടിക്കുക.

# touch /etc/squid/blacklisted_sites.acl

നിങ്ങൾ തടയാൻ ആഗ്രഹിക്കുന്ന ചില ഡൊമെയ്uനുകൾ ചേർക്കാൻ കഴിയും. ഉദാഹരണത്തിന്:

.badsite1.com
.badsite2.com

www.badsite1, subsite.badsite1.com മുതലായ സൈറ്റുകളിലേക്കുള്ള എല്ലാ റഫറൻസുകളും തടയാൻ പ്രൊസീഡിംഗ് ഡോട്ട് സ്ക്വിഡിനോട് പറയുന്നു.

ഇപ്പോൾ സ്ക്വിഡിന്റെ കോൺഫിഗറേഷൻ ഫയൽ തുറക്കുക.

# vim /etc/squid/squid.conf

പോർട്ടുകൾക്ക് ശേഷം ACL-കൾ ഇനിപ്പറയുന്ന രണ്ട് വരികൾ ചേർക്കുക:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

ഇപ്പോൾ ഫയൽ സംരക്ഷിച്ച് സ്ക്വിഡ് പുനരാരംഭിക്കുക:

# systemctl restart squid

എല്ലാം ശരിയായി ക്രമീകരിച്ചുകഴിഞ്ഞാൽ, ഇപ്പോൾ നിങ്ങളുടെ സ്ക്വിഡ് HTTP പ്രോക്സി ഉപയോഗിക്കുന്നതിന് നിങ്ങളുടെ പ്രാദേശിക ക്ലയന്റ് ബ്രൗസറോ ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന്റെ നെറ്റ്uവർക്ക് ക്രമീകരണമോ കോൺഫിഗർ ചെയ്യാം.

ഈ ട്യൂട്ടോറിയലിൽ, നിങ്ങൾ സ്വന്തമായി ഒരു Squid HTTP പ്രോക്സി സെർവർ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും സുരക്ഷിതമാക്കാമെന്നും കോൺഫിഗർ ചെയ്യാമെന്നും പഠിച്ചു. നിങ്ങൾക്ക് ഇപ്പോൾ ലഭിച്ച വിവരങ്ങൾ ഉപയോഗിച്ച്, സ്uക്വിഡിലൂടെ ഇൻകമിംഗ്, ഔട്ട്uഗോയിംഗ് ട്രാഫിക്കിനായി നിങ്ങൾക്ക് ഇപ്പോൾ ചില അടിസ്ഥാന ഫിൽട്ടറിംഗ് ചേർക്കാൻ കഴിയും.

നിങ്ങൾക്ക് അധിക മൈൽ പോകാൻ താൽപ്പര്യമുണ്ടെങ്കിൽ, ശ്രദ്ധ വ്യതിചലിക്കുന്നത് തടയാൻ ജോലി സമയങ്ങളിൽ ചില വെബ്uസൈറ്റുകൾ ബ്ലോക്ക് ചെയ്യാൻ നിങ്ങൾക്ക് കണവ കോൺഫിഗർ ചെയ്യാവുന്നതാണ്. നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങളോ അഭിപ്രായങ്ങളോ ഉണ്ടെങ്കിൽ, ദയവായി അവ ചുവടെയുള്ള അഭിപ്രായ വിഭാഗത്തിൽ പോസ്റ്റുചെയ്യുക.