Konfigurazzjoni ta' Squid Proxy Server b'Aċċess Ristrett u Twaqqif ta' Klijenti biex Jużaw Proxy - Parti 5


Inġinier Ċertifikat tal-Fondazzjoni Linux huwa professjonist tas-sengħa li għandu l-kompetenza biex jinstalla, jimmaniġġja u jsolvi l-problemi tas-servizzi tan-netwerk fis-sistemi Linux, u huwa responsabbli mid-disinn, l-implimentazzjoni u l-manutenzjoni kontinwa tas-sistema- arkitettura wiesgħa.

L-introduzzjoni tal-Programm ta' Ċertifikazzjoni tal-Fondazzjoni Linux.

F'Parti 1 ta 'din is-serje, urejna kif tinstalla squid, server ta' caching prokura għall-klijenti tal-web. Jekk jogħġbok irreferi għal dik il-kariga (link mogħtija hawn taħt) qabel tipproċedi jekk għadek ma installajtx il-klamari fis-sistema tiegħek.

  1. Parti 1 – Installa Servizzi tan-Netwerk u Konfigurazzjoni tal-Istartjar Awtomatiku mal-Ibbutjar

F'dan l-artikolu, aħna ser nuruk kif tikkonfigura s-server proxy Squid sabiex tagħti jew tirrestrinġi aċċess għall-Internet, u kif tikkonfigura klijent http, jew web browser, biex tuża dak is-server proxy.

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

Ejja niftakru li, f'termini sempliċi, server proxy tal-web huwa intermedjarju bejn kompjuter klijent wieħed (jew aktar) u ċertu riżors tan-netwerk, l-aktar komuni jkun l-aċċess għall-Internet. Fi kliem ieħor, il-proxy server huwa konness fuq naħa waħda direttament mal-Internet (jew ma 'router li huwa konness mal-Internet) u fuq in-naħa l-oħra ma' netwerk ta 'kompjuters klijenti li se jaċċessaw il-World Wide Web permezz tiegħu.

Inti tista 'tistaqsi, għaliex nixtieq inżid biċċa oħra ta' softwer għall-infrastruttura tan-netwerk tiegħi?

1. Squid jaħżen fajls minn talbiet preċedenti biex jitħaffef trasferimenti futuri. Pereżempju, ngħidu li client1 tniżżel CentOS-7.0-1406-x86_64-DVD.iso mill-Internet. Meta client2 jitlob aċċess għall-istess fajl, il-klamari jista’ jittrasferixxi l-fajl mill-cache tiegħu minflok ma jerġa’ jniżżlu mill-Internet. Kif tistgħu taħsbu, tista' tuża din il-karatteristika biex tħaffef it-trasferimenti tad-dejta f'netwerk ta' kompjuters li jeħtieġu aġġornamenti frekwenti ta' xi tip.

2. ACLs (Listi ta' Kontroll ta' Aċċess) jippermettulna nirrestrinġu l-aċċess għal websajts, u/jew jimmonitorjaw l-aċċess fuq bażi ta' kull utent. Tista' tirrestrinġi l-aċċess ibbażat fuq jum tal-ġimgħa jew ħin tal-ġurnata, jew dominju, pereżempju.

3. Il-bypassing tal-filtri tal-web huwa possibbli permezz tal-użu ta' prokura tal-web li għalih isiru t-talbiet u li jirritorna l-kontenut mitlub lil klijent, minflok ma jkollu l-klijent jitlobha direttament lill-Internet.

Pereżempju, ngħidu li int illoggjat f'client1 u trid taċċessa www.facebook.com permezz tar-router tal-kumpanija tiegħek. Peress li s-sit jista' jiġi mblukkat mill-politiki tal-kumpanija tiegħek, tista' minflok tikkonnettja ma' server proxy tal-web u titlob aċċess għal www.facebook.com. Il-kontenut mill-bogħod imbagħad jerġa’ jintbagħat lilek permezz tas-server tal-prokura tal-web, billi jinjora l-politiki tal-imblukkar tar-router tal-kumpanija tiegħek.

Konfigurazzjoni tal-Klamar - Il-Basics

L-iskema tal-kontroll tal-aċċess tas-server tal-prokura tal-web Squid tikkonsisti f'żewġ komponenti differenti:

  1. L-elementi ACL huma linji direttivi li jibdew bil-kelma “acl” u jirrappreżentaw tipi ta’ testijiet li jsiru kontra kwalunkwe transazzjoni ta’ talba.
  2. Ir-regoli tal-lista ta' aċċess jikkonsistu f'azzjoni ippermetti jew ċaħda segwita minn għadd ta' elementi ACL, u jintużaw biex jindikaw liema azzjoni jew limitazzjoni trid tiġi infurzata għal talba partikolari. Dawn jiġu ċċekkjati fl-ordni, u t-tiftix fil-lista jintemm hekk kif waħda mir-regoli tkun taqbel. Jekk regola jkollha elementi multipli ACL, hija implimentata bħala operazzjoni boolean AND (l-elementi ACL kollha tar-regola jridu jkunu jaqblu sabiex ir-regola tkun taqbel).

Il-fajl tal-konfigurazzjoni prinċipali ta’ Squid huwa /etc/squid/squid.conf, li huwa twil ~5000 linja peress li jinkludi kemm direttivi ta’ konfigurazzjoni kif ukoll dokumentazzjoni. Għal dik ir-raġuni, aħna se noħolqu fajl ġdid squid.conf bil-linji biss li jinkludu direttivi tal-konfigurazzjoni għall-konvenjenza tagħna, filwaqt li nħallu barra linji vojta jew ikkummentati. Biex tagħmel dan, se nużaw il-kmandi li ġejjin.

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

Imbagħad,

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

OR

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

Issa, iftaħ il-fajl squid.conf maħluq ġdid, u fittex (jew żid) l-elementi ACL u l-listi ta’ aċċess li ġejjin.

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

Iż-żewġ linji ta' hawn fuq jirrappreżentaw eżempju bażiku ta' l-użu ta' elementi ACL.

  1. L-ewwel kelma, acl, tindika li din hija linja direttiva ta' element ACL.
  2. It-tieni kelma, localhost jew localnet, speċifika isem għad-direttiva.
  3. It-tielet kelma, src f'dan il-każ, hija tip ta' element ACL li jintuża biex jirrappreżenta indirizz IP tal-klijent jew firxa ta' indirizzi, rispettivament. Tista' tispeċifika host wieħed bl-IP (jew l-isem tal-host, jekk għandek xi tip ta' riżoluzzjoni DNS implimentata) jew bl-indirizz tan-netwerk.
  4. Ir-raba' parametru huwa argument ta' filtrazzjoni li huwa \imdaħħal għad-direttiva.

Iż-żewġ linji hawn taħt huma regoli ta' lista ta' aċċess u jirrappreżentaw implimentazzjoni espliċita tad-direttivi ACL imsemmija qabel. Fi ftit kliem, jindikaw li aċċess http għandu jingħata jekk it-talba tiġi min-netwerk lokali (localnet), jew minn localhost. Speċifikament x'inhu n-netwerk lokali permess jew l-indirizzi tal-host lokali? It-tweġiba hija: dawk speċifikati fid-direttivi localhost u localnet.

http_access allow localnet
http_access allow localhost

F'dan il-punt tista' terġa' tibda Squid sabiex tapplika kwalunkwe tibdil pendenti.

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

u mbagħad ikkonfigurat browser klijent fin-netwerk lokali (192.168.0.104fil-każ tagħna) biex taċċessa l-Internet permezz tal-prokura tiegħek kif ġej.

1. Mur fil-menu Editja u agħżel l-għażla Preferenzi.

2. Ikklikkja fuq Avvanzat, imbagħad fuq it-tab Netwerk, u finalment fuq Settings...

3. Iċċekkja l-Konfigurazzjoni manwali tal-proxy u daħħal l-indirizz IP tas-server tal-prokura u l-port fejn ikun qed jisma’ għall-konnessjonijiet.

Innota Li b'mod awtomatiku, Squid jisma' fuq il-port 3128, iżda tista' tegħleb din l-imġieba billi teditja r-regola lista ta' aċċess li tibda b'http_port (billi default jaqra http_port 3128).

4. Ikklikkja OK biex tapplika l-bidliet u int tajjeb biex tmur.

Issa tista' tivverifika li l-klijent tan-netwerk lokali tiegħek qed jaċċessa l-Internet permezz tal-prokura tiegħek kif ġej.

1. Fil-klijent tiegħek, iftaħ terminal u ittajpja,

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

Dak il-kmand se juri l-indirizz IP attwali tal-klijent tiegħek (192.168.0.104 fl-immaġni li ġejja).

2. Fil-klijent tiegħek, uża web browser biex tiftaħ kwalunkwe sit web partikolari (linux-console.net f'dan il-każ).

3. Fis-server, run.

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

u ikollok stampa diretta tat-talbiet li qed jiġu moqdija permezz ta' Squid.

Restrizzjoni tal-Aċċess Mill-Klijent

Issa ejja ngħidu li trid tiċħad b'mod espliċitu l-aċċess għal dak l-indirizz IP tal-klijent partikolari, filwaqt li għadha żżomm aċċess għall-bqija tan-netwerk lokali.

1. Iddefinixxi direttiva ġdida ACL kif ġej (smajtha ubuntuOS imma tista' semmiha kif trid).

acl ubuntuOS src 192.168.0.104

2. Żid id-direttiva ACL mal-lista localnet access li hija diġà fis-seħħ, iżda qabel ma sinjal ta' esklamazzjoni. Dan ifisser, \Ippermetti aċċess għall-Internet lill-klijenti li jaqblu mad-direttiva ACL localnet ħlief għal dik li taqbel mad-direttiva ubuntuOS.

http_access allow localnet !ubuntuOS

3. Issa rridu nibdew mill-ġdid Squid sabiex napplikaw il-bidliet. Imbagħad jekk nippruvaw inbbrawżjaw għal xi sit insibu li l-aċċess huwa miċħud issa.

Konfigurazzjoni tal-Klamar – Irfinar

Biex nirrestrinġu l-aċċess għal Squid skond id-dominju se nużaw il-kelma prinċipali dstdomain f'direttiva ACL, kif ġej.

acl forbidden dstdomain "/etc/squid/forbidden_domains"

Fejn forbidden_domains huwa fajl b'test sempliċi li fih id-dominji li nixtiequ niċħdu l-aċċess għalihom.

Fl-aħħarnett, irridu nagħtu aċċess lil Squid għal talbiet li ma jaqblux mad-direttiva t'hawn fuq.

http_access allow localnet !forbidden

Jew forsi rridu nħallu aċċess għal dawk is-siti biss matul ċertu ħin tal-ġurnata (10:00 sal-11:00 am) biss It-Tnejn (M), L-Erbgħa (W), u Il-Ġimgħa (F).

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

Inkella, l-aċċess għal dawk id-dominji jiġi mblukkat.

Squid jappoġġja diversi mekkaniżmi ta 'awtentikazzjoni (Bażiku, NTLM, Digest, SPNEGO, u Oauth) u helpers (database SQL, LDAP, NIS, NCSA, biex insemmu xi ftit). F'dan it-tutorja se nużaw l-awtentikazzjoni Bażika ma' NCSA.

Żid il-linji li ġejjin mal-fajl /etc/squid/squid.conf tiegħek.

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

Nota: F'CentOS 7, il-plugin NCSA għall-klamari jista 'jinstab f' /usr/lib64/squid/basic_nsca_auth, għalhekk ibdel kif xieraq fil-linja ta' hawn fuq.

Ftit kjarifiki:

  1. Irridu ngħidu lil Squid liema programm helper ta' awtentikazzjoni għandu juża mad-direttiva auth_param billi nispeċifika l-isem tal-programm (x'aktarx, /usr/lib/squid/ncsa_auth > jew /usr/lib64/squid/basic_nsca_auth), flimkien ma' kwalunkwe għażla tal-linja tal-kmand (/etc/squid/passwd f'dan il-każ) jekk meħtieġ.
  2. Il-fajl /etc/squid/passwd jinħoloq permezz ta' htpasswd, għodda biex timmaniġġja l-awtentikazzjoni bażika permezz ta' fajls. Din se tippermettilna nżidu lista ta' usernames (u l-passwords korrispondenti tagħhom) li se jitħallew jużaw Squid.
  3. kredenzjalittl 30 minuta teħtieġ li ddaħħal l-isem tal-utent u l-password tiegħek kull 30 minuta (tista' tispeċifika dan l-intervall ta' ħin bis-sigħat ukoll).
  4. casesensitive fuq jindika li l-ismijiet tal-utent u l-passwords huma sensittivi għall-każ.
  5. realm jirrappreżenta t-test tad-djalogu ta' awtentikazzjoni li se jintuża biex jawtentika lill-klamari.
  6. Fl-aħħarnett, l-aċċess jingħata biss meta l-awtentikazzjoni tal-proxy (proxy_auth MEĦTIEĠ) tirnexxi.

Mexxi l-kmand li ġej biex toħloq il-fajl u biex iżżid il-kredenzjali għall-utent gacanepa (ħalli barra l-marka -c jekk il-fajl diġà jeżisti).

# htpasswd -c /etc/squid/passwd gacanepa

Iftaħ web browser fil-magna tal-klijent u tipprova tfittex għal kwalunkwe sit partikolari.

Jekk l-awtentikazzjoni tirnexxi, jingħata aċċess għar-riżors mitluba. Inkella, l-aċċess jiġi miċħud.

Bl-użu tal-Cache biex Tħaffef it-Trasferiment tad-Dejta

Waħda mill-karatteristiċi distintivi ta 'Squid hija l-possibbiltà ta' caching riżorsi mitluba mill-web għal disk sabiex jitħaffef it-talbiet futuri ta 'dawk l-oġġetti jew mill-istess klijent jew oħrajn.

Żid id-direttivi li ġejjin fil-fajl squid.conf tiegħek.

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

Xi ftit kjarifiki tad-direttivi ta' hawn fuq.

  1. ufs huwa l-format tal-ħażna tal-Klamar.
  2. /var/cache/squid huwa direttorju tal-ogħla livell fejn se jinħażnu l-fajls tal-cache. Dan id-direttorju jrid jeżisti u jkun jista’ jikteb minn Squid (Klamar MHUX se joħloq dan id-direttorju għalik).
  3. 1000 huwa l-ammont (f'MB) li għandu jintuża taħt dan id-direttorju.
  4. 16 huwa n-numru ta’ sottodirettorji tal-ewwel livell, filwaqt li 256 huwa n-numru ta’ sottodirettorji tat-tieni livell fi ħdan /var/spool/squid>.
  5. Id-direttiva maximum_object_size tispeċifika d-daqs massimu ta' oġġetti permessi fil-cache.
  6. refresh_pattern jgħid lil Squid kif jittratta tipi speċifiċi ta' fajls (.mp4 u .iso f'dan il-każ) u għal kemm żmien għandu aħżen l-oġġetti mitluba fil-cache (2880 minuti = 2 ijiem).

L-ewwel u t-tieni 2880 huma limiti aktar baxxi u ogħla, rispettivament, dwar kemm oġġetti twal mingħajr ħin ta’ skadenza espliċitu se jitqiesu reċenti, u għalhekk se jiġu moqdija mill-cache, filwaqt li 0% huwa l-perċentwal tal-età tal-oġġetti (ħin mill-aħħar modifika) li kull oġġett mingħajr ħin ta' skadenza espliċitu se jitqies reċenti.

L-ewwel klijent (IP 192.168.0.104) iniżżel fajl 71 MB .mp4 f'2 minuti u 52 sekonda.

It-tieni klijent (IP 192.168.0.17) iniżżel l-istess fajl f'1.4 sekondi!

Dan għaliex il-fajl ġie notifikat mill-Squid cache (indikat minn TCP_HIT/200) fit-tieni każ, għall-kuntrarju tal-ewwel istanza, meta tniżżlu direttament minn l-Internet (rappreżentat minn TCP_MISS/200).

Il-kliem prinċipali HIT u MISS, flimkien mal-kodiċi ta' rispons 200 http, jindikaw li l-fajl ġie nnotifikat b'suċċess iż-żewġ darbiet, iżda l-cache kienet HIT u Mitlufa rispettivament. Meta talba ma tistax tiġi moqdija mill-cache għal xi raġuni, allura Squid jipprova jserviha mill-Internet.

Konklużjoni

F'dan l-artikolu ddiskutejna kif twaqqaf Prokura tal-caching tal-web Squid. Tista' tuża s-server proxy biex tiffiltra l-kontenut billi tuża kriterji magħżula, u wkoll biex tnaqqas il-latenza (peress li talbiet identiċi deħlin jiġu moqdija mill-cache, li hija eqreb lejn il-klijent mis-server tal-web li fil-fatt qed iservi l-kontenut, li jirriżulta f'aktar veloċi trasferimenti tad-dejta) u t-traffiku tan-netwerk ukoll (tnaqqis tal-ammont ta’ bandwidth użat, li jiffranka l-flus jekk qed tħallas għat-traffiku).

Tista' tkun trid tirreferi għas-sit web ta' Squid għal aktar dokumentazzjoni (kun żgur li tiċċekkja wkoll il-wiki), imma toqgħodx lura milli tikkuntattjana jekk għandek xi mistoqsijiet jew kummenti. Inkunu ferħanin li nisimgħu mingħandek!