Un Mail Transfer Agent (MTA) maneja la trasferencia de correo electrónico de un servidor a otro. Aquí vamos a configurar el MTA Exim4 1, integrándolo con protocolos de autenticación SMTP, protocolos de seguridad (SSL, TSL), anti-virus (Clam Antivirus), bloqueo de DNS con listas negras (DNSBL) y filtro de spam (SpamAssassin).
La configuración avanzada de Exim4 aquí presentada es apta para un servidor Debian, conectado a Internet permanentemente, con número IP estático y FQDN (Fully Qualified Domain Name).
Instala el paquete exim4,
# apt-get install exim4
Si exim4 ya está instalado, reconfigura con,
# dpkg-reconfigure -plow exim4-config
Configura un sitio Internet,
Internet site; el correo se envía y recibe directamente usando SMTP
Da el nombre completo del servidor, incluyendo el dominio. Por ejemplo,
Nombre del sistema de correo: mi.servidor.debian
Deja en blanco las direcciones IP que escuchan conexiones SMTP entrantes. Esto hace que todas la interfases sean usadas.
Direcciones IP en las que recibir conexiones SMTP entrantes:
En otros destinos a los cuales se acepta correo puedes agregar dominios adicionales, separados con un colon, que apuntan al número IP del servidor de correo, por ejemplo, aquellos definidos con BIND,
Otros destinos para los que se acepta el correo: ficticio.cl
Es preferible usar SMTP-AUTH para envíos de correo que actuar como relay. Un relay mal configurado podría usarse para envío de spam. Deja esta opción en blanco a no ser que sepas bien lo que haces.
Dominios para los que se reenvía correo:
Es seguro actuar de relay para una red local, por ejemplo,
Máquinas para los cuales reeinviar correo: 192.168.1.0/24
solo si se bloquea el rango en la interfase externa con un cortafuego.
En método de entrega para el correo local escoge formato mbox,
formato mbox en /var/mail/
Separa la configuración en archivos pequeños,
¿Dividir la configuración en pequeños ficheros? <Sí>
Si tienes un cortafuego, habilita el puerto 25 TCP hacia requerimientos por la interfase que va a servir correo electrónico.
Instala los paquetes sasl2-bin y libsasl2-modules,
# apt-get install sasl2-bin libsasl2-modules
Edita /etc/default/saslauthd y modifica la variable START a,
START=yes
Reinicia el servidor de autenticación SASL,
# /etc/init.d/saslauthd restart
Edita /etc/exim4/conf.d/main/03_exim4-config_tlsoptions y agrega la línea,
MAIN_TLS_ENABLE = 1
al inicio del archivo,
### main/03_exim4-config_tlsoptions ################################# # TLS/SSL configuration. # See /usr/share/doc/exim4-base/README.Debian.gz for explanations. MAIN_TLS_ENABLE = 1
Edita /etc/exim4/conf.d/auth/30_exim4-config_examples y descomenta la sección login_saslauthd_server,
login_saslauthd_server: driver = plaintext public_name = LOGIN server_prompts = "Username:: : Password::" # don't send system passwords over unencrypted connections server_condition = ${if saslauthd{{$auth1}{$auth2}}{1}{0}} server_set_id = $auth1 # .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS # server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} # .endif
Genera un certificado de seguridad, por ejemplo,
# /usr/share/doc/exim4-base/examples/exim-gencert Country Code (2 letters) [US]:CL State or Province Name (full name) []:. Locality Name (eg, city) []:Santiago Organization Name (eg, company; recommended) []:Mi organizacion Organizational Unit Name (eg, section) []:Mi unidad Server name (eg. ssl.domain.tld; required!!!) []:smtp.servidor.debian Email Address []:postmaster@servidor.debian
Los archivos exim.crt y exim.key son guardados en /etc/exim4. El certificados es válido por tres años. Si deseas cambiar el tiempo de validez, edita /usr/share/doc/exim4-base/examples/exim-gencert y modifica la variable DAYS, por ejemplo,
DAYS=3652
(diez años). Genera nuevamente el certificado.
Agrega el usuario Debian-exim al grupo sasl,
# addgroup Debian-exim sasl
Actualiza la configuración de Exim,
# update-exim4.conf
y reinicia exim4,
# /etc/init.d/exim4 restart
Prueba una conexión SMTP (puerto 25),
$ telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 debian.ciencias.uchile.cl ESMTP Exim 4.63 Tue, 01 May 2007 14:51:23 -0400
Escribe "EHLO debian.ciencias.uchile.cl",
EHLO debian.ciencias.uchile.cl 250-debian.ciencias.uchile.cl Hello root at localhost [127.0.0.1] 250-SIZE 52428800 250-PIPELINING 250-AUTH LOGIN 250-STARTTLS 250 HELP
Las líneas,
250-AUTH LOGIN 250-STARTTLS
indican que la autenticación SMTP con TLS está funcionando.
También puedes configurar el servidor SASL para que ejecute la autenticación con SSL por el puerto 465 (SSMTP). Cómo hacer esta modificación puedes encontrarla en,
http://wiki.debianchile.org/EximSMTPAuth#ssmtp
Clamav es un antivirus libre muy popular. Si bien sistemas Unix no sufren de virus y parecidos, el correo recibido puede ser leido por sistemas que si sufren de este mal. Por eso, es reconedable instalar este anti-virus.
Instala el paquete exim4-daemon-heavy,
# apt-get install exim4-daemon-heavy
El paquete exim4-daemon-light será removido.
Instala los paquetes clamav-freshclam y clamav-daemon. Es recomendable usar los paquetes distribuidos por Debian Volatile. Configura APT para usar el déposito, luego instala los paquetes,
# apt-get install clamav-freshclam clamav-daemon
El primer paquete es el daemon que descarga la base de datos de virus de Internet y la actualiza regularmente. El segundo paquete es el scanner.
Edita /etc/exim4/conf.d/main/02_exim4-config_options y modifica el instructivo av_scanner,
av_scanner = clamd:/var/run/clamav/clamd.ctl
Edita /etc/exim4/conf.d/acl/40_exim4-config_check_data y agrega casi al final, justo antes de accept,
# Reject messages that have serious MIME errors. # This calls the demime condition again, but it # will return cached results. deny message = Serious MIME defect detected ($demime_reason) demime = * condition = ${if >{$demime_errorlevel}{2}{1}{0}} # Reject file extensions used by worms. # Note that the extension list may be incomplete. deny message = This domain has a policy of not accepting certain \ types of attachments in mail as they may contain a \ virus. This mail has a file with a .$found_extension \ attachment and is not accepted. If you have a \ legitimate need to send this particular attachment, \ send it in a compressed archive, and it will then be \ forwarded to the recipient. demime = exe:com:vbs:bat:pif:scr # Reject messages containing malware. deny message = This message contains a virus ($malware_name) and \ has been rejected. malware = * # accept otherwise accept
Crea el directorio /var/spool/exim4/scan con atributos de escritura,
# mkdir -p -m 777 /var/spool/exim4/scan
Agrega el usuario clamav al grupo Debian-exim,
# addgroup clamav Debian-exim
Actualiza la configuración de Exim,
# update-exim4.conf
y reinicia exim4,
# /etc/init.d/exim4 restart
Reinicia clamav-daemon,
# /etc/init.d/clamav-daemon restart
Una lista negra DNS es un servicio prestado generalmente por una organización anti-spam sin fines de lucro. El MTA consulta un servidor dedicado, quien responde positivamente si el IP enviante se encuentra en su lista. Una consulta positiva niega el recibo del mensaje, generando una respuesta al emisior en que se le comunica que su IP se encuentra en la lista consultada.
Edita /etc/exim4/conf.d/main/02_exim4-config_options y al final del archivo agrega,
CHECK_RCPT_IP_DNSBLS = zen.spamhaus.org
Edita /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt y modifica,
# Check against classic DNS "black" lists (DNSBLs) which list # sender IP addresses .ifdef CHECK_RCPT_IP_DNSBLS warning message = X-Warning: $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text) log_message = $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text) dnslists = CHECK_RCPT_IP_DNSBLS .endif
por
# Check against classic DNS "black" lists (DNSBLs) which list # sender IP addresses .ifdef CHECK_RCPT_IP_DNSBLS drop message = X-Warning: $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text) log_message = $sender_host_address is listed at $dnslist_domain ($dnslist_value: $dnslist_text) dnslists = CHECK_RCPT_IP_DNSBLS .endif
dnslists define las listas DNSBL a usar, separadas por un dos puntos (:), cuyo valor se traspasa con la variable CHECK_RCPT_IP_DNSBLS.
La lista DNSLB del ejemplo es la de SpamHaus 2. Existen otras listas DNSBL que son complementarias, por ejemplo, la lista de BarracudaCentral 3,
CHECK_RCPT_IP_DNSBLS = zen.spamhaus.org : b.barracudacentral.org
Actualiza la configuración de Exim,
# update-exim4.conf
y reinicia exim4,
# /etc/init.d/exim4 restart
Información adicional sobre otras listas DNSBL puedes encontrar en,
http://wiki.debianchile.org/EximDNSBL
Una lista blanca DNS actua en forma reversa a una lista negra, retornando en vez una respuesta positiva si el número IP del emisor no se dedica sistemáticamente a enviar spam, de acuerdo a cuatro niveles de confianza; alto (nunca envía spam), mediano (ocurrencias de spam muy raras y se corrigen rápidamente), bajo (ocurrencia de spam ocasional, pero se corrige menos diligentemente) y ninguno (servidor de correo legítimo, que puede enviar spam).
Edita /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt y agrega,
# DNS Whitelist accept domains = +local_domains # whitelist only medium and high trust levels dnslists = list.dnswl.org&0.0.0.2 logwrite = $sender_host_address is whitelisted
justo antes de definir las listas negras DNS. La respuesta es positiva si el emisor se encuentra en uno de los dos niveles superiores de confianza (alto y mediano), siendo aceptado y evitando que adicionalmente sea escrutinado por una lista negra DNS.
Actualiza la configuración de Exim,
# update-exim4.conf
y reinicia exim4,
# /etc/init.d/exim4 restart
Instala los paquetes spamassassin y spamc,
# apt-get install spamassassin spamc
Edita /etc/default/spamassassin y modifica la variable ENABLED a,
ENABLED=1
Inicia spamd con,
# /etc/init.d/spamassassin start
Instala el paquete sa-exim,
# apt-get install sa-exim
Edita /etc/exim4/sa-exim.conf y comenta la línea,
#SAEximRunCond: 0
Actualiza la configuración de Exim,
# update-exim4.conf
y reinicia exim4,
# /etc/init.d/exim4 restart
Información adicional sobre el uso de SpamAssassin y como filtrar spam con marcadores bayesianos puedes encontrar en,
http://wiki.debianchile.org/EximSpamAssassin#bayes
 
[1] - http://www.exim.org
 
[2] - http://www.spamhaus.org
 
[3] - http://www.barracudacentral.org
This document was generated using AFT v5.097