Introducere în Squid: Configurare pas cu pas

Logo-ul Squid și Tux

Squid este un alt filtru la nivel de aplicație care poate completa iptables. Squid este un server proxy web în cache, este foarte popular și gratuit și este multiplataformă. Deși poate fi utilizat pentru a îmbunătăți performanța conexiunilor la Internet, poate fi folosit și în scopuri de securitate. De când a început proiectul în anii 90, Squid a fost foarte avansat și acum ți-l prezentăm, astfel încât să știi cum să îl folosești.

Pentru instalare, puteți accesa fișierul site-ul oficial al proiectului și selectați pachetele binare pentru sistemul dvs. de operare sau distribuție. Dacă doriți să-l instalați din pachetul de cod sursă prin compilare, de asemenea aveți acea opțiune. Tarballurile disponibile sunt tar.gz, tar.bz2 și tar.xz. Dacă nu știți cum să instalați, puteți accesa articolul despre care edităm în acest blog cum se instalează orice pachet de la Linux. ochi! Dacă aveți un Debian sau un derivat și ați văzut că este instalat cu sudo "apt-get install squid", vă poate da o eroare, deoarece trebuie să înlocuiți "squid" cu "squid3" pentru ca acesta să aibă efect. ..

Acum trecem direct la acțiune explicând câteva exemple despre cum să utilizați Squid pentru a ne proteja echipamentele. Înainte aș dori să explic că Squid se bazează pe ACL-uri, adică pe lista de control acces sau pe lista de control acces, adică liste care detaliază permisiunile de a controla în acest caz fluxul de rețea și de a implementa filtre similare cu cele ale iptables, dar la nivel de aplicație.

În mod normal, după instalare, este inclus un fișier de configurare care poate fi găsit în /etc/squid3/squid.conf și tocmai acesta trebuie să edităm cu un editor precum nano sau gedit. În el putem genera regulile noastre de filtrare, deși există opțiuni cache_dir, cache_mem și http_port, le vom folosi pentru regulile noastre de securitate. Un alt detaliu este că acest fișier specifică portul implicit utilizat de serviciul Squid, care implicit este 3128 (consultați linia sau directiva „http_port 3128” și eliminați # pentru a-l activa). Dacă doriți, îl puteți schimba pe un alt port ca 8080 ... Și un alt lucru necesar este să configurați numele gazdei, căutați comentariul „TAG: Visible_hostname” și veți vedea o linie „visible_hostname” unde trebuie să vă puneți numele gazdei.

Pentru a vă cunoaște numele de gazdă, puteți introduce terminalul:

hostname

Și numele care apare îl adăugați la linia care nu ar trebui să fie precedată de #, astfel încât să nu fie ignorată ca un comentariu. Adică ar arăta astfel:

visible_hostname hostname_have_you_aparut

Dacă vedeți fișierul de configurare, veți vedea că este foarte comentat, dacă doriți să înlocuiți o regulă creată, puteți începe linia cu # și îl transformi într-un comentariu, cu care Squid îl ignoră, pentru al pune din nou în funcțiune, ștergi # și gata. De fapt, există multe reguli create și comentate pe care le puteți utiliza eliminând #. Deci nu trebuie să ștergeți și să rescrieți regulile. Ei bine, pentru a adăuga o anumită regulă sau filtru, trebuie să aibă un ACL și o directivă care să indice ce trebuie făcut.

Apropo, când eliminați un # pentru a activa o regulă, asigurați-vă că nu lăsați spații la începutul liniei. De exemplu:

Drum greșit:

http_port 3128

Drumul corect:

http_port 3128

Nu ai auzit nimic? Ei bine, nu vă faceți griji, cu un exemplu vei vedea totul mult mai bine. Imaginează-ți asta:

blocarea acl url_regex ca facebook
http_access refuza blocarea

Ce înseamnă această regulă este că acl cu numele „blocare” va interzice accesul la adresa URL care conține „facebook” (prin urmare, dacă încercăm să introducem Facebook, va sări peste o eroare în browser). Dacă în loc de „refuza” folosiți „permite”, ați permite accesul în loc să îl interziceți. Puteți utiliza, de asemenea,! Pentru a exclude, de exemplu, să presupunem că doriți să permiteți accesul la lista1, dar nu și la lista2:

http_access allow lista1 !lista2

Un alt exemplu ar putea fi crearea unui fișier / etc / squid3 / ips permis și în ea salvați o listă de adrese IP pe care dorim să le permitem accesul. De exemplu, să presupunem că conținutul IP-urilor permise este:

192.168.30.1

190.169.3.250

192.168.1.26

Și apoi creăm acl pentru a permite accesul la aceste adrese IP:

acl nuevaregla src "/etc/squid3/ipspermitidas"

Un exemplu destul de practicImaginați-vă că computerul dvs. este utilizat de copii sub 18 ani și doriți să restricționați accesul la anumite site-uri de conținut pentru adulți. Primul lucru este să creați un fișier numit / etc / squid3 / list cu conținutul:

adult

porno

sex

Poringa

Și acum în  fișierul squid.conf punem următoarea regulă:

acl denegados url_regex "/etc/squid3/lista"

http_access allow !denegados

Cum vedeți am folosit permit ceea ce, în principiu, este să permită, dar dacă te uiți, am adăugat! a nega, prin urmare, ar fi echivalent cu a pune:

acl denegados url_regex "/etc/squid3/lista"

http_access deny denegados

Pot fi create și liste, nu numai pentru nume de domenii sau IP-uri așa cum am făcut noi, puteți pune și domenii și, de exemplu, restricționează accesul la domenii precum .xxx, .gov etc. Să vedem un exemplu bazat pe regula anterioară. Creăm un fișier / etc / squid3 / domains care are:

.edu

.es

. Org

Și acum regula noastră, pentru a refuza accesul la lista de site-uri interzise pe care le creăm, dar permițând accesul la adresele URL cu aceste domenii:

acl denegados url_regex "/etc/squid3/lista" 
acl permitidos dstdomain "/etc/squid3/dominios"

http_access allow !denegados dominios

EXTENSIE:

Îmi pare rău, când am văzut comentariile am realizat asta Mi-a lipsit principalul lucru. Tocmai am pus exemple despre modul în care este folosit și am uitat să spun că pentru a porni serverul Squid:

sudo service squid3 start

Înainte se ridica cu „/etc/init.d/squid start”, dar acum trebuie să folosiți această altă linie pe care am pus-o. La fel cum fișierul de configurare nu mai este în /etc/squid/squid.conf, ci în /etc/squid3/squid.conf. Ok, odată ce politicile de filtrare sunt create și începând cu acesta, trebuie să configurăm și browserul, de exemplu, dacă utilizați Mozilla Firefox sau derivate, puteți accesa meniul de configurare (știți, cele trei bare) și apoi la Preferințe, Avansat, și în fila Rețea, faceți clic pe Configurare în secțiunea Conexiune. Acolo, selectăm configurația proxy manuală și punem adresa noastră IP și portul pe care Squid îl folosește, în acest caz 3128. De asemenea, selectați „Utilizați același proxy pentru orice” și ieșiți din salvarea modificărilor.

Vă rugăm să Nu uitați să vă lăsați comentariile, îndoieli sau orice vrei ... Deși este un tutorial cu mult peste Squid, sper să te ajute.


17 comentarii, lasă-le pe ale tale

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Nicolas el a spus

    mulțumesc !, de ajutor.

  2.   Jimmy Olano el a spus

    Din nou foarte bine condensat pentru un subiect oarecum complex, tot spun „nivel utilizator: mediu”, ar trebui să știți câteva noțiuni despre „rețele”.

    Consider cu umilință că ar trebui adăugată opțiunea de configurare a browserului nostru pentru a utiliza „proxy”, dar întrucât această intrare este o „INTRODUCERE la Squid”, vom fi foarte conștienți de următoarea? livrare (în cele din urmă și cu riscul de a fi enervant, REȚINEȚI-VĂ să nu „înlocuiți” paginile web bancare și / sau instituțiile financiare pe care le utilizați în casa sau compania dvs.).

    1.    Isaac PE el a spus

      Bună, mulțumesc pentru comentarii. Da, IPTABLES și Squid sunt prea groși pentru a crea un articol care să le explice în profunzime și trebuie să vă limitați la exemple de zi cu zi ...

      Dar ai absolut dreptate, l-am adăugat acum pentru a configura proxy-ul, îl planificasem și am uitat. Vina mea.

      Salutari si multumesc !!

      1.    Jimmy Olano el a spus

        Uffff „portbagaj” îmi pare rău că nu ați realizat principalul lucru:
        PORNIȚI SERVICIUL :-( fără asta „nu există mătușa voastră” -mă iertați pentru discursul colocvial- EXTINDERE FOARTE SUCCESĂ! 8-)

        {faceți-l fix la fiecare boot, modificând „/ sbin / init”:
        http: // www. ubuntu-es.org/node/ 13012 # .Vsr_SUJVIWw}

        {o altă modalitate mai ușoară este utilizarea „update-rc.d”:
        https: // parbaedlo. wordpress.com/201 3/03/07 / setting-start-and-stop-of-services-linux-update-rc-d /}

        Am adăugat spații la linkuri, le șterg și veți naviga ;-)

        MULȚUMESC FOARTE MULT PENTRU ATENȚIE.

  3.   ALBERT el a spus

    ȘTIRI LINUX: Atac asupra Linux Mint: infectați instalatorii și compromiteți acreditările utilizatorului

    http://www.muylinux.com/2016/02/21/ataque-a-linux-mint

    1.    azpe el a spus

      L-am publicat deja, dar nu trimiteți spam pe alte pagini aici, vă rog

  4.   ALBERT el a spus

    ȘTIRI ANDROID: GM Bot, troianul Android din care provine Mazar

    http://www.redeszone.net/2016/02/21/gm-bot-el-troyano-para-android-del-que-deriva-mazar/

  5.   Hernan el a spus

    Bună Jimmy, cum te descurci pentru ca calmarul să nu te caute în acele pagini? Ar fi frumos dacă comentați opțiunea transparentă, care evită plictiseala configurării proxy pe fiecare computer

    1.    Jimmy Olano el a spus

      Bună întrebare, am instalat un CAPTCHA în software gratuit pe paginile web ale clienților mei:
      (http: // www. ks7000. net. ve / 2015/04/03 / un-captcha-easy-and-simple-to-implement /
      -Omil, NU este „spam” sau auto-promovare, este potrivit-)
      și îmi imaginez că atunci când folosesc Squid aceste imagini NU sunt reîncărcate pentru că am pus același nume pe ele -ea, pot genera și nume aleatorii, nu mă gândisem la asta, până acum- și având același nume, Squid returnează ceea ce are în „cache”.

      Evident, funcția principală a „proxy-ului” este de a economisi lățimea de bandă cu imaginile - cea mai grea dintr-o pagină web- [i] în ipoteza că aceste imagini sunt statice, nu se modifică în timp, ceea ce este adevărat în 99% din cazuri [/ i].

      Dar în CAPTCHA, deoarece „nu există rulare”, trebuie să eliminăm stocarea anterioară și să returnăm întotdeauna o nouă imagine.

      Cât despre bănci, înțeleg că cea mai mare din Spania este «Caixa», deoarece vom crea o regulă EXEMPLU:

      acl caixa dstdomain .lacaixa.es

      Unde:
      acl -> comanda pentru a crea regula (recititi articolul dlui Isaac, paragrafele de mai sus).

      caixa -> numele regulii.

      dtsdomain -> opțiunea „tip” pentru a indica faptul că ne referim la un domeniu, IMPORTANT punctul la început ( http://ww w. rezolva. com / squid / squid24s1 / access_controls.php)

      domeniu (domenii) -> Îmi imaginez că putem adăuga domeniile de care avem nevoie, separate printr-un spațiu; vorbind despre spații, le-am inserat în link-urile web indicate, eliminați-le și veți naviga (pagini în engleză).

      Sper că cunoștințele prezentate aici vă sunt utile, datorită LinuxAdictos!

    2.    Jimmy Olano el a spus

      BINE, pentru a răspunde la întrebarea TRANSPARENȚEI din Squid din nou, insist că trebuie să aveți cunoștințe de nivel intermediar și, din motive didactice, voi rezuma cât mai mult posibil articolul următor (în engleză) despre care consider că vorbește foarte bine despre subiect:

      http: // ww w.deckle.co. uk / squid-users-guide /transparent-caching-proxy.html

      Note:
      -Am adăugat spații la link-uri pentru a evita pingback-ul de la mine (nu am absolut nimic de-a face cu echipa). Linux Adictos, prin urmare nu sunt autorizat să efectuez respectiva acțiune).
      - ASTA DESPRE TRANSPARENȚĂ NU STIU! (nu m-au învățat, zic eu).
      -Ajutându-vă și voi, mă ajut și eu, acest lucru este cool în cantitate! ?

      Ei bine, cu toate acestea, să trecem la treabă:

      Tocmai i-am sugerat domnului Isaac să extindă configurarea browserelor noastre cu proxy-ul instalat și a făcut-o foarte amabil (wow, unde își găsește acest om timp să facă atâtea lucruri?).

      În conformitate cu această schemă, utilizarea Squid ESTE OPȚIONAL: fiecare utilizator al rețelei noastre locale va fi însărcinat să-și facă treaba, dar puteți paria „argintiu tare față de peseta de hârtie” că există un „script bash” care poate fi instalat prin SSH pe diferite computere care rulează GNU / Linux.

      PRE-CERINȚĂ: ca serverul nostru Squid funcționează așa cum ne învață domnul Isaac în această postare, dacă l-am testat deja și i-am pus o „sarcină de lucru” și funcționează bine, putem continua să mergem mai departe.

      ÎN SISTEMUL DE TRANSPARENȚĂ:

      PRIMUL.- Calmarul nostru trebuie să fie ruta implicită „gateway” în „eth0” sau „wlan0” - vă amintiți cunoștințele de nivel mediu? -, bine, noi le stabilim acolo (se face implicit cu DHCP, prin urmare, trebuie să configurați serverul unui astfel de serviciu:
      http: // en.wikipe dia.org/wiki/ Dynamic_Host_Configuration_Protocol).

      Trebuie să planificăm să configurăm, în caz de eșec, să redirecționăm direct traficul către modemul (modurile) nostru direct dacă Squid - computerul pe care rulează - este supraîncărcat cu volumul său de lucru - și să folosim tipul de modem (bridge) „bridge” astfel încât ei ies afară, acest lucru se realizează prin realizarea unui „script” care este declanșat în respectivul eveniment și care configurează serverul nostru DHCP - care ar trebui să fie instalat pe un computer diferit de calmarul nostru-.

      NOTĂ: computerul nostru cu Squid va depinde întotdeauna de adresa sa IP de la DHCP DAR în același timp va avea un anumit „control” cu serverul DHCP menționat. Dacă doriți să lucrați cu adrese IP fixe, de putere, puteți, dar atunci când adăugați mai multe computere SAU ÎNLOCUIȚI unele, va trebui să le configurați din nou și nu este ideea (citiți cu încântare:
      ht tps: // pheno barbital. wordpress.com/2012/07/23/the-12-reasons-by-who-a-administrator-of-systems-lazy-is-a-good-administrator/)
      O ALTĂ NOTĂ (vezi al doilea punct): modemul (modurile) și / sau dispozitivele router trebuie să dezactiveze funcția DHCP și că acestea sunt guvernate de serverul DCHP (-care vă asigur că o altă intrare iese din aceasta pentru a ne arăta cum se montează serviciul menționat)

      AL DOILEA.- Trebuie să filtrăm traficul către serverul nostru Squid, dacă avem mai multe routere dispersate care acoperă o zonă de rețea fără fir „wifi”, este încă o rețea locală, dar de dimensiuni medii. În esență, este la fel ca primul punct DAR dacă avem dispozitive diferite SAU CHIAR subrețele, trebuie să le configurăm și ele, așa că aveți grijă cu cei dintre noi care lucrează „zdrobind fierele de călcat” în companiile mari.

      TREI. - În GNU / Linux care găzduiește Squid, trebuie să redirecționăm porturile și să configurăm „firewall-ul” (citiți articolul anterior IPTables
      http://www.linuxadictos.com/introduccion-a-iptables-configura-un-firewall-en-linux.html )

      iptables -t nat -A PREROUTING -p TCP –dport 80 -j REDIRECT –la-port 3128

      și către IPFW:

      / sbin / ipfw adăugați 3 fwd 127.0.0.1,3128 tcp de la oricare la 80

      Inutil să spunem, NU PUTEM rula un server Apache sau Ngix pe acel port 80 - portul implicit al paginilor web - SENSE COMUN INDICĂ să nu punem mai multă încărcare pe computerul nostru cu Squid - dependent de spațiul pe disc pentru „cache” -.

      A PATRA. - Trebuie să ne configurăm serverul Squid și să-i spunem că funcționează în acel mod modificând „/etc/squid/squid.conf” cu nano sau editorul care vă place cel mai mult:

      http_port 3128 transparent

      De asemenea, trebuie să activăm redirecționarea pachetelor în „/etc/sysctl.conf”:

      net.ipv4.ip_forward = 1
      net.ipv6.conf.all.forwarding = 1

      Această ultimă linie dacă avem IPv6, este bine să o configurăm o dată în viitor.

      În cele din urmă, reporniți serviciul Squid așa cum a recomandat dl Isaac mai sus și reporniți și serviciul de rețea:

      /etc/init.d/procps.sh reporniți

      UNELE CREDINȚE DE ERRATA (sau unele prostii din partea mea) anunță-mă pe aceeași cale, criticile și comentariile tale sunt binevenite;
      DOMNUL. ISAAC ESTE MODERATORUL care va avea ultimul cuvânt în această „luptă”.

  6.   Jimmy Olano el a spus

    În acest scurt videoclip putem vedea cum să configurăm Mozilla pentru a utiliza un server proxy, cu excepția faptului că folosește o mașină virtuală cu ReactOS, dar este scurt și cred că ILLUSTRAt ceea ce doriți să configurați aici (link dezactivat cu spații, eliminați-le și navigați):

    ht tps: / / www. Youtube. com / watch? v = st47K5t7s-Q

  7.   Profesor el a spus

    Tocmai am început să vă urmăresc postul de radio, am fost 2 zile .. și conținut foarte bun ..
    Salutări din Mexic .. (Sunt profesor și bobul meu de nisip este să folosesc opensource)

  8.   ari el a spus

    Aș vrea să mă ajuți. Vreau să acord privilegiul unui utilizator să vadă Facebook și ca ceilalți să aibă restricțiile deja configurate și cum să permită utilizatorilor de internet în anumite momente. Aș dori să mă sfătuiți, vă mulțumesc

  9.   Belkis el a spus

    Ari, ceea ce mi-au explicat în acest sens este că mașina pe care o dorești nu este restricționată, trebuie lăsată afară, dar până atunci am explicația, sunt și neexperimentat

  10.   biruitor el a spus

    Noapte buna, scuzati-ma, poate intrebarea mea este cam de baza dar hei, am instalat calamar si am configurat pe un centos 5.4, am instalat vin si ultrasurf, ceea ce intentionez sa fac este sa impart internetul de la ultrasurf cu calamar, fac la fel pe o mașină Windows XP cu FreeProxy și ultrasurf și o pot împărtăși fără probleme, dar nu știu cum să o fac în Linux

  11.   daniel andrada el a spus

    Te consult, am o configurație ca a ta, în cazul meu redirecționez portul 80 la 8080 unde rulează calmarul. Problema este că unii utilizatori lasă această configurație pe computerul lor și accesează prin portul 80, deși nu toate serviciile. Asta cu iptables. Ai idee unde ar fi problema?

  12.   Mer el a spus

    Foarte util și bine explicat. Mulțumiri!

    Am o întrebare, când vreau să creez un acl, unde o fac, adică în ce linie a fișierului de configurare? Și ar trebui să pun imediat 2 rânduri sub comanda http_access așa cum aratăți în postarea dvs.? Sau unde?

    Multumesc din nou!! Salutari!