Proxy Server con filtraggio dei contenuti della navigazione: differenze tra le versioni
Riga 408: | Riga 408: | ||
== DansGuardian: l'URL rewriter == | == DansGuardian: l'URL rewriter == | ||
Un URL rewriter è un software che si occupa di riscrivere un URL, sostituendolo con un'altro ritenuto più opportuno sulla base delle regole e dei filtri impostati. Il risultato è il dirottamento di certe richieste verso una o più pagine predefinite. Un caso tipico è quello in cui l'utente viene deviato su una pagina recante un messaggio standard del tipo "Spiacente, il sito che volevi raggiungere non sembra collegato agli interessi dell'Azienda" o qualcosa del genere. | Un URL rewriter è un software che si occupa di riscrivere un URL, sostituendolo con un'altro ritenuto più opportuno sulla base delle regole e dei filtri impostati. Il risultato è il dirottamento di certe richieste verso una o più pagine predefinite. Un caso tipico è quello in cui l'utente viene deviato su una pagina recante un messaggio standard del tipo "Spiacente, il sito che volevi raggiungere non sembra collegato agli interessi dell'Azienda" o qualcosa del genere. | ||
<br/> | |||
Installiamo DansGuardian: | |||
<pre> | |||
# apt-get install dansguardian | |||
</pre> | |||
Il file principale di configurazione è <tt>/etc/dansguardian/dansguardian.conf</tt>. Apportiamovi alcune modifiche: | |||
<pre> | |||
# mv /etc/dansguardian/dansguardian.conf /etc/dansguardian/dansguardian.conf.original | |||
# touch /etc/dansguardian/dansguardian.conf | |||
# nano /etc/dansguardian/dansguardian.conf | |||
</pre> | |||
e diamogli questo contenuto: | |||
<pre> | |||
reportinglevel = 3 | |||
languagedir = '/etc/dansguardian/languages' | |||
language = 'italian' | |||
loglevel = 3 | |||
logexceptionhits = 2 | |||
logfileformat = 1 | |||
filterip = | |||
filterport = 8080 | |||
proxyip = 192.168.10.254 | |||
proxyport = 3128 | |||
accessdeniedaddress = 'http://192.168.10.254/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 = 1000 | |||
urlcacheage = 900 | |||
scancleancache = on | |||
phrasefiltermode = 2 | |||
preservecase = 0 | |||
hexdecodecontent = off | |||
forcequicksearch = off | |||
reverseaddresslookups = off | |||
reverseclientiplookups = off | |||
logclienthostnames = off | |||
createlistcachefiles = on | |||
maxuploadsize = -1 | |||
maxcontentfiltersize = 256 | |||
maxcontentramcachescansize = 2000 | |||
maxcontentfilecachescansize = 20000 | |||
filecachedir = '/tmp' | |||
deletedownloadedtempfiles = on | |||
initialtrickledelay = 20 | |||
trickledelay = 10 | |||
downloadmanager = '/etc/dansguardian/downloadmanagers/fancy.conf' | |||
downloadmanager = '/etc/dansguardian/downloadmanagers/default.conf' | |||
contentscanner = '/etc/dansguardian/contentscanners/clamav.conf' | |||
contentscannertimeout = 60 | |||
contentscanexceptions = off | |||
recheckreplacedurls = off | |||
forwardedfor = off | |||
usexforwardedfor = off | |||
logconnectionhandlingerrors = on | |||
logchildprocesshandling = off | |||
maxchildren = 120 | |||
minchildren = 8 | |||
minsparechildren = 4 | |||
preforkchildren = 6 | |||
maxsparechildren = 32 | |||
maxagechildren = 500 | |||
</pre> |
Versione delle 08:39, 2 set 2012
Introduzione
In diversi contesti di rete, si pensi ad esempio ad una rete LAN aziendale o ai laboratori informatici di scuole medie inferiori, può essere importante implementare un sistema il più possibile automatico per il controllo e il filtraggio di alcuni contenuti web considerati dall'amministratore inappropriati al contesto. Si considerino a titolo di esempio le seguenti necessità:
- proteggere i minori dal rischio di imbattersi in siti dedicati alla pornografia, alla violenza, al gioco d'azzardo e altro (il cosiddetto parental control);
- impedire al personale di un'azienda o di un ente di perdere tempo frequentando siti non connessi con l'attività lavorativa;
- migliorare l'utilizzo della banda disponibile, bloccando l'accesso a siti non connessi con l'attività lavorativa o la visione di filmati in streaming
Gli ingredienti che permettono di raggiungere gli obiettivi sopra elencati in una macchina Debian sono:
- un insieme di blacklist che elenchino sia i siti e le URL da bloccare o meno, sia frasi che, trovate in una pagina, facciano sì che essa sia bloccata;
- un software di filtraggio, o url rewriter, che, servendosi delle blacklist, possa dirottare una richiesta verso una pagina prestabilita, oppure lasciarla passare;
- un software proxy, che si occupi essenzialmente di ricevere le richieste dal url rewriter e ad inoltrarle verso l'esterno;
- le utility iptables, utilizzate per definire le regole che, in maniera trasparente, dirottano tutto il traffico web attraverso il proxy o il software di filtraggio, indipendentemente dalla volontà degli utenti;
- il supporto Netfilter nel kernel, necessario alle utility iptables.
Per raggiungere tutti questi obiettivi è anche necessario che la macchina Debian che configureremo sia impostata come gateway predefinito della rete LAN che vogliamo sottoporre a filtraggio. Lo schema logico di questa struttura di rete sarà quindi come il seguente:
Rete Default URL Proxy locale <--> Gateway <--> Rewriter <--> Server <--> Internet LAN Debian DansGuardian Squid \ / \___________________________________/ | Tutti questi servizi risiederanno su una singola macchina Debian
Nei capitoli seguenti analizzeremo uno per uno tutti i punti della struttura da implementare.
Prerequisiti
- Il PC che utilizzeremo come proxy dovrà avere due schede di rete installate e configurate
- Un ambiente LAMP: Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5
- Un server DNS e un server DHCP attivi: Un server DNS e DHCP su Debian
Nel resto della guida supporremo che le due schede di rete siano così configurate:
# ETHO - Connessa a LAN allow-hotplug eth0 iface eth0 inet static address 192.168.10.254 netmask 255.255.255.0 network 192.168.10.0 broadcast 192.168.10.255 dns-nameservers 8.8.4.4 8.8.8.8 # ETH1 - Connessa a INTERNET allow-hotplug eth1 iface eth1 inet dhcp
In questa configurazione, la scheda di rete collegata ad internet è impostata con il DHCP, ma ovviamente può essere utilizzato un IP statico a seconda delle esigenze. Per modificare la configurazione di rete di Debian si segua ad esempio questa guida: Come impostare indirizzi IP fissi su Debian
Installazione e configurazione di iptables
Perché la nostra Debian funzioni come gateway e instradi correttamente i pacchetti dalla nostra LAN verso internet e viceversa, abbiamo bisogno che siano abilitate le funzionalità di IP forwarding e che siano stabilite alcune regole di instradamento. Tutto questo può essere fatto grazie a iptables, il programma che consente la configurazione di netfilter, il componente del kernel Linux che permette il filtraggio (con e senza stati) dei pacchetti, la traduzione degli indirizzi di rete e di porta e altre forme di manipolazione dei pacchetti IP.
Iptables dovrebbe già essere stato installato nell'installazione base di Debian, ma per scrupolo effettuiamo un controllo:
# apt-get install iptables
Abbiamo inoltre bisogno di stabilire un insieme di regole da dettare a iptables:
- disabilitare le connessioni entranti da internet sulla scheda eth1;
- permettere l'instradamento dei pacchetti in uscita dalla LAN (scheda eth0) verso internet;
- permettere alle connessioni stabilite di ricevere i pacchetti di ritorno.
Iptables si configura generalmente costruendo degli script di regole da attivare all'avvio della macchina gateway. Le regole logiche definite al paragrafo precedente conducono alla stesura di uno script simile al seguente.
Lo script, chiamato firebox.sh, servirà quindi per gestire il firewall tramite iptables, con funzionalità di nat (masquerade) e di forwarding. Può ovviamente essere modificato e espanso per specifiche esigenze. Creeremo e salveremo il file nella directory /etc/init.d/.
# nano /etc/init.d/firebox.sh
#!/bin/bash ### BEGIN INIT INFO # Provides: firebox # Required-Start: $network $remote_fs $syslog # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 6 # Short-Description: firewall and routing initscript ### END INIT INFO # Pulisco eventuali catene esistenti iptables -F iptables -t nat -F # Abilito le connessioni di loopback iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth1 -p icmp -j ACCEPT # Accesso libero a SSH iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -i eth1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth1 -m conntrack --ctstate NEW -j DROP # Regola per il proxy trasparente #iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 # Abilito il forward iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT # Abilito il NAT iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE iptables -A FORWARD -i eth1 -o eth1 -j REJECT # Abilito le funzioni di IP Forward echo 1 > /proc/sys/net/ipv4/ip_forward
Il mascheramento IP di Linux utilizzato nello script è un metodo per eseguire una traduzione dell'Indirizzo di Rete (in breve NAT, Network Address Translation) affinché anche macchine alle quali non è stato assegnato un indirizzo internet possano utilizzare tutti i servizi disponibili in rete, grazie ad una workstation Linux che funzioni come gateway. Tutta internet vedrà le richieste dell'intera LAN come se provenissero dalla sola macchina gateway poiché gli indirizzi IP originari dei vari client saranno stati mascherati da iptables. A questo punto non resta che salvare il file , renderlo eseguibile con il comando:
# chmod +x /etc/init.d/firebox.sh
e automatizzarlo:
# update-rc.d firebox.sh start 20 2 3 4 5 . stop 0 6
La nostra macchina Debian è ora un gateway per tutta la rete LAN.
Come ultima cosa modifichiamo il file /etc/hosts, aggiungendo:
127.0.0.1 localhost 127.0.1.1 firewall 192.168.10.254 firewall gateway proxy
dove al posto di “firewall” occorre mettere il nome della macchina che abbiamo scelto durante l’installazione di Debian.
Riavviamo la macchina prestando attenzione ai messaggi durante il boot e testiamo la configurazione.
Scansione antivirus attraverso ClamAV
Dato che intendiamo proteggere la nostra LAN il più possibile, installeremo un antivirus, che configureremo per effettuare una scansione degli allegati scaricati dai client. L'antivirus scelto è ClamAV.
# apt-get install clamav-daemon clamav-freshclam
La configurazione di ClamAV è contenuta nella directory /etc/clamav, ma per i nostri scopi sono più che sufficienti le impostazioni di default. FreshClam aggiornerà le definizioni dei virus su base oraria; se vogliamo modificare questo comportamento dobbiamo agire sul file:
# nano /etc/clamav/freshclam.conf
cambiando la sezione:
# Check for new database 24 times a day Checks 24
Il proxy server Squid
Un caching proxy server come Squid è un software che si interpone tra un client ed un server web, inoltrando le richieste e le risposte dall'uno all'altro:
- il client si collega al proxy invece che al server web, e gli invia delle richieste;
- il proxy a sua volta si collega al server web e inoltra la richiesta del client;
- il proxy riceve poi la risposta e la inoltra al client.
In altre parole il proxy agisce come mediatore tra un qualunque pc della rete locale e internet. Questa funzione comporta alcuni vantaggi, tra cui:
- possibilità di tenere traccia di tutte le operazioni effettuate (ad esempio di tutte le pagine web visitate), consentendo statistiche ed osservazioni dell'utilizzo della rete. Non ci si dimentichi però di operare in conformità alle norme in vigore riguardanti la privacy;
- possibilità di velocizzare la navigazione dei client, poiché il proxy server mantiene nella sua memoria cache le pagine visitate più di frequente, potendole così servire ai client in maniera più rapida.
Faremo inoltre in modo che il proxy si comporti in maniera trasparente, sollevando l'amministratore di rete da qualsiasi configurazione sulle macchine client.
Il proxy server più utilizzato nel mondo Linux è Squid, che andremo adesso ad installare sulla nostra macchina gateway:
# apt-get install squid3 squidclient
Il proxy Squid si configura attraverso il suo file di configurazione /etc/squid3/squid.conf, che ora creeremo in base alle nostre esigenze:
mv /etc/squid3/squid.conf /etc/squid3/squid.conf.original touch /etc/squid3/squid.conf nano /etc/squid3/squid.conf
con contenuto:
# La porta di Squid http_port 3128 transparent # Se si modifica la linea seguente occorre lanciare: # squid3 -f /etc/squid3/squid.conf -z # per ricostruire la cache cache_dir ufs /var/spool/squid3 1024 256 256 # I Log cache_mgr info@miodominio.org cache_access_log /var/log/squid3/access.log common cache_log /var/log/squid3/cache.log cache_store_log /var/log/squid3/store.log cache_swap_log /var/log/squid3/cache_swap.log emulate_httpd_log on # Configuro l'autenticazione su OpenLDAP # Abilitare le righe seguenti solo se si intende utilizzare # un server LDAP per l'autenticazione degli utenti #auth_param basic program /usr/lib/squid3/squid_ldap_auth -b "ou=Users,dc=dominio,dc=local" -f "uid=%s" -h 127.0.0.1 #auth_param basic children 25 #auth_param basic realm Squid proxy Server #auth_param basic credentialsttl 2 hours # Configurazione minima raccomandata #acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https, snews acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 22 # SSH acl CONNECT method CONNECT # Richiedo l'autenticazione LDAP per proseguire nella navigazione acl ldapauth proxy_auth REQUIRED acl authenticated proxy_auth REQUIRED # Definizione delle reti acl lan_eth src 192.168.10.0/255.255.255.0 acl lan_wifi src 192.168.1.0/255.255.255.0 # Autorizzo o no la navigazione http_access allow localhost http_access allow lan_eth http_access allow lan_wifi http_access deny all # Attivo Squidguard redirect_program /usr/bin/squidGuard -c /etc/squid3/squidGuard.conf redirect_children 5 # Imposto l'hostname del Proxy server visible_hostname firewall
Il proxy così configurato non fa altro che controllare le classi degli indirizzi autorizzati alla navigazione, ma a noi serve qualcosa in più...
Il filtro SquidGuard
Cominciamo con installare SquidGuard, un programma che ci permette di filtrare i tipi di siti web autorizzati e di impostare la navigazione in funzione delle fasce orarie stabilite.
# apt-get install squidguard
Quindi recuperiamo i files delle blackist, le scompattiamo in /var/lib/squidguard/db/… e generiamo il database delle liste:
# cd /var/lib/squidguard/db/ # wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz # tar xzf blacklists.tar.gz # chown -R proxy:proxy blacklists # ln -s /etc/squidguard/squidGuard.conf /etc/squid3/squidGuard.conf # su proxy # squidGuard -d -c /etc/squid3/squidGuard.conf -C all
A questo punto possiamo crearci il nostro file di configurazione personalizzato per SquidGuard:
# mv /etc/squid3/squidGuard.conf /etc/squid3/squidGuard.conf.original # touch /etc/squid3/squidGuard.conf # nano /etc/squid3/squidGuard.conf
con contenuto:
# # CONFIG FILE FOR SQUIDGUARD # dbhome /var/lib/squidguard/db/blacklists logdir /var/log/squid3 # # TIME RULES: # abbrev for weekdays: # s = sun, m = mon, t =tue, w = wed, h = thu, f = fri, a = sat # Definisco alcuni giorni speciali time SpecialsDays { date *.12.24 21:00 - 00:00 date *.12.25 00:00 - 05:00 date *.08.15 00:00 - 23:59 date *.01.01 00:00 - 23:59 } # Le ore lavorative time workhours { weekly mtwhf 08:30 - 19:00 } # IP dell'amministratore di rete src admin { ip 192.168.10.1 } # IP del capo src notadminbutbigboss { ip 192.168.10.253 } # Range IP dell'ufficio src workers { ip 192.168.10.0/16 } # Il resto del mondo src all { ip 172.30.0.0/16 } # Definisco le destinazioni di navigazione # appoggiandomi alle blacklist scaricate dest adults { urllist adult/urls domainlist adult/domains expressionlist adult/very_restrictive_expression } dest drogues { urllist drugs/urls domainlist drugs/domains } est phishing { urllist phishing/urls domainlist phishing/domains } dest guns { urllist marketingware/urls domainlist marketingware/domains } dest danger { urllist dangerous_material/urls domainlist dangerous_material/domains } dest gambling { urllist gambling/urls domainlist gambling/domains } dest hacking { urllist hacking/urls domainlist hacking/domains } dest lingerie { urllist lingerie/urls domainlist lingerie/domains } dest malware { urllist malware/urls domainlist malware/domains } dest sexual_education { urllist sexual_education/urls domainlist sexual_education/domains } dest social_networks { urllist social_networks/urls domainlist social_networks/domains } dest warez { urllist warez/urls domainlist warez/domains } rewrite test { s@fuck@ooops@ir s@blonde@ooops@ir s@Hot@ooops@ir s@sex@ooops@ir s@porns@ooops@ir s@bikini@ooops@ir } # Definisco le regole di navigazione # L'amministratore e il capo navigano dove vogliono # Gli uffici navigano solo in orario di lavoro, ma # non nei siti inclusi nelle blackist utilizzate # per definire le regole acl { admin { pass any } notadminbutbigboss { pass any } workers within workhours { pass !adults !drogues !phishing !guns !hacking !danger !gambling !lingerie !malware !sexual_education !social_networks !warez any redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&clientname=%n&clientident=%i&srcclass=%s&targetclass=%t&url=%u #redirect http://192.168.10.254/stop.html } all { pass !adults !drogues !phishing !guns !hacking !danger !gambling !lingerie !malware !sexual_education !social_networks !warez any redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&clientname=%n&clientident=%i&srcclass=%s&targetclass=%t&url=%u #redirect http://192.168.10.254/stop.html } all within SpecialsDays { pass any redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&clientname=%n&clientident=%i&srcclass=%s&targetclass=%t&url=%u #redirect http://192.168.10.254/stop.html } default { pass none redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&clientname=%n&clientident=%i&srcclass=%s&targetclass=%t&url=%u #redirect http://192.168.10.254/stop.html } }
Impostiamo la pagina di redirect quando viene visitato un sito bloccato:
# gunzip /usr/share/doc/squidguard/examples/squidGuard-simple.cgi.gz # mv /usr/share/doc/squidguard/examples/squidGuard-simple.cgi /usr/lib/cgi-bin/squidGuard.cgi # chmod +x /usr/lib/cgi-bin/squidGuard.cgi
e infine decommentiamo la riga per attivare il proxy trasparente nel nostro script firebox.sh:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Riavviamo il nostro script e prepariamoci a verificarne il funzionamento. Se da un client della rete proviamo a navigare su internet, agendo sulla console del nostro gateway dovremmo vederne i log:
# tail -f /var/log/squid/access.log 1104854410.086 159 192.168.10.50 TCP_MISS/302 469 GET \ http://www.google.com/ - DIRECT/216.239.59.104 text/html 1104854410.217 128 192.168.10.50 TCP_MISS/200 1459 GET \ http://www.google.it/ - DIRECT/216.239.59.99 text/html 1104854410.397 180 192.168.10.50 TCP_MISS/200 9022 GET \ http://www.google.it/intl/it/images/logo.gif - DIRECT/216.239.59.99 image/gif 1104854415.196 200 192.168.10.50 TCP_MISS/200 1459 GET \ http://www.google.it/ - DIRECT/216.239.59.99 text/html 1104854415.271 74 192.168.10.50 TCP_REFRESH_HIT/304 235 GET \ http://www.google.it/intl/it/images/logo.gif - DIRECT/216.239.59.99 text/html
Perfetto! Il nostro proxy server è entrato correttamente in funzione.
Prime conclusioni
Abbiamo fino ad ora impostato una macchina Debian per funzionare come gateway di una rete LAN e per far girare un proxy server che sveltisca la navigazione dei client e ne registri i log. Pur essendo questa una configurazione funzionante e completa, in alcune situazioni potrebbe essere conveniente espanderla e installare anche un sistema per filtrare i contenuti della navigazione, andando oltre ai blocchi impostabili con SquidGuard. È in questi casi che torna utile una categoria di programmi chiamata URL rewriter.
DansGuardian: l'URL rewriter
Un URL rewriter è un software che si occupa di riscrivere un URL, sostituendolo con un'altro ritenuto più opportuno sulla base delle regole e dei filtri impostati. Il risultato è il dirottamento di certe richieste verso una o più pagine predefinite. Un caso tipico è quello in cui l'utente viene deviato su una pagina recante un messaggio standard del tipo "Spiacente, il sito che volevi raggiungere non sembra collegato agli interessi dell'Azienda" o qualcosa del genere.
Installiamo DansGuardian:
# apt-get install dansguardian
Il file principale di configurazione è /etc/dansguardian/dansguardian.conf. Apportiamovi alcune modifiche:
# mv /etc/dansguardian/dansguardian.conf /etc/dansguardian/dansguardian.conf.original # touch /etc/dansguardian/dansguardian.conf # nano /etc/dansguardian/dansguardian.conf
e diamogli questo contenuto:
reportinglevel = 3 languagedir = '/etc/dansguardian/languages' language = 'italian' loglevel = 3 logexceptionhits = 2 logfileformat = 1 filterip = filterport = 8080 proxyip = 192.168.10.254 proxyport = 3128 accessdeniedaddress = 'http://192.168.10.254/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 = 1000 urlcacheage = 900 scancleancache = on phrasefiltermode = 2 preservecase = 0 hexdecodecontent = off forcequicksearch = off reverseaddresslookups = off reverseclientiplookups = off logclienthostnames = off createlistcachefiles = on maxuploadsize = -1 maxcontentfiltersize = 256 maxcontentramcachescansize = 2000 maxcontentfilecachescansize = 20000 filecachedir = '/tmp' deletedownloadedtempfiles = on initialtrickledelay = 20 trickledelay = 10 downloadmanager = '/etc/dansguardian/downloadmanagers/fancy.conf' downloadmanager = '/etc/dansguardian/downloadmanagers/default.conf' contentscanner = '/etc/dansguardian/contentscanners/clamav.conf' contentscannertimeout = 60 contentscanexceptions = off recheckreplacedurls = off forwardedfor = off usexforwardedfor = off logconnectionhandlingerrors = on logchildprocesshandling = off maxchildren = 120 minchildren = 8 minsparechildren = 4 preforkchildren = 6 maxsparechildren = 32 maxagechildren = 500