systemadmin.es > Correo > Instalación de qmail con vpopmail, qmail-scanner, ClamAV y SpamAssassin (III)

Instalación de qmail con vpopmail, qmail-scanner, ClamAV y SpamAssassin (III)

En los artículos anteriores vimos como hacer una instalación básica de qmail y seguimos instalando vpopmail y SpamAssassin. A continuación veremos como instalar ClamAV como motor antivirus y qmail-scan-queue para el análisis de los mensajes con ClamAV y SpamAssassin.

Instalación ClamAV

Primero de todo instalamos los siguientes paquetes:

yum install zlib-devel -y
yum install gmp-devel -y

Seguimos con la instalación de ClamAV desde código fuente:

groupadd clamav
useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
groupadd qscand 
useradd -c "Qmail-Scanner Account" -g qscand -s /bin/false qscand
cd /usr/local/src

Descargamos la última versión de ClamAV, en este caso la 0.96.2:

wget 'https://downloads.sourceforge.net/project/clamav/clamav/0.96.2/clamav-0.96.2.tar.gz?r=http%3A%2F%2Fwww.clamav.net%2Fdownload%2Fsources%2F&ts=1282649587&mirror=ovh'
tar xzf clamav-0.96.2.tar.gz 
cd clamav-0.96.2
./configure
make && make install
mkdir -p /var/lib/clamav/
chown clamav. /var/lib/clamav/
mkdir -p /usr/local/supervise/clamd/
mkdir -p /usr/local/supervise/freshclam/

Creamos el fichero /usr/local/etc/clamd.conf definiendo las siguientes directivas:

cat > /usr/local/etc/clamd.conf <<EndOfFile
LogSyslog yes
DatabaseDirectory /var/lib/clamav
LocalSocket /tmp/clamd.socket
FixStaleSocket yes
SelfCheck 3600
User qscand
Foreground yes
DetectPUA yes
IncludePUA PwTool
IncludePUA NetTool
IncludePUA RAT
IncludePUA Tool
IncludePUA Spy
IncludePUA Server
IncludePUA Script
AlgorithmicDetection yes
ScanPE yes
ScanELF yes
ScanOLE2 yes
ScanPDF yes
ScanMail yes
PhishingSignatures yes
PhishingScanURLs yes
HeuristicScanPrecedence yes
ArchiveLimitMemoryUsage yes
EndOfFile

También definimos el fichero /usr/local/supervise/clamd/run:

cat > /usr/local/supervise/clamd/run <<EOF
#!/bin/bash
exec /usr/local/sbin/clamd 2>&1 >/dev/null
EOF

Actualizaciones automáticas de ClamAV con freshclam

Para realizar las actualizaciones de las firmas del motor antivirus lo haremos mediante freshclam. Definimos el fichero /usr/local/etc/freshclam.conf para configurarlo:

cat > /usr/local/etc/freshclam.conf <<EOF
DatabaseDirectory /var/lib/clamav
LogSyslog yes
DatabaseOwner clamav
DatabaseMirror db.es.clamav.net
DatabaseMirror database.clamav.net
NotifyClamd /usr/local/etc/clamd.conf
Foreground yes
EOF

Creamos el fichero /usr/local/supervise/freshclam/run para usar freshclam con las daemontools:

cat > /usr/local/supervise/freshclam/run <<EOF
#!/bin/bash
exec /usr/local/bin/freshclam -d
EOF

Damos permisos de ejecución y levantamos el daemon:

chmod +x /usr/local/supervise/freshclam/run
ln -s  /usr/local/supervise/freshclam /service/

A continuación deberemos esperar que descargue la primer versión de la base de datos de firmas de virus. Hacemos un tail del /var/log/messages y esperamos a ver el siguiente mensaje:

tail -f /var/log/messages
Aug 21 14:02:09 qapla freshclam[14641]: freshclam daemon 0.96.2 (OS: linux-gnu, ARCH: i386, CPU: i686) 
Aug 21 14:02:09 qapla freshclam[14641]: ClamAV update process started at Tue Aug 24 14:02:09 2010 
Aug 21 14:02:23 qapla freshclam[14641]: Downloading main.cvd [100%] 
Aug 21 14:02:29 qapla freshclam[14641]: main.cvd updated (version: 52, sigs: 704727, f-level: 44, builder: sven) 
Aug 21 14:02:31 qapla freshclam[14641]: Downloading daily.cvd [100%] 
Aug 21 14:02:32 qapla freshclam[14641]: daily.cvd updated (version: 11642, sigs: 113710, f-level: 53, builder: arnaud) 
Aug 21 14:02:32 qapla freshclam[14641]: Downloading bytecode.cvd [100%] 
Aug 21 14:02:33 qapla freshclam[14641]: bytecode.cvd updated (version: 39, sigs: 9, f-level: 53, builder: edwin) 
Aug 21 14:02:33 qapla freshclam[14641]: Database updated (818446 signatures) from db.es.clamav.net (IP: 194.65.79.153) 
Aug 21 14:02:33 qapla freshclam[14641]: Clamd was NOT notified: Can't connect to clamd through /tmp/clamd.socket 
Aug 21 14:02:33 qapla freshclam[14641]: -------------------------------------- 

Con las firmas ya descargadas ya podemos levantar el daemon de ClamAV:

chmod +x /usr/local/supervise/clamd/run
ln -s /usr/local/supervise/clamd /service

Instalación de qmail-scanner

Para instalar qmail-scanner necesitaremos instalar TNEF unpacker y ReformatMIME.

Instalación de TNEF unpacker

cd /usr/local/src
wget 'https://downloads.sourceforge.net/project/tnef/tnef/v1.4.7/tnef-1.4.7.tar.gz?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Ftnef%2F&ts=1282651492&mirror=ovh'
tar xzf tnef*
cd tnef*
./configure
make && make install

Instalación de ReformatMIME

Para el ReformatMIME necesitaremos el siguiente paquete:

yum install pcre-devel -y

Seguimos con la instalación desde código fuente:

cd /usr/local/src
wget 'https://downloads.sourceforge.net/project/courier/maildrop-devel/20100815/maildrop-2.5.0.20100815.tar.bz2?r=&ts=1282652582&mirror=ovh'
tar xjf maildrop-2.5.0.20100815.tar.bz2 
cd maildrop*
./configure
make
make install-strip
make install-man

Seguimos instalando el qmail-scanner con el parche de Salvatore Toribio:

cd /usr/local/src
wget http://toribio.apollinare.org/qmail-scanner/download/q-s-2.08st-20100626.patch.gz
wget 'https://downloads.sourceforge.net/project/qmail-scanner/qmail-scanner/2.08/qmail-scanner-2.08.tgz?r=http%3A%2F%2Fqmail-scanner.sourceforge.net%2F&ts=1282653075&mirror=ovh'
yum install perl-suidperl -y
tar xzf qmail-scanner-2.08.tgz 
gzip -d q-s-2.08st-20100626.patch.gz 
patch -p0 < q-s-2.08st-20100626.patch 
cd qmail-scanner-2.08
cat <<EOF | ./configure --qs-user qscand --admin virusadmin --domain systemadmin.es --admin-description "Virus: systemadmin.es postmaster" --notify psender,nmlvadm --local-domains systemsadmins.es --silent-viruses auto --virus-to-delete 0 --skip-text-msgs 1 --lang es_ES --debug no --minidebug 1 --add-dscr-hdrs 0 --dscr-hdrs-text "X-Qmail-Scanner" --normalize 1 --archive 0 --settings-per-domain 0 --max-scan-size 100000000 --unzip 0 --max-zip-size 1000000000 --max-unpacked-files 10000 --redundant 1 --log-details syslog --log-crypto 0 --fix-mime 1 --ignore-eol-check 0 --sa-delta 0 --sa-alt 0 --sa-debug 0 --sa-report 0 --sa-quarantine 4 --sa-delete 40 --sa-reject 1 --scanners "clamdscan,verbose_spamassassin" --install 1
y
y

EOF
sed -i 's/#\./\./' /var/spool/qscan/quarantine-events.txt
/var/qmail/bin/qmail-scanner-queue.pl -g after

A continuación añadimos al cron lo siguiente (mediante crontab -e):

cat >> /var/spool/cron/root <<EOF

# qscan
0 0 * * * /var/qmail/bin/qmail-scanner-queue.pl -z
0 * * * * find /var/spool/qmailscan/quarantine -type f -mtime +30 -exec rm '{}' \;

EOF
pkill -1 cron

Mañana seguiremos levantando esta primera versión de qmail con el analisis antivirus y antispam.

El listado de la serie completa es Instalación de un servidor de correo con qmail/vpopmail/qmail-scanner/ClamAV/SpamAssassin:

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>