Giunsa ang Pag-setup sa Squid Proxy Server sa Ubuntu ug Debian


Ang squid usa ka pinakapopular nga caching ug forwarding HTTP web proxy server migamit sa akong halapad nga mga kompanya sa pag-cache sa mga web page gikan sa usa ka web server aron mapausbaw ang katulin sa web server, pagpakunhod sa mga oras sa pagtubag ug pagpakunhod sa paggamit sa bandwidth sa network.

Niini nga artikulo, among ipasabut kung giunsa ang pag-install sa usa ka squid proxy server sa mga distribusyon sa Ubuntu ug Debian ug gamiton kini ingon usa ka HTTP proxy server.

Unsaon Pag-instalar sa Squid sa Ubuntu

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

Ang squid package magamit aron ma-install gikan sa base nga repository sa Ubuntu, apan sa wala pa kana siguroha nga i-update ang imong mga pakete pinaagi sa pagdagan.

$ sudo apt update

Kung ang imong mga pakete bag-o na, mahimo ka magpadayon sa pag-install sa squid ug pagsugod ug pagpagana niini sa pagsugod sa sistema gamit ang pagsunod sa mga mando.

$ sudo apt -y install squid
$ sudo systemctl start squid
$ sudo systemctl enable squid

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

$ sudo systemctl status squid
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Tue 2018-12-04 06:42:43 UTC; 14min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4 (limit: 1717)
   CGroup: /system.slice/squid.service
           ├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2766 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2768 (logfile-daemon) /var/log/squid/access.log
           └─2772 (pinger)

Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]:  * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]:    ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started

Ang mosunod mao ang pipila ka importante nga mga lokasyon sa squid file nga kinahanglan nimong masayran:

  • 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

Ang default nga configuration file naglangkob sa pipila ka mga direktiba sa configuration nga kinahanglang i-configure aron makaapekto sa kinaiya sa Squid.

Karon ablihi kini nga file alang sa pag-edit gamit ang Vi editor ug paghimo og mga pagbag-o sama sa gipakita sa ubos.

$ sudo vim /etc/squid/squid.conf

Karon, mahimo nimong pangitaon ang mahitungod sa mosunod nga mga linya ug usbon kini sumala sa gihangyo, sa editor sa Vi, mahimo nimong pangitaon ang mahitungod niadtong mga linya pinaagi sa pagpindot sa 'ESC' ug pag-type sa \/ nga yawe sa pagsulat sa espesipiko linya nga pangitaon.

  • http_port : Kini ang default port para sa HTTP proxy server, sa default kini mao ang 3128, mahimo nimong usbon kini sa bisan unsang laing pantalan nga imong gusto, mahimo usab nimo idugang ang \transparent tag ngadto sa kataposan sa linya sama sa http_port 8888 transparent para himoong transparent proxy ang Squid proxy kung gusto nimo.
  • http_access deny all : Kini nga linya dili motugot ni bisan kinsa nga maka-access sa HTTP proxy server, mao nga kinahanglan nimo kini usbon sa http_access tugotan ang tanan nga magsugod sa paggamit sa imong Squid proxy server.
  • visible_hostname : Kini nga direktiba gigamit aron itakda ang piho nga hostname sa usa ka squid server. Mahimo nimong ihatag ang bisan unsang hostname sa nukos.

Human sa paghimo sa mga kausaban sa ibabaw, mahimo nimong i-restart ang Squid proxy server gamit ang command.

$ sudo systemctl restart squid

Pag-configure sa Squid ingon usa ka HTTP Proxy sa Ubuntu

Niini nga seksyon sa pag-configure sa squid, among ipasabut kanimo kung giunsa ang pag-configure sa squid ingon usa ka proxy nga HTTP gamit lamang ang IP address sa kliyente alang sa pag-authenticate.

Kung gusto nimo tugutan ang usa lamang ka IP address nga maka-access sa internet pinaagi sa imong bag-ong proxy server, kinahanglan nimo nga ipasabut ang bag-ong acl (listahan sa kontrol sa pag-access) sa file sa pag-configure.

$ sudo vim /etc/squid/squid.conf

Ang acl nga lagda nga kinahanglan nimong idugang mao ang:

acl localnet src XX.XX.XX.XX

Diin ang XX.XX.XX.XX mao ang IP address sa makina sa kliyente. Kini nga acl kinahanglang idugang sa sinugdanan sa seksyon sa ACL sama sa gipakita sa mosunod nga screenshot.

Kanunay nga usa ka maayong praktis ang paghubit sa usa ka komento sunod sa ACL nga maghulagway kung kinsa ang naggamit niini nga IP address, pananglitan.

acl localnet src 192.168.0.102  # Boss IP address

Kinahanglan nimo nga i-restart ang serbisyo sa Squid aron mahimo ang bag-ong mga pagbag-o.

$ sudo systemctl restart squid

Sa kasagaran, pipila ra nga mga pantalan ang gitugotan sa pag-configure sa nukos, kung gusto nimo nga dugangan pa, ipasabut lang kini sa file sa pag-configure sama sa gipakita.

acl Safe_ports port XXX

Diin ang XXX mao ang numero sa pantalan nga gusto nimong tugutan. Pag-usab kini usa ka maayong praktis nga ipasabut ang usa ka komento sunod sa acl 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.

$ sudo systemctl restart squid

Aron tugotan ang mga tiggamit sa pag-authenticate sa dili pa gamiton ang proxy, kinahanglan nimo nga i-enable ang batakang http authentication sa configuration file, apan sa dili pa kana kinahanglan nimo nga i-install ang apache2-utils nga pakete gamit ang mosunod nga sugo.

$ sudo apt install apache2-utils

Karon paghimo og usa ka file nga gitawag og passwd nga sa ulahi magtipig sa username alang sa panghimatuud. Ang squid modagan uban sa user nga \proxy mao nga ang file kinahanglan nga gipanag-iya sa maong user.

$ sudo touch /etc/squid/passwd
$ sudo chown proxy: /etc/squid/passwd
$ ls -l /etc/squid/passwd

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

$ sudo htpasswd /etc/squid/passwd tecmint

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

Karon aron ma-enable ang basic nga http authentication ablihi ang configuration file.

$ sudo 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:

$ sudo systemctl restart squid

Aron babagan ang pag-access sa dili gusto nga mga website, paghimo una og file nga gitawag og blacklisted_sites.acl nga magtipig sa mga blacklisted nga site niini.

$ sudo touch /etc/squid/blacklisted_sites.acl

Karon idugang ang mga website nga gusto nimong babagan ang pag-access, pananglitan.

.badsite1.com
.badsite2.com

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

Karon ablihi ang configuration file sa Squid.

$ sudo vim /etc/squid/squid.conf

Human lang sa mga ACL sa ibabaw 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:

$ sudo systemctl restart squid

Aron babagan ang usa ka lista sa mga keyword, paghimo una og file nga gitawag og blockkeywords.lst nga magtipig sa mga blacklisted nga mga keyword niini.

$ sudo touch /etc/squid/blockkeywords.lst

Karon idugang ang mga keyword nga gusto nimong babagan ang pag-access, pananglitan.

facebook
instagram
gmail

Karon ablihi ang configuration file sa Squid ug idugang ang mosunod nga lagda.

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist

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

$ sudo systemctl restart squid

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

I-configure ang Kliyente sa Paggamit sa Squid Proxy

Karon aron masulayan nga ang imong proxy server nagtrabaho o wala, mahimo nimong ablihan ang Firefox ug adto sa Edit -> Preferences -> Advanced -> Network -> Settings ug pilia ang \Manual proxy configuration ug isulod ang imong proxy server IP address ug Port sa gamiton alang sa tanang koneksyon sama sa mosunod.

Sa higayon nga mapuno na nimo ang tanang gikinahanglang mga detalye sa proxy, mahimo ka nang mag-surf sa Web gamit ang imong Squid proxy server, mahimo nimong buhaton ang parehas nga butang sa bisan unsang browser o programa nga gusto nimo.

Aron masiguro nga nag-surf ka sa web gamit ang imong proxy server, mahimo nimong bisitahan ang http://www.ipaddresslocation.org/, sa tuo nga suok sa taas kinahanglan nimo nga makita ang parehas nga IP address sa imong server IP address.

Alang sa dugang nga mga setting sa pag-configure, mahimo nimong susihon ang opisyal nga dokumentasyon sa squid. Kung naa kay pangutana o komento, palihog idugang sila sa comment section sa ubos.