ലിനക്സിൽ സ്ക്വിഡ് കാഷെ, സിസ്uകോ റൂട്ടർ എന്നിവ ഉപയോഗിച്ച് വെബ് ട്രാഫിക് എങ്ങനെ നിയന്ത്രിക്കാം


ഒരു നെറ്റ്uവർക്കിലെ ഒരു പ്രധാന ജോലി, സ്റ്റാഫ് വെബ് സർഫിംഗ് ട്രാഫിക്കുകൾ നിയന്ത്രിക്കുകയും നിയന്ത്രിക്കുകയും ചെയ്യുക എന്നതാണ്, ഈ പ്രശ്നം കൈകാര്യം ചെയ്യാൻ കഴിയുന്ന നിരവധി പരിഹാരങ്ങളുണ്ട്, ഏറ്റവും മികച്ച പരിഹാരങ്ങളിലൊന്ന് ഒരു ലിനക്സ് മെഷീനിൽ സ്ക്വിഡ് കാഷെ ഉപയോഗിക്കുന്നു എന്നതാണ്. കണവയ്ക്ക് ഒരു നെറ്റ്uവർക്കിൽ നിന്ന് മറ്റൊരു നെറ്റ്uവർക്കിലേക്കുള്ള വെബ് ട്രാഫിക്കുകൾ പരിശോധിക്കാനും പരിമിതപ്പെടുത്താനും കാഷെ ചെയ്യാനും കഴിയും, ഉദാഹരണത്തിന് ഒരു LAN-ൽ നിന്ന് ഇന്റർനെറ്റിലേക്ക്.

ക്ലയന്റിന്റെ വെബ് അഭ്യർത്ഥനകൾ സ്ക്വിഡ് മെഷീനിലേക്ക് റീഡയറക്uടുചെയ്യുന്നതിന് ചില വഴികളുണ്ട്, ഈ ലേഖനത്തിൽ WCCP പ്രോട്ടോക്കോൾ ഉപയോഗിച്ച് ഒരു CISCO റൂട്ടറിൽ നിന്ന് ഒരു സ്uക്വിഡ് കാഷെ മെഷീനിലേക്ക് വെബ് ട്രാഫിക് റീഡയറക്uട് ചെയ്യുന്നത് എങ്ങനെയെന്ന് ഞങ്ങൾ കാണിച്ചുതരാം.

ചുവടെയുള്ള ചിത്രം ഒരു അടിസ്ഥാന സാഹചര്യത്തിന്റെ ഒരു ഉദാഹരണമാണ്.

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

ഈ സാഹചര്യത്തിന്റെ കോൺഫിഗറേഷൻ ഞങ്ങൾ രണ്ട് പ്രധാന ഘട്ടങ്ങളായി അവലോകനം ചെയ്യുന്നു, ആദ്യം നമ്മൾ squid ഉം Linux ഉം ഇൻസ്റ്റാൾ ചെയ്യുകയും കോൺഫിഗർ ചെയ്യുകയും വേണം, തുടർന്ന് WCCP പ്രോട്ടോക്കോൾ ഉപയോഗിച്ച് വെബ് ട്രാഫിക് പാക്കറ്റുകൾ സ്ക്വിഡിലേക്ക് റീഡയറക്uടുചെയ്യുന്നതിന് റൂട്ടർ കോൺഫിഗർ ചെയ്യുക.

ഈ സാഹചര്യത്തിൽ ഞാൻ എന്റെ ലിനക്സ് സെർവറായി CENTOS 6.5 ഉം റൂട്ടർ സിസ്റ്റമായി Cisco 2691 ഉം ഉപയോഗിക്കുന്നു.

Operating System: CENTOS 6.5
Application: Squid
Router: Cisco 2691

ഘട്ടം 1: സ്ക്വിഡ് കാഷെ ഇൻസ്റ്റാൾ ചെയ്യുന്നു

CENTOS-ന്റെ ഡിഫോൾട്ട് റിപ്പോസിറ്ററിയിൽ Squid ലഭ്യമാണ്, ഞങ്ങൾ ആദ്യം അത് മനോഹരമായ yum കമാൻഡ് ഉപയോഗിച്ച് ഇൻസ്റ്റാൾ ചെയ്യുകയും തുടർന്ന് അവരുടെ സേവനങ്ങൾ ആരംഭിക്കുകയും ഒടുവിൽ squid സേവനത്തിന്റെ യാന്ത്രിക ആരംഭം സജ്ജമാക്കുകയും ചെയ്യുന്നു.

# yum -y install squid
# service squid start
# chkconfig squid on

ഘട്ടം 2: സ്ക്വിഡ് കാഷെ തയ്യാറാക്കുന്നു

ഇപ്പോൾ നമ്മൾ സെന്റോസ് ഓപ്പറേഷൻ സിസ്റ്റത്തിന്റെ ചില ഡിഫോൾട്ട് സ്വഭാവങ്ങൾ മാറ്റണം, നമുക്ക് പാക്കറ്റ് ഫോർവേഡിംഗ് പ്രവർത്തനക്ഷമമാക്കുകയും റിവേഴ്സ് പാത്ത് ഫിൽട്ടർ (ആർപിഎഫ്) പ്രവർത്തനരഹിതമാക്കുകയും വേണം, സെന്റോസിനെ സുതാര്യമായ ഫോർവേഡറായി (ഒരു റൂട്ടർ പോലെ) പ്രവർത്തിക്കാൻ അനുവദിക്കുന്നതിന് ഞങ്ങൾ പാക്കറ്റ് ഫോർവേഡിംഗ് പ്രവർത്തനക്ഷമമാക്കുന്നു.

ഞാൻ കൂടുതൽ വിശദമായി വിശദീകരിക്കാം, ട്രാഫിക്കുകൾ സെന്റോസിൽ എത്തുമ്പോൾ അതിന് അവയുടെ ഉറവിടവും ലക്ഷ്യസ്ഥാന വിലാസവും ഉണ്ട്, ഉദാഹരണത്തിന് ഒരു ക്ലയന്റ് അവന്റെ/അവളുടെ ബ്രൗസറിൽ www.example.com എന്ന് നൽകുമ്പോൾ ഒരു http അഭ്യർത്ഥന പാക്കറ്റ് സൃഷ്ടിക്കുകയും അതിന് ക്ലയന്റ് മെഷീന്റെ ഉറവിട IP വിലാസം ഉണ്ടായിരിക്കുകയും ചെയ്യും. (192.168.1.20 പോലെ) കൂടാതെ example.com സെർവറിന്റെ ലക്ഷ്യസ്ഥാന ഐപി വിലാസം (2.2.2.2 പോലെ).

അതിനാൽ, സെന്റോസ് വഴി പാക്കറ്റ് ലഭിക്കുമ്പോൾ, അത് തെറ്റായ പാക്കറ്റായി കണ്ടെത്തുന്നു, കാരണം സെന്റോസ് ഐപി വിലാസം പാക്കറ്റിന്റെ ലക്ഷ്യസ്ഥാന വിലാസമല്ല, സുരക്ഷാ കാരണങ്ങളാൽ സെന്റോസ് പാക്കറ്റ് ഉപേക്ഷിക്കുന്നു, പക്ഷേ കണവയിൽ നിന്ന് സുതാര്യമായ മോഡിൽ പ്രവർത്തിക്കാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു. പാക്കറ്റ് ഫോർവേഡിംഗ് പോഷൻ പ്രവർത്തനക്ഷമമാക്കി ഞങ്ങൾ ഈ സാഹചര്യം സെന്റോസിനോട് പറയുന്നു.

അടുത്തതായി നമ്മൾ റിവേഴ്സ് പാത്ത് ഫിൽട്ടറിംഗ് അപ്രാപ്തമാക്കണം, അത് സെന്റോസ് സ്വീകരിക്കുന്ന പാക്കറ്റുകളെ സ്ക്വിഡ് മെഷീൻ അല്ലെങ്കിൽ സ്ക്വിഡ് മെഷീന്റെ അതേ സബ്നെറ്റിൽ ഐപി വിലാസം ഇല്ലാത്ത പാക്കറ്റുകൾ സ്വീകരിക്കാൻ അനുവദിക്കുക.

# nano /etc/sysctl.conf
net.ipv4.ip_forward = 1 #set to 1 for enable the packet forwarding feature
net.ipv4.conf.default.rp_filter = 0 # set to 0 for disable the reverse path filter behavior

അടുത്തതായി നമ്മൾ CENTOS മെഷീനിൽ ഒരു GRE ഇന്റർഫേസ് ഉണ്ടാക്കണം, എന്തിന് വേണ്ടി?? ഞാൻ കൂടുതൽ വിശദീകരിക്കാം, WCCP പ്രോട്ടോക്കോൾ ഒരു GRE ടണൽ വഴിയാണ് പ്രവർത്തിക്കുന്നത്, അതിനർത്ഥം റൂട്ടറും Squid ഉം തമ്മിലുള്ള ഭാഷ GRE ആണ്, അതിനാൽ സെന്റോസിന് ഡി-എൻക്യാപ്സുലേറ്റ് GRE പാക്കറ്റുകൾക്ക് GRE ഇന്റർഫേസ് ആവശ്യമാണ്.

\/etc/sysconfig/network-script/ifcfg-gre0 പാഥിൽ GRE ഇന്റർഫേസിനായുള്ള കോൺഫിഗറേഷൻ ഫയൽ ഞങ്ങൾ സൃഷ്ടിക്കണം.

ifcfg-gre0 കോൺഫിഗറേഷൻ ഫയലിൽ താഴെയുള്ള കോഡുകൾ നൽകുക.

DEVICE=gre0
BOOTPROTO=static
IPADDR=10.0.0.2         #unused ip address in your network
NETMASK=255.255.255.252
ONBOOT=yes
IPV6INIT=no

ഒരു ജിആർഇ ഇന്റർഫേസ് സൃഷ്ടിച്ച ശേഷം നമുക്ക് നെറ്റ്uവർക്ക് സേവനം പുനരാരംഭിക്കേണ്ടതുണ്ട്.

# service network restart

ഘട്ടം 3: സ്ക്വിഡ് കാഷെ കോൺഫിഗർ ചെയ്യുന്നു

റൂട്ടറിൽ നിന്ന് WCCP പാക്കറ്റുകൾ സ്വീകരിക്കുന്ന കണവയോട് നമുക്ക് പറയേണ്ടതുണ്ട്. /etc/squid/squid.conf ഫയലിൽ താഴെയുള്ള കോഡുകൾ നൽകുക.

http_port 3128 intercept                 # Define SQUID listening port
wccp2_router 192.168.1.254          #ip address of the router
wccp2_forwarding_method gre
wccp2_return_method gre
wccp2_service standard 0

കോൺഫിഗറേഷൻ ഫയൽ സംരക്ഷിച്ച് സ്ക്വിഡ് സേവനം പുനരാരംഭിക്കുക.

# service squid restart

കണവകൾ 3128 പോർട്ടിൽ പാക്കറ്റുകൾ കേൾക്കുന്നു, എന്നാൽ ഞങ്ങളുടെ പാക്കറ്റിന്റെ ലക്ഷ്യസ്ഥാന പോർട്ട് നമ്പർ 80 ആണ്, അതിനാൽ ഡെസ്റ്റിനേഷൻ പോർട്ട് 80-നെ 3128 ആക്കി മാറ്റുന്നതിന്, CENTOS സംയോജിത ഫയർവാളിൽ (iptable എന്ന് പേരിട്ടിരിക്കുന്ന) ഒരു NAT റൂൾ സൃഷ്ടിക്കേണ്ടതുണ്ട്.

# iptables -t nat -A PREROUTING -i gre0 -p tcp --dport 80 -j REDIRECT --to-port 3128
# iptables -t nat -A POSTROUTING -j MASQUERADE

ഘട്ടം 4: സിസ്കോ റൂട്ടർ കോൺഫിഗറേഷനുകൾ

ആദ്യം നമ്മൾ സിസ്uകോ റൂട്ടറിൽ WCCP പ്രവർത്തനക്ഷമമാക്കണം.

R1(config)# ip wccp version 2
Then we must use an ACL for introducing SQUID cache machine to router
R1(config)# ip access-list standard SQUID-MACHINE
R1(config-std-nacl)# permit host 192.168.1.10

അടുത്തതായി, WCCP പ്രോട്ടോക്കോൾ വഴി തിരിച്ചുവിടുന്നതിൽ നിന്ന് SQUID ട്രാഫിക്കുകൾ ഒഴികെയുള്ള രണ്ട് വ്യത്യസ്ത ഉദ്ദേശ്യങ്ങൾക്കായി ഞങ്ങൾ മറ്റൊരു ആക്സസ് ലിസ്റ്റ് നിർവചിക്കുന്നു (അല്ലെങ്കിൽ ഞങ്ങൾ ഒരു അനന്തമായ ലൂപ്പിലേക്ക് വീഴുന്നു!!) രണ്ടാമത് WCCP, SQUID എന്നിവയിലൂടെ കടന്നുപോകാൻ ആഗ്രഹിക്കുന്ന LAN ട്രാഫിക്കുകൾ ഞങ്ങൾ നിർവ്വചിക്കുന്നു.

R1(config)#ip access-list LAN-TRAFFICS
R1(config-ext-nacl)#deny ip host 192.168.1.10 any                            #Prevent SQUID to get in loop
R1(config-ext-nacl)#permit tcp 192.168.1.0 0.0.0.255 any equal www           #define LAN Traffics

ഞങ്ങളുടെ ആക്സസ്-ലിസ്റ്റ് സൃഷ്ടിച്ച ശേഷം, റൂട്ടറിൽ WCCP പ്രോട്ടോക്കോൾ ക്രമീകരിക്കണം.

R1(config)# ip wccp web-cache redirect-list LAN-TRAFFIC group-list SQUID-MACHINE

എല്ലാ കാര്യങ്ങളും അവസാന ഘട്ടത്തിന് തയ്യാറാണ്, ഏത് ഇന്റർഫേസ്/ഇന്റർഫേസുകളിൽ അവരുടെ WCCP കോൺഫിഗറേഷൻ ഉപയോഗിച്ച് ട്രാഫിക് റീഡയറക്uട് ചെയ്യണമെന്ന് ഞങ്ങൾ റൂട്ടറിനോട് പറയണം.

R1(config)#interface fastEthernet 0/0
R1((config-if)# ip wccp web-cache redirect in

സംഗ്രഹം

മികച്ച ഗ്രാഹ്യത്തിനായി എല്ലാ കമാൻഡുകളും ടെക്uസ്uറ്റുകളും കുറച്ച് വരികളിൽ സംഗ്രഹിക്കേണ്ട സമയമാണിത്, സാഹചര്യമനുസരിച്ച് ഞങ്ങൾ സ്റ്റാഫുകളുടെ വെബ് സർഫിംഗ് പാക്കറ്റുകൾ (ടിസിപി പോർട്ട് 80-ൽ ഉള്ളത്) ROUTER-ൽ നിന്ന് (അത് ക്ലയന്റുകളുടെ സ്ഥിരസ്ഥിതി ഗേറ്റ്uവേ) കണവ കാഷെയിലേക്ക് റീഡയറക്uട് ചെയ്യുന്നു. WCCP പ്രോട്ടോക്കോൾ ഉപയോഗിക്കുന്ന യന്ത്രം.

ഈ പ്രക്രിയയെല്ലാം നിശബ്ദമായി സംഭവിച്ചു, കൂടാതെ ക്ലയന്റ് ഭാഗത്ത് അധിക കോൺഫിഗറേഷനൊന്നുമില്ല. അതിനാൽ നമുക്ക് LAN-ൽ വെബ് ട്രാഫിക്കുകൾ നിയന്ത്രിക്കാനും നയങ്ങൾ ക്രമീകരിക്കാനും കഴിയും. ഉദാഹരണത്തിന്, ഞങ്ങൾക്ക് പരിമിതമായ സമയത്തിനുള്ളിൽ വെബ് സർഫിംഗ് ആക്uസസ് നേടാനും പരമാവധി ഡൗൺലോഡ് വലുപ്പം പരിമിതപ്പെടുത്താനും ഞങ്ങളുടെ ഇഷ്uടാനുസൃത ബ്ലാക്ക്uലിസ്റ്റും വൈറ്റ്uലിസ്റ്റും നിർവചിക്കാനും ഇന്റർനെറ്റ് ആക്uറ്റിവിറ്റി ഉപയോഗത്തിന്റെ പൂർണ്ണ റിപ്പോർട്ടുകൾ സൃഷ്ടിക്കാനും മറ്റും കഴിയും.

ഈ സാഹചര്യത്തിലെ രസകരമായ ഒരു വസ്തുത, സ്ക്വിഡ് മെഷീൻ റൂട്ടർ താഴേക്ക് പോകുമ്പോൾ ഈ പ്രശ്നം കണ്ടെത്തി പാക്കറ്റുകൾ അതിലേക്ക് റീഡയറക്uട് ചെയ്യുന്നത് നിർത്തുക, അതിനാൽ നിങ്ങളുടെ നെറ്റ്uവർക്കിൽ പൂജ്യം പ്രവർത്തനരഹിതമായ സമയത്ത് നിങ്ങൾക്ക് ആസ്വദിക്കാനാകും.

ഈ ലേഖനവുമായി ബന്ധപ്പെട്ട് നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങളുണ്ടെങ്കിൽ, ചുവടെയുള്ള കമന്റ് ബോക്സിലൂടെ മറുപടി നൽകുക.