Pag-configure sa Squid Proxy Server nga adunay Restricted Access ug Pag-set up sa mga Kliyente nga Gamiton ang Proxy - Bahin 5


Usa ka Linux Foundation Certified Engineer usa ka hanas nga propesyonal nga adunay kahanas sa pag-install, pagdumala, ug pag-troubleshoot sa mga serbisyo sa network sa mga sistema sa Linux, ug nagdumala sa laraw, pagpatuman ug padayon nga pagpadayon sa sistema- lapad nga arkitektura.

Pagpaila sa Linux Foundation Certification Program.

Sa Bahin 1 niini nga serye, among gipakita kung unsaon pag-instalar sa nukos, usa ka proxy caching server alang sa mga kliyente sa web. Palihog tan-awa kana nga post (link nga gihatag sa ubos) sa dili pa mopadayon kung wala pa nimo ma-install ang squid sa imong sistema.

  1. Bahin 1 – I-install ang Mga Serbisyo sa Network ug Pag-configure sa Auto Startup sa Boot

Niini nga artikulo, ipakita namo kanimo kung unsaon pag-configure ang Squid proxy server aron mahatagan o higpitan ang pag-access sa Internet, ug kung unsaon pag-configure ang usa ka http client, o web browser, aron magamit ang proxy server.

Operating System :	Debian Wheezy 7.5
IP Address 	 :	192.168.0.15
Hostname	 :	dev2.gabrielcanepa.com.ar
Operating System :	Ubuntu 12.04
IP Address 	 :	192.168.0.104 
Hostname	 :	ubuntuOS.gabrielcanepa.com.ar
Operating System :	CentOS-7.0-1406
IP Address 	 :	192.168.0.17 
Hostname	 :	dev1.gabrielcanepa.com.ar

Atong hinumdoman nga, sa yano nga mga termino, ang web proxy server usa ka tigpataliwala tali sa usa (o daghan pa) nga mga kompyuter sa kliyente ug usa ka piho nga kapanguhaan sa network, ang labing kasagaran nga pag-access sa Internet. Sa laing pagkasulti, ang proxy server konektado sa usa ka kilid direkta sa Internet (o sa usa ka router nga konektado sa Internet) ug sa pikas bahin sa usa ka network sa mga kompyuter sa kliyente nga maka-access sa World Wide Web pinaagi niini.

Tingali nahibulong ka, nganong gusto ko nga magdugang og laing piraso sa software sa akong imprastraktura sa network?

1. Ang nukos nagtipig og mga file gikan sa nangaging mga hangyo aron mapadali ang umaabot nga pagbalhin. Pananglitan, pananglit ang client1 nag-download sa CentOS-7.0-1406-x86_64-DVD.iso gikan sa Internet. Kung ang client2 mangayo og access sa parehas nga file, ang nukos mahimong ibalhin ang file gikan sa cache niini imbes nga i-download kini pag-usab gikan sa Internet. Sama sa imong matag-an, mahimo nimong gamiton kini nga bahin aron mapadali ang pagbalhin sa datos sa usa ka network sa mga kompyuter nga nanginahanglan kanunay nga pag-update sa usa ka matang.

2. Ang ACLs (Access Control Lists) nagtugot kanamo sa pagpugong sa pag-access sa mga website, ug/o pagmonitor sa access sa matag user nga basehan. Mahimo nimong pugngan ang pag-access base sa adlaw sa semana o oras sa adlaw, o domain, pananglitan.

3. Ang pag-bypass sa mga web filter nahimong posible pinaagi sa paggamit sa usa ka web proxy diin gihimo ang mga hangyo ug diin ibalik ang gipangayo nga sulod ngadto sa usa ka kliyente, imbes nga ang kliyente mohangyo niini direkta ngadto sa Internet.

Pananglitan, pananglit naka-log in ka sa client1 ug gusto nga maka-access sa www.facebook.com pinaagi sa router sa imong kompanya. Tungod kay ang site mahimo nga gibabagan sa mga palisiya sa imong kompanya, mahimo ka nga magkonektar sa usa ka web proxy server ug ipahangyo kini nga maka-access sa www.facebook.com. Ang hilit nga sulod ibalik kanimo pinaagi sa web proxy server pag-usab, nga gilaktawan ang mga polisiya sa pag-block sa router sa imong kompanya.

Pag-configure sa Squid - Ang Mga sukaranan

Ang access control scheme sa Squid web proxy server naglangkob sa duha ka lain-laing mga component:

  1. Ang ACL nga mga elemento maoy mga linya sa direktiba nga nagsugod sa pulong acl ug nagrepresentar sa mga matang sa pagsulay nga gihimo batok sa bisan unsang hangyo nga transaksyon.
  2. Ang mga lagda sa listahan sa pag-access naglangkob sa usa ka allow o deny nga aksyon nga gisundan sa usa ka gidaghanon sa mga elemento sa ACL, ug gigamit sa pagpakita kung unsa nga aksyon o limitasyon kinahanglang ipatuman para sa gihatag nga hangyo. Gisusi sila sa han-ay, ug ang pagpangita sa lista matapos sa diha nga ang usa sa mga lagda usa ka tugma. Kung ang usa ka lagda adunay daghang mga elemento sa ACL, kini gipatuman ingon usa ka boolean AND nga operasyon (ang tanan nga mga elemento sa ACL sa lagda kinahanglan usa ka tugma aron ang lagda mahimong usa ka tugma).

Ang nag-unang configuration file sa squid mao ang /etc/squid/squid.conf, nga ~5000 nga linya ang gitas-on tungod kay kini naglakip sa duha ka configuration direktiba ug dokumentasyon. Tungod niana nga rason, maghimo kami og bag-ong squid.conf file nga adunay mga linya lamang nga naglakip sa mga direktiba sa pag-configure alang sa among kasayon, nga wala'y sulod o gikomentohan nga mga linya. Sa pagbuhat niini, atong gamiton ang mosunod nga mga sugo.

# mv /etc/squid/squid.conf /etc/squid/squid.conf.bkp

Unya,

# grep -Eiv '(^#|^$)' /etc/squid/squid.conf.bkp

OR

# grep -ve ^# -ve ^$ /etc/squid/squid.conf.bkp > /etc/squid/squid.conf

Karon, ablihi ang bag-ong nahimo nga squid.conf file, ug pangitaa (o idugang) ang mosunod nga ACL nga mga elemento ug mga lista sa pag-access.

acl localhost src 127.0.0.1/32
acl localnet src 192.168.0.0/24

Ang duha ka linya sa ibabaw nagrepresentar sa batakang pananglitan sa paggamit sa ACL nga mga elemento.

  1. Ang unang pulong, acl, nagpaila nga kini usa ka linya sa direktiba sa elemento sa ACL.
  2. Ang ikaduhang pulong, localhost o localnet, nagtakda ug ngalan alang sa direktiba.
  3. Ang ikatulo nga pulong, src niini nga kaso, usa ka ACL element type nga gigamit sa pagrepresentar sa kliyente nga IP address o range sa mga adres, matag usa. Mahimo nimong ipiho ang usa ka host pinaagi sa IP (o hostname, kung adunay ka usa ka matang sa resolusyon sa DNS nga gipatuman) o pinaagi sa adres sa network.
  4. Ang ikaupat nga parametro kay usa ka argumento sa pagsala nga \gipakaon” ngadto sa direktiba.

Ang duha ka linya sa ubos mao ang listahan sa pag-access nga mga lagda ug nagrepresentar sa usa ka klaro nga pagpatuman sa ACL nga mga direktiba nga gihisgutan sa sayo pa. Sa pipila ka pulong, kini nagpakita nga ang http access kinahanglan ihatag kung ang hangyo gikan sa lokal nga network (localnet), o gikan sa localhost. Unsa man ang gitugotan nga lokal nga network o mga adres sa lokal nga host? Ang tubag mao: kadtong gitakda sa localhost ug localnet nga mga direktiba.

http_access allow localnet
http_access allow localhost

Niini nga punto mahimo nimong i-restart ang Squid aron magamit ang bisan unsang pending nga mga pagbag-o.

# service squid restart 		[Upstart / sysvinit-based distributions]
# systemctl restart squid.service 	[systemd-based distributions]

ug dayon i-configure ang usa ka browser sa kliyente sa lokal nga network (192.168.0.104 sa among kaso) aron ma-access ang Internet pinaagi sa imong proxy sama sa mosunod.

1. Adto sa Edit menu ug pilia ang Preferences nga opsyon.

2. Pag-klik sa Advanced, dayon sa Network tab, ug sa katapusan sa Settings

3. Susiha ang Manual nga proxy configuration ug isulod ang IP address sa proxy server ug ang port diin kini naminaw alang sa mga koneksyon.

Timan-i nga sa default, ang Squid maminaw sa port 3128, pero mahimo nimong i-override kini nga kinaiya pinaagi sa pag-edit sa accesslist nga lagda nga nagsugod sa http_port (sa default kini mabasa http_port 3128).

4. I-klik ang OK aron magamit ang mga pagbag-o ug andam ka nang molakaw.

Mahimo nimong mapamatud-an nga ang imong lokal nga kliyente sa network nag-access sa Internet pinaagi sa imong proxy sama sa mosunod.

1. Sa imong kliyente, ablihi ang terminal ug i-type,

# ip address show eth0 | grep -Ei '(inet.*eth0)'

Kana nga sugo magpakita sa kasamtangang IP address sa imong kliyente (192.168.0.104 sa mosunod nga hulagway).

2. Sa imong kliyente, gamita ang web browser aron maablihan ang bisan unsang gihatag nga web site (linux-console.net niini nga kaso).

3. Sa server, pagdagan.

# tail -f /var/log/squid/access.log

ug makakuha ka ug live view sa mga hangyo nga gisilbi pinaagi sa Squid.

Pagpugong sa Pag-access sa Kliyente

Karon hunahunaa nga gusto nimo nga klaro nga ipanghimakak ang pag-access sa kana nga partikular nga IP address sa kliyente, samtang nagpadayon pa ang pag-access alang sa nahabilin nga lokal nga network.

1. Ipasabot ang bag-ong ACL nga direktiba sama sa mosunod (Ginganlan nako kini og ubuntuOS apan mahimo nimo kining nganlan sa bisan unsa nga gusto nimo).

acl ubuntuOS src 192.168.0.104

2. Idugang ang ACL nga direktiba sa listahan sa localnet access nga anaa na, apan nag-una niini gamit ang exclamation sign. Kini nagpasabot, \Tugoti ang Internet access sa mga kliyente nga motakdo sa localnet ACL nga direktiba gawas sa usa nga mohaum sa ubuntuOS nga direktiba.

http_access allow localnet !ubuntuOS

3. Karon kinahanglan natong i-restart ang Squid aron magamit ang mga pagbag-o. Unya kon kita mosulay sa pag-browse sa bisan unsa nga site atong makita nga ang pag-access gibalibaran karon.

Pag-configure sa Squid - Maayo nga Pag-tune

Aron mapugngan ang pag-access sa Squid pinaagi sa domain among gamiton ang dstdomain nga keyword sa usa ka ACL nga direktiba, sama sa mosunod.

acl forbidden dstdomain "/etc/squid/forbidden_domains"

Diin ang forbidden_domains kay usa ka yano nga text file nga adunay sulod sa mga dominyo nga gusto namong dumilian ang pag-access.

Sa katapusan, kinahanglan nga hatagan namon ang pag-access sa Squid alang sa mga hangyo nga dili katumbas sa direktiba sa ibabaw.

http_access allow localnet !forbidden

O tingali gusto lang namo nga tugutan ang pag-access sa mga site sa usa ka piho nga oras sa adlaw (10:00 hangtod 11:00 am) sa Lunes (M), Miyerkules (W), ug Biyernes (F).

acl someDays time MWF 10:00-11:00
http_access allow forbidden someDays
http_access deny forbidden

Kung dili, ang pag-access sa mga natad ma-block.

Gisuportahan sa squid ang daghang mga mekanismo sa pag-authenticate (Basic, NTLM, Digest, SPNEGO, ug Oauth) ug mga katabang (SQL database, LDAP, NIS, NCSA, sa pagngalan sa pipila). Niini nga tutorial atong gamiton ang Basic authentication sa NCSA.

Idugang ang mosunod nga mga linya sa imong /etc/squid/squid.conf file.

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic credentialsttl 30 minutes
auth_param basic casesensitive on
auth_param basic realm Squid proxy-caching web server for Tecmint's LFCE series
acl ncsa proxy_auth REQUIRED
http_access allow ncsa

Mubo nga sulat: Sa CentOS 7, ang NCSA plugin alang sa squid makita sa /usr/lib64/squid/basic_nsca_auth, busa usba sumala sa linya sa ibabaw.

Pipila ka mga klaripikasyon:

  1. Kinahanglan namong isulti sa Squid kung unsang programa sa katabang sa pag-authenticate ang gamiton sa direktiba nga auth_param pinaagi sa pagtino sa ngalan sa programa (lagmit, /usr/lib/squid/ncsa_auth o /usr/lib64/squid/basic_nsca_auth), apil ang bisan unsang command line nga mga opsyon (/etc/squid/passwd niini nga kaso) kon gikinahanglan.
  2. Ang /etc/squid/passwd nga payl gihimo pinaagi sa htpasswd, usa ka himan sa pagdumala sa batakang panghimatuod pinaagi sa mga file. Magtugot kini kanamo nga makadugang ug lista sa mga username (ug ang ilang katugbang nga mga password) nga tugotan sa paggamit sa Squid.
  3. Ang
  4. credentialsttl 30 minutos magkinahanglan og pagsulod sa imong username ug password matag 30 minutos (mahimo nimong ipiho kining agwat sa oras uban sa mga oras usab).
  5. casesensitive on nagpakita nga ang mga username ug password kay case sensitive.
  6. Ang
  7. realm nagrepresentar sa teksto sa dialog sa pag-authenticate nga gamiton sa pag-authenticate sa nukos.
  8. Sa katapusan, ang pag-access gihatag lamang kung ang proxy authentication (proxy_auth REQUIRED) molampos.

Pagdalagan ang mosunod nga sugo sa paghimo sa payl ug sa pagdugang sa mga kredensyal para sa user gacanepa (ilaktawan ang -c nga bandera kon ang file anaa na).

# htpasswd -c /etc/squid/passwd gacanepa

Ablihi ang usa ka web browser sa makina sa kliyente ug pagsulay sa pag-browse sa bisan unsang gihatag nga site.

Kung molampos ang pag-authenticate, ang pag-access gihatag sa gihangyo nga kapanguhaan. Kay kon dili, ang pag-access idili.

Paggamit sa Cache aron mapadali ang Pagbalhin sa Data

Usa sa mga nagpalahi nga bahin sa Squid mao ang posibilidad sa pag-cache sa mga kapanguhaan nga gihangyo gikan sa web ngadto sa disk aron mapadali ang umaabot nga mga hangyo sa mga butang bisan sa parehas nga kliyente o uban pa.

Idugang ang mosunod nga mga direktiba sa imong squid.conf file.

cache_dir ufs /var/cache/squid 1000 16 256
maximum_object_size 100 MB
refresh_pattern .*\.(mp4|iso) 2880

Pipila ka mga pagpatin-aw sa mga direktiba sa ibabaw.

    Ang
  1. ufs mao ang pormat sa pagtipig sa Squid.
  2. Ang
  3. /var/cache/squid kay usa ka top-level nga direktoryo diin ang mga cache file itago. Kini nga direktoryo kinahanglang anaa ug masulat sa Squid (DILI mohimo ang squid niini nga direktoryo para kanimo).
  4. 1000 mao ang kantidad (sa MB) nga gamiton ubos niini nga direktoryo.
  5. Ang
  6. 16 mao ang gidaghanon sa 1st-level nga mga subdirectory, samtang ang 256 mao ang gidaghanon sa 2nd-level nga mga subdirectory sulod sa /var/spool/squid.
  7. Ang maximum_object_size nga direktiba nagtino sa kinatas-ang gidak-on sa gitugot nga mga butang sa cache.
  8. Ang
  9. refresh_pattern nagsulti sa Squid kung unsaon pag-atubang ang piho nga mga tipo sa file (.mp4 ug .iso niini nga kaso) ug kung unsa kadugay kini kinahanglan tipigi ang gipangayo nga mga butang sa cache (2880 ka minuto = 2 ka adlaw).

Ang una ug ikaduha nga 2880 mao ang ubos ug taas nga mga limitasyon, sa tinagsa, kung unsa kadugay ang mga butang nga walay klaro nga expiry time isipon nga bag-o lang, ug sa ingon gisilbihan sa cache, samtang 0% mao ang porsyento sa edad sa mga butang (panahon sukad sa katapusang pagbag-o) nga ang matag butang nga walay klaro nga expiry time isipon nga bag-o lang.

Ang unang kliyente (IP 192.168.0.104) nag-download og 71 MB .mp4 nga file sulod sa 2 ka minuto ug 52 ka segundo.

Ikaduha nga kliyente (IP 192.168.0.17) nag-download sa parehas nga file sa 1.4 segundos!

Kana tungod kay ang file giserbisyuhan gikan sa Squid cache (gipakita sa TCP_HIT/200) sa ikaduhang kaso, sukwahi sa unang higayon, sa dihang kini gi-download direkta gikan sa ang Internet (girepresentar sa TCP_MISS/200).

Ang HIT ug MISS nga mga keyword, kauban ang 200 http nga kodigo sa tubag, nagpakita nga ang file malampusong naserbis sa duha ka higayon, apan ang cache HIT ug gimingaw matag usa. Kung ang usa ka hangyo dili mahatag sa cache tungod sa usa ka hinungdan, nan ang Squid mosulay sa pag-alagad niini gikan sa Internet.

Konklusyon

Niining artikuloha atong gihisgutan kon unsaon pag-set up ang Squid web caching proxy. Mahimo nimong gamiton ang proxy server aron ma-filter ang mga sulud gamit ang usa ka gipili nga pamatasan, ug usab aron makunhuran ang latency (tungod kay ang parehas nga umaabot nga mga hangyo gisilbi gikan sa cache, nga mas duol sa kliyente kaysa sa web server nga tinuud nga nagserbisyo sa sulud, nga nagresulta sa labi ka paspas. mga pagbalhin sa datos) ug trapiko sa network ingon man (pagkunhod sa gidaghanon sa gigamit nga bandwidth, nga makadaginot kanimo kung nagbayad ka alang sa trapiko).

Mahimo nimong i-refer ang Squid web site para sa dugang nga dokumentasyon (siguruha nga susihon usab ang wiki), apan ayaw pagpanuko sa pagkontak kanamo kung adunay ka mga pangutana o komento. Mas malipay kami nga makadungog gikan kanimo!