Instalación Servidor de Correo
Instalación Servidor de Correo.odt (386157)
En base al a las redes de comunicación los servicios de mensajería han tomado una característica más propia dándole el lugar a una aplicación como los son los servidores de correo; estos nos permiten enviar mensajes de unos usuarios a otros con independencia de la red que se este utilizando. Para lograrlo se definen una serie de protocolos, cada uno con una finalidad:
SMTP (simple mail transport protocol): este se utiliza para que se intercambien los mensajes entre servidores de correo, es basado en un modelo cliente servidor. Una de las limitaciones del SMTP original es que no facilita métodos de autenticación a los emisores.
POP (post office transport protocol): se utiliza para obtener/descargar los mensajes guardados en el servidor al usuario.
IMAP (internet message access protocol): su finalidad es la misma que pop aunque funciona diferente y tenemos algunas ventajas como tiempos de respuesta rápida, acceso remoto a los mensajes, accesos simultáneos a múltiples clientes, vigilancia en el estado del mensaje , agilidad en las búsquedas.
Entonces es por eso que decimos que un servidor de correo consta de dos servidores el SMTP encargado de enviar y recibir mensajes, y un servidor POP/IMAP que sera el que permite a los usuarios obtener sus mensajes; para esto los usuarios se sirven de clientes, es decir, programas que implementan un protocolo POP/IMAP que en algunas ocasiones el cliente se ejecuta en la máquina del usuario (como el caso de Mozilla Mail, Evolution, Outlook). Sin embargo existe otra posibilidad: que el cliente de correo no se ejecute en la máquina del usuario; es el caso de los clientes vía web, como Hotmail.
- 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.
- 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.
- Instalación
Instalar los paquetes postfix, dovecot. Para ello digitamos en una terminal:
yum -y install postfix dovecot
- 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. Ejecutando:
alternatives --config mta
Lo anterior devolverá una salida similar a la siguiente, donde deberá elegir postfix.
Si estuviera presente sendmail, detenga éste servicio e inicie postfix:
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
- 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:
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:
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
- Configuración de Postfix
- Archivo de configuración /etc/postfix/master.cf
Editar el archivo:
gedit /etc/postfix/master.cf
Debe descomentar las siguientes líneas resaltadas:
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:
gedit /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
- Archivo de configuración /etc/aliases
Se debe editar también el archivo:
gedit /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: lenin
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
CentOS utilizan la versión 2.0 de Dovecot y por lo cual cambia radicalmente la configuración.
- 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.
gedit /etc/dovecot/dovecot.conf
# 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.
gedit /etc/dovecot/conf.d/10-mail.conf
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:
gedit /etc/dovecot/conf.d/10-ssl.conf
# 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 =
ssl_key =
- 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
- 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.
- Thunderbird
Mozilla Thunderbird es un cliente de correo electrónico de la Fundación Mozilla. Su objetivo es desarrollar un Mozilla más liviano y rápido mediante la extracción y rediseño del gestor de correo del Mozilla oficial. Es multiplataforma, utiliza el lenguaje de interfaz XUL y es software libre.
Al igual que su programa hermano, Firefox, en 2011, se lanzó la versión 5 que se ha incluido el motor de renderizado Gecko, el cual implementa estándares web coincidiendo las versiones de desarrollo. Además, cada seis semanas, se actualizará su versión adoptado inicialmente de Chrome.
- Instalación
Digitamos en una terminal:
yum install thunderbird
- Configuración
Iniciamos thunderbird digitando:
thunderbird
Para Mozilla Thunderbird, se define el nombre del servidor utilizado para crear el certificado, usuario y usar conexión segura TLS.
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).