Servidor squid

Components de squid

  • Directori de l'executable: /usr/sbin/
  • Arxiu amb el PID del procés: /var/run/
  • Directori de logs (relacionat amb la directiva access_log): /var/log/squid/
  • Directori cache (relacionat amb la directiva cache_dir): /var/spool/squid/
  • Arxius de configuració: /etc/squid/
  • Complements: /usr/lib/squid/
  • Script d'arrencada: /etc/init.d/
  • Documentació: /usr/share/doc/squid/

Arxiu de configuració

  • /etc/squid/squid.conf

Servei squid

  • Abans d'arrenca squid, i solament la primera vegada, hi ha que executar l'ordre squid -z per a crear els directoris de la "caché" on s'emmagatzemaran les pàgines.
  • Per activar el servei: /etc/rc.d/init.d/squid {start|stop|reload|force-reload|restart}
  • Després de fer modificacions en l'arxiu de configuració hem de rellançar el servei.
  • També es poden activar les modifcacions, sense necessitat de parar el servei amb l'ordre: squid -k reconfigure.

Directives

  • Les directives de configuració estan estructurades en apartats. Es poden veure aquí.
  • Una configuració bàsica ha de tenir les següents directive:
    • Amb la directiva http_port podem canviar el port.
      • Per defecte squid escolta en el port 3128 (aquí podeu consultar la llista dels ports).
      • Es pot augmentar la seguretat, vinculant el servei a una IP que solament es pugui accedir des de la LAN. La notació seria IP:PORT.
    • Amb la directiva cache_mgr configurarem l'adreça de correu del administrador que apareixerà en els missatges d'error.
    • Amb la directiva visible_hostname configurarem el nom de host que es mostra en els missatges d'error.
    • Amb la directiva error_directory configurarem l'idioma dels missatges d'error.
    • Amb la directiva cache_mem establim la quantitat ideal de memòria RAM per als objectes en trànsit, objectes frequentment usats i objectes negativament emmagatzemats en la catxè.
      • De manera predeterminada s'estableixen 8 MB.
      • És una bona norma assignar N/3 essent N la RAM de l'equip.
    • Amb la directiva cache_dir establim la grandària que tindrà la catxè de disc dur per a squid.
      • De manera predeterminada s'usa una catxè de 100 MB.
      • La resta de números (16 i 256) signifiquen que el directori catxè contindrà 16 directoris amb 256 subdirectoris cadascun.
      • Mentre més gran sigui la catxè, més objectes s'emmagatzemaran i, per tant, s'usarà menys l'ample de banda.
      • El directori és /var/spool/squid/.
    • Amb la directiva ftp_user es configura l'accés a un servidor FTP de forma anònima.
      • Squid envia ,en rebre la petició, com a clau d'accés Squid@.
      • Pot establir-se una adreça de correu especificada com a clau d'acés.
    • Amb la directiva dns_nameservers es configuren les adreces IP dels servidors DNS on el proxy realitzarà les consultes de noms
    • Amb la directiva cache_effective_user / group es configura que squip i els seus processos associats s'executen com a usuarii grup proxy. Aquest usuari ha de ser el propietari del directori "caché" i el directori de logs.

Jerarquia de proxys

  • Amb la directiva cache_peer podem fer que el nostre proxy treballi de forma coordinada amb altres proxys.
  • Poden haver proxys pares i germans.
  • Si establim una jerarquia pare-fill (parent), el pare ha de proporcionar l'objecte sol·licitat tant si està a la "caché" com si no ho està.
  • Per a usar un proxy pare, aquest ha de donar-nos permís per usar la seva línia externa i l'arxiu de configuració ha d'indicar cache_peer servidor tipo http_port icp_port [opcions]
  • Si establim una jerarquia entre germans (sibling), el proxy germà sols servirà l'objecte si el té a "caché", mai anirà a internet a buscar-lo. Sols és útil en proxys del mateix nivell.
  • Un exemple seria cache_peer nombre/IP parent 8080 0 no-query no-digest default on:
    • 8080 indica el port HTTP del servidor remot
    • 0 indica el port ICP del servidor remot. S'usa quan hi ha diversos pares, per averiguar quin té l'objecte sol·licitat. Si sols hi ha un pare es col·loca 0.
    • no-query desactiva la petició de paquets ICP al pare.
    • no-digest no es necessari amb un sol pare.
    • default squid usarà aquest servidor per a totes les peticions.Archivos de logs

Fitxers de log

  • squid genera els següents arxius de log:
    • /var/log/squid/access.log que emmagatzema les peticions al proxy. D'aquesta forma es pot conèixer quants usuaris utilitzen el proxy, quines són les pàgines més visitades,.... Manté una entrada per a cada consulta HTTP amb la IP del client, la URL demanada,... Existeixen aplicacions que obtenen informes d'aquest arxiu de logs amb l'anàlisi de dades emmagatzemades.
      • S'ha d'indicar amb la directiva cache_access_log /var/log/squid/access.log.
    • /var/log/squid/cache.log arxiu d'accessos a la "caché", errors, missatges d'inici.
      • S'ha d'indicar amb la directiva cache_log /var/log/squid/cache.log.
    • /var/log/squid/store.log fitxer històric. Manté l'estat dels objectes emmagatzemats a la "caché". Pàgines que s'afegeixen, qiue s'eliminen,... La informació no és molt important i es pot desactivar amb cache_store_log none
      • S'ha d'indicar amb la directiva cache_store_log /var/log/squid/store.log
  • En funció del número de peticions que reba el proxy aquestos arxius poden creixer molt i colapsar la partició.
  • Es pot configurar de manera que es reinicie cada dia. Si volem guardar els registres dels darrers 7 dies en l'arixu de configuració establirem una rotació de 7 amb el paràmetre logfile_rotate 7.
  • Després executarem squid -k rotate.