Squid, Dansguardian, Report

Squid

configurazione

Modificare in /etc/squid/squid.conf

visible_hostname srv-scuolax

auth_param basic program /usr/lib/squid/ldap_auth -v 3 -b ou=People,dc=isi,dc=lan srv-scuolax

external_acl_type ldap_group %LOGIN  /usr/lib/squid/squid_ldap_group \
-v 3 -b ou=Groups,dc=isi,dc=lan -B ou=People,dc=isi,dc=lan  -f \
"(&(memberUid=%v)(objectClass=posixGroup)(cn=%g))"  srv-scuolax

Il nome del server con cui si sostituirà srv-scuolax dovrà essere risolvibile, ci si assicuri pertanto che sia inserito in /etc/hosts.

Si accerti anche che le seguenti direttive siano presenti:

http_port 3128
access_log /var/log/squid/access.log
cache_dir ufs /var/spool/squid 3000 16 256
  • cache_dir limita la dimensione della cache a 3 Gb
  • access_log definisce dove verranno scritti i log. E` indispensabile se si intende utilizzare Sarg.

Recentemente abbiamo modificato alcuni percorsi di sistema relativi a squid e alle directory contenenti i report. Di seguito ci limiteremo a fornire le istruzioni per aggiornare la configurazione di squid alla nuova versione. Vi suggeriamo di leggere l’approfondimento relativo disponibile qui.

mkdir -p /home/var/log/squid && chown proxy.proxy /home/var/log/squid
mkdir -p /home/var/spool/squid && chown proxy.proxy /home/var/spool/squid

/etc/init.d/squid stop

rm -rf /var/spool/squid
ln -s /home/var/spool/squid /var/spool/squid

mv /var/log/squid/* /home/var/log/squid/ && rm -r /var/log/squid
ln -s /home/var/log/squid /var/log/squid

/etc/init.d/squid start
/etc/init.d/sysklogd restart

Rotazione dei log

Esigenze di legge ci portano a conservare i log per un periodo di almeno cinque anni. Per questa ragione sostituiamo al contenuto di /etc/logrotate.d/squid quanto segue

#
#       Logrotate fragment for squid.
#
/var/log/squid/*.log {
        monthly
        compress
        delaycompress
        rotate 60
        missingok
        nocreate
        sharedscripts
        prerotate
                test ! -x /usr/sbin/sarg-reports || /usr/sbin/sarg-reports monthly
        endscript
        postrotate
                test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate
        endscript
}

Dansguardian

Potete vedere alcuni esercizi nel laboratorio su DansGuardian.

Le modifiche da apportare al fine di configurazione /etc/dansguardian/dansguardian.conf sono modeste:

language = 'italian'
# the port that DansGuardian listens to.
filterport = 8128

# the ip of the proxy (default is the loopback - i.e. this server)
proxyip = 127.0.0.1

# the port DansGuardian connects to proxy on
proxyport = 3128

# accessdeniedaddress is the address of your web server to which the cgi
# dansguardian reporting script was copied
# Do NOT change from the default if you are not using the cgi.
#
accessdeniedaddress = 'http://localhost/cgi-bin/dansguardian.pl'

è inoltre possibile, non indispensabile, attivare il filtro antivirus. Nella distribuzione si troverà già incluso il supporto per ClamAV.

virusscan = on

# OPTION: virusengine
# Set the embedded virus scan engine to be used
virusengine = 'clamav'

Si può dunque scegliere di disattivare la feature impostando la direttiva

virusscan = off

Prima di attivare DansGuardian, come si evince dal suo contenuto, è indispensabile rimuovere la seguente riga (localizzata di solito ad inizio file):

UNCONFIGURED - Please remove this line after configuration

Chi volesse modificare le varie tipologie di filtraggio, troverà indispensabile il file /etc/dansguardian/dansguardianf1.conf

Per ulteriori informazioni su dansguardian e le tipologie di filtraggio: http://dansguardian.org/

SARG

Per utilizzare SARG, utile strumento di interpretazione dei logs di accesso di squid, è necessario assicurarsi che squid sia configurato per scrivere i propri log in /var/log/squid/access.log. Ci si accerti quindi che in /etc/squid/squid.conf sia presente la direttiva seguente ed in caso contrario la si aggiunga

access_log /var/log/squid/access.log

Grazie a SARG è possibile generare report in formato html parteno dai log di squid.

Configurazione

** Lingua **

La lingua usata di default nei log generati è inglese. Se si desiderasse sostituirla quella italiana, basterà sostituire in /etc/squid/sarg.conf la direttiva language English con language Italian.

** Destinazione Report **

Dato che i file di configurazione di default prevedono che i report vengano generati in /var/www/squid-reports/, per rispettare la nuova struttura ISI <path_home_var>, che posiziona i report in /home/var/reports/, modifichiamo i file /etc/squid/sarg.conf e /etc/squid/sarg-reports.conf impostando nel primo

output_dir /home/var/reports/squid-reports

e nel secondo

HTMLOUT=/home/var/reports/squid-reports

Generazione dei report schedulata tramite crontab

Di default, la creazione schedulata dei report( giornalieri, settimanali, mensili) viene garantita dalle seguenti script aggiunte da sarg

/etc/cron.daily/sarg
/etc/cron.weekly/sarg
/etc/cron.monthly/sarg

Il cui codice, molto elementare, altro non fa che avviare “sarg-reports” e passargli il periodo di tempo di cui generare i log

/usr/sbin/sarg-reports monthly

Per semplificarne ulteriormente la configurazione, abbiamo preferito rimuovere le script aggiunte da sarg schedulando i processi di generazione dei report nel file di cron ISI /etc/cron.d/isi

rm /etc/cron.*/sarg

Il contenuto del file /etc/cron.d/isi risultante è il seguente

#### Sarg reports
00 08-18/1 * * * /usr/sbin/sarg-reports today
00 00 * * * /usr/sbin/sarg-reports daily
00 01 * * 1 /usr/sbin/sarg-reports weekly
30 02 1 * * /usr/sbin/sarg-reports monthly

#### create nautilus links
00 04 * * *    root /usr/sbin/isi-gnome-menu -a &>/dev/null

#### start daily backup
00 23 * * *    root /usr/sbin/isi-backup &>/dev/null

Dglog

cos’è

dglog è un utilissimo perl-script che permette di analizzare comodamente i logs generati da dansguardian. Con questo utile strumento sarà possibile, ad esempio, elencare tutti i contenuti web negati/permessi ad un particolare utente. Una volta configurato, dglog sarà raggiungibile direttamente dall’interfaccia web, nella sezione navigazione/log. Se dglog viene configurato sul firewall che non ha installato isi-web, dglog sarà raggiungibile puntando a

http://<IP SERVER>/cgi-bin/dglog/dglog.pl

Configurazione dglog

Creare il file di configurazione

cd /etc/isi
cp dglog.conf.pl.sample dglog.conf.pl

Rendere eseguibile il cgi-script dglog.pl

chmod +x /usr/lib/cgi-bin/dglog/dglog.pl

Verifica

Per una rapida verifica basterà puntare con il proprio browser al seguente URL:

http://<IP SERVER>/cgi-bin/dglog/dglog.pl

MRTG

Grazie a MRTG potremo tenere sempre sotto controllo il traffico di rete dei nostri server.

installazione

apt-get -y install mrtg mrtg-contrib librrds-perl snmpd snmp

Configurazione

Modifichiamo /etc/snmp/snmpd.conf lanciando

sed -i 's|com2sec paranoid   default         public|#com2sec paranoid  default         public|g' /etc/snmp/snmpd.conf
sed -i 's|com2sec paranoid  default         public|#com2sec paranoid  default         public|g' /etc/snmp/snmpd.conf
sed -i 's|#com2sec readonly  default         public|com2sec readonly  127.0.0.1        public|g' /etc/snmp/snmpd.conf

e restartiamo il servizio snmpd

/etc/init.d/snmpd restart

Creiamo quindi la directory in cui verranno generati i nostri log

mkdir -p /home/var/reports/mrtg

Generiamo il file di configurazione /etc/mrtg.cfg

cfgmaker --global "WorkDir: /home/var/reports/mrtg" --global "Options[_]: growright,bits" --ifref=name public@localhost --output=/etc/mrtg.cfg

creiamo l’index

indexmaker --clicktext --title="Statistiche $(hostname)" --output=/home/var/reports/mrtg/index.html /etc/mrtg.cfg

E lanciamo la generazione dei report

# Generate report
if [ -d /var/lock/mrtg ]; then
    if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then
    env LANG=C /usr/bin/mrtg /etc/mrtg.cfg >> /var/log/mrtg/mrtg.log 2>&1
    fi
else
    mkdir /var/lock/mrtg
fi

ACL di default

Di recente è stata apportata qualche modifica al file acl.conf di default. Tra le modifiche effettuate, sono state aggiunte le impostazioni dei permessi anche per il nuovo percorso dei report /home/var/reports. Se non ancora fatto, è possibile applicare alla propria /home/var/reports lo schema di acl ISI con

isi-perms reports

Configurare i clientXP per passare da squid

Affinchè le macchine XP vengano correttamente configurate, in fase di logon, per passare attraverso dansguardian, modificare /etc/isi/logon.conf impostando le seguenti direttive di logon

### WinSet sezione 'proxy'
ProxyServer          = 192.168.1.222:8128    # DansGuardian
ProxyServer[admins]  = 192.168.1.222:3128    # Squid (FW permettendo)
#ProxyOverride        = www.XXX.XXX,<local>

Configurare apt dei client per passare da squid

Affinchè le macchine debian/ubuntu possano passare il firewall occorre creare un account apposito ed istruire apt di usare quello per evitare di essere bloccato dal firewall che blocca appunto la porta 80.

Apt-get legge un file di configurazione,

  1. /etc/apt/apt.conf o un qualunque file della directory
  2. etc/apt/apt.conf.d/

E` sufficiente mettere in questo file la istruzione:

Acquire::http::Proxy "http://user:pwd@ip_squid_box:3128";

ed aggiungere un utente allo scopo con il comando (sostituire xxx):

isi-adduser -s 'apt;squid;proxy;admins;;;xxx'