Giunsa Paghimo usa ka HTTP Proxy Gamit ang Squid sa CentOS 7/8


Ang mga proxy sa web dugay na nga naglungtad karon ug gigamit sa milyon-milyon nga mga tiggamit sa tibuuk kalibutan. Sila adunay usa ka halapad nga mga katuyoan, ang labing inila mao ang online nga dili mailhan, apan adunay uban nga mga paagi nga mahimo nimong mapahimuslan ang mga proxy sa web. Ania ang pipila ka mga ideya:

  • Online nga dili mailhan
  • Pagpauswag sa online nga seguridad
  • Pagpauswag sa mga oras sa pagkarga
  • Bagngan ang malisyosong trapiko
  • Pag-log sa imong online nga kalihokan
  • Aron likayan ang mga pagdili sa rehiyon
  • Sa pipila ka mga kaso makapakunhod sa paggamit sa bandwidth

Ang proxy server usa ka kompyuter nga gigamit isip tigpataliwala tali sa kliyente ug uban pang mga server diin ang kliyente mahimong mangayo ug mga kapanguhaan. Ang usa ka yano nga pananglitan niini mao ang kung ang usa ka kliyente naghimo sa online nga mga hangyo (pananglitan gusto nga magbukas sa usa ka web page), magkonektar una siya sa proxy server.

Gisusi dayon sa proxy server ang lokal nga cache sa disk niini ug kung makit-an ang datos didto, ibalik niini ang datos sa kliyente, kung dili ma-cache, himuon niini ang hangyo alang sa kliyente gamit ang proxy IP address (lahi sa mga kliyente) ug dayon ibalik ang datos sa kliyente. Ang proxy server mosulay sa pag-cache sa bag-ong datos ug gamiton kini alang sa umaabot nga mga hangyo nga gihimo sa samang server.

Ang squid usa ka web proxy nga migamit sa akong halapad nga mga organisasyon. Kanunay kini nga gigamit ingon usa ka proxy sa caching ug pagpaayo sa mga oras sa pagtubag ug pagkunhod sa paggamit sa bandwidth.

Alang sa katuyoan niini nga artikulo, akong i-install ang Squid sa usa ka Linode CentOS 7 VPS ug gamiton kini ingon usa ka HTTP proxy server.

Giunsa ang Pag-install sa Squid sa CentOS 7/8

Sa dili pa kami magsugod, kinahanglan nimong mahibal-an nga ang Squid, wala’y bisan unsang minimum nga kinahanglanon, apan ang kantidad sa paggamit sa RAM mahimong magkalainlain depende sa mga kliyente nga nag-browse sa internet pinaagi sa proxy server.

Ang nukos gilakip sa base repository ug busa ang pag-instalar yano ug prangka. Sa dili pa kini i-install, bisan pa, siguruha nga ang imong mga pakete labing bag-o pinaagi sa pagdagan.

# yum -y update

Ipadayon pinaagi sa pag-instalar sa squid, pagsugod ug pagpagana niini sa pagsugod sa sistema gamit ang mosunod nga mga sugo.

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

Niini nga punto, ang imong Squid web proxy kinahanglan nga nagdagan ug mahimo nimong mapamatud-an ang kahimtang sa serbisyo.

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

Ania ang pipila ka hinungdanon nga mga lokasyon sa file nga kinahanglan nimong mahibal-an:

  • Squid configuration file: /etc/squid/squid.conf
  • Logo sa Pag-access sa Squid: /var/log/squid/access.log
  • Logo sa Squid Cache: /var/log/squid/cache.log

Usa ka minimum nga squid.conf configuration file (walay mga komentaryo niini) ingon niini:

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

Pag-configure sa Squid ingon usa ka HTTP Proxy

Dinhi, ipakita namo kanimo kung unsaon pag-configure ang squid isip HTTP proxy gamit lamang ang IP address sa kliyente alang sa pag-authenticate.

Kung gusto nimo tugutan ang IP address nga maka-access sa web pinaagi sa imong bag-ong proxy server, kinahanglan nimo nga magdugang ug bag-ong linya sa ACL (access control list) sa configuration file.

# vim /etc/squid/squid.conf

Ang linya nga kinahanglan nimong idugang mao ang:

acl localnet src XX.XX.XX.XX

Diin ang XX.XX.XX.XX mao ang aktuwal nga IP address sa kliyente nga gusto nimong idugang. Ang linya kinahanglan idugang sa sinugdanan sa file diin ang mga ACL gihubit. Maayo nga praktis ang pagdugang og komento sunod sa ACL nga maghulagway kung kinsa ang naggamit niini nga IP address.

Importante nga hinumdoman nga kung ang Squid nahimutang sa gawas sa imong lokal nga network, kinahanglan nimo nga idugang ang publiko nga IP address sa kliyente.

Kinahanglan nimo nga i-restart ang Squid aron ang mga bag-ong pagbag-o mahimong epektibo.

# systemctl  restart squid

Sama sa imong nakita sa configuration file, pipila ra nga mga pantalan ang gitugotan sa pagkonektar. Makadugang ka pa pinaagi sa pag-edit sa configuration file.

acl Safe_ports port XXX

Diin ang XXX mao ang aktuwal nga pantalan nga gusto nimong ikarga. Usab maayo nga ideya nga magbilin usa ka komento sa tupad nga maghulagway kung unsa ang gamiton sa pantalan.

Aron ang mga pagbag-o mahimong epektibo, kinahanglan nimo nga i-restart ang squid sa makausa pa.

# systemctl  restart squid

Tingali gusto nimo nga ang imong mga tiggamit mag-authenticate sa dili pa gamiton ang proxy. Alang niana nga katuyoan, mahimo nimong palihokon ang sukaranan nga pag-authenticate sa HTTP. Sayon ug paspas ang pag-configure.

Una, kinahanglan nimo nga ma-install ang httpd-tools.

# yum -y install httpd-tools

Karon maghimo kita usa ka file nga sa ulahi magtipig sa username alang sa pag-authenticate. Ang nukos modagan sa user nga \squid mao nga ang file kinahanglan nga gipanag-iya sa maong user.

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

Karon maghimo kami usa ka bag-ong tiggamit nga gitawag nga \proxyclient ug i-setup ang password niini.

# htpasswd /etc/squid/passwd proxyclient

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

Karon aron ma-configure ang authentication ablihi ang configuration file.

# vim /etc/squid/squid.conf

Human sa mga pantalan ACL idugang ang mosunod nga mga linya:

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

I-save ang file ug i-restart ang squid aron ang mga bag-ong pagbag-o mahimong epektibo:

# systemctl restart squid

Sa katapusan, maghimo kami usa ka katapusan nga ACL nga makatabang kanamo nga babagan ang dili gusto nga mga website. Una, paghimo sa file nga magtipig sa mga blacklisted nga mga site.

# touch /etc/squid/blacklisted_sites.acl

Mahimo nimong idugang ang pipila ka mga domain nga gusto nimong babagan. Pananglitan:

.badsite1.com
.badsite2.com

Ang nagpadayon nga tulbok nagsulti sa nukos nga babagan ang tanan nga mga pakisayran sa kana nga mga site lakip ang www.badsite1, subsite.badsite1.com, ug uban pa.

Karon ablihi ang configuration file sa Squid.

# vim /etc/squid/squid.conf

Pagkahuman sa mga pantalan nga ACL idugang ang mosunod nga duha ka linya:

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

Karon i-save ang file ug i-restart ang squid:

# systemctl restart squid

Kung na-configure na sa husto ang tanan, karon mahimo nimong i-configure ang imong browser sa lokal nga kliyente o mga setting sa network sa operating system aron magamit ang imong squid HTTP proxy.

Sa kini nga panudlo, nahibal-an nimo kung giunsa ang pag-install, pagsiguro ug pag-configure sa usa ka Squid HTTP Proxy server sa imong kaugalingon. Uban sa kasayuran nga imong nakuha, mahimo nimong idugang ang pipila ka sukaranan nga pagsala alang sa umaabot ug paggawas nga trapiko pinaagi sa Squid.

Kung gusto nimo nga moadto sa dugang nga milya, mahimo nimong i-configure ang squid aron babagan ang pipila ka mga website sa oras sa pagtrabaho aron malikayan ang mga pagkabalda. Kung naa kay pangutana o komento, palihog i-post kini sa comment section sa ubos.