A Inginer certificat Linux Foundationeste un profesionist calificat care are expertiza în instalarea, gestionarea și depanarea serviciilor de rețea în Linux sisteme și este responsabil de proiectarea, implementarea și întreținerea continuă a arhitecturii la nivel de sistem.
Vă prezentăm Programul de certificare Linux Foundation.
În Partea 1 din această serie, am arătat cum se instalează squid, un server proxy de cache pentru clienții web. Vă rugăm să consultați această postare (linkul de mai jos) înainte de a continua dacă nu ați instalat încă calmarul pe sistemul dvs.
În acest articol, vă vom arăta cum să configurați serverul proxy Squid pentru a acorda sau restricționa accesul la Internet și cum să configurați un client http sau un browser web pentru a utiliza acel server proxy.
Sistem de operare: Debian Wheezy 7.5. Adresa IP: 192.168.0.15. Nume gazdă: dev2.gabrielcanepa.com.ar.
Sistem de operare: Ubuntu 12.04. Adresă IP: 192.168.0.104 Nume gazdă: ubuntuOS.gabrielcanepa.com.ar.
Sistem de operare: CentOS-7.0-1406. Adresă IP: 192.168.0.17 Nume gazdă: dev1.gabrielcanepa.com.ar.
Să ne amintim că, în termeni simpli, un server proxy web este un intermediar între unul (sau mai multe) computere client și o anumită resursă de rețea, cel mai frecvent fiind accesul la Internet. Cu alte cuvinte, serverul proxy este conectat pe o parte direct la Internet (sau la un router conectat la Internet) și de cealaltă parte la o rețea de computere client care vor accesa World Wide Web prin aceasta.
S-ar putea să vă întrebați, de ce aș vrea să adaug încă o bucată de software la infrastructura mea de rețea?
1. Squid stochează fișiere din solicitările anterioare pentru a accelera transferurile viitoare. De exemplu, să presupunem client1 descărcări CentOS-7.0-1406-x86_64-DVD.iso de pe internet. Cand client2 solicită acces la același fișier, calmarul poate transfera fișierul din memoria cache în loc să îl descarce din nou de pe Internet. După cum puteți ghici, puteți utiliza această caracteristică pentru a accelera transferurile de date într-o rețea de computere care necesită actualizări frecvente de un fel.
2. ACL-uri (Liste de control acces) ne permite să restricționăm accesul la site-uri web și / sau să monitorizăm accesul pe bază de utilizator. Puteți restricționa accesul în funcție de ziua săptămânii sau de ora din zi sau de domeniu, de exemplu.
3. Ocolirea filtrelor web este posibil prin utilizarea unui proxy web căruia i se fac cereri și care returnează conținutul solicitat către un client, în loc să îl solicite clientului direct pe internet.
De exemplu, să presupunem că sunteți conectat client1 și doresc să acceseze www.facebook.com prin routerul companiei dvs. Deoarece site-ul poate fi blocat de politicile companiei dvs., vă puteți conecta la un server proxy web și puteți solicita acces la acesta www.facebook.com. Conținutul la distanță vă este apoi returnat din nou prin serverul proxy web, ocolind politicile de blocare ale routerului companiei dvs.
Schema de control al accesului serverului proxy web Squid constă din două componente diferite:
Fișierul principal de configurare al Squid este /etc/squid/squid.conf, care este ~5000 linii mult timp, deoarece include atât directive de configurare, cât și documentație. Din acest motiv, vom crea un nou calamar.conf fișier cu numai liniile care includ directive de configurare pentru confortul nostru, lăsând în afara liniile goale sau comentate. Pentru a face acest lucru, vom folosi următoarele comenzi.
# mv /etc/squid/squid.conf /etc/squid/squid.conf.bkp.
Și apoi,
# grep -Eiv '(^ # | ^ $)' /etc/squid/squid.conf.bkp SAU # grep -ve ^ # -ve ^ $ /etc/squid/squid.conf.bkp> / etc / squid / calamar.conf.
Acum, deschideți noul creat calamar.conf fișier și căutați (sau adăugați) următoarele ACL elemente și liste de acces.
acl localhost src 127.0.0.1/32. acl localnet src 192.168.0.0/24.
Cele două rânduri de mai sus reprezintă un exemplu de bază al utilizării ACL elemente.
Cele două rânduri de mai jos sunt lista de acces reguli și reprezintă o implementare explicită a ACL directivele menționate anterior. În câteva cuvinte, ele indică asta acces http ar trebui acordată dacă cererea provine din rețeaua locală (localnet), sau din gazdă locală. Mai exact, care este rețeaua locală permisă sau adresele de gazdă locale? Răspunsul este: cele specificate în directivele localhost și localnet.
http_access permite localnet. http_access permite localhost.
În acest moment puteți reporni Calamar pentru a aplica orice modificări în așteptare.
# service squid restart [Distribuții bazate pe Upstart / sysvinit] # systemctl reporniți squid.service [distribuții bazate pe systemd]
și apoi configurați un browser client în rețeaua locală (192.168.0.104 în cazul nostru) pentru a accesa Internetul prin intermediul proxy-ului dvs. după cum urmează.
1. Du-te la Editați | × meniul și alegeți Preferințe opțiune.
2. Click pe Avansat, apoi pe Reţea filă și, în cele din urmă, pe Setări…
3. Verifica Configurare proxy manuală și introduceți adresa IP a serverului proxy și a fișierului port unde ascultă conexiunile.
Notă Că implicit, Squid ascultă pe port 3128, dar puteți suprascrie acest comportament editând fișierul lista de acces regulă care începe cu http_port (în mod implicit se citește http_port 3128).
4. Clic Bine pentru a aplica modificările și ești bine să mergi.
Acum puteți verifica dacă clientul dvs. de rețea locală accesează Internetul prin proxy, după cum urmează.
1. În clientul dvs., deschideți un Terminal și tip,
# adresa IP arată eth0 | grep -Ei '(inet. * eth0)'
Această comandă va afișa curentul adresa IP clientului dvs. (192.168.0.104 în imaginea următoare).
2. În clientul dvs., utilizați un browser web pentru a deschide un anumit site web (www.tecmint.com în acest caz).
3. În server, rulați.
# tail -f /var/log/squid/access.log.
și veți obține o vizualizare în direct a solicitărilor primite Calamar.
Acum, să presupunem că doriți să refuzați în mod explicit accesul la acea adresă IP a clientului, menținând în același timp accesul pentru restul rețelei locale.
1. Definiți un nou ACL directivă după cum urmează (am numit-o ubuntuOS dar îl poți numi oricum vrei).
acl ubuntuOS src 192.168.0.104.
2. Adaugă ACL directivă către acces localnet listă care este deja la locul său, dar prefațând-o cu un semn de exclamare. Asta înseamnă, "Permiteți accesul la internet pentru clienții care se potrivesc cu directiva ACL localnet, cu excepția celui care se potrivește cu directiva ubuntuOS”.
http_access permite localnet! ubuntuOS.
3. Acum trebuie să repornim Squid pentru a aplica modificări. Apoi, dacă încercăm să căutăm pe orice site, vom constata că accesul este refuzat acum.
Pentru a restricționa accesul la Squid în funcție de domeniu, vom utiliza fișierul dstdomain cuvânt cheie într-un ACL directivă, după cum urmează.
acl forbidden dstdomain "/ etc / squid / forbidden_domains"
Unde domenii_interzise este un fișier text simplu care conține domeniile la care dorim să refuzăm accesul.
În cele din urmă, trebuie să acordăm acces la Squid pentru cererile care nu corespund directivei de mai sus.
http_access permite localnet! interzis.
Sau poate că vom dori să permitem accesul la site-urile respective doar într-un anumit moment al zilei (10:00 - 11:00) doar pe Luni (L), Miercuri (V), și Vineri (F).
acl câteva zile Ziua MWF 10: 00-11: 00. http_access permite unele zile interzise. http_access refuz interzis.
În caz contrar, accesul la aceste domenii va fi blocat.
Squid acceptă mai multe mecanisme de autentificare (Basic, NTLM, Digest, SPNEGO și Oauth) și ajutoare (bază de date SQL, LDAP, NIS, NCSA, pentru a numi câteva). În acest tutorial vom folosi autentificarea de bază cu NCSA.
Adăugați următoarele rânduri la /etc/squid/squid.conf fişier.
auth_param program de bază / usr / lib / squid / ncsa_auth / etc / squid / passwd. auth_param credentialsttl de bază 30 de minute. auth_param de bază sensibil la majuscule. auth_param domeniu de bază Squid proxy-cache server web pentru seria LFCE a lui Tecmint. acl ncsa proxy_auth NECESAR. http_access permit ncsa.
Notă: În CentOS 7, pluginul NCSA pentru calmar poate fi găsit în /usr/lib64/squid/basic_nsca_auth, deci schimbați în consecință în linia de mai sus.
Câteva precizări:
Rulați următoarea comandă pentru a crea fișierul și pentru a adăuga acreditări pentru utilizator gacanepa (omiteți fișierul -c semn dacă fișierul există deja).
# htpasswd -c / etc / squid / passwd gacanepa.
Deschideți un browser web în computerul client și încercați să navigați către orice site dat.
Dacă autentificarea reușește, se acordă acces la resursa solicitată. În caz contrar, accesul va fi refuzat.
Una dintre caracteristicile distinctive ale Squid este posibilitatea de a memora în cache resursele solicitate de pe web pe disc pentru a accelera cererile viitoare ale acelor obiecte, fie de către același client, fie de către alții.
Adăugați următoarele directive în calamar.conf fişier.
cache_dir ufs / var / cache / squid 1000 16 256. maximum_object_size 100 MB. refresh_pattern. * \. (mp4 | iso) 2880.
Câteva clarificări ale directivelor de mai sus.
Primul și al doilea 2880 sunt limite inferioare și, respectiv, superioare pentru cât timp obiectele fără un timp de expirare explicit vor fi considerate recente și, astfel, vor fi servite de cache, întrucât 0% este procentul de vârstă al obiectelor (timpul de la ultima modificare) pe care fiecare obiect fără timp de expirare explicit va fi considerat recent.
Primul client (IP 192.168.0.104) descarcă a 71 MB .mp4 fișier în 2 minute și 52 de secunde.
Al doilea client (IP 192.168.0.17) descarcă același fișier în 1,4 secunde!
Acest lucru se datorează faptului că fișierul a fost transmis de la Cache de calamar (indicat de TCP_HIT / 200) în al doilea caz, spre deosebire de prima instanță, când a fost descărcat direct de pe Internet (reprezentat de TCP_MISS / 200).
LOVIT și MISS cuvinte cheie, împreună cu 200 http codul de răspuns, indicați că fișierul a fost difuzat cu succes de ambele ori, dar cache-ul a fost HIT și respectiv Missed. Când o cerere nu poate fi servită de cache dintr-un motiv oarecare, atunci Squid încearcă să o servească de pe Internet.
În acest articol am discutat despre cum să configurați un Proiect de cache pentru cache web. Puteți utiliza serverul proxy pentru a filtra conținutul utilizând criteriile alese și, de asemenea, pentru a reduce latența (din moment ce solicitări de intrare identice sunt servite din cache, care este mai aproape de client decât serverul web care servește de fapt conținutul, rezultând mai rapid transferuri de date) și traficul de rețea (reducerea cantității de lățime de bandă utilizată, ceea ce vă economisește bani dacă plătiți pentru trafic).
Poate doriți să vă referiți la Site-ul web Squid pentru documentație suplimentară (asigurați-vă că verificați și wiki), dar nu ezitați să ne contactați dacă aveți întrebări sau comentarii. Vom fi mai mult decât bucuroși să auzim de tine!