Tito leto Olupin Aṣoju Squid pẹlu Wiwọle ihamọ ati Eto Awọn alabara Lati Lo Aṣoju - Apakan 5


Onimọ-ẹrọ Ifọwọsi Linux Foundation kan Linux jẹ ọjọgbọn ti oye ti o ni oye lati fi sori ẹrọ, ṣakoso, ati ṣoro awọn iṣẹ nẹtiwọọki ni awọn ọna ṣiṣe Linux, ati pe o ni itọju apẹrẹ, imuse ati itọju ti nlọ lọwọ ti eto- jakejado faaji.

Ifihan Eto Ijẹrisi Foundation Linux.

Ninu Apakan 1 ti jara yii, a fihan bi a ṣe le fi squid sori ẹrọ, olupin caching aṣoju fun awọn alabara wẹẹbu. Jọwọ tọka si ifiweranṣẹ naa (ọna asopọ ti a fun ni isalẹ) ṣaaju tẹsiwaju ti o ko ba ti fi squid sori ẹrọ rẹ sibẹsibẹ.

  1. Apá 1 - Fi sii Awọn iṣẹ Nẹtiwọọki ati tito leto Ibẹrẹ Aifọwọyi ni Bata

Ninu àpilẹkọ yii, a yoo fi ọ han bi o ṣe le tunto olupin aṣoju Squid lati funni tabi ni ihamọ iraye si Intanẹẹti, ati bii o ṣe le tunto alabara http kan, tabi aṣawakiri wẹẹbu, lati lo olupin aṣoju yẹ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

Jẹ ki a ranti pe, ni awọn ọrọ ti o rọrun, olupin aṣoju wẹẹbu jẹ alamọja laarin ọkan (tabi diẹ sii) awọn kọnputa alabara ati orisun orisun nẹtiwọki kan, wọpọ julọ ni iraye si Intanẹẹti. Ni awọn ọrọ miiran, a ti sopọ olupin aṣoju ni ẹgbẹ kan taara si Intanẹẹti (tabi si olulana ti o ni asopọ si Intanẹẹti) ati ni apa keji si nẹtiwọọki ti awọn kọnputa alabara ti yoo wọle si Wẹẹbu Agbaye nipasẹ rẹ.

O le ṣe iyalẹnu, kilode ti Emi yoo fẹ lati ṣafikun ohun elo miiran ti software si amayederun nẹtiwọọki mi?

1. Squid n tọju awọn faili lati awọn ibeere iṣaaju lati ṣe iyara awọn gbigbe iwaju ”. Fun apẹẹrẹ, ṣebi client1 gbigba lati ayelujara CentOS-7.0-1406-x86_64-DVD.iso lati Intanẹẹti. Nigbati client2 beere fun iraye si faili kanna, squid le gbe faili lati kaṣe rẹ dipo gbigba lati ayelujara lẹẹkansii lati Intanẹẹti. Bi o ṣe le gboju, o le lo ẹya yii lati yara awọn gbigbe data ni iyara nẹtiwọọki ti awọn kọnputa ti o nilo awọn imudojuiwọn loorekoore ti iru kan.

2. ACLs ( Awọn atokọ Iṣakoso Wiwọle ) gba wa laaye lati ni ihamọ iraye si awọn oju opo wẹẹbu, ati/tabi ṣe atẹle iraye si lori ipilẹ olumulo kan. O le ni ihamọ wiwọle ti o da lori ọjọ ọsẹ tabi akoko ti ọjọ, tabi ašẹ, fun apẹẹrẹ.

3. Ṣiṣakoja awọn asẹ wẹẹbu ṣee ṣe nipasẹ lilo aṣoju wẹẹbu kan si eyiti awọn ibeere ṣe ati eyiti o pada akoonu ti o beere fun alabara kan, dipo ki olubara naa beere taara si Intanẹẹti.

Fun apẹẹrẹ, ṣebi o ti wọle client1 ati pe o fẹ lati wọle si www.facebook.com nipasẹ olulana ile-iṣẹ rẹ. Niwọn igba ti o le ni idiwọ aaye naa nipasẹ awọn ilana ile-iṣẹ rẹ, o le dipo sopọ si olupin aṣoju wẹẹbu ki o jẹ ki o beere wiwọle si www.facebook.com . Lẹhinna o pada si akoonu nipasẹ olupin aṣoju wẹẹbu lẹẹkansii, yipo awọn ilana didena olulana ile-iṣẹ rẹ.

Tito leto Squid - Awọn ipilẹ

Eto iṣakoso iwọle ti olupin aṣoju wẹẹbu Squid ni awọn paati oriṣiriṣi meji:

  1. Awọn eroja ACL jẹ awọn laini itọsọna ti o bẹrẹ pẹlu ọrọ “ acl ” ati awọn aṣoju awọn iru awọn idanwo ti a ṣe lodi si eyikeyi ibeere ibere.
  2. Awọn ofin atokọ iwọle iwọle ni gba laaye tabi sẹ igbese ti o tẹle pẹlu nọmba awọn eroja ACL, ati pe wọn lo lati tọka iṣẹ wo tabi idiwọn ni lati ni ipa fun ibeere ti a fun. Wọn ṣayẹwo wọn ni aṣẹ, ati ṣe atokọ wiwa fopin si ni kete ti ọkan ninu awọn ofin ba jẹ ere-idije. Ti ofin kan ba ni awọn eroja ACL lọpọlọpọ, o ti ṣe imuse bi boolean ATI isẹ (gbogbo awọn eroja ACL ti ofin gbọdọ jẹ ibaramu ki ofin naa le baamu).

Faili iṣeto akọkọ ti Squid jẹ /etc/squid/squid.conf , eyiti o jẹ awọn ila ~ 5000 ni gigun niwon o pẹlu awọn itọsọna iṣeto ati awọn iwe aṣẹ mejeeji. Fun idi eyi, a yoo ṣẹda tuntun squid.conf faili pẹlu awọn ila nikan ti o ni awọn itọsọna iṣeto fun irọrun wa, nlọ ni ofo tabi awọn ila asọye. Lati ṣe bẹ, a yoo lo awọn ofin wọnyi.

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

Ati igba yen,

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

OR

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

Bayi, ṣii tuntun ti a ṣẹda squid.conf faili, ki o wa (tabi ṣafikun) awọn nkan wọnyi ACL ati awọn atokọ iwọle.

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

Awọn ila meji loke n ṣe aṣoju apẹẹrẹ ipilẹ ti lilo awọn eroja ACL .

  1. Ọrọ akọkọ, acl , tọka pe eyi jẹ laini itọsọna eroja ACL.
  2. Ọrọ keji, localhost tabi localnet , ṣọkasi orukọ kan fun itọsọna naa.
  3. Ọrọ kẹta, src ninu ọran yii, jẹ iru eroja ACL ti o lo lati ṣe aṣoju adiresi IP alabara kan tabi ibiti awọn adirẹsi wa, lẹsẹsẹ. O le ṣalaye ogun kan ṣoṣo nipasẹ IP (tabi orukọ olupin, ti o ba ni iru iru ipinnu DNS ti a ṣe) tabi nipasẹ adirẹsi nẹtiwọọki.
  4. paramita kẹrin jẹ ariyanjiyan sisẹ ti\" jẹun " si itọsọna naa.

Awọn ila meji ti o wa ni isalẹ ni awọn ofin atokọ iwọle o si ṣe aṣoju imuse ti o han kedere ti awọn itọsọna ACL ti a mẹnuba tẹlẹ. Ni awọn ọrọ diẹ, wọn fihan pe Iwọle http yẹ ki a fun ni ti ibeere ba wa lati nẹtiwọọki agbegbe ( localnet ), tabi lati localhost . Ni pataki kini nẹtiwọọki agbegbe ti a gba laaye tabi awọn adirẹsi alejo agbegbe? Idahun si ni: awọn ti a ṣalaye ninu localhost ati awọn itọsọna localnet.

http_access allow localnet
http_access allow localhost

Ni aaye yii o le tun bẹrẹ Squid lati le lo eyikeyi awọn ayipada to isunmọ.

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

ati lẹhinna tunto aṣawakiri alabara kan ninu nẹtiwọọki agbegbe ( 192.168.0.104 ninu ọran wa) lati wọle si Intanẹẹti nipasẹ aṣoju rẹ bi atẹle.

1. Lọ si akojọ Ṣatunkọ ki o yan aṣayan Awọn ayanfẹ .

2. Tẹ lori To ti ni ilọsiwaju , lẹhinna lori taabu Nẹtiwọọki , ati nikẹhin lori Eto

3. Ṣayẹwo Iṣeduro aṣoju afọwọyi ki o tẹ Adirẹsi IP ti olupin aṣoju ati ibudo sii nibiti o ti ngbọ fun awọn isopọ.

Akiyesi pe ni aiyipada, Squid n tẹtisi lori ibudo 3128 , ṣugbọn o le fagile ihuwasi yii nipa ṣiṣatunṣe atokọ iwọle ofin ti o bẹrẹ pẹlu http_port (nipasẹ aiyipada o ka http_port 3128 ).

4. Tẹ O dara lati lo awọn ayipada naa o dara lati lọ.

O le rii daju bayi pe alabara nẹtiwọọki ti agbegbe rẹ n wọle si Intanẹẹti nipasẹ aṣoju rẹ bi atẹle.

1. Ninu alabara rẹ, ṣii ebute kan ki o tẹ,

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

Aṣẹ yẹn yoo han lọwọlọwọ Adirẹsi IP ti alabara rẹ ( 192.168.0.104 ni aworan atẹle).

2. Ninu alabara rẹ, lo aṣawakiri wẹẹbu kan lati ṣii eyikeyi oju opo wẹẹbu ti a fun ( linux-console.net ninu ọran yii).

3. Ninu olupin, ṣiṣe.

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

ati pe iwọ yoo ni iwo laaye ti awọn ibeere ti a nṣe nipasẹ Squid .

Wiwọle Ihamọ Nipa Onibara

Nisisiyi o gba pe o fẹ lati fojuhan iwọle si adirẹsi IP alabara pataki yẹn, lakoko ti o n ṣetọju iraye fun iyoku ti nẹtiwọọki agbegbe.

1. Ṣalaye itọnisọna tuntun ACL bi atẹle (Mo ti sọ orukọ rẹ ni ubuntuOS ṣugbọn o le fun lorukọ ohunkohun ti o fẹ).

acl ubuntuOS src 192.168.0.104

2. Ṣafikun itọsọna ACL si atokọ wiwọle netnetnet ti o wa tẹlẹ, ṣugbọn ṣaju rẹ pẹlu ami iyasilẹ kan. Eyi tumọ si,\" Gba iraye si Intanẹẹti si awọn alabara ibaramu itọsọna ACL agbegbe naa ayafi ti eyi ti o baamu itọsọna ubuntuOS ".

http_access allow localnet !ubuntuOS

3. Bayi a nilo lati tun Squid bẹrẹ lati le lo awọn ayipada. Lẹhinna ti a ba gbiyanju lati lọ kiri si aaye eyikeyi a yoo rii pe a sẹ wiwọle si ni bayi.

Tito leto Squid - Itanran Tuntun

Lati ni ihamọ wiwọle si Squid nipasẹ ašẹ a yoo lo ọrọ dstdomain ninu itọsọna ACL , bi atẹle.

acl forbidden dstdomain "/etc/squid/forbidden_domains"

Nibiti eewọ_awọn ofin ti jẹ faili ọrọ lasan ti o ni awọn ibugbe ti a fẹ kọ lati wọle si.

Lakotan, a gbọdọ funni ni iraye si Squid fun awọn ibeere ti ko baamu itọsọna ti o wa loke.

http_access allow localnet !forbidden

Tabi boya a yoo fẹ gba laaye laaye si awọn aaye wọnyẹn ni akoko kan pato ti ọjọ ( 10: 00 titi di 11: 00 am ) nikan ni Ọjọ aarọ (M) , Ọjọru (W) , ati Ọjọ Ẹtì (F) .

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

Bibẹkọkọ, iraye si awọn ibugbe wọnyẹn yoo di.

Squid ṣe atilẹyin ọpọlọpọ awọn ilana idanimọ (Ipilẹ, NTLM, Digest, SPNEGO, ati Oauth) ati awọn oluranlọwọ (ibi ipamọ data SQL, LDAP, NIS, NCSA, lati darukọ diẹ). Ninu ẹkọ yii a yoo lo idanimọ Ipilẹ pẹlu NCSA .

Ṣafikun awọn ila wọnyi si faili /etc/squid/squid.conf rẹ.

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

Akiyesi: Ni CentOS 7, ohun itanna NCSA fun squid ni a le rii ni/usr/lib64/squid/basic_nsca_auth, nitorinaa yipada ni deede ni ila loke.

Awọn alaye diẹ:

  1. A nilo lati sọ fun Squid iru eto oluranlọwọ idanimọ lati lo pẹlu itọsọna auth_param nipa siso orukọ eto naa (o ṣeeṣe, /usr/lib/squid/ncsa_auth tabi/usr/lib64/squid/basic_nsca_auth), pẹlu eyikeyi awọn aṣayan laini aṣẹ (/etc/squid/passwd ninu ọran yii) ti o ba jẹ dandan.
  2. Faili /etc/squid/passwd ni a ṣẹda nipasẹ htpasswd , ọpa lati ṣakoso ijẹrisi ipilẹ nipasẹ awọn faili. Yoo gba wa laaye lati ṣafikun atokọ ti awọn orukọ olumulo (ati awọn ọrọ igbaniwọle ti o baamu) ti yoo gba laaye lati lo Squid.
  3. ijẹrisisttl iṣẹju 30 yoo nilo titẹ orukọ olumulo ati ọrọ igbaniwọle rẹ ni gbogbo ọgbọn ọgbọn iṣẹju (o le ṣafihan aarin akoko yii pẹlu awọn wakati pẹlu).
  4. ọran-ọrọ ti o tọka tọka pe awọn orukọ olumulo ati ọrọ igbaniwọle ni o ṣe akiyesi ọran.
  5. ijọba ṣe aṣoju ọrọ ti ifọrọwerọ idanimọ ti yoo ṣee lo lati jẹrisi si squid.
  6. Lakotan, a fun ni aye nikan nigbati ijẹrisi aṣoju ( proxy_auth REQUIRED ) ṣaṣeyọri.

Ṣiṣe aṣẹ atẹle lati ṣẹda faili naa ati lati ṣafikun awọn iwe-ẹri fun olumulo gacanepa (fi asia -c silẹ ti faili naa ba wa tẹlẹ).

# htpasswd -c /etc/squid/passwd gacanepa

Ṣii aṣawakiri wẹẹbu kan ninu ẹrọ alabara ki o gbiyanju lati lọ kiri si eyikeyi aaye ti a fun.

Ti ijẹrisi ba ṣaṣeyọri, a fun ni iraye si orisun ti o beere. Tabi ki, wiwọle yoo sẹ.

Lilo Kaṣe lati Gbigbe Gbigbe Data

Ọkan ninu awọn ẹya iyatọ ti Squid jẹ iṣeeṣe ti awọn orisun kaṣe ti a beere lati oju opo wẹẹbu si disk lati le yara awọn ibeere ọjọ iwaju ti awọn nkan wọnyẹn boya nipasẹ alabara kanna tabi awọn omiiran.

Ṣafikun awọn itọsọna wọnyi ninu faili squid.conf rẹ.

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

Awọn alaye diẹ diẹ ninu awọn itọsọna loke.

  1. ufs ni ọna kika ipamọ Squid.
  2. /var/kaṣe/squid jẹ itọsọna oke-ipele nibiti awọn faili kaṣe yoo wa ni fipamọ. Ilana yii gbọdọ wa tẹlẹ ki o jẹ kikọ nipasẹ Squid (Squid KO yoo ṣẹda itọsọna yii fun ọ).
  3. 1000 ni iye (ni MB) lati lo labẹ itọsọna yii.
  4. 16 ni nọmba awọn ipin-ipele ipele 1, lakoko ti 256 jẹ nọmba awọn ipin-ipele ipele-keji laarin /var/spool/squid .
  5. Itọsọna o pọju_Nkan_size ṣalaye iwọn ti o pọ julọ ti awọn ohun ti a gba laaye ninu kaṣe naa.
  6. itunra_atẹtẹ sọ fun Squid bi o ṣe le ba awọn iru faili kan pato ṣe ( .mp4 ati .iso ninu ọran yii) ati fun igba melo ni o yẹ ki o ṣe tọju awọn ohun ti o beere ni kaṣe (iṣẹju 2880 = ọjọ meji 2).

Akọkọ ati keji 2880 ni awọn aala kekere ati oke, lẹsẹsẹ, lori bawo ni awọn ohun pipẹ laisi akoko ipari ti o han gbangba yoo ṣe akiyesi laipẹ, ati bayi ni kaṣe yoo ṣe, lakoko ti 0% jẹ ipin ogorun ti awọn ọjọ-ori awọn ohun (akoko lati iyipada to kẹhin) pe ohunkan kọọkan laisi akoko ipari ipari yoo han ni aipẹ.

Onibara akọkọ ( IP 192.168.0.104 ) ṣe igbasilẹ faili 71 MB .mp4 ni iṣẹju 2 ati awọn aaya 52.

Onibara keji ( IP 192.168.0.17 ) ṣe igbasilẹ faili kanna ni iṣẹju-aaya 1.4!

Iyẹn jẹ nitori pe a ṣiṣẹ faili naa lati Kaṣe Squid (itọkasi nipasẹ TCP_HIT/200 ) ni ọrọ keji, ni idakeji si apeere akọkọ, nigbati o gba lati ayelujara taara lati Intanẹẹti (aṣoju nipasẹ TCP_MISS/200 ).

Awọn koko-ọrọ HIT ati MISS , pẹlu 200 http koodu idahun, tọka pe a ti ṣiṣẹ faili naa ni awọn akoko mejeeji, ṣugbọn ibi ipamọ naa jẹ HIT ati Sonu lẹsẹsẹ. Nigbati ko ba le ṣe ibeere nipasẹ kaṣe fun idi diẹ, lẹhinna Squid gbiyanju lati sin lati Intanẹẹti.

Ipari

Ninu àpilẹkọ yii a ti jiroro bi a ṣe le ṣeto Aṣoju aṣoju oju-iwe ayelujara Squid O le lo olupin aṣoju lati ṣe àlẹmọ awọn akoonu nipa lilo awọn iyasilẹ ti o yan, ati tun lati dinku airi (nitori awọn ibeere ti nwọle ti o jọra ni yoo ṣiṣẹ lati kaṣe, eyiti o sunmọ ọdọ alabara ju olupin ayelujara ti n ṣiṣẹ akoonu gangan, eyiti o mu ki yiyara) awọn gbigbe data) ati ijabọ nẹtiwọọki bakanna (dinku iye bandiwidi ti a lo, eyiti o fi owo pamọ ti o ba n sanwo fun ijabọ).

O le fẹ lati tọka si oju opo wẹẹbu Squid fun awọn iwe siwaju (rii daju lati tun ṣayẹwo wiki naa), ṣugbọn ma ṣe ṣiyemeji lati kan si wa ti o ba ni ibeere tabi awọn asọye eyikeyi. A yoo ni idunnu pupọ lati gbọ lati ọdọ rẹ!