Stilla Squid Proxy Server með takmarkaðan aðgang og setja upp viðskiptavini til að nota proxy - Part 5


Linux Foundation löggiltur verkfræðingur er hæfur fagmaður sem hefur sérfræðiþekkingu til að setja upp, stjórna og leysa netþjónustu í Linux kerfum og hefur umsjón með hönnun, innleiðingu og áframhaldandi viðhaldi kerfisins- breiður arkitektúr.

Við kynnum Linux Foundation vottunaráætlunina.

Í 1. hluta af þessari seríu sýndum við hvernig á að setja upp squid, proxy-skyndiminni fyrir vefþjóna. Vinsamlegast skoðaðu þá færslu (tengill hér að neðan) áður en þú heldur áfram ef þú hefur ekki sett upp smokkfisk á vélinni þinni ennþá.

  1. Hluti 1 – Settu upp netþjónustu og stilltu sjálfvirka ræsingu við ræsingu

Í þessari grein munum við sýna þér hvernig á að stilla Squid proxy-þjóninn til að veita eða takmarka internetaðgang og hvernig á að stilla http-biðlara, eða vefvafra, til að nota þann proxy-þjón.

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

Við skulum muna að í einföldu máli er proxy-netþjónn milliliður á milli einnar (eða fleiri) biðlaratölva og ákveðinnar netauðlindar, algengasta er aðgangur að internetinu. Með öðrum orðum, proxy-þjónninn er tengdur á annarri hliðinni beint við internetið (eða við beini sem er tengdur við internetið) og hinum megin við net viðskiptavinatölva sem munu fá aðgang að veraldarvefnum í gegnum hann.

Þú gætir verið að velta fyrir þér, hvers vegna ætti ég að vilja bæta enn einum hugbúnaðinum við netinnviðina mína?

1. Squid geymir skrár frá fyrri beiðnum til að flýta fyrir flutningum í framtíðinni. Segjum til dæmis að client1 hali niður CentOS-7.0-1406-x86_64-DVD.iso af internetinu. Þegar client2 biður um aðgang að sömu skránni getur squid flutt skrána úr skyndiminni í stað þess að hlaða henni niður aftur af netinu. Eins og þú getur giskað á geturðu notað þennan eiginleika til að flýta fyrir gagnaflutningum á neti tölva sem þurfa tíðar uppfærslur af einhverju tagi.

2. ACLs (Aðgangsstýringarlistar) gera okkur kleift að takmarka aðgang að vefsíðum og/eða fylgjast með aðganginum fyrir hvern notanda. Þú getur takmarkað aðgang miðað við vikudag eða tíma dags, eða lén, til dæmis.

3. Að fara framhjá vefsíum er gert mögulegt með því að nota vefumboð sem beðið er um og sem skilar umbeðnu efni til viðskiptavinar, í stað þess að biðlarinn biðji um það beint á internetið.

Segjum sem svo að þú sért skráður inn á client1 og viljir fá aðgang að www.facebook.com í gegnum bein fyrirtækisins þíns. Þar sem vefsvæðið gæti verið læst af reglum fyrirtækisins þíns geturðu í staðinn tengst proxy-netþjóni og látið hann biðja um aðgang að www.facebook.com. Fjarlægt efni er síðan skilað til þín í gegnum proxy-netþjóninn aftur, framhjá blokkunarreglum fyrirtækisins þíns.

Stilling smokkfisks – Grunnatriðin

Aðgangsstýringarkerfi Squid vefþjónsins samanstendur af tveimur mismunandi hlutum:

  1. ACL þættirnir eru tilskipunarlínur sem byrja á orðinu „acl“ og tákna tegundir prófana sem eru gerðar á móti hvaða beiðni sem er.
  2. aðgangslistareglurnar samanstanda af leyfa eða neita aðgerð sem fylgt er eftir af fjölda ACL þátta og eru notaðar til að gefa til kynna hvaða aðgerð eða takmörkun þarf að framfylgja fyrir tiltekna beiðni. Þær eru hakaðar í röð og listaleit lýkur um leið og ein reglan er samsvörun. Ef regla hefur marga ACL þætti er hún útfærð sem Boolean OG aðgerð (allir ACL þættir reglunnar verða að vera samsvörun til að reglan sé samsvörun).

Aðalstillingarskrá Squid er /etc/squid/squid.conf, sem er ~5000 línur að lengd þar sem hún inniheldur bæði stillingarleiðbeiningar og skjöl. Af þeirri ástæðu munum við búa til nýja squid.conf skrá með aðeins þeim línum sem innihalda stillingarleiðbeiningar okkur til hægðarauka, sleppum tómum línum eða athugasemdum. Til að gera það munum við nota eftirfarandi skipanir.

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

Og svo,

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

OR

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

Opnaðu nú nýstofnaða squid.conf skrána og leitaðu að (eða bættu við) eftirfarandi ACL þáttum og aðgangslistum.

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

Línurnar tvær hér að ofan tákna grunndæmi um notkun ACL þátta.

  1. Fyrsta orðið, acl, gefur til kynna að þetta sé tilskipunarlína fyrir ACL frumefni.
  2. Annað orðið, localhost eða localnet, tilgreinir heiti fyrir tilskipunina.
  3. Þriðja orðið, src í þessu tilviki, er ACL frumefnistegund sem er notuð til að tákna IP-tölu viðskiptavinar eða fjölda vistfönga, í sömu röð. Þú getur tilgreint einn gestgjafa með IP (eða hýsingarheiti, ef þú ert með einhvers konar DNS upplausn) eða eftir netfangi.
  4. Fjórða færibreytan er síunarröksemd sem er \fóðrað í tilskipunina.

Línurnar tvær hér að neðan eru reglur um aðgangslista og tákna skýra útfærslu á ACL tilskipunum sem áður voru nefndar. Í fáum orðum gefa þær til kynna að veita ætti http aðgang ef beiðnin kemur frá staðarnetinu (localnet), eða frá localhost. Sérstaklega hvað er leyfilegt staðarnet eða staðbundin hýsilföng? Svarið er: þær sem tilgreindar eru í localhost og localnet tilskipunum.

http_access allow localnet
http_access allow localhost

Á þessum tímapunkti geturðu endurræst Squid til að beita öllum breytingum sem bíða.

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

og stilltu síðan biðlaravafra á staðarnetinu (192.168.0.104 í okkar tilfelli) til að fá aðgang að internetinu í gegnum proxy-þjóninn þinn sem hér segir.

1. Farðu í valmyndina Breyta og veldu valkostinn Stillingar.

2. Smelltu á Ítarlegt, síðan á flipann Netkerfi og að lokum á Stillingar...

3. Athugaðu Handvirkt proxy-stillingar og sláðu inn IP-tölu proxy-þjónsins og gátt þar sem hann hlustar eftir tengingum.

Athugaðu að sjálfgefið hlustar Squid á gátt 3128, en þú getur hnekið þessari hegðun með því að breyta aðgangslista reglunni sem byrjar á http_port (með því að sjálfgefið er það http_port 3128).

4. Smelltu á Í lagi til að beita breytingunum og þá ertu kominn í gang.

Þú getur nú staðfest að staðarnetsþjónninn þinn hafi aðgang að internetinu í gegnum proxy-þjóninn þinn eins og hér segir.

1. Í biðlaranum þínum skaltu opna útstöð og slá inn,

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

Sú skipun mun sýna núverandi IP tölu viðskiptavinar þíns (192.168.0.104 á eftirfarandi mynd).

2. Í biðlaranum þínum skaltu nota vafra til að opna hvaða vefsíðu sem er (linux-console.net í þessu tilfelli).

3. Í þjóninum, keyra.

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

og þú munt fá lifandi sýn á beiðnir sem berast í gegnum Squid.

Að takmarka aðgang viðskiptavinar

Segjum sem svo að þú viljir beinlínis neita aðgangi að þessari tilteknu IP tölu viðskiptavinar, en samt halda aðgangi fyrir restina af staðarnetinu.

1. Skilgreindu nýja ACL tilskipun sem hér segir (ég hef nefnt hana ubuntuOS en þú getur nefnt hana hvað sem þú vilt).

acl ubuntuOS src 192.168.0.104

2. Bættu ACL tilskipuninni við localnet access listann sem er þegar til staðar, en settu upphrópunarmerki á undan henni. Þetta þýðir, \Leyfðu netaðgangi viðskiptavinum sem passa við ACL tilskipun staðarnetsins nema þá sem passar við ubuntuOS tilskipunina.

http_access allow localnet !ubuntuOS

3. Nú þurfum við að endurræsa Squid til að geta beitt breytingum. Síðan ef við reynum að vafra um einhverja síðu munum við komast að því að aðgangi er hafnað núna.

Stilling smokkfisks – fínstilling

Til að takmarka aðgang að Squid eftir léni munum við nota dstdomain leitarorðið í ACL tilskipun, eins og hér segir.

acl forbidden dstdomain "/etc/squid/forbidden_domains"

Þar sem forbidden_domains er venjuleg textaskrá sem inniheldur lénin sem við viljum meina aðgang að.

Að lokum verðum við að veita Squid aðgang fyrir beiðnir sem passa ekki við tilskipunina hér að ofan.

http_access allow localnet !forbidden

Eða kannski viljum við aðeins leyfa aðgang að þessum síðum á ákveðnum tíma dags (10:00 til 11:00 am) aðeins á mánudögum (M), Miðvikudagur (W) og Föstudagur (F).

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

Að öðrum kosti verður aðgangi að þessum lénum lokað.

Smokkfiskur styður nokkra auðkenningaraðferðir (Basic, NTLM, Digest, SPNEGO og Oauth) og hjálpartæki (SQL gagnagrunnur, LDAP, NIS, NCSA, svo eitthvað sé nefnt). Í þessari kennslu munum við nota grunnauðkenningu með NCSA.

Bættu eftirfarandi línum við /etc/squid/squid.conf skrána þína.

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

Athugið: Í CentOS 7 er NCSA viðbótin fyrir smokkfisk að finna í /usr/lib64/squid/basic_nsca_auth, svo breyttu í samræmi við línuna fyrir ofan.

Nokkrar skýringar:

  1. Við þurfum að segja Squid hvaða auðkenningarhjálparforrit á að nota með auth_param tilskipuninni með því að tilgreina heiti forritsins (líklegast, /usr/lib/squid/ncsa_auth eða /usr/lib64/squid/basic_nsca_auth), auk allra skipanalínuvalkosta (/etc/squid/passwd í þessu tilfelli) ef þörf krefur.
  2. /etc/squid/passwd skráin er búin til með htpasswd, tæki til að stjórna grunnauðkenningu í gegnum skrár. Það gerir okkur kleift að bæta við lista yfir notendanöfn (og samsvarandi lykilorð þeirra) sem verður leyft að nota Squid.
  3. skilríkissttl 30 mínútur mun krefjast þess að slá inn notandanafn og lykilorð á 30 mínútna fresti (þú getur líka tilgreint þetta tímabil með klukkustundum).
  4. hættir og hástafir á gefur til kynna að notendanöfn og lykilorð séu hástafaviðkvæm.
  5. ríki táknar texta auðkenningargluggans sem verður notaður til að sannvotta fyrir smokkfiski.
  6. Að lokum er aðgangur aðeins veittur þegar staðgengill sannvottun (umboð_auth REQUIRED) tekst.

Keyrðu eftirfarandi skipun til að búa til skrána og bæta við skilríkjum fyrir notanda gacanepa (slepptu -c fánanum ef skráin er þegar til).

# htpasswd -c /etc/squid/passwd gacanepa

Opnaðu vafra í biðlaravélinni og reyndu að fletta á hvaða síðu sem er.

Ef auðkenning tekst, er veittur aðgangur að umbeðinni auðlind. Að öðrum kosti verður aðgangi hafnað.

Notkun skyndiminni til að flýta fyrir gagnaflutningi

Einn af sérkennum Squid er möguleikinn á að vista tilföng sem beðið er um af vefnum yfir á disk til að flýta fyrir framtíðarbeiðnum um þessa hluti annaðhvort frá sama viðskiptavini eða öðrum.

Bættu við eftirfarandi leiðbeiningum í squid.conf skrána þína.

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

Nokkrar skýringar á ofangreindum tilskipunum.

  1. ufs er Squid geymslusniðið.
  2. /var/cache/squid er möppu á efstu stigi þar sem skyndiminni skrár verða geymdar. Þessi mappa verður að vera til og vera skrifanleg af Squid (Squid mun EKKI búa til þessa möppu fyrir þig).
  3. 1000 er upphæðin (í MB) sem á að nota í þessari möppu.
  4. 16 er fjöldi undirmöppur á fyrsta stigi, en 256 er fjöldi 2. stigs undirmöppum innan /var/spool/squid.
  5. maximum_object_size tilskipunin tilgreinir hámarksstærð leyfilegra hluta í skyndiminni.
  6. refresh_pattern segir Squid hvernig á að takast á við sérstakar skráargerðir (.mp4 og .iso í þessu tilfelli) og hversu lengi það ætti að geymdu umbeðna hluti í skyndiminni (2880 mínútur = 2 dagar).

Fyrsta og annað 2880 eru neðri og efri mörk, í sömu röð, á því hversu lengi hlutir án skýrs fyrningartíma teljast nýlegir og verða því þjónað af skyndiminni, en 0% er hlutfallið af aldri hlutanna (tími frá síðustu breytingu) sem hver hlutur án skýrs fyrningartíma telst nýlegur.

Fyrsti biðlarinn (IP 192.168.0.104) hleður niður 71 MB .mp4 skrá á 2 mínútum og 52 sekúndum.

Annar viðskiptavinur (IP 192.168.0.17) hleður niður sömu skránni á 1,4 sekúndum!

Það er vegna þess að skráin var birt úr Squid skyndiminni (tilgreint með TCP_HIT/200) í öðru tilvikinu, öfugt við fyrsta tilvikið, þegar henni var hlaðið niður beint frá internetið (táknað af TCP_MISS/200).

HIT og MISS leitarorðin ásamt 200 http svarkóðanum gefa til kynna að skráin hafi verið birt með góðum árangri í bæði skiptin en skyndiminni var HIT og missti í sömu röð. Þegar skyndiminni er ekki hægt að afgreiða beiðni af einhverjum ástæðum, þá reynir Squid að þjóna henni af internetinu.

Niðurstaða

Í þessari grein höfum við fjallað um hvernig á að setja upp Squid web caching proxy. Þú getur notað proxy-þjóninn til að sía innihald með völdum forsendum, og einnig til að draga úr leynd (þar sem sams konar beiðnir berast frá skyndiminni, sem er nær viðskiptavininum en vefþjónninn sem raunverulega þjónar innihaldinu, sem leiðir til hraðari gagnaflutninga) og netumferð líka (dregur úr magni notaðrar bandbreiddar, sem sparar þér peninga ef þú ert að borga fyrir umferð).

Þú gætir viljað vísa á Squid vefsíðuna til að fá frekari skjöl (vertu viss um að athuga líka wiki), en ekki hika við að hafa samband við okkur ef þú hefur einhverjar spurningar eða athugasemdir. Við munum vera meira en ánægð að heyra frá þér!