CentOS 7 पर स्क्वीड का उपयोग करके एक HTTP प्रॉक्सी कैसे बनाएं


वेब परदे के पीछे कुछ समय के लिए किया गया है और दुनिया भर के लाखों उपयोगकर्ताओं द्वारा इस्तेमाल किया गया है। उनके पास उद्देश्यों की एक विस्तृत श्रृंखला है, सबसे लोकप्रिय ऑनलाइन गुमनामी है, लेकिन ऐसे अन्य तरीके हैं जिनसे आप वेब प्रॉक्सी का लाभ उठा सकते हैं। यहाँ कुछ विचार हैं:

  • Online anonymity
  • Improve online security
  • Improve loading times
  • Block malicious traffic
  • Log your online activity
  • To circumvent regional restrictions
  • In some cases can reduce bandwidth usage

प्रॉक्सी सर्वर एक कंप्यूटर है जो क्लाइंट और अन्य सर्वर के बीच मध्यस्थ के रूप में उपयोग किया जाता है जिसमें से क्लाइंट संसाधनों का अनुरोध कर सकता है। इसका एक सरल उदाहरण है जब कोई ग्राहक ऑनलाइन अनुरोध करता है (उदाहरण के लिए एक वेब पेज खोलना चाहता है), वह पहले प्रॉक्सी सर्वर से जोड़ता है।

प्रॉक्सी सर्वर तब अपने स्थानीय डिस्क कैश की जांच करता है और यदि डेटा वहां पाया जा सकता है, तो यह ग्राहक को डेटा लौटाएगा, यदि कैश नहीं किया गया है, तो यह प्रॉक्सी आईपी पते का उपयोग करके क्लाइंट की ओर से अनुरोध करेगा (अलग से) क्लाइंट) और फिर क्लाइंट को डेटा लौटाते हैं। प्रॉक्सी सर्वर नए डेटा को कैश करने की कोशिश करेगा और भविष्य में उसी सर्वर से किए गए अनुरोधों के लिए इसका उपयोग करेगा।

स्क्वीड एक वेब प्रॉक्सी है जिसका उपयोग मेरे व्यापक संगठनों ने किया है। यह अक्सर प्रॉक्सी को कैशिंग करने और प्रतिक्रिया समय में सुधार और बैंडविड्थ उपयोग को कम करने के रूप में उपयोग किया जाता है।

इस लेख के प्रयोजन के लिए, मैं एक लाइनोड सेंटोस 7 वीपीएस पर स्क्विड स्थापित करूंगा और इसे HTTP प्रॉक्सी सर्वर के रूप में उपयोग करूंगा।

CentOS 7 पर स्क्वीड कैसे स्थापित करें

शुरू करने से पहले, आपको पता होना चाहिए कि स्क्विड की कोई न्यूनतम आवश्यकता नहीं है, लेकिन प्रॉक्सी सर्वर के माध्यम से इंटरनेट ब्राउज़ करने वाले ग्राहकों के आधार पर रैम उपयोग की मात्रा भिन्न हो सकती है।

स्क्विड बेस रिपॉजिटरी में शामिल है और इस तरह स्थापना सरल और सीधा है। हालांकि, इसे स्थापित करने से पहले, सुनिश्चित करें कि आपके पैकेज चल रहे हैं।

# yum -y update

स्क्वीड स्थापित करके आगे बढ़ें, सिस्टम कमांड पर निम्न कमांड का उपयोग करके इसे शुरू करें और सक्षम करें।

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

इस बिंदु पर आपका स्क्वीड वेब प्रॉक्सी पहले से ही चालू होना चाहिए और आप सेवा की स्थिति को सत्यापित कर सकते हैं।

# 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.

यहां कुछ महत्वपूर्ण फ़ाइल स्थान दिए गए हैं जिनके बारे में आपको पता होना चाहिए:

  • Squid configuration file: /etc/squid/squid.conf
  • Squid Access log: /var/log/squid/access.log
  • Squid Cache 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

एक HTTP प्रॉक्सी के रूप में स्क्वीड कॉन्फ़िगर करना

यहां, हम आपको दिखाएंगे कि प्रमाणीकरण के लिए केवल क्लाइंट आईपी पते का उपयोग करके HTTP प्रॉक्सी के रूप में स्क्वीड को कैसे कॉन्फ़िगर किया जाए।

यदि आप अपने नए प्रॉक्सी सर्वर के माध्यम से वेब तक पहुंचने के लिए आईपी पते की अनुमति देना चाहते हैं, तो आपको कॉन्फ़िगरेशन फ़ाइल में नई acl ( पहुंच नियंत्रण सूची ) पंक्ति को जोड़ना होगा।

# vim /etc/squid/squid.conf

आपको जो लाइन जोड़ना चाहिए वह है:

acl localnet src XX.XX.XX.XX

जहां XX.XX.XX.XX वास्तविक ग्राहक आईपी पता है जिसे आप जोड़ना चाहते हैं। लाइन को उस फ़ाइल की शुरुआत में जोड़ा जाना चाहिए जहां एसीएल परिभाषित हैं। एसीएल के बगल में एक टिप्पणी जोड़ना एक अच्छा अभ्यास है जो यह वर्णन करेगा कि कौन इस आईपी पते का उपयोग करता है।

यह ध्यान रखना महत्वपूर्ण है कि अगर स्क्विड आपके स्थानीय नेटवर्क के बाहर स्थित है, तो आपको क्लाइंट का सार्वजनिक आईपी पता जोड़ना चाहिए।

आपको स्क्वीड को पुनः आरंभ करने की आवश्यकता होगी ताकि नए परिवर्तन प्रभावी हो सकें।

# systemctl  restart squid

जैसा कि आपने कॉन्फ़िगरेशन फ़ाइल में देखा होगा, कनेक्ट करने के लिए केवल कुछ पोर्ट की अनुमति है। आप कॉन्फ़िगरेशन फ़ाइल को संपादित करके अधिक जोड़ सकते हैं।

acl Safe_ports port XXX

जहां XXX वह वास्तविक पोर्ट है जिसे आप लोड करना चाहते हैं। फिर से यह एक अच्छा विचार है कि इसके बाद एक टिप्पणी छोड़ दें कि यह वर्णन करेगा कि पोर्ट का उपयोग किसके लिए किया जा रहा है।

परिवर्तनों को प्रभावी करने के लिए, आपको एक बार फिर स्क्वीड को पुनरारंभ करना होगा।

# systemctl  restart squid

p

सबसे पहले आपको httpd-tools इंस्टॉल करना होगा।

# yum -y install httpd-tools

अब एक फाइल बनाते हैं जो बाद में प्रमाणीकरण के लिए उपयोगकर्ता नाम संग्रहित करेगी। स्क्वीड उपयोगकर्ता के साथ चलता है "स्क्वीड" इसलिए फ़ाइल उस उपयोगकर्ता के स्वामित्व में होनी चाहिए।

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

अब हम एक नया उपयोगकर्ता बनाएँगे जिसे "समीपवर्ती" कहा जाएगा और अपना पासवर्ड सेट किया जाएगा।

# 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

अंत में हम एक आखिरी एसीएल बनाएंगे जो अवांछित वेबसाइटों को ब्लॉक करने में हमारी मदद करेगा। पहले वह फाइल बनाएं जो ब्लैक लिस्टेड साइट्स को स्टोर करेगी।

# touch /etc/squid/blacklisted_sites.acl

आप कुछ ऐसे डोमेन जोड़ सकते हैं जिन्हें आप ब्लॉक करना चाहते हैं। उदाहरण के लिए:

.badsite1.com
.badsite2.com

प्रोसेडिंग डॉट स्क्वीड को उन सभी रेफ़रेन्स को उन साइट्स पर ब्लॉक करने के लिए कहता है जिनमें www.badsite1 , subsite.badsite1.com आदि शामिल हैं।

अब स्क्वीड की कॉन्फ़िगरेशन फ़ाइल खोलें।

# vim /etc/squid/squid.conf

बंदरगाहों के बाद एसीएल निम्नलिखित दो लाइनें जोड़ते हैं:

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

अब फाइल को सेव करें और स्क्वीड को रीस्टार्ट करें:

# systemctl restart squid

हर बार सही तरीके से कॉन्फ़िगर किए जाने के बाद, अब आप अपने स्क्वीड HTTP प्रॉक्सी का उपयोग करने के लिए अपने स्थानीय क्लाइंट ब्राउज़र या ऑपरेटिंग सिस्टम की नेटवर्क सेटिंग्स को कॉन्फ़िगर कर सकते हैं।

इस ट्यूटोरियल में आपने सीखा कि अपने दम पर एक स्क्वीड एचटीटीपी प्रॉक्सी सर्वर को कैसे इंस्टॉल, सुरक्षित और कॉन्फ़िगर किया जाए। आपको अभी मिली जानकारी के साथ, आप स्क्वीड के माध्यम से आने वाले और बाहर जाने वाले ट्रैफ़िक के लिए कुछ बुनियादी फ़िल्टरिंग जोड़ सकते हैं।

यदि आप अतिरिक्त मील जाने की इच्छा रखते हैं, तो आप विचलित होने से बचाने के लिए काम के घंटों के दौरान कुछ वेबसाइटों को ब्लॉक करने के लिए स्क्वीड को भी कॉन्फ़िगर कर सकते हैं। यदि आपके कोई प्रश्न या टिप्पणी है, तो कृपया उन्हें नीचे टिप्पणी अनुभाग में पोस्ट करें।