Introducció a Squid: configuració pas a pas

Squid logo i Tux

Squid és un altre filtre a nivell d'aplicació que pot complementar a iptables. Squid és un servidor intermediari per a web amb memòria cau, és molt popular i lliure, a més és multiplataforma. Tot i que es pot usar per millorar el rendiment de les connexions a Internet, també es pot usar amb fins de seguretat. Des que es va iniciar el projecte en els anys 90, molt a avançat Squid i ara te la presentem perquè sàpigues com usar-la.

Per a la seva instal·lació, Pots accedir a la web oficial de el projecte i seleccionar els paquets binaris per al teu sistema operatiu o distribució. Si vols instal·lar des del paquet de codi font compilant, també tens aquesta opció. Els tarballs disponibles són tar.gz, tar.bz2 i tar.xz. Si no saps com instal·lar, pots acudir a l'article que vam editar en aquest blog sobre com instal·lar qualsevol paquet des de Linux. Ull! si tens un Debian o derivat i has vist que s'instal·la amb suo «apt-get install squid», pot ser que et d'un error, perquè has de substituir «squid» per «squid3» perquè tingui efecte ...

Ara passem directament a l'acció explicant alguns exemples de com utilitzar Squid per protegir el nostre equip. Abans m'agradaria explicar que Squid es basa en ACLs, és a dir en Acces Control List o llista de control d'accés, és a dir, unes llistes en què es detallen els permisos per controlar en aquest cas el flux de xarxa i implementar filtres similars a els de iptables però a nivell d'aplicacions.

Normalment, després de la instal·lació s'inclou un fitxer de configuració que es troba en /etc/squid3/squid.conf i és aquest el que hem de editar amb un editor com nano o gedit. En ell podem generar les nostres regles de filtrat, encara que existeixen les opcions cache_dir, cache_mem i http_port, nosaltres farem servir aquesta última per a les nostres regles de seguretat. Un altre detall és que en aquest fitxer s'especifica el port per defecte que utilitza el servei Squid, que per defecte és 3128 (veure la línia o directiva «http_port 3128» i treu-li el # per activar-la). Si vols pots canviar-lo a un altre port com el 8080 ... I una altra cosa necessària és configurar el hostname, busca el comentari «TAG: Visible_hostname» i veuràs una línia «visible_hostname» on has de posar el hostname.

Per saber el teu hostname, pots teclejar al terminal:

hostname

I el nom que et aparegui el afegeixes a la línia que no ha d'estar precedida per # perquè no sigui ignorada com un comentari. És a dir, quedaria així:

visible_hostname nom_hostname_que_et_hagi_aparegut

Si veus el el fitxer de configuració, veuràs que està molt comentat, si vols anul·lar una regla creada, pots iniciar la línia amb # i la transformes en un comentari, de manera que Squid la ignora, per tornar-la a posar en servei, esborres el # i llest. De fet, hi ha moltes regles creades i posades com a comentari que pots fer servir llevant-li #. Així no hauràs d'esborrar i tornar a escriure regles. Bé, per afegir una regla o filtre concret, aquesta ha de tenir una ACL i una directiva que indiqui el que s'ha de fer.

Per cert, quan treguis XNUMX # per activar una regla, assegura't de no deixar espais a l'inici de la línia. Per exemple:

Forma errònia:

http_port 3128

Forma correcta:

http_port 3128

¿No t'has assabentat de res? Doncs no et preocupis, amb un exemple ho veuràs tot molt millor. Imagina això:

acl bloqueig url_regex es facebook
http_access deny bloqueig

El que vol dir aquesta regla és que la acl amb nom «bloqueig» va prohibir l'accés a la URL que contingui «facebook» (per tant si intentem entrar a Facebook ens saltrará un error al navegador). Si en lloc de «deny» fas servir «allow», permetries l'accés en comptes de prohibir-lo. També es pot fer servir el paràmetre! per excloure, per exemple, imagina que vols permetre l'accés a llista1 però no a llista2:

http_access allow lista1 !lista2

Un altre exemple podria ser crear un fitxer / etc / squid3 / ipspermitidas i en ell guardar una llista d'IPs que volem permetre l'accés. Per exemple, imagina que el contingut de ipspermitidas és:

192.168.30.1

190.169.3.250

192.168.1.26

I després vam crear la acl per permetre l'accés a aquestes IPs:

acl nuevaregla src "/etc/squid3/ipspermitidas"

Un exemple bastant pràctic, Imagina que el teu equip el fan servir nens menors de 18 anys i vols restrigir l'accés a certs llocs de contingut adult. El primer és crear un fitxer anomenat / etc / squid3 / llista amb el contingut:

adult

pornografia

sexe

Poringa

I ara en  el fitxer squid.conf posem la següent regla:

acl denegados url_regex "/etc/squid3/lista"

http_access allow !denegados

com veus hem fet servir allow que en principi és per permetre, però si et fixes hem afegit! per negar, per tant, seria equivalent a posar:

acl denegados url_regex "/etc/squid3/lista"

http_access deny denegados

També es poden crear llistes, no només de noms de domini o IP com hem fet, també pots posar dominis i ara restrigir l'accés a dominis com .xxx, .gov, etc. Vegem un exemple basant-nos en la regla anterior. Creem un fitxer / etc / squid3 / dominis que tingui:

.edu

.es

.org

I ara la nostra regla, Per denegar l'accés a la llista de llocs prohibits que vam crear, però permtiendo l'accés a URL amb aquests dominis:

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

http_access allow !denegados dominios

AMPLIACIÓ:

Perdó, a l'veure els comentaris m'he adonat que m'ha faltant el més important. M'he limitat a posar exemples de com es fa servir i vaig oblidar dir que per iniciar el servidor Squid:

sudo service squid3 start

Abans s'aixecava amb «/etc/init.d/squid start», però ara has de fer servir aquesta altra línia que t'he posat. Igual que el fitxer de configuració ja no està en /etc/squid/squid.conf, sinó en /etc/squid3/squid.conf. D'acord, un cop creades les polítiques de filtrat, i iniciar-, també hem de configurar el navegador, per exemple, si fas servir Mozilla Firefox o derivats, pots dirigir-te a menú de configuració (ja saps, les tres barretes), i després a Preferències, Avançat , ia la pestanya Xarxa, prem a Configuració de l'apartat Connexió. Allà, vam seleccionar Configuració manual d'el proxy i posem la nostra IP i el port que estigui fent servir Squid, en aquest cas 3128. Indica les també «Utilitza el mateix servidor intermediari per a tot» i sal guardant els canvis.

Si us plau, no oblidis deixar els teus comentaris, Dubtes o el que vulguis ... Encara que és un tutorial molt per sobre de Squid, espero que et serveixi d'ajuda.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Nicolas va dir

    gràcies!, útil.

  2.   Jimmy Olano va dir

    DE NOU molt bé condensat per a una matèria una mica complexa, segueixo dient «nivell d'usuari: mig», s'han concertat algunes nocions sobre «xarxes».

    Humilment considero que s'hauria d'agregar l'opció de configurar el nostre navegador perquè utilitzi el «intermediari», però com aquesta entrada és una «INTRODUCCIÓ a Squid» doncs estarem molt pendents a l'¿propera? lliurament (finalment, i amb el risc de la meva persona emprenyar, RECORDAR no fer-li «proxy» a les pàgines web bancàries i / o institucions financera que useu en la vostra ques o empresa).

    1.    Isaac PE va dir

      Hola, gràcies pels comentaris. Sí, IPTABLES i Squid són massa espessos com per fer un article que els expliqui amb profunditat i has de limitar-te a posar exemples quotidians ...

      Però tens tota la raó, el de configurar el proxy ho he afegit ara, ho tenia previst i es va oblidar. Decisió meu.

      Una salutació i gràcies !!

      1.    Jimmy Olano va dir

        Uffff «tronc» perdó per no adonar-me del principal:
        INICIAR EL SERVEI :-( sense això «no hi ha la teva tia» -perdoneu-me per la parla col·loquial- 'encertadíssima AMPLIACIÓ! 8-)

        {Fer-ho fix en cada arrencada passa per modificar el «/ sbin / init»:
        http: // www. ubuntu-es.org/node/ 13012 # .Vsr_SUJVIWw}

        {Una altra manera més fàcil és usant «update-rc.d»:
        https: // parbaedlo. wordpress.com/201 3/03/07 / establint-arrencada-i-parada-de-serveis-linux-update-rc-d /}

        He agregat espais als enllaços, quitadlos i Navegareu ;-)

        MOLTES GRÀCIES PER LA SEVA ATENCIÓ.

  3.   ALBERT va dir

    NOTÍCIES LINUX: Atac a Linux Mint: infecten instal·ladors i comprometen credencials d'usuaris

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

    1.    Azpe va dir

      Ja ho vaig publicar, però no facis spam d'altres pàgines aquí si us plau

  4.   ALBERT va dir

    NOTÍCIES ANDROID: GM Bot, el troià per Android de què deriva Mazar

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

  5.   Hernan va dir

    Hola Jimmy, Com fas perquè squid no t'escorcolli aquestes pàgines ?. Estaria bo bo que comentin l'opció transparent, que evita el tedi de configurar proxy a cada ordinador

    1.    Jimmy Olano va dir

      Bona pregunta, jo li he instal·lat a les pàgines web dels meus clients un CAPTCHA en programari lliure:
      (Http: // www. Ks7000. Net. Veu / 2015/04/03/XNUMX-captcha-facil-i-senzill-de-implementar /
      -humildemente, NO és «spam» ni autopromoció, si ve a el cas donat-)
      i imagino que a l'utilitzar Squid aquestes imatges NO es recarreguen perquè els vaig col·locar el mateix nom -ea, que també puc generar noms aleatoris, no hi havia jo pensat en això, fins ara- i a l'tenir el mateix nom doncs Squid torna el que té a el «cau».

      Evidentment la funció principal de l' «proxy» és estalviar-nos ample de banda amb les imatges -el més pesat d'una pàgina web- [i] en el supòsit que aquestes imatges siguin estàtiques, no canviïn amb el temps, que és el que en el 99 % dels casos [/ i].

      Però en les CAPTCHA ja que «no hi ha marxa», hem d'eliminar el seu emmagatzematge previ i retribuir sempre una imatge nova.

      QUANT ALS BANCS, tinc entès el més gran a Espanya és «Caixa» doncs crearem una regla D'EXEMPLE:

      acl caixa dstdomain .lacaixa.es

      on:
      acl -> comando per a crear regla (rellegir article de el sr. Isaac, paràgrafs dalt).

      caixa -> nom de la regla.

      dtsdomain -> opció «type» per indicar que ens referim a un domini, IMPORTANT el puntet a l'inici ( http://ww w.visolve. com / squid / squid24s1 / access_controls.php)

      domini (s) -> doncs imagino que podem afegir els dominis que necessitem, separats per un espai; parlant d'espais dels he inserit en els enllaços web assenyalats, quitadlos i navegareu (pàgines en anglès).

      Espero els siguin útils els coneixements aquí presentats gràcies a LinuxAdictos!

    2.    Jimmy Olano va dir

      BÉ, per respondre la pregunta de la TRANSPARÈNCIA en Squid DE NOU insisteixo que s'ha de tenir coneixements de nivell mitjà i per raons didàctiques vaig a resumir a l'màxim el següent article (en anglès) que considero parla molt bé del tema:

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

      Notes:
      -He afegit espais als enllaços per evitar el pingback per part de la meva persona (no tinc res en absolut relació amb l'equip de Linux Adictos, per tant no estic autoritzat a realitzar aquesta acció).
      -Això DE LA TRANSPARÈNCIA JO NO HO SABIA! (No m'ho van ensenyar, dic).
      -Ayudandolos a vostès em va ajudar a mi mateix també, això mola en quantitat! ?

      Doncs bé, dit això, anem a el gra:

      JUSTAMENT li vaig suggerir al Sr. Isaac ampliar sobre el configurar els nostres navegadors amb el «proxy» instal·lat i molt amablement ho va fer (quina bàrbar, d'on treu temps aquest home per fer tantes coses?).

      Sota aquest esquema l'ús de l'Squid ÉS OPCIONAL: cada usuari de la nostra xarxa d'àrea local s'encarregarà de fer la seva feina, però podeu apostar «duros de plata contra pessetes de paper» que hi ha per allà algun «bash script» que pot ser instal·lat via SSH a diverses ordenares corrent GNU / Linux.

      PRE REQUISIT: que el nostre servidor Squid estigui funcionant tal com ho ensenya el Sr. Isaac en aquesta entrada, si ja ho vam provar i li vam ficar «càrrega de treball» i s'exerceix bé podem procedir a anar més enllà.

      SOTA EL ESQUEMA DE TRANSPARÈNCIA:

      PRIMER.- El nostre Squid ha de ser ruta predeterminada «gateway» en la nostra «eth0» o «wlan0» -¿recorden el de coneixements nivell mitjà? -, doncs bé allà el establim (es fa per defecte amb DHCP PER TANT també hem de configurar un servidor de tal servei:
      htt ps: // es.wikipe dia.org/wiki/ Dynamic_Host_Configuration_Protocol).

      Hem de preveure el configurar, en cas de fallada, redirigir tot el tràfic al nostre (s) mòdem (s) directament si Squid -el ordinador on corre- es veu sobrepassat en la seva càrrega de treball -i fer servir el (els) mòdem (s ) tipus «pont» perquè surtin a l'exterior, això s'aconsegueix fent un «script» que es dispari en aquest esdeveniment i configuri el nostre servidor DHCP -que hauria d'estar instal·lat en un odenador diferent a el del nostre Squid-.

      NOTA: el nostre ordinador amb Squid dependrà sempre la seva adreça IP de l'DHCP PERÒ alhora tindrà cert «control» amb aquest servidor DHCP. Si us ve de gust treballar amb adreces IP fixes, de poder, podeu, però quan agregueis més ordinadors O SUBSTITUIR algun haureu de configurar de nou i no és la idea (llegiu amb delit:
      ht tps: // pheno barbital. wordpress.com/2012/07/23/las-12-razones-por-las-que-un-administrador-de-sistemas-perezoso-es-un-buen-administrador/)
      UNA ALTRA NOTA (veure punt segon): el nostre (s) mòdem (s) i / o aparells encaminadors els hem de desactivar la funció DHCP i que ells es regeixin pel nostre servidor DHCP (-que us asseguro que d'això surt una altra entrada per ensenyar-nos com muntar dit servei-)

      SEGON.- Hem filtrar el tràfic cap al nostre servidor Squid, això si tenim diversos encaminadors dispersos que cobreixin una àrea de xarxa sense fils «wifi», segueix sent una xarxa d'àrea local però de mitjanes dimensions. Essencialment és el mateix de el punt primer PERÒ si tenim diversos aparells O FINS I TOT subxarxes doncs hem de configurar-les també, així que ojito amb els que treballem «picant els ferros» en empreses grans.

      TERCER.- En el nostre GNU / Linux que allotja a l'Squid hem redireccionar els ports i configurar el «tallafocs» (llegiu article 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 -to-port 3128

      i a l'IPFW:

      / Sbin / ipfw add 3 fwd 127.0.0.1,3128 tcp from any to any 80

      No cal dir que NO podem córrer un servidor Apache o Ngix en aquest port 80 -port per defecte de les pàgines web- El sentit comú INDICA no posar-li més càrrega al nostre ordinador amb Squid -pendents amb l'espai en disc per «cau» - .

      QUART.- El nostre servidor Squid hem de configurar i dir-li que està treballant en aquesta manera modificant «/etc/squid/squid.conf» amb nano o l'editor que més us agradi:

      http_port 3128 transparent

      Hem, a més, habilitar el reenviament de paquets en «/etc/sysctl.conf»:

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

      Aquesta última línia si és que tenim IPv6, és bo configurar-la d'una vegada a futur.

      Finalment reiniciar el servei Squid tal com recomana dalt el Sr. Isaac i reiniciar també el servei de xarxa:

      /etc/init.d/procps.sh restart

      ALGUNA FE D'ERRADA (o alguna burrada de la meva part) feu-m'ho saber per aquesta mateixa via, les seves crítiques i comentaris són benvinguts;
      SR. ISAAC ÉS EL MODERADOR qui tindrà l'última paraula en aquesta «lid».

  6.   Jimmy Olano va dir

    En aquest curt vídeo prodemos veure com configurar a Mozilla per utilitzar un servidor intermediari, amb l'excepció que utilitza una màquina virtual amb ReactOS, però és curt i penso IL·LUSTRA el que es desa configurar aquí (enllaç inutilitzat amb espais, quitadlos i Navegareu):

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

  7.   Professal va dir

    Acabat de començament a seguir el teu estació de ràdio, porto 2 dies .. i molt bon contingut ..
    salutacions des de Mèxic .. (sóc docent i el meu granet de sorra és utilitzar opensource)

  8.   ari va dir

    qusiera que m'ajudis vull donar el privilegi a un usuari de veure al facebook i que els altres estiguin amb les restriccions configurades ja i com habilitar en determinats horaris internet als usuaris voldria que em assessors gràcies

  9.   Belkis va dir

    Ari el que em van explicar a l'això és que la màquina que vols no aquest restringida ha de quedar fora, però fins alli llego la explicació també sóc inexperta en el tema

  10.   Vencedor va dir

    Bona nit disculpin tal veus és una mica bàsica la meva pregunta però bé, he instal·lat squid i configurat en un centos 5.4, instal wine i Ultrasurf, el que pretenc fer és compartir l'internet de Ultrasurf amb squid, faig el mateix en una màquina amb windows XP amb Freeproxy i Ultrasurf i puc compartir sense problema però no sé com fer-li a linux

  11.   Daniel Andrada va dir

    Et consulto, tinc una configuració com la teva, en el meu cas redireccionó el port 80 a el 8080 per on corre l'squid. El problema és que alguns usuaris deixen aquesta configuració en els seus pc donava de baixa i accedeixen pel port 80 encara que no a tots els serveis. Això amb iptables. Tens idea de per on vindria a estar el problema?

  12.   Mer va dir

    Molt útil i ben explicat. Gràcies!

    Tinc un dubte, quan vull crear una acl, on ho faig, és a dir, en quina línia de l'arxiu de configuració? I he de posar immediatament 2 línies més avall l'ordre http_access com mostres en el teu post? o on?

    Gràcies de nou !! Salutacions!