viernes, 12 de marzo de 2010

Tutorial: Como instalar un completo servidor de correo con Ubuntu Intrepid Ibex Parte VII

Hola a todos,

En esta entrada concluiremos nuestro tutorial de instalación de un servidor de correo en ubuntu, cabe destacar, que dicho manual, con algunas pequeñas variantes ha sido empleado desde ubuntu intrepid hasta karmic koala con excelentes resultados.

En mi entrada anterior, deje fuera una parte de la configuración final de spamassassin y es lo que veremos a continuación.

Configurar Postfix para que emplee Spamassassin

Necesitamos configurar postfix para que los correos sean pasados por nuestro recien instalado filtro antispam. Para ello, configuraremos el archivos master.cf


sudo nano  /etc/postfix/master.cf

Añadiremos lo siguiente en la línea smtp para que quede de la siguiente forma  (el parametro -o va en la siguiente linea):


smtp    inet    n    -    -    -    -    smtpd
-o content_filter=spamassassin:dummy


Y al final del fichero añadiremos las siguientes lineas:

spamassassin unix - n n - - pipe user=spamd
argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} -- ${recipient}


Finalmente reiniciaremos postfix:

sudo /etc/init.d/postfix restart

Por último, tendremos que enseñar a la base de datos lo que es SPAM (correo basuda) o JAM (correo bueno). Los expertos dicen que lo optimo es entrenar la base de datos con 1000 correos JAM y 700 de SPAM. Es importante que el correo no haya sido previamente tratado por ningún sistema antispam o antivirus.

Una buena idea es que creemos en nuestro servidor un buzón llamado basura@dominio.com y registrar esa cuenta en todas las páginas de publicidad que nos sea posible; eso si, comentaremos en master.cf las lineas de spamassassin para que el correo no sea analizado. Una vez conseguido el número de correos que querramos, cargaremos la base de datos y descomentaremos las líneas para que todo funcione bien.

Cómo decimos a spamassassin qué es SPAM y qué es JAM

Lo hacemos de la siguiente forma:

  • Para correo malo
sudo sa-learn --spam -C /etc/mail/spamassassin --showdots /ruta/carpeta/con_spam

  • Para correo bueno
sudo sa-learn --ham -C /etc/mail/spamassassin --showdots --no-rebuild /ruta/correo/bueno.

Seguidamente, cuando hayamos metido correo bueno, necesitamos restaurar los tokens.

sa-learn -C /etc/mail/spamassassin --showdots --rebuild

Instalando y configurando el antivirus ClamAv

Lo primero que haremos será instalar ClamAv con el siguiente comando:

sudo apt-get install clamav clamsmtp clamav-freshclam

Una vez instalado procederemos a configurarlo haciendo una copia del archivo /etc/clamsmtp.conf y crearemos uno nuevo:

sudo mv /etc/clamsmtp.conf /etc/clamsmtp.conf

sudo nano /etc/clamsmtp.conf

Debemos de dejar el archivo de la siguiente forma:

# Direccion para enviar los correos escaneados:
OutAddress: 10026
# Puerto en el que escucha
Listen: 127.0.0.1:10025
# Lugar donde escucha el clamd
ClamAddress: /var/run/clamav/clamd.ctl
# Añadir esta cabecera a los correos escaneados
Header: X-AV-Checked: ClamAV using ClamSMTP
# Localización del pid
PidFile: /var/run/clamsmtp/clamsmtpd.pid
# Numero máximo de conexiones simultaneas a escanear. Por defecto no se pone nada
#MaxConnections: 64
# Lugar donde dejar los ficheros temporales
TempDirectory: /var/spool/clamsmtp
# El usuario con el que lanzarlo
User: clamsmtp
# Acción a realizar en caso de detectar virus.
VirusAction: /usr/local/bin/virusalert.sh


Seguidamente, tendremos que crear el archivo virusalert.sh, que será quien definira que haremos en caso de encontrar un virus en el correo.

sudo nano  /usr/local/bin/virusalert.sh

No olvide luego de terminar darle permisos de ejecución. El contenido del archivo será el siguiente:

#!/bin/sh
FROM='Sistema antivirus '
TO=$RECIPIENTS
MAILER='/usr/sbin/sendmail -it'
SUBJECT=`/bin/echo "El correo contiene un virus" | /usr/bin/nkf -jMB`
$MAILER <
From: $FROM
To: $TO
Subject: =?ISO-2022-JP?B?$SUBJECT?=
Se ha detectado codigo malicioso en el adjunto que contenía el correo. Pongase
en
contacto con el administrador de su sistema, si está seguro/a de que no es un
virus, pida
a la persona que le envía el fichero que por favor lo ponga en un fichero
comprimido
protegido por una contraseña. Disculpe las molestias.
[Virus]
$VIRUS
[De]
$SENDER
[Para]
$RECIPIENTS
EOM
exit 0


La última parte de la configuración sera decirle a postfix que procese los correos a través de ClamAv. Para ello, editaremos el fichero master.cf

sudo nano /etc/postfix/master.cf

Y añadiremos las siguientes líneas al final del fichero:

## FILTRO ANTIVIRUS
## Filtro antivirus usado por content filter
scan      unix -     -    n    -     16      smtp
    -o smtp_send_xforward_command=yes
    -o smtp_enforce_tls=no
# Para inyectar el correo a postfix una vez analizado
127.0.0.1:10026 inet n -      n     -      16    smtpd
    -o content_filter=
    -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
#    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks_style=host
    -o smtpd_authorized_xforward_hosts=127.0.0.0/8


Seguidamente, necesitamos editar el fichero main.cf

sudo nano /etc/postfix/main.cf

En el que tendremos que añadir las siguientes líneas al final del fichero:

## ANTIVIRUS
content_filter = scan:[127.0.0.1]:10025


Finalmente reiniciamos los servicios para que se inicien con la nueva configuración.

sudo /etc/init.d/clamsmtp restart
sudo /etc/init.d/postfix restart

Llegado a este punto, ya tenemos instalado nuestro servidor. En una próxima entrada, publicaré mis ficheros de configuración de postfix y dovecot para que ustedes puedan compararlo con los suyos.
Publicar un comentario en la entrada