Squid

Published by Lello on

Dopo aver installato una distribuzione minimal di CentOS 7 (per il partizionamento seguite le vostre procedure o accettate quanto vi viene proposto di default, considerando che un’operazione del genere potrebbe distruggere quello che è installato sul vostro sistema), procediamo con il primo aggiornamento di sistema, l’installazione di alcuni package che ci serviranno successivamente, la disabilitazione del firewall, la disabilitazione del Security-Enhanced Linux e l’installazione di squid:

# yum -y update
# yum -y install lsof net-tools wget bind-utils
# systemctl stop firewalld
# systemctl disable firewalld
# echo "SELINUX=enforcing" > /etc/selinux/config
# echo "SELINUXTYPE=targeted" >> /etc/selinux/config
# echo "172.28.0.205     cont-filt.anthesia.lan" >> /etc/hosts
# systemctl stop postfix
# systemctl disable postfix
# hostnamectl set-hostname cont-filt.anthesia.lan
# yum -y install squid
# reboot

Modifichiamo ora la configurazione dello squid (/etc/squid/squid.conf), in maniera tale da accettare solo le richieste provenienti da localhost; impostiamo anche il binding della porta dello squid solo sul localhost

...
acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
....
http_access allow localnet
...
http_port 3128
http_port 127.0.0.1:3128

Il binding su localhost viene fatto per evitare che un utente possa puntare direttamente a squid, bypassando i filtri di dansguardian; quello che vogliamo è che solo dansguardian (che gira sullo stesso server) possa effettuare richieste verso squid.

Prima di abilitare il servizio, vorrei approfondire quanta cache deve gestire squid (cioè la direttiva cache_dir); senza andare su casi particolari (caching su FS dedicati), la cache si trova in /var/spool/cache. Occorre dimensionare correttamente la cache tenendo conto:

  • non assegnare alla cache di squid tutto lo spazio libero disponibile (squid genera altri file oltre a quelli dedicati alla cache vera e propria), in quanto potrebbe creare problemi (leggi squid potrebbe bloccarsi) nel caso di out-of-disk-space; inoltre non è consigliato per motivi legati alla frammentazione del FS. Solitamente è consigliato lasciare libero almeno il 10% del disco in cui risiede la cache di Squid.
  • è possibile aggiungere altra cache, aggiungendo altre direttive cache-dir al file di configurazione

Un altro parametro da considerare è cache_mem, che è la quantità di memoria che squid gestisce per manipolare in memoria :

  • In-Transit objects
  • Hot Objects
  • Negative-Cached objects

Valutate bene anche questi parametri per ottimizzare le performances del vostro Squid.

Passiamo ora ad abilitare ed avviare il servizio:

# systemctl enable squid
# systemctl start squid
# lsof -i:3128
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
squid   9920 squid   11u  IPv4  25800      0t0  TCP localhost:squid (LISTEN)

 Il nostro Squid è ora configurato e pronto a ricevere richieste dalla porta 3128 da un altro servizio installato su localhost (Dansguardian o altro).

[table “” not found /]