Squid come proxy trasparente

Ecco una guida su come usare il server proxy/cache in modalità trasparente con controllo di clamav e dansguardian.

Articolo rilasciato sotto licenza GNU FDL 1.3.

Le interfacce di rete usate sono eth0 come interfaccia per la rete esterna. In questo caso ha IP statico (10.0.2.15) ma può avere anche IP dinamico. La rete tra le macchine che devono essere dietro il proxy è eth1 e ha indirizzo IP statico (192.168.56.10). Se qualcuno ha confidenza con virtualbox si accorgerà che quisti sono i suoi tipici IP.

Per la guida userò debian ma qualunque distro andrà bene, basta cambiare il gestore di pacchetti.

Installiamo squid, clamav e dansguardian.

apt-get install squid clamav clamav-daemon clamav-freshclam dansguardian

Per prima cosa configuriamo squid.

Il file di configurazione l’ho preso da FaberLibertatis.org.

Spostiamo il file di configurazione originale con mv /etc/squid/squid.conf /etc/squid/squid.conf.default e ora facciamone uno noi salvandolo su /etc/squid/squid.conf

# File: squid.conf
# Autore originale Stefano Sasso (ste A dscnet PUNTO org)
# File preso da http://faberlibertatis.org/wiki/Squid_Mini_HOWTO

# TAG: http_port : la posta in cui squid resta in ascolto
http_port 192.168.56.10:3128 transparent # Cambiare col vostro IP

# TAG: visible_hostname : il nome host che verrà visto
visible_hostname proxy.miodominio.com

# TAG: cache_mgr : l'email dell'amministratore della cache
cache_mgr root@miodominio.com

# ACL: access control list : non deve tenere in cache le pagine dinamiche
acl CGI urlpath_regex cgi-bin ?
acl ASP urlpath_regex asp ?
acl PHP urlpath_regex php ?
acl JSP urlpath_regex jsp ?
no_cache deny CGI ASP PHP JSP

# TAG: cache_mem : la ram utilizzata dalla cache; per avere prestazioni ottimali
# dovrebbe essere 1/4 della ram del sistema
cache_mem 128 MB

# TAG: cache_dir : la directory dove deve venir memorizzata la cache
# il primo numero si riferisce alla dimensione della cache in Mb
cache_dir ufs /var/spool/squid 500 16 256

# TAG: cache_access_log : il file di log per gli accessi
cache_access_log /var/log/squid/access.log

# TAG: cache_log : i log della cache
cache_log /var/log/squid/cache.log

# TAG: cache_store_log : i log di storage
cache_store_log /var/log/squid/store.log

# TAG: emulate_httpd_log : scrive i log in una forma più leggibile
emulate_httpd_log on

# TAG: mime_table : il file di configurazione per i tipi MIME
mime_table /usr/share/squid/mime.conf

# TAG: dns_nameservers : i/il nostro/i DNS
dns_nameservers 127.0.0.1 192.168.0.14 192.168.0.196

# ACL generali
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.0/255.255.255.0
acl SSL_ports port 443 563
acl Safe_ports 80 81 21 443 563 70 210 1025-65535
acl CONNECT method CONNECT

# ACL per l'accesso alla cache dalla/e nostra/e rete/i
acl mynet1 src 192.168.0.0/255.255.255.0 # Cambiatela con la vostra rete/netmask
#acl mynet2 src 10.0.0.0/255.0.0.0  #Eventuali altre reti
#acl mynet3 src 192.168.10.0/255.255.255.0

# Le regole per l'accesso alla cache e a internet
http_access allow localhost
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow mynet1
#http_access allow mynet2
#http_access allow mynet3
# Ora neghiamo tutto ciò che non è concesso esplicitamente
http_access deny all

icp_access allow localhost
icp_access allow mynet1
#icp_access allow mynet2
#icp_access allow mynet3
icp_access deny all
miss_access allow localhost
miss_access allow mynet1
#miss_access allow mynet2
#miss_access allow mynet3
miss_access deny all

# squid.conf END

ClamAV è già a posto, invece dansguardian ha bisogno di quattro modifiche. … [Leggi il resto]