:: QMAIL-SCANNER


Nome del pacchetto:   Qmail-scanner
Sito di riferimento:   http://qmail-scanner.sourceforge.net/
Autore:   ====
Versione presentata:   v. 1.22_1
Categoria port:   MAIL

:: Descrizione del pacchetto

Qmail-scanner è un filtro per Qmail in grado di bloccare messaggi di posta elettronica contenenti virus o spam. Questo pacchetto, normalmente impiegato insieme ad un antivirus e ad un sistema antispam, è stato implementato per essere "essenziale", veloce e sicuro.

:: Installazione

Qmail-scanner è disponibile tra i ports di FreeBSD. Potete installarlo con i seguenti comandi:

# cd /usr/ports/mail/qmail-scanner
# make
# make test
# make install
# make clean
# chown root /usr/bin/suidperl
# chmod 4711 /usr/bin/suidperl
# su [utente di prova senza privilegi di root]
$ /usr/local/bin/qmail-scanner-queue.pl -g
   (se il test eseguito come utente "non root" non visualizza messaggi di errore, l'installazione ha avuto successo)

L'installazione a questo punto è completa. Per verificare l'elenco dei file compresi nel pacchetto vi ricordiamo l'utilizzo di:

# pkg_info (elenco dei pacchetti tra cui qmail-scanner)
# pkg_info -L [nome del pacchetto]

Va notato che, durante l'installazione, qmail-scanner esegue un controllo relativo alla presenza di sistemi antivirus e antispam. Pertanto, prima di iniziare con la compilazione del pacchetto, sarà necessario installare e configurare clamAv e SpamAssassin.
Inoltre, al termine di ogni "make world" di sistema, andranno reimpostati i permessi del file /usr/bin/suidperl.

:: Configurazione

Il funzionamento di qmail-scanner prevede la modifica di alcuni file di configurazione di pacchetti precedentemente trattati.

1. ClamAV
Modifichiamo il file di configurazione /usr/local/etc/clamav.conf, utilizzato dal demone clamd, abilitando e modificando alcuni parametri come nel file qui di seguito: (per comodità non riportiamo i commenti presenti nel file)

LogFile /var/log/clamav/clamd.log
LogFileMaxSize 10M
LogSyslog
PidFile /var/run/clamav/clamd.pid
DatabaseDirectory /usr/local/share/clamav
LocalSocket /var/run/clamav/clamd
FixStaleSocket
StreamSaveToDisk
MaxThreads 30
MaxDirectoryRecursion 15
VirusEvent echo "VIRUS ALERT: %v" > /tmp/test
User qscand
AllowSupplementaryGroups
ScanOLE2
ScanMail
ScanArchive
ArchiveMaxFileSize 10M
ArchiveMaxRecursion 5
ArchiveMaxFiles 1000
ArchiveMaxCompressionRatio 200
ClamukoScanOnOpen
ClamukoScanOnClose
ClamukoScanOnExec
ClamukoIncludePath /home
ClamukoMaxFileSize 1M
ClamukoScanArchive

E cambiamo i permessi di alcuni file con i comandi:

# chown qscand:qscand /var/log/clamav/clamd.log
# chown -R qscand:qscand /var/run/clamav

Questa operazione è necessaria in quanto, come avrete notato, abbiamo modificato lo user associato al processo clamd. Sostituendo clamav con qscand dovremo cambiare i permessi ai file indicati in modo che tale user possa modificarne il contenuto (ex: scrivere il pid al riavvio del processo).

Al termine delle modifiche, riavviate clamd con il comando:

# /usr/local/etc/rc.d/clam.sh stop
# /usr/local/etc/rc.d/clam.sh start


2. Ucpsi-tcp
Qmail-scanner si sostituisce al programma qmail-queue e di conseguenza dobbiamo intervenire nel file delle regole del tcpserver nel seguente modo:

# cd etc/ucspi-rules
# vi rules-25.tcp
[ MODIFICARE IL CONTENUTO DEL FILE NEL SEGUENTE MODO ]
127.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-queue"
1.2.3.:allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/usr/local/bin/qmail-scanner-queue.pl"
:allow,QMAILQUEUE="/usr/local/bin/qmail-scanner-queue.pl"

In pratica, modificando le regole in questo modo definiamo:

  • l'utilizzo di qmail-queue per la posta locale (127.0.0.1) -- prima regola;
  • il relay smtp e l'utilizzo di qmail-scanner-queue senza SpamAssassin ma con l'antivirus attivo per la rete 1.2.3 -- seconda regola;
  • il controllo Antivirus e Antispam per tutta la posta in entrata che non proviene dalla rete 1.2.3 -- terza regola.
Ricompiliamo il database e riavviamo il servizio con i seguenti comandi:

# cd /etc/ucspi-rules
# ./make-db.sh
# cd /usr/local/etc/rc.d
# ./qmail.sh stop
# ./ucspi.sh stop
# ./qmail.sh start
# ./ucspi.sh start


3. Qmail
Per garantire il corretto funzionamento del nostro sistema di posta elettronica dobbiamo "riservare" memoria per i vari demoni che sono attivi nel nostro sistema.
Con il programma softlimit, utility presente tra i daemontools, possiamo definire il numero di MB che il nostro sistema potrà impiegare durante il processo di ricezione della mail e controllo antivirus/antispam.

Ecco come fare:

(installiamo i daemontools) # cd /usr/ports/sysutils/daemontools
# make
# make install
# make clean (modifichiamo le impostazioni di qmail-smtp)
# vi /usr/local/etc/rc.d/ucspi.sh
[MODIFICA EFFETTUATA IN GRASSETTO]
..........
..........
      exec /usr/local/bin/softlimit -m 10000000 \
          /usr/local/bin/tcpserver -p -x \
          /etc/ucspi-rules/rules-25.cdb -u qmaild -g \
          qnofiles 0 smtp /var/qmail/bin/qmail-smtpd &
..........
..........


4. SpamAssassin
Anche il file di configurazione di SpamAssassin deve essere modificato. In grassetto riportiamo la modifica effettuata al file di boot /usr/local/etc/rc.d/spamd.sh:

# vi /usr/local/etc/rc.d/spamd.sh
[CONTENUTO DEL FILE]
...........
...........
# set defaults

spamd_enable=${spamd_enable:-"NO"}
spamd_pidfile=${spamd_pidfile:-"/var/run/spamd.pid"}
spamd_flags=${spamd_flags:-"-a -c -d -r ${spamd_pidfile} -u qscand"}

load_rc_config $name



[ Pagina principale ]