Je vais expliquer rapidement comment installer et configurer un serveur proxy transparent sur une debian dans mon cas c'est Lenny.
Le serveur proxy filtera aussi les contenu des site visités avec
Dansguardian et vérifiera si les fichiers reçus par l'utilisateur contient des virus avec Clamav. Dans la configuration le proxy n'agira que sur le protocole HTTP sur le port 80 si vous cherchez un 'full transparent' utiliser plutôt
tproxy . Le principe est simple, on redirige les trafics sur le port 80 vers le port 8080 de Dansguardian qui filtre selon les règles puis redirige sur le port 8090 de
HAVP enfin
Squid le reçoit sur le port par défaut 3128.
Selon les informations sur le net Squid est plus performant sur une partition en resiserfs qui gère mieux une grande quantité de petits fichiers. Choisissez aussi des disques rapides.
Dans l'exemple j'ai utilisé Debian 5.0 ou Lenny, ajouter cette ligne dans /etc/apt/sources.list :
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
Puis on installe les packets :
aptitude update
aptitude install squid3 dansguardian clamav clamav-base havp
Configuration de dansguardian :
Le fichier de configuration est le /etc/dansguardian/dansguardian.conf
cp /etc/dansguardian/dansguardian.conf /etc/dansguardian/dansguardian.conf.orig
Modifier le fichier et ça donne :
# grep -v '^#' dansguardian.conf | sed -e '/^$/d'
reportinglevel = 3
languagedir = '/etc/dansguardian/languages'
language = 'french'
loglevel = 2
logexceptionhits = 2
logfileformat = 3
syslog = on
loglocation = '/var/log/dansguardian/access.log'
filterip = 192.168.0.200
filterport = 8080
proxyip = 127.0.0.1
proxyport = 8090
accessdeniedaddress = 'http://YOURSERVER.YOURDOMAIN/cgi-bin/dansguardian.pl'
nonstandarddelimiter = on
usecustombannedimage = on
custombannedimagefile = '/usr/share/dansguardian/transparent1x1.gif'
filtergroups = 1
filtergroupslist = '/etc/dansguardian/lists/filtergroupslist'
bannediplist = '/etc/dansguardian/lists/bannediplist'
exceptioniplist = '/etc/dansguardian/lists/exceptioniplist'
showweightedfound = on
weightedphrasemode = 2
urlcachenumber = 5000
urlcacheage = 900
scancleancache = on
phrasefiltermode = 2
preservecase = 0
hexdecodecontent = off
forcequicksearch = off
reverseaddresslookups = off
reverseclientiplookups = off
logclienthostnames = off
createlistcachefiles = on
maxuploadsize = -1
maxcontentfiltersize = 128
maxcontentramcachescansize = 2000
maxcontentfilecachescansize = 20000
filecachedir = '/tmp'
deletedownloadedtempfiles = on
initialtrickledelay = 20
trickledelay = 10
downloadmanager = '/etc/dansguardian/downloadmanagers/fancy.conf'
downloadmanager = '/etc/dansguardian/downloadmanagers/default.conf'
contentscannertimeout = 60
contentscanexceptions = off
recheckreplacedurls = off
forwardedfor = off
usexforwardedfor = off
logconnectionhandlingerrors = on
logchildprocesshandling = off
maxchildren = 180
minchildren = 32
minsparechildren = 8
preforkchildren = 10
maxsparechildren = 64
maxagechildren = 500
maxips = 0
ipcfilename = '/tmp/.dguardianipc'
urlipcfilename = '/tmp/.dguardianurlipc'
ipipcfilename = '/tmp/.dguardianipipc'
nodaemon = off
nologger = off
logadblocks = off
loguseragent = off
softrestart = off
mailer = '/usr/sbin/sendmail -t'
root@proxy:/etc/dansguardian#
Vous avez remarqué que mon proxy utilise l'IP 192.168.0.200 . Passons à HAVP, la configuration est simple :
root@proxy:~# grep -v '^#' /etc/havp/havp.config | sed -e '/^$/d'
PARENTPROXY 127.0.0.1
PARENTPORT 3128
FORWARDED_IP true
PORT 8090
BIND_ADDRESS 127.0.0.1
TEMPLATEPATH /etc/havp/templates/fr
ENABLECLAMLIB true
ENABLECLAMD false
ENABLEFPROT false
ENABLEAVG false
ENABLEAVESERVER false
ENABLESOPHIE false
ENABLETROPHIE false
ENABLENOD32 false
ENABLEAVAST false
ENABLEARCAVIR false
ENABLEDRWEB false
root@proxy:~#
Comme vous l'avez constaté HAVP peut être utilisé avec d'autre antivirus Avast, Nod32, ... dans notre cas nous utilisons Clamav. Dans le fichier de configuration de HAVP nous avons redirigé les traffic sur 127.0.0.1:3128, c'est le port par défaut de Squid.
Modifier votre fichier de configuration de Squid, changer la ligne qui commence par http_port :
http_port 127.0.0.1:3128 transparent
Pour spécifier la taille maximale de votre cache vous pouvez changer la ligne suivante ici dans l'exemple spécifie que squid peut utiliser 12000MB :
cache_dir ufs /var/spool/squid3 12000 16 256
Redémarrer les services :
# /etc/init.d/dansguardian restart
# /etc/init.d/havp restart
# /etc/init.d/squid3 restart
Il nous reste qu'à rediriger le trafic, vous pouvez utiliser des logiciels comme Shorewall, mais ici pour simplifier, on utilise directement iptables :
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
Pour tester que ça marche vous pouvez vérifier avec les fichiers log
root@proxy:~# tail -f /var/log/dansguardian/access.log
root@proxy:~# tail -f /var/log/squid3/access.log
root@proxy:~# tail -f /var/log/havp/access.log
Vita tompoko, j'espère que ce petit post vous a aidé.