Bienvenido! - Willkommen! - Welcome!

Bitácora Técnica de Tux&Cía., Santa Cruz de la Sierra, BO
Bitácora Central: Tux&Cía.
Bitácora de Información Avanzada: Tux&Cía.-Información
May the source be with you!

Friday, April 27, 2012

CentOS 6 as mailserver (Postfix)

https://www.centos.org/modules/newbb/index.php
FAQ & Readme first
Search hint: google "your topic site:centos.org"
Smart Questions
https://www.centos.org/modules/newbb/search.php?term=postfix&andor=any&searchin=both&uname=&%3D%22sortby%22=p.post_time+desc&since=100&submit=Search
Using a live CD is not recomended
Instead, try any of the mirrors that CentOS provides, and download at least a minimum CD if not a DVD. I'm attaching a link for your reference. This is one of the many mirrors.
ftp://mirror.its.dal.ca/centos/6.2/isos/
From the link, please download at at least a minimum CD and burn it. For me, the minimum CD is enough.
 You can't switch between 5.x and 6.x without a reinstall.
The CentOS 6 minimal or netinstall CDs should work and then you can use `yum install` to add extra packages that you want or need. The minimal install is exactly that though: a bare minimum of what you need to boot and use the system, it doesn't even contain the `man` program so you can learn how to use the commands that are available (easily installed using `yum install man`) but that might be too bare-bones for someone just starting out. The Netinstall allows you to pick which things are installed and could be used to perform a full GUI install but has the drawback that it's not great with dodgy network connections - probably doesn't hurt to try it and see if it works for you.
The Live CD could be used for testing and to see if you're comfortable with using the system and can be copied to the hard disk but I'm not sure it ends up being a substitute for a real install.

In the case of getting the initial OS installed and running, for beginners, using the Install DVD is probably the easiest and with the greatest chance of getting a working system up and running.
Once you get a few installs under your belt, then you'll be able to experiment with the various ways of achieving that without the full DVD install.
Even with the full DVD install, you can uninstall the desktop apps that you don't need, so it can be slimmed down without that much effort.
For us, we don't put optical drives in our servers - but YMMV.
As for books, look at RHEL 6 not CentOS 6. Basically the same thing except for branding.

http://www.amazon.com/Red-Enterprise-Linux-Bible-Administering
Please pay particular attention to the yum group commands, such as  
yum grouplist
yum groupinfo "Group Name"
yum groupinstall
==============================

Definiendo postfix como agente de transporte de correo predeterminado.

El mandato alternatives, con la opción --config, y el valor mta, se utiliza para conmutar el servicio de correo electrónico del sistema, y elegir qué programa utilizar. Sólo es necesario utilizar éste si previamente estaban instalados Postfix o Exim. Sí este es el caso, ejecute lo siguiente desde una terminal, y defina postfix como agente de transporte de correo (MTA, Mail Transport Agent), seleccionado éste.
alternatives --config mta
Lo anterior devolverá una salida similar a la siguiente, donde deberá elegir entre postfix, y sendmail como MTA predeterminado del sistema:

Hay 2 programas que proporcionan 'mta'.

  Selección    Comando
-----------------------------------------------
   1           /usr/sbin/sendmail.postfix
*+ 2           /usr/sbin/sendmail.sendmail

Presione Intro para mantener la selección actual[+], o escriba el número de la selección:  2
Si estuviera presente postfix, detenga éste (es el MTA predeterminado en CentOS 6, y Red Hat Enterprise Linux 6) e inicie el servicio sendmail:
service sendmail stop
chkconfig sendmail off
service postfix start
chkconfig postfix on

http://www.server-world.info/en/note?os=CentOS_6&p=mail

Configurar Postfix y Dovecot con soporte para TLS y autenticación.

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org
© 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar, distribuir, y comunicar públicamente la obra, y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer, y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera, o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar, o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento, y los derivados de éste se proporcionan tal cual son, y los autores no asumirán responsabilidad alguna si el usuario, o lector hace mal uso de éstos.

Introducción.

Es imprescindible primero estudiar, y comprender, los conceptos descritos en el documento titulado «Introducción a los protocolos de correo electrónico

Acerca de Postfix.

Postfix, originalmente conocido por los nombres VMailer e IBM Secure Mailer, es un popular agente de transporte de correo (MTA, o Mail Transport Agent), creado con la principal intención de ser una alternativa más rápida, fácil de administrar, y segura que Sendmail. Fue originalmente escrito por Wietse Venema durante su estancia en el Thomas J. Watson Research Center de IBM.
URL: http://www.postfix.org/.

Acerca de Dovecot.

Dovecot es un servidor de POP3 e IMAP de fuente abierta que funciona en Linux, y sistemas basados sobre Unix™, y diseñado con la seguridad como principal objetivo. Dovecot puede utilizar tanto el formato mbox como maildir, y es compatible con las implementaciones de los servidores UW-IMAP, y Courier IMAP.
URL: http://dovecot.procontrol.fi/.

Acerca de SASL, y Cyrus SASL.

SASL (Simple Authentication and Security Layer) es un estructura para la seguridad de datos en protocolos de Internet. Desempareja mecanismos de la autenticación desde protocolos de aplicaciones, permitiendo, en teoría, cualquier mecanismo de autenticación soportado por SASL para ser utilizado en cualquier protocolo de aplicación que capaz de utilizar SASL. Actualmente SASL es un protocolo de la IETF (Internet Engineering Task Force) que ha sido propuesto como estándar. Está especificado en el RFC 2222 creado por John Meyers en la Universidad Carnegie Mellon.
Cyrus SASL es una implementación de SASL que puede ser utilizada del lado del servidor, o del lado del cliente, y que incluye como principales mecanismos de autenticación soportados a ANONYMOUS, CRAM-MD5, DIGEST-MD5, GSSAPI, y PLAIN. El código fuente incluye también soporte para los mecanismos LOGIN, SRP, NTLM, OPT, y KERBEROS_V4.
URL: http://asg.web.cmu.edu/sasl/sasl-library.html.

Acerca de DSA.

DSA (Digital Signature Algorithm, o Algoritmo de Firma digital) es un algoritmo creado por el NIST (National Institute of Standards and Technology, o Instituto Nacional de Normas, y Tecnología de EE.UU.), publicado el 30 de agosto de 1991, como propuesta para el proceso de firmas digitales. Se utiliza para firmar información, más no para cifrar ésta. URL: http://es.wikipedia.org/wiki/DSA

Acerca de RSA.

RSA, acrónimo de los apellidos de sus autores, Ron Rivest, Adi Shamir, y Len Adleman, es un algoritmo para el ciframiento de claves públicas que fue publicado en 1977, patentado en EE.UU. en 1983 por el el Instituto Tecnológico de Michigan (MIT). RSA es utilizado ampliamente en todo el mundo para los protocolos destinados para el comercio electrónico.
URL: http://es.wikipedia.org/wiki/RSA

Acerca de X.509.

X.509 es un estándar ITU-T (estandarización de Telecomunicaciones de la International Telecommunication Union ) para infraestructura de claves públicas (PKI, o Public Key Infrastructure). Entre otras cosas, establece los estándares para certificados de claves públicas, y un algoritmo para validación de ruta de certificación. Este último se encarga de verificar que la ruta de un certificado sea válida bajo una infraestructura de clave pública determinada. Es decir, desde el certificado inicial, pasando por certificados intermedios, hasta el certificado de confianza emitido por una Autoridad Certificadora (CA, o Certification Authority).
URL: http://es.wikipedia.org/wiki/X.509

Acerca de OpenSSL.

OpenSSL es una implementación libre, de código abierto, de los protocolos SSL (Secure Sockets Layer, o Nivel de Zócalo Seguro), y TLS (Transport Layer Security, o Seguridad para Nivel de Transporte). Está basado sobre el extinto proyecto SSLeay, iniciado por Eric Young, y Tim Hudson, hasta que éstos comenzaron a trabajar para la división de seguridad de EMC Corporation.
URL: http://www.openssl.org/

Equipamiento lógico necesario.

Instalar los paquetes postfix, dovecot, cyrus-sasl, y cyrus-sasl-plain:
yum -y install postfix dovecot cyrus-sasl cyrus-sasl-plain
Si acaso estuviese instalado, elimine el paquete cyrus-sasl-gssapi, ya que este utiliza el método de autenticación GSSAPI, mismo que requeriría de la base de datos de cuentas de usuario de un servidor Kerberos:
yum remove cyrus-sasl-gssapi
De igual manera, si estuviese instalado, elimine el paquete cyrus-sasl-md5, ya que este utiliza los métodos de autenticación CRAM-MD5, y Digest-MD5, mismos que requerían asignar las claves de acceso para SMTP a través del mandato saslpasswd2. Outlook carece de soporte para estos métodos de autenticación.
yum remove cyrus-sasl-md5

Procedimientos.

Todos los procedimientos deben realizarse como el usuario root.

Definiendo Postfix como agente de transporte de correo predeterminado.

El mandato alternatives, con la opción alternatives--config mta, se utiliza para conmutar el servicio de correo electrónico del sistema y elegir que paquete utilizar. Sólo es necesario utilizar éste si previamente estaban instalados Sendmail o Exim. Sí este es el caso, ejecute lo siguiente desde una terminal, y defina Postfix como agente de transporte de correo (MTA, Mail Transport Agent), seleccionado éste.
alternatives --config mta
Lo anterior devolverá una salida similar a la siguiente, donde deberá elegir entre postfix, y sendmail como MTA predeterminado del sistema:

Hay 2 programas que proporcionan 'mta'.

  Selección    Comando
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.postfix
   2           /usr/sbin/sendmail.sendmail

Presione Intro para mantener la selección actual[+], o escriba el número de la selección:  1
Si estuviera presente sendmail, detenga éste (es el MTA predeterminado en CentOS 5, y Red Hat Enterprise Linux 5) e inicie postfix:
service sendmail stop
chkconfig sendmail off
service postfix start
chkconfig postfix on

SELinux, y Postfix.

A fin de que SELinux permita a Postfix escribir el el directorio de entrada de correo electrónico (/var/spool/mail/), es necesario habilitar la siguiente política:
setsebool -P allow_postfix_local_write_mail_spool 1
Solo en CentOS 5, y Red Hat Enterpise Linux 5, a fin de que SELinux permita la lectura de correo electrónico, es necesario habilitar la siguiente política:
setsebool -P mail_read_content 1
En CentOS 6, y Red Hat Enterpise Linux 6, esta política dejó de existir, pues se volvió innecesaria.

Generando firma digital, y certificado.

Acceda al directorio /etc/pki/tls/.
cd /etc/pki/tls/
Los servidores de correo electrónico, como Sendmail, y Postfix, pueden utilizar una firma digital creada con algoritmo DSA de 1024 octetos. Para tal fin, se crea primero un archivo de parámetros DSA:
openssl dsaparam 1024 -out dsa1024.pem
A continuación, se utiliza este archivo de parámetros DSA para crear una llave con algoritmo DSA, y estructura x509, así como también el correspondiente certificado. En el ejemplo a continuación, se establece una validez por 1095 días (tres años) para el certificado creado.
openssl req -x509 -nodes -newkey dsa:dsa1024.pem -days 1095 -out certs/smtp.crt -keyout private/smtp.key
Lo anterior solicitará se ingresen varios datos:
•  Código de dos letras para el país.
•  Estado, o provincia.
•  Ciudad.
•  Nombre de la empresa, o razón social.
•  Unidad, o sección.
•  Nombre del anfitrión.
•  Dirección de correo.
La salida devuelta sería similar a la siguiente:
Generating a 1024 bit DSA private key
writing new private key to 'smtp.key'
-----
You are about to be asked to enter information that will be
incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name
or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:MX
State or Province Name (full name) [Berkshire]:Distrito Federal
Locality Name (eg, city) [Newbury]:Mexico
Organization Name (eg, company) [My Company Ltd]:Empresa, S.A. de C.V.
Organizational Unit Name (eg, section) []:Direccion Comercial
Common Name (eg, your name or your server's hostname) []:*.dominio.com
Email Address []:webmaster@dominio.com
Si definió un nombre de anfitrión absoluto (ejemplo: mail.dominio.com), el certificado solo será válido cuando el servidor de correo electrónico sea invocado con el nombre definido en el campo Common Name. Es decir, solo podrá utilizarlo cuando se defina mail.dominio.com como servidor SMTP con soporte TLS desde el cliente de correo electrónico. Funcionará incorrectamente si se invoca al servidor como, por mencionar un ejemplo, dominio.com. Es por eso que se sugiere utilizar *.dominio.com si se planea acceder hacia el mismo servidor con diferentes subdominios del mismo dominio.
Al terminar, ya no será necesario conservar el archivo dsa1024.pem, mismo que puede eliminarse con plena seguridad.
rm -f dsa1024.pem
Es indispensable que todos los archivos de claves, y certificados tengan permisos de acceso de solo lectura para el usuario root:
chmod 400 certs/smtp.crt private/smtp.key
Cambie al directorio /etc/pki/dovecot/.
cd /etc/pki/dovecot/
Elimine los certificados de prueba creados durante la instalación.
rm -f private/dovecot.pem certs/dovecot.pem
La creación de la firma digital, y certificado para Dovecot es más simple, pero requiere utilizar una clave con algoritmo RSA de 1024 octetos, con estructura X.509. En el ejemplo a continuación, se establece una validez por 1095 días (tres años) para el certificado creado.
openssl req -x509 -nodes -newkey rsa:1024 -days 1095 -out certs/dovecot.pem -keyout private/dovecot.pem

openssl x509 -subject -fingerprint -noout -in certs/dovecot.pem

De forma similar a como ocurrió con el certificado para el servidor correo electrónico, lo anterior solicitará se ingresen varios datos.
La salida devuelta debe similar a la siguiente:
Generating a 1024 bit RSA private key
................++++++
.++++++
writing new private key to 'dovecot.pem'
-----
You are about to be asked to enter information that will be
incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name
or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:MX
State or Province Name (full name) [Berkshire]:Distrito Federal
Locality Name (eg, city) [Newbury]:Mexico
Organization Name (eg, company) [My Company Ltd]:Empresa, S.A. de C.V.
Organizational Unit Name (eg, section) []:Direccion Comercial
Common Name (eg, your name or your server's hostname) []: *.dominio.com
Email Address []:webmaster@dominio.com
Nuevamente, si definió un nombre de anfitrión absoluto (ejemplo: mail.dominio.com), el certificado solo será válido cuando el servidor de correo electrónico sea invocado con el nombre definido en el campo Common Name. Es decir, solo podrá utilizarlo cuando se defina mail.dominio.com como servidor POP3, o IMAP, con soporte TLS desde el cliente de correo electrónico. Funcionará incorrectamente si se invoca al servidor como, por mencionar un ejemplo, dominio.com. Es por eso que se sugiere utilizar *.dominio.com si se planea acceder hacia el mismo servidor con diferentes subdominios del mismo dominio.
Es indispensable que todos los archivos de claves, y certificados tengan permisos de acceso de solo lectura para el usuario root:
chmod 400 private/dovecot.pem certs/dovecot.pem
Regrese al directorio de inicio del usuario root.
cd

Configuración de Postfix.

Archivo de configuración /etc/postfix/master.cf.

Editar el archivo /etc/postfix/master.cf:
vim /etc/postfix/master.cf
Si utiliza CentOS 5, o Red Hat Enterprise Linux 5, debe descomentar las siguientes líneas resaltadas en negrita:
smtp      inet  n       -       n       -       -       smtpd
submission inet n       -       n       -       -       smtpd
  -o smtpd_enforce_tls=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
Si utiliza CentOS 6, o Red Hat Enterprise Linux 6, debe descomentar las siguientes líneas resaltadas en negrita:
smtp      inet  n       -       n       -       -       smtpd
submission inet n       -       n       -       -       smtpd
  -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       -       n       -       -       smtpd
  -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

Archivo de configuración /etc/postfix/main.cf.

A continuación, se debe editar el archivo /etc/postfix/main.cf:
vim /etc/postfix/main.cf
Respetando el resto del contenido original de este archivo, y asumiendo que el nombre de anfitrión del servidor es mail.dominio.com, y que se va a utilizar para gestionar el correo electrónico de dominio.com, solo se deben localizar, y configurar los siguientes parámetros:

# Todo lo siguiente solo requiere descomentarse, o bien modificar la línea 
# correspondiente que esté descomentada.

# Definir el nombre de anfitrión del sistema (hostname).
myhostname = mail.dominio.com

# Definir el dominio principal a gestionar.
mydomain = dominio.com

myorigin = $mydomain

# Definir se trabaje por todas las interfaces.
# De modo predeterminado solo trabaja por la interfaz de retorno del sistema
# (loopback), es decir, solo escucha peticiones a través de sobre 127.0.0.1 
#inet_interfaces = localhost
inet_interfaces = all

# Si se van a manejar más dominios de correo electrónico, añadirlos también.
mydestination = $myhostname, $mydomain, localhost.localdomain, localhost

# Definir tus redes locales, ejemplo asume que tu LAN es 192.168.1.0/24
mynetworks = 192.168.1.0/24, 127.0.0.0/8

# Si se van a manejar más dominios de correo electrónico, añadirlos también.
relay_domains = $mydestination

# Importante para poder utilizar procmail para filtrar correo.
mailbox_command = /usr/bin/procmail

# Todo lo siguiente está ausente en la configuración.
# Añadir todo al final del archivo main.cf
#
smtpd_tls_security_level = may
smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
# Las rutas deben corresponder a las del certificado, y firma digital creados.
smtpd_tls_key_file = /etc/pki/tls/private/smtp.key
smtpd_tls_cert_file = /etc/pki/tls/certs/smtp.crt
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom


# Soporte para autenticar a través de SASL.
# smtpd_sasl_local_domain = # Solo como referencia.
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
A fin de ahorrar tiempo realizando búsqueda de los parámetros anteriores, todo lo anterior también se puede configurar utilizando el mandato postconf, del siguiente modo:
postconf -e 'myhostname = mail.dominio.com'
postconf -e 'mydomain = dominio.com'
postconf -e 'myorigin = $mydomain'
postconf -e 'inet_interfaces = all'
postconf -e 'mydestination = $myhostname, $mydomain, localhost.localdomain, localhost'
postconf -e 'mynetworks = 192.168.1.0/24, 127.0.0.0/8'
postconf -e 'relay_domains = $mydestination'
postconf -e 'mailbox_command = /usr/bin/procmail'
postconf -e 'smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt'
postconf -e 'smtpd_tls_key_file = /etc/pki/tls/private/smtp.key'
postconf -e 'smtpd_tls_cert_file = /etc/pki/tls/certs/smtp.crt'
postconf -e 'smtpd_tls_auth_only = no'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_sasl_authenticated_header = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'

Archivo de configuración /etc/aliases.

Se debe editar también el archivo /etc/aliases:
vim /etc/aliases
Se debe definir que el correo del usuario root se entregue al cualquier otro usuario del sistema. El objetivo de esto es que jamás se tenga necesidad de utilizar la cuenta del usuario root, y se prefiera en su lugar una cuenta de usuario sin privilegios. Solo se requiere descomentar la última línea de este archivo, que como ejemplo entrega el correo del usuario root al usuario marc, y definir un usuario existente en el sistema
#root: marc
root: fulano
Al terminar, se ejecuta el mandato postalias para generar el archivo /etc/aliases.db que será utilizado por Postfix:
postalias /etc/aliases

Configuración de Dovecot en CentOS 5, y Red Hat Enterprise Linux 5.

Parámetros del archivo /etc/dovecot.conf.

Editar el archivo /etc/dovecot.conf:
vim /etc/dovecot.conf
En el parámetro protocols, se deben activar todos los servicios (imap, imaps, pop3, y pop3s).
protocols = imap imaps pop3 pop3s
De modo predeterminado, el soporte SSL de Dovecot está activo. Verifique que el parámetro ssl_disable tenga el valor no, o bien solo esté comentado.
#ssl_disable = no
Y se especifican las rutas del certificado, y clave a través de los parámetros ssl_cert_file, y ssl_key_file, del siguiente modo:
ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem
ssl_key_file = /etc/pki/dovecot/private/dovecot.pem

Configuración de Dovecot en CentOS 6, y Red Hat Enterprise Linux 6.

CentOS 6, y Red Hat Enterprise Linux 6 utilizan la versión 2.0 de Dovecot, y por lo cual cambia radicalmente la configuración respecto de la versión 1.0.x, utilizada en CentOS 5, y Red Hat Enterprise Linux 5.

Parámetros del archivo /etc/dovecot/dovecot.conf.

Edite el archivo /etc/dovecot/dovecot.conf, y descomente el parámetro protocolos, estableciendo como valor pop3 imap lmtp.
# Protocols we want to be serving.
protocols = imap pop3

Parámetros del archivo /etc/dovecot/conf.d/10-mail.conf.

Alrededor de la línea 30 del archivo /etc/dovecot/conf.d/10-mail.conf, establezca mbox:~/mail:INBOX=/var/mail/%u como valor del parámetro mail_location.
mail_location = mbox:~/mail:INBOX=/var/mail/%u

Parámetros del archivo /etc/dovecot/conf.d/10-ssl.conf.

En el archivo /etc/dovecot/conf.d/10-ssl.conf, descomente las siguientes líneas resaltadas en negrita:
# SSL/TLS support: yes, no, required. 
ssl = yes

# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
ssl_cert = 

Iniciar servicios, y añadir éstos al arranque del sistema.

Se deben añadir al arranque del sistema e iniciar (o reiniciar) los servicios saslauthd, dovecot, y postfix:
chkconfig saslauthd on
chkconfig dovecot on
chkconfig postfix on
service saslauthd start
service dovecot start
service postfix restart

Soporte para LMTP.

Si utiliza CentOS 6, o Red hat Enterprise Linux 6, es decir Dovecot 2.0, y Postfix 2.6.6, podrá utilizar LMTP (Local Mail Transfer Protocol), o protocolo de transporte local de correo. Este protocolo esta basado sobre el protocolo SMTP, y está diseñado como una alternativa a SMTP para situaciones donde el lado receptor carece de cola de correo (queue mail), como un MTA que entiende conversaciones SMTP. Puede ser utilizado como una forma alternativa, y más eficiente para el transporte de correo entre Postfix, y Dovecot.
Edite el archivo /etc/dovecot/dovecot.conf, y añada lmtp a los valores del parámetro protocolos, de la siguiente forma.
# Protocols we want to be serving.
protocols = imap pop3 lmtp
A fin de poder hacer uso de LMTP de manera apropiada, es necesario añadir el siguiente parámetro en el archivo /etc/postfix/main.cf:
virtual_transport = lmtp:unix:/var/run/dovecot/lmtp
O bien ejecutar lo siguiente:
postconf -e 'virtual_transport = lmtp:unix:/var/run/dovecot/lmtp'
Y reiniciar los servicios dovecot, y postfix.
service dovecot restart
service postfix restart

Modificaciones necesarias en el muro cortafuegos.

Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo Shorewall, es necesario abrir, además de los puertos 25, 110, 143, y 587 por TCP (SMTP, POP3, IMAP, y Submission, respectivamente), los puertos 465, 993, y 995 por TCP (SMTPS, IMAP, y POP3S, respectivamente).
Editar el archivo /etc/shorewall/rules:
vim /etc/shorewall/rules
Las reglas para el archivo /etc/shorewall/rules de Shorewall correspondería a algo similar a lo siguiente:
#ACTION SOURCE DEST PROTO  DEST  SOURCE
#    PORT  PORT(S)1
ACCEPT net fw tcp 25,110,143,465,587,993,995
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Para que tomen efecto los cambios, hay que reiniciar el servicio Shorewall.
service shorewall restart

Requisitos en la zona de reenvío en el servidor DNS.

Es indispensable que exista un DNS que resuelva correctamente el dominio, y apunte el servicio de correo electrónico hacia la IP del servidor de correo electrónico recién configurado. Asumiendo que se hizo correctamente todo lo mencionado en este documento, la única forma en que se imposibilitaría la llegada y/o salida del correo electrónico se esté utilizando un enlace ADSL con IP dinámica (restringido por le proveedor para utilizar el puerto 25), o bien que el servidor DNS que resuelve el dominio, esté apuntando hacia otra dirección IP para el servicio de correo electrónico. En el DNS se requieren al menos los siguientes registros, donde xx.xx.xx.xx corresponde a la IP del servidor de correo electrónico.
$TTL 86400
@ IN SOA dns1.isp.com alguien.algo.com (
  2010061901 ; Número de serie
  28800 ; Tiempo de refresco
  7200 ; Tiempo entre reintentos
  604800 ; tiempo de espiración
  86400 ; Tiempo total de vida
  )
@ IN  NS dns1.isp.com.
@ IN  NS dns2.isp.com.
@ IN  A a.b.c.d
@ IN  MX 10 mail
@ IN  TXT "v=spf1 a mx -all"
mail IN  A xx.xx.xx.xx
www IN  A a.b.c.d
ftp IN  A a.b.c.d

Comprobaciones.

A través de terminal.

Realice una conexión con el mandato nc (netcat), o bien el mandato telnet, al puerto 25 del sistema. Ingrese el mandato EHLO con el dominio configurado. La salida deberá devolver, entre todas las funciones del servidor, una línea que indica STARTTLS. La salida puede ser similar a la siguiente:
nc 127.0.0.1 25
220 emachine.alcancelibre.org ESMTP Postfix
EHLO dominio.com
250-mail.dominio.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
Para salir, solo escriba QUIT, y pulse la tecla ENTER.

A través de clientes de correo electrónico.

Utilice cualquier cliente de correo electrónico con soporte para TLS/SSL, y configure éste para conectarse hacia el sistema a través de IMAPS (puerto 993), o bien POP3S (puerto 995). Tras aceptar el certificado del servidor, el sistema deberá permitir autenticar, con nombre de usuario, y clave de acceso, y realizar la lectura del correo electrónico.

Configuración de GNOME Evolution.

Para GNOME Evolution, la configuración de IMAP, o POP3, se realiza seleccionando el tipo de servidor, definiendo el nombre del servidor utilizado para crear el certificado, nombre de usuario, y usar encriptación segura TLS.
Configuración IMAP, en GNOME Evolution.
Configuración IMAP, en GNOME Evolution.
Se hace lo mismo para la configuración de SMTP (utilizar conexión segura TLS), pero considerando además que también se puede utilizar el puerto 587 (submission) en caso de que el proveedor de acceso a Internet del cliente haya restringido el uso del puerto 25 (smtp).
Configuración SMTP, GNOME Evolution.
Configuración SMTP, GNOME Evolution.

Configuración Mozilla Thunderbird.

Para Mozilla Thunderbird, se define el nombre del servidor utilizado para crear el certificado, usuario, y usar conexión segura TLS.
Configuración IMAP, Mozilla Thunderbird.
Configuración IMAP, Mozilla Thunderbird.
Se hace lo mismo para la configuración de SMTP (utilizar conexión segura TLS), pero considerando además que también se puede utilizar el puerto 587 (submission) en caso de que el proveedor de acceso a Internet del cliente haya restringido el uso del puerto 25 (smtp).
Configuración SMTP, Mozilla Thunderbird.
Configuración SMTP, Mozilla Thunderbird.

Modificaciones necesarias en el muro cortafuegos.

Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo Shorewall, es necesario abrir, además de los puertos 25, 110, 143, y 587 por TCP (SMTP, POP3, IMAP, y Submission, respectivamente), los puertos 465, 993, y 995 por TCP (SMTPS, IMAP, y POP3S, respectivamente).
La regla para el archivo /etc/shorewall/rules de Shorewall correspondería a algo similar a lo siguiente:
#ACTION SOURCE DEST PROTO  DEST  SOURCE
#    PORT  PORT(S)1
ACCEPT all fw tcp 25,110,143,465,587,993,995
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

No comments: