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.
- 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:
- L-elementi ACL huma linji direttivi li jibdew bil-kelma “acl” u jirrappreżentaw tipi ta’ testijiet li jsiru kontra kwalunkwe transazzjoni ta’ talba.
- 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.
- L-ewwel kelma, acl, tindika li din hija linja direttiva ta' element ACL.
- It-tieni kelma, localhost jew localnet, speċifika isem għad-direttiva.
- 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.
- 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:
- 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ġ.
- 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.
- 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).
- casesensitive fuq jindika li l-ismijiet tal-utent u l-passwords huma sensittivi għall-każ.
- realm jirrappreżenta t-test tad-djalogu ta' awtentikazzjoni li se jintuża biex jawtentika lill-klamari.
- 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.
- ufs huwa l-format tal-ħażna tal-Klamar.
- /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).
- 1000 huwa l-ammont (f'MB) li għandu jintuża taħt dan id-direttorju.
- 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>.
- Id-direttiva maximum_object_size tispeċifika d-daqs massimu ta' oġġetti permessi fil-cache.
- 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!