Squid proxy - Part 1

Hola a tots, poden cridar-me Brody. Sóc especialista de l'àrea de centre de dades, també un fanboy de el món de linux pel simple fet que fa la meva vida i treball més fàcil. Pensin-ho!

D'aquest punt en endavant, els tracta de «tu» d'una forma mes impersonal, mes en confiança. Els meus tutorials no seran de solament instal·lar un servei i ja, et donaré tots els coneixements i eines necessàries perquè expremesquis a l'màxim les capacitats de cada característica d'una aplicació, Qualsevol dubte envia un missatge a l'inbox

Squid no és només un servei de proxy i cache, pot fer molt més: gestionar acl (llistes d'accés), filtrar contingut, fins i tot pot fer filtrat SSL i tot en mode transparent (mètode de proxy - sense haver de configurar en les opcions de servidor intermediari dels seus navegadors, és com man in the middle, ningú sap que hi és). Llavors comunament veig com es malgasta tot el potencial d'aquesta aplicació per no saber configurar cadascuna de les seves parts.

Però el primer és el primer, vegem només la característica de proxy.

Instal·la:

aptitude install squid3

Edita el fitxer de configuració:

vaig veure /etc/squid3/squid.conf

  • http_port ip: port

Un exemple seria http_port 172.16.128.50:3128  el servei serà prestat per la ip i port especificats, particularment jo no et recomanaria deixar el port 3128 per defecte en un ambient de producció.

  • acl localnet src ip / mascara

Un exemple seria Acl localnet src 172.168.128.0/24 la llista d'accés general (el més macro possible) que tindrà accés a aquest servei. localnet és com es diu la acl, però podries col·locar el nom que voldries aquí.

  • http_access allow localnet

Senzill http_access allow localnet el mateix nom que vas col·locar a l'item anterior, aquí permetem a aquesta xarxa, navegar i utilitzar els serveis de squid

  • quick_abort_min 0KB
  • quick_abort_max 0KB

Moment en què avortem alguna petició. T'ho explico mes detallat: quan un usuari aquesta navegant a través del teu servidor intermediari i cancel·la una petició o descàrrega, tens 3 opcions, si la descàrrega falta menys d' quick_abort_min 80KB llavors igual Squid la descarregués, si la descàrrega li falta mes que quick_abort_max 150 KB llavors es cancel·lés immediatament, si tots dos es configuren en 0KB com és el cas, la descàrrega finalitza amb prou feines l'usuari cancel·la.

  • read_timeout 5 minuts

Aquest és el temps en que durés oberta una sessió de servidor sempre que no hi hagi una nova lectura, per exemple en una pàgina estàtica, no cal un valor molt elevat però en pàgines dinàmiques com facebook aquest és un valor acceptable

  • request_timeout 3 minuts

Aquest valor podria ser molt menor, depèn de la qualitat de la connexió wan del teu servidor i la quantitat de clients que tinguis. Aquest paràmetre fa referència a el temps màxim d'espera per les capçaleres http d'una petició, després d'establir la connexió.

  • half_closed_clients off

Evita que quedin connexions mig tancades a causa d'errors de comunicació. No vols deixar sota cap concepte que es malgastin els recursos del teu servidor.

  • shutdown_lifetime 15 seconds

Aquesta etiqueta permet escurçar el temps d'espera per tancar els processos de squid quan es fa un SIGTERM o SIGHUP

  • log_icp_queries off

Aquest el deixo al teu discreció, per defecte ve on, i és per registrar en log cada query realitzat a la memòria cau de l'intermediari.

  • dns_nameservers 8.8.4.4 8 8.8.8.8

Les consultes dns seran realitzades a aquestes ip s separades per espai, si cap és definida s'usen per defecte els dns del teu sistema

  • dns_v4_first on

Bé depèn de l'pais o configuracions del teu entorn, però en el meu cas no tinc DNS ipv6, llavors col·loca per defecte que tot sigui consultat primer a en ipv4

  • ipcache_size 2048

Nombre màxim d'entrades a la memòria cau dns de squid

  • ipcache_low 90

La mida menor d'entrades memòria cau dns.

  • fqdncache_size 4096

Nombre màxim d'entrades FQDN a la memòria cau

  • memory_pools off

Desactivem que es reservi memòria RAM per a futurs processos de squid, si en el teu servidor és un recurs molt escàs

  • forwarded_for off

si vols evitar que vegin els teus ip privades des de la wan, les peticions arribessin amb un unknown, o en aquest cas ru ip wan

vam iniciar la memòria cau

squid3 -z

Reiniciem el servei

service squid3 restart

Per finalitzar només has de col·locar al navegador, en opcions de servidor intermediari la ip i port, a punt has d'estar navegant

Això és tot per aquesta ocasió, ja saben que amb això tindran un squid bé robust, en properes entrades farem memòria cau amb squid


El contingut d'l'article s'adhereix als nostres principis de ètica editorial. Per notificar un error punxa aquí.

24 comentaris, deixa el teu

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà.

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  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.   Eng. Jose Albert va dir

    Excel·lent, tutorial pas a pas. el que més em va agradar va ser l'explicació opció per opció de l'repertori de configuracions.

    Laque més em va agradar va ser l'opció de:

    quick_abort_min 0KB
    quick_abort_max 0KB

    crec que aquesta és summament important perquè moltes vegades un usuari pot perdre (cancel·lar) per X situació una descàrrega propera ha finalitzar i aquest paràmetre bé estimat segons els nostres recursos informàtics ens pot permetre continuar amb la descàrrega, ja que molt possiblement tant com el mateix usuari o un altre pogués intentar en un lapse breu a intentar la descàrrega de la mateixa element estalviant trànsit cap a internet.

    Corregeix-me si m'equivoco, BrodyDalle?

    1.    BrodyDalle va dir

      Si i no, t'explico.

      Efectivament la descàrrega finalitzés amb èxit encara que l'usuari hagi cancel·lat la mateixa, només llavors quan el mateix usuari o un altre intenti descarregar l'aplicació o pàgina web, squid lliurés una còpia que ja té en memòria cau i no anirà a Internet a descarregar novament les dades. Ara atenció aquí l'efecte de reprendre és només d'un gestor de descàrrega que emmagatzema les dades en memòria cau de la teva màquina durant un temps predeterminat i et permet reprendre una descàrrega cancel·lada o interrompuda, no és d'squid.

      En propers tutorials donaré a fons squid com cau, perquè no perdis els recursos WAN (Internet) de la teva xarxa

  2.   javier espinoza va dir

    excel·lent article estic aprenent sobre squid i el seu implementacion moltes gràcies em ve molt bé

    1.    BrodyDalle va dir

      gràcies, atent que en propers tutorials donaré a fons squid com cau, perquè no perdis els recursos WAN (Internet) de la teva xarxa

  3.   Henrry servita va dir

    gran tutorial sempre és bo ampliar el coneixement. salutacions

  4.   Miguel Pinya va dir

    Hola, antetodo gràcies pel tema, les explicacions i el coneixement que s'aporta. Tinc mes que comentar, un dubte. Porto a la taula un problema que precisament em va passar amb squid3 en Debian, resulta ser que un bon dia, fa mesos, vaig actualitzar el sistema i juntament amb aquest upgrade va venir una nova versió de squid, la 3.5, a partir d'aquí el proxy va deixar de passar totes les connexions hTTPS, és a dir de bones a primera ja no obria https // www.google.com.cu, https://www.facebook.com i qualsevol cosa que fes servir el protocol segur HTTPS. Investigant una mica, vaig trobar que el problema estava en el maneig de l'SSL, cosa de Debian va deixar d'empaquetar amb squid3 per qüestions legals i filosòfiques. NO he de dir la incomoditat que va existir en l'entitat els dies que vaig tractar de fer això "problema" que a al final no vaig poder arreglar, sinó que vaig tornar a la versió anterior de Squid3 i vaig retenir el paquet amb aptitude per evitar que tornés a actualitzar-se. Al lloc on es reporten els bugs de squid parlava d'un error anomenat «squid-in-the-middle», i alertava que tots els squid des de la versió 3.4.8 cap enrere eren vulnerables, pel que recomanaven actualitzar a la versió més recent i compilar l'squid amb SSL + posar a generar els certificats manualment .... PER FAVOR! Si algú s'ha topat amb aquesta situació i l'ha resolt m'agradaria fos tan amable i em donés una llum sobre aquest tema i sinó, almenys que comenti que li va passar el mateix ... i com va ser la solució aplicada. Gràcies.

    1.    BrodyDalle va dir

      Actualment a Debian Jessie aquesta només disponible fins a la versió 3.4.8-6 + deb8u1 ... No obstant això et puc dir que pots utilitzar SSL bump si fas servir squid en mode transparent. http://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit.... no poso en dubte la teva aportació, per això aviat Instal·laré la versió mes nova des de la seva pàgina oficial

  5.   Antonio A. va dir

    Bon dia,

    Pel que fa a termes de rendiment, ¿valdria la pena instal·lar-se en una Raspberry Pi 2?

    Gràcies per avançat, salutacions.

  6.   Antonio A. va dir

    Hola,

    Bon tutorial, però tinc una pregunta: en termes de rendiment, ¿valdria la pena instarlarlo en una Raspberry Pi 2?

    Salutacions.

    1.    BrodyDalle va dir

      La resposta curta és No ... ho pots fer però certes característiques com a interfície de xarxa, processador, disc són molts els teus colls d'ampolla. Ara si mateixa necessites fer de proxy, crec que surt millor tinyproxy

      Gràcies per la teva participació

  7.   Tabris va dir

    Tenés experiència amb Squid dins de pfSense?

    1.    BrodyDalle va dir

      si, que cal saber? a veure si et puc ajudar.

  8.   troballes90 va dir

    Bon tutorial, ja molt bona hora. No molt del tema actualment estic instal·lant el servidor intermediari a la meva empresa amb la squid.conf d'una versió anterior i hi ha coses q han canviat la sintaxi. M'ha servit moltíssim. seguire a l'espera de la part 2.
    Moltíssimes Gràcies

    1.    BrodyDalle va dir

      gràcies pel teu comentari, pendent que aviat estarà disponible la segona part de squid sobre com fer memòria cau.

  9.   moltons va dir

    Excel·lent, fa temps s'implementi un ubuntu server amb squid i corria força bé ara ja tinc temps desconnectat de linux i m'agradaria reprendre el tema dels server amb memòria cau per donar-li major rendiment a l'temes dels WISP, gràcies per la teva aportació Brody!

  10.   rodrigoarielpissarra va dir

    Bones, molt copada la teva ajuda, juste vaig entrar pel tema dels IPV6 amb els DNS i estic tenint problemes aquí. A l'aparèixer cap web amb IPV6 m'estaria funcionant, llavors estic necessitant saber si la configuració dns_v4_first on necessita ser activat abans quan es compila l'squid, perquè en 3.3.8 no estaria funcionant.

  11.   jocamp va dir

    Bon dia.
    Per començar, ha estat de molta ajuda aquest tutorial. Ara exposo el meu cas, ja que no sé si amb squid puc solucionar el meu necessitat o he de buscar una altra alternativa.
    Tinc una aplicació configurada sobre una intancia EC2 d'AWS, la qual ha de realitzar peticions a una api de amazon, l'inconvenient sorgeix quan aquestes peticions són massives, de manera que amazon reconeix la ip i rebutja aquestes peticions per un temps, generant inconvenients en la aplicació que tinc. Per solucionar això, fem servir el servei Proxymesh, el qual pren la petició i l'envia des d'alguna de les seves ip s, evitant així aquest bloqueig, el cas és que per això, a l'fer la petició a amazon, ho fem mitjançant curl en php, donant com a opció que es connecti a l'proxymesh. Ara estic buscant la possibilitat que sigui des de la instància que es pugui configurar que quan es facin peticions a l'api de amazon, vagin directament a el servei de proxymesh perquè sigui el qui s'encarregui d'enviar la petició a la destinació final. És possible realitzar aquesta redirecció amb squid o em recomanes altra alternativa?
    Moltes grascias.

  12.   janho va dir

    Algú ha provat múltiples esquemes de autenticacion sobre squid? Tinc instal·lada la versió 3.5.22 del debian i per mes que he provat diferenetes variants no funciona, la meva situació és que necessito que tant els usuaris del meu AD com altres usuaris externs puguin diners, si em funcionen per separat o sigui ntml per usaris de l' domini logueados i basic (NCSA) per a externs però no les dues alhora. qualsevol ajuda serà util. gràcies per endavant

  13.   Voluntat va dir

    Benvolgut, no al fet que es degui, havia instal·lat squid sense problemes, però a l'actualitzar-lo a la versió 3.5 el fitxer access.log va començar a quedar-se buit, ja no emmagatzema dades quan abans si ho feia. No se si tingui a veure i que implementi el WPAD per ja no usar la configuració transparent, així com treure el redireccionament del port 80 a l'3128 com es fa normalment, ja que amb el WPAD ja no cal aquesta regla.

    serà per això que el access.log ara ja no registra activitat?

    Salutacions !!

  14.   Cristian va dir

    Bones molt bona guia!

    Fa un temps que faig servir squid com a web proxy, però últimament estic notant que em triga n realitzar recerca o en obrir pàgines .. pot ser que necessiti purgar la memòria cau?

    Algú té configurat squid amb mkt, com els funciona?

    Salutacions

  15.   juan va dir

    Molt bona informació, disculpa com podria unir squid amb activi directory perquè en el moment d'ingressar a una pàgina bloquejada em demani l'usuari i contrasenya d'un compte de activi directory i si aquest usuari té permís per entrar a la pagina li d'accés.

  16.   Carlos va dir

    Hola,
    excel·lent guia, igual i tu pots orientar-me ja que nomes no dono, tinc un internet de 20MB fibra i un squid 3.1 muntat sobre centos 6.9 i dono servei aproximadament a 300 usuaris abans tenia un enllaç d'4MB i un squid 3.1 i el mateix nombre de usuaris i obvi tot super lent i esmentades a l'admin (jo) li tirava la culpa a l'enllaç, per fi aconsegueixi que el canviessin i l'internet aquesta igual de lent, ja torneu a instal·lar SO, configuri squid 3.1 i res mes no s'accelera faig el mesurament de velocitat des d'un client de l'squid i em dóna 18 a 20 MB però segueixo rebent esmentades perquè el servei aquesta igual de lent

    si poguessis teu o algú que hagi tingut un problema similar donar-me llum l'hi agrairé infinitament.

  17.   Luis va dir

    Que passa amb les adreces, es canvien a l'adreça de xarxa pròpia o s'utilitzen les que tu estàs utilitzant.

  18.   Irwing va dir

    estic aprenent sobre squid debian i el seu implementacion moltes gràcies em ve molt bé. però em aquesta donant problemes amb la connexió i verifico si dóna error i aparentment tot aquesta corrent bé.

bool (true)