Guía de Instalación y configuración de Servidor de Correo SMTP con
soporte TLS.
Postfix, Dovecot y Amavis en Ubuntu 12.04 x64
Esta guía está centrada en la instalación del
servidor mail y no en la instalación del Sistema operativo, puesto que debemos
ya tener listo nuestro servidor con el sistema operativo y funcionando.
Explica como instalar postfix con un servidor
SMTP usando una conexión segura y la instalación de un antivirus en este caso
Amavis para escanear los correos tanto de entrada como de salida.
Postfix
Postfix
es el agente de transferencia de correo electrónico también conocido como MTA y
esta predeterminado en Ubuntu puesto que no debemos tener ningún tipo de complicaciones.
Su objetivo es ser rápido, seguro y fácil de administrar.
Instalación
Para instalar
postfix ejecute la siguiente orden:
sudo apt-get install postfix
Configuración básica
Para configurar postfix, ejecute el
siguiente comando.
sudo dpkg-reconfigure postfix
La interfaz de usuario será mostrada: en
cada pantalla, seleccione los siguientes valores:
1.
Sitio de Internet
2.
mail.example.com
3.
mailer
4.
mail.example.com, localhost.localdomain, localhost
5.
no
6.
127.0.0.0/8, 192.168.0.0/16
7.
0
8.
+
9.
todo
(Reemplace mail.example.com con el dominio por el que usted aceptará correo electrónico, 192.168.0.0/16 con la red
real y el rango de clase de su servidor de correo, y configúrelo con el nombre
de usuario apropiado).
Podemos cambiar los ficheros de configuración
del postfix con el comando “postconf –e” seguido del paramtro a configurar. los
parámetros de configuración están alojados en el archivo /etc/postfix/main.cf y
/etc/postfix/master.cf .
Cambiemos el mailbox que por default
postfix utilizara mbox en buzon de formato, lo cambiaremos por Maildir:
sudo postconf –e ‘home_mailbox = Maildir/’
(Esto ubicara los nuevos correos en /home/nombredeusuario/Maildir
por lo que necesitara configurar su Agente de entrega de correo (MDA) para usar
la misa ruta).
Autenticación SMTP
SMTP-AUTH
permite al cliente identificarse a si mismo a través de un mecanismo de
autenticación (SASL). La Seguridad de la Capa de Transporte (TLS) debe ser
utilizada para encriptar el proceso de autenticación. Una vez autenticado, el
servidor SMTP permitirá al cliente enviar correos.
Configuramos
el /etc/postfix/main.cf
--Primero
tenemos que configurar Postfix para SMTP-AUTH
usando SASL (Dovecot SASL):
sudo postconf -e 'smtpd_sasl_type =
dovecot'
sudo postconf -e 'smtpd_sasl_path
= private/auth'
sudo postconf -e 'smtpd_sasl_local_domain
='
sudo postconf -e
'smtpd_sasl_security_options = noanonymous'
sudo postconf -e
'broken_sasl_auth_clients = yes'
sudo postconf -e
'smtpd_sasl_auth_enable = yes'
sudo postconf -e 'smtpd_recipient_restrictions
= permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
--Después
necesitamos un certificado ya sea el que que nos proporciona nuestro proveedor
de dominio o uno que ya teníamos generado nosotros
mismos, si no tenemos ninguno te explicamos como generarlo dando click aqui.
--Una
vez tenga el certificado, configure Postfix para proporcionar cifrado TLS para
los correos de entrada y salida:
sudo
postconf -e 'smtp_tls_security_level = may'
sudo postconf -e
'smtpd_tls_security_level = may'
sudo postconf -e
'smtp_tls_note_starttls_offer = yes'
sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/server.key'
(ruta donde tenemos nuestra llave de certificado)
sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/server.crt' (ruta
donde tenemos nuestro certificado)
sudo postconf -e 'smtpd_tls_loglevel = 1'
sudo postconf -e
'smtpd_tls_received_header = yes'
sudo postconf -e 'myhostname =
mail.example.com'
--Si
esta usando su propia Autoridad de certificacion para firmar el certificado,
introduzca:
sudo postconf -e 'smtpd_tls_CAfile =
/etc/ssl/certs/cacert.pem' (ruta donde tengamos nuestro certificado)
Es
importante ver que el parámetro ‘smtpd_tls_auth_only = no’ de nuestro archivo
main.cf se encuentre en ‘no’
Configuramos
el /etc/postfix/master.cf
Lo
siguiente que haremos es verificar que las siguientes líneas en dicho archivo estén
descomentados y si no lo están tenemos que descomentarlos.
smtp inet
n - n
- - smtpd
submission inet n -
- - -
smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o
smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
smtps inet
n - -
- - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o
smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
Despues
de correr todas las órdenes, Postfix esta configurado para SMTP-AUTH.
La configuración
inicial de postfix esta completa. Reiniciamos Postfix con el siguiente comando
para que tome los cambios.
sudo service postfix restart
Configuración SASL
(Dovecot)
Postfix soporta dos implementaciones de
SASL, Syrus SASL y Dovecot SASL. El paquete Dovecot SASL se llama
dovecot-common.
Para instalar dovecot-common ejecutaremos
el siguiente comando
sudo
apt-get install dovecot-common
Despues
editaremos el archivo /etc/dovecot/conf.d/10-master.conf
service
auth {
# auth_socket_path points to this userdb socket by default. It's
typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Its default
# permissions make it readable only by root, but you may need to relax
these
# permissions. Users that have access to this socket are able to get a
list
# of
all usernames and get results of everyone's userdb lookups.
unix_listener
auth-userdb {
#mode = 0600
#user =
#group
=
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth
{
mode = 0660
user = postfix
group
= postfix
}
Despues
editaremos el archive /etc/dovecot/conf.d/10-auth.conf
y cambiaremos los siguientes parámetros
De:
auth_mechanisms = plain
Reemplazamos
por:
auth_mechanisms = plain login
Una vez
hecho esto reiniciaremos el Dovecot con el siguiente comando:
sudo service dovecot restart
Mail-Stack Delivery
Otra opción para configurar Postfix para
SMTP-AUTH está utilizando el paquete-stack-entrega de correo (previamente
empaquetado como dovecot-postfix). Este paquete instalará Dovecot y configurar
Postfix para utilizarla tanto para la autenticación SASL y como Agente de
entrega de correo (MDA). El paquete también configura Dovecot para IMAP, IMAPS,
POP3 y POP3S.
Para instalar el paquete introduzca el
siguiente comando:
sudo apt-get install mail-stack-delivery
Si tenemos un certificado y una clave
personalizada modifique las siguientes opciones en /etc/postfix/main.cf
smtpd_tls_cert_file
= /etc/ssl/certs/ssl-mail.pem
smtpd_tls_key_file =
/etc/ssl/private/ssl-mail.key
Reiniciamos Postfix.
Comprobando
Para ver si SMTP-AUTH y TLS trabajan
adecuadamente, ejecute el siguiente comando:
telnet localhost 25
Luego que se establezca la conexión con
el servidor de correo teclee:
ehlo mail.example.com
Si ve las siguientes líneas entre otras, entonces
todo esta funcionando correctamente. Teclee quit para salir.
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
Amavis
Instalación
del antivirus.
apt-get install amavisd-new spamassassin clamav-daemon
Después cambiamos algunos parámetros o
verificamos que estén correctos en /etc/default/spamassassin:
ENABLED=1
(esto es para habilitar el spamassassin que son las definiciones de virus)
CRON=1
(si deseamos que se actualizen solas las definiciones)
Reiniciamos el spamassassin con el
siguiente comando:
/etc/init.d/spamassassin restart
Añadimos el usuario clamav al grupo
amavis con el siguiente comando:
adduser clamav amavis
Reiniciamos el demonio de clamav
/etc/init.d/clamav-daemon restart
Modificamos el archivo /etc/amavis/conf.d/15-content_filter_mode para
que quede de la siguiente manera:
# Descomentamos las siguientes lineas:
@bypass_virus_checks_maps
= (
\%bypass_virus_checks,
\@bypass_virus_checks_acl, \$bypass_virus_checks_re);
@bypass_spam_checks_maps = (
\%bypass_spam_checks,
\@bypass_spam_checks_acl, \$bypass_spam_checks_re);
/etc/amavis/conf.d/20-debian_defaults:
# Tuneamos el puntaje
de Spamassassin y siempre añadimos los X-Spam headers:
#$sa_spam_subject_tag
= '***SPAM*** '; # No queremos modificar los originales!
$sa_tag_level_deflt = -999;
# Siempre añadimos los spam info headers
$sa_tag2_level_deflt = 4; # Añadimos los 'spam detected' headers
$sa_kill_level_deflt =
10; # Envio de correo DSN...
$sa_dsn_cutoff_level =
10; # ...que no se enviará nunca. Hará quarantine (en
/var/lib/amavis/virusmails/)
/etc/amavis/conf.d/05-domain_id:
###chomp($mydomain = `head -n 1 /etc/mailname`);
$mydomain = 'dominio.tld';
Reiniciamos el amavis:
/etc/init.d/amavis restart
TIP (oda a find): Cómo buscar mails en el
directorio de cuarentena por defecto...
find
/var/lib/amavis/virusmails/ -type f
... consultarlos rápidamente (sólo si hay
pocos!)...
find
/var/lib/amavis/virusmails/ -type f -exec zless {} \;
... y si ninguno nos convence, borrarlos:
find
/var/lib/amavis/virusmails/ -type f -exec rm -f {} \;
Añadimos la siguiente línea en el archivo
/etc/postfix/main.cf
content_filter
= smtp-amavis:[127.0.0.1]:10024
Añadimos las siguientes líneas en el archivo
/etc/postfix/master.cf
smtp-amavis unix
- - -
- 2
smtp
-o smtp_data_done_timeout=1200
-o
smtp_send_xforward_command=yes
127.0.0.1:10025 inet n - -
- - smtpd
-o
content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o
smtpd_client_restrictions=permit_mynetworks,reject
-o
smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o
smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o
receive_override_options=no_header_body_checks,no_unknown_recipient_checks
Nota: Si tu
certificado te lo proporciona un servidor de dominio tienes que ver que ese
certificado es el que valide tu servidor de correo. Ademas recuerda que en tu
servidor DNS tienes que tener registrado tu servidor como servidor de correo
con las siglas MX
No hay comentarios:
Publicar un comentario