Installare e configurare Squid3, Dansguardian e pdnsd su Debian 6.0
L’idea di partenza era quella di avere un siistema di navigazione e filtraggio che fosse il meno irritante possibile per l’utente, dove di utenti ce ne sono davvero parecchi.
Per il nostro scopo ci siamo affidati alla nuova release di Debian 6.0 (squeeze) 64bit.
Ovviamente, la maggior parte delle operazioni di un proxy server sono operazioni di I/O, quindi la scelta delle caratteristiche hardware, in installazioni dove sono richiesti parecchi accessi, diventa fondamentale. Il numero di processori, la quantità di RAM, la velocità dei dischi (in modo particolare) tutto diventa particolarmente importante per ottenere il massimo dal nostro proxy.
Nessuno ci vieta di virtualizzare la macchina (oggi va tanto di moda), ma dobbiamo tenere presente che una macchina virtualizzata, ha un gap prestazionale in difetto di circa il 15 %, rispetto ad una macchina fisica con eguali caratteristiche.
Lasciando da parte le nostre considerazioni ideologiche, ognuno sceglierà ciò che è meglio per se, procediamo con i passi per l’installazione.
L’installazione dei nostri software è abbastanza semplice:
Durante la configurazione di pdnsd ci viene richiesto la modalità di configurazione dello stesso, ed in questo caso selezioniamo manuale, di modo da poter tornare su di lui dopo con più di calma.
Configuriamo Squid3
Ma ritorniamo per il momento alla configurazione di Squid3.
Un’opzione utile per poter far utilizzare il nostro proxy server agli utenti della nostra rete, e mantenere il controllo degli accessi, è di sicuro il meccanismo di autenticazione.
Sono vari i meccanismi di autenticazione che può utilizzare Squid3, ma nel nostro caso specifico, ci siamo affidati a LDAP installato e configurato su un altro server nel nostro caso. Diamo il comando:
E una volta dentro il file cominciamo con alcune modifiche:
auth_param basic children 25
auth_param basic realm Squid proxy Server
auth_param basic credentialsttl 2 hours
E aggiungiamo fra le nostre acl la seguente riga:
Questo farà in modo che appaia la richiesta di autenticazione per proseguire nella navigazione.
Questa piccola modifica ci servirà per far lavorare Squid con Dansguardian
Durante la ricerca delle prestazioni di squid, ci sono vari parametri sui quali possiamo puntare.
Uno di questi è il dimensionamento ed il tipo della cache utilizzata. Sono stati presentati vari sistemi per il calcolo, fra i quali
y = dimensione media degli oggetti (circa 13KB)
z = numero delle directory per il primo livello.
z = (((x / y) / 256) / 256)
Assumendo che vogliamo utilizzare 2 GB di cache il nostro calcolo diventa:
Sotto la voce cache_dir indicheremo:
Abbiamo specificato come tipo di cache il valore aufs, che altro non è che l’evoluzione del classico sistema di storage di Squid (ufs) con in più l’implementazione Posix Thread per le richieste asincrone di modo da non divenire bloccante per i processi di squid sulle richieste di I/O.
Con il valore 2000 abbiamo detto a Squid che il limite della cache su disco è di 2 GB, mentre gli altri parametri indicano il primo livello di directory da creare per squid, ed il numero di sotto directory da utilizzare in ogni directory.
Passiamo adesso a DansGuardian.
Dansguardian è un sistema di filtraggio che ha notevoli possibilità, ma che ovviamente sono limitate dalle nostre risorse e/o esigenze. A differenza di altri prodotti, come ad esempio SquidGuard, Dansguardian offre anche la possibilità di eseguire scansioni antivirus dei contenuti durante la navigazione, ed è di semplice configurazione (sempre in confronto a SquidGuard).
La sua taratura, comunque è qualcosa che può richiedere diverso tempo, perchè in situazioni normali, l’utente non dovrebbe nemmeno accorgersi della presenza di questi filtri. Nella realtà, spesso succede che dopo aver configurato il nostro ambiente, ravvisiamo notevoli rallentamenti, sui quali poi si dovrà indagare.
Nel nostro caso abbiamo preso in considerazione una struttura dove sono mediamente connessi ad internet circa 500 utenti.
Apriamo il file di configurazione di dansguardian:
e modifichiamo alcuni parametri (ove non fossero presenti, aggiungiamoli)
filterport = 3128
proxyip = 127.0.0.1
proxyport = 3129
authplugin = ‘/etc/dansguardian/authplugins/proxy-basic.conf’
maxchildren = 900
minchildren = 64
minsparechildren = 8
preforkchildren = 10
maxsparechildren = 64
Malgrado sulla documentazione nel file di configurazione per il parametro maxchildren viene consigliato un valore massimo di 250, questo non corrisponde al vero. Dopo un’estenuante ricerca nel wiki di dansguardian, ho trovato che questo valore normalmente può essere portato fino a 1018 , che corrisponde al valore di FD_SETSIZE=1024 (come descritto nello standard POSIX) – 6.
Se abbiamo necessità di installare Dansguardian su sistemi con più di 1018 connessioni simultanee, allora potremmo provare a ricompilarlo come riportato nel Wiki.
Questo completa l’installazione e la configurazione di Dansguardian (a proposito fra le prime righe c’è una riga da eliminare per far capire al sistema che è stato configurato). Per renderlo operativo, basta avviare/riavviare i servizi di DansGuardian e Squid3
Configurazione Pdnsd
Sotto certi aspetti la parte più semplice del lavoro!
Questo è come appare il nostro file di configurazione … rispetto all’originale abbiamo modificato solo il parametro paranoid da on ad off.
perm_cache=1024;
cache_dir="/var/cache/pdnsd";
run_as="pdnsd";
server_ip = 127.0.0.1; // Use eth0 here if you want to allow other
// machines on your network to query pdnsd.
status_ctl = on;
paranoid=off;
query_method=tcp_udp; // pdnsd must be compiled with tcp
// query support for this to work.
min_ttl=15m; // Retain cached entries at least 15 minutes.
max_ttl=1w; // One week.
timeout=10; // Global timeout option (10 seconds).
// Don‘t enable if you don’t recurse yourself, can lead to problems
// delegation_only="com","net";
}
A questo punto avviando/riavviando il servizio di pdnsd, viene riconfigurato squid3 e tutto dovrebbe funzionare subito.
Aprendo il file
Dovremmo trovare la seguente riga:
Qualcuno nel frattempo potrebbe interrogarsi sul perchè dell’installazione di pdnsd.
La risposta è abbastanza semplice:
Dal momento che vogliamo spingere sulle prestazioni del nostro proxy, vogliamo evitare di interrogare ogni volta un server DNS, e quindi è preferibile utilizzare un sistema di caching dns che risolve localmente indirizzi già interrogati in precedenza. Quest’operazione porta un risparmiio medio di circa 40 ms per ogni richiesta, e non è affatto poco.



Twitter
LinkedIn
Digg
Delicious
Leave a Reply