SquidClamav – The Antivirus for your Squid Proxy Server

2 replies [Ultimo contenuto]
ThE_RaV3N
Offline
Joined: 12/23/2012

Ciao a tutti, di recente in una consulenza un cliente mi ha chiesto se fosse possibile integrare, utilizzando sempre Linux,  nel Proxy Server in produzione (che gli avevo tirato su un anno fa con Debian & Squid 3) anche un controllo antivirus sfruttando sempre prodotti open.Era la prima volta, dopo i tentativi passati che avevo fatto con HAVP, (con il quale ho avuto dei problemi lato performance), che provavo nuovamente ad integrare squid con una soluzione AV open.

Ho googlato un pò e sono capitato sulla home del progetto SquidClamav che è arrivato ormai alla release 6 e che sfrutta un server c-icap come backend per interfacciarsi con squid e con clamav.

Effettivamente c-icap mi aveva già dato soddisfazioni in passato, e quindi ho deciso di provare con un altro tentativo incrociando le dita. Bè che dire … semplice l’installazione, semplice la configurazione, e un buon risultato (lato scansione antivirus) con delle performance accettabili anche in ambiente di produzione. Devo dire che anche clamav che non seguivo più da un pò, vanta oggi un euristica non male e delle definizioni per il phishing ben fornite; ed essendo un antivirus nato per il mondo linux non è male come punto di pattenza. Vediamo insieme l’installazione e la configurazione.

Installiamo clamav in versione daemon e facciamogli fare un update delle definitions (altrimenti vi da errore)

   apt-get install clamav-daemon

freshclam

Installiamo altri pacchetti per poter procedere alla compilazione e installazione di squidclamav

   apt-get install gcc make curl libcurl4-gnutls-dev c-icap libicapapi-dev

Scarichiamo e installiamo squidclamav

    wget http://ftp.jaist.ac.jp/pub/sourceforge/s/project/sq/squidclamav/squidclamav/6.2/squidclamav-6.2.tar.gz

tar zxvf squidclamav-6.2.tar.gz

cd squidclamav-6.2

./configure –with-c-icap  && make && make install

Ora modifichiamo i files di configurazione per personalizzare l’installazione e modifichiamo la riga 17 e inseriamo l’URL della pagina di errore personalizzata.

    http://nome-server/error.html (qualora vogliate farvi una semplice html di errore personalizzata)
 
Rendiamo il server c-icap avviabile come daemon al bootup
   nano /etc/default/c-icap
# alla riga 6: modificate

START= yes

Editiamo il file di configurazione del server c-icap
    nano /etc/c-icap/c-icap.conf
# riga 142: inserite l’indirizzo mail dell’amministratore
ServerAdmin tua-mail@gmail.com
#Riga 151 – Modificate l’hostname
ServerName fg-av-ux01.fg.local
# riga 499:  aggiungete
Service squidclamav squidclamav.so
 
Riavviamo il server c-icap con il comando
    /etc/init.d/c-icap start
 
Ora modifichiamo squid per rendere la modifica attiva e aggiungiamo le seguenti direttive
   icap_enable on
icap_send_client_ip on
icap_send_client_username on
icap_client_username_header X-Authenticated-User
icap_service service_req reqmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav
adaptation_access service_req allow all
icap_service service_resp respmod_precache bypass=1 icap://127.0.0.1:1344/squidclamav
adaptation_access service_resp allow all
 
Riavviamo ora Squid con il comando /etc/init.d/squid3 restart e godiamoci il nostro nuovo Proxy con Antivirus. Se volete testare il tutto potete visitare il sito EICAR e da lì  scaricare un file di test e verificare che il  corretto funzionamento di squidclamav come da screenshot seguente che vi allego.
 
error_01
 
 
Rimango a disposizione qui sul blog qualora abbiate qualcosa da chiedere.
Ciauz
 
sirio81
Offline
Joined: 10/06/2008

Wow, fantastico articolo!
Complimenti!

Fin'ora ho associato la scansione antivirus al filtro contenuti tramite dansguardian + squid.

Non mi sono trovato però nella situazione dove serve solo il filtro antivirus e non il filstro contenuti.
Il tuo articolo potrebbe tornarmi utile in futuro.

Grazie!

ThE_RaV3N
Offline
Joined: 12/23/2012

Ciao sirio81, sì ahime io DG l'ho sempre amato per come è fatto, ma in ambienti di produzione scalari, con qualche centianio di macchine sotto assieme, mi dava problemi di performance e di consumo di risorse sulle macchine. Perciò ho sempre optato per squid + squidguard, e autenticazione LDAP + Ldap Auth Group per delle policies integrate con AD. Ultimamente associo squidguard e squid 3 ai seguenti prodotti :

  1. ADZAPPER (BLOCCO DELLA PUBBLICITA' NON INVASIVO)
  2. SQUIDCLAMAV VIA C-ICAP (SCANSIONE ANTIVIRUS)
  3. OPENDNS - GESTIONE A LIVELLO DNS DEL CONTENT FILTERING E DEGLI IP DELLE BOTNET (Ahimè sono aggiornati prima su OpenDNS che su squidguard / DG)
  4. OPZIONALMENTE ANCHE PRIVOXY - PERO' NON MI HA DATO SODDISFAZIONI COME PERFORMANCE SU AMBIENTI DI MEDIO / GRANDI DIMENSIONI

Anche HAVP mi piaceva come prodotto, però sullo streaming e sui download spesso andava in tilt con diversi users collegati sotto; anche usando distro precotte come IpCop.

Grazie del feedback e del commento ;)

Ciauz