Configuración de Cyrus IMAP con soporte SSL/TLS.

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

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2016 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» y «Configuración básica de Sendmail».

Acerca de Cyrus IMAP.

Cyrus IMAP es un proyecto iniciado en 1994 en la Universidad Carnegie Mellon. Se distingue de otros programas con la misma finalidad en que utiliza un formato para los buzones de correo que mejora el rendimiento y escalabilidad del formato Maildir, utilizado por otros programas como Dovecot. Este formato almacena los datos por partes del sistema de archivos y que sólo pueden ser accedidos por el servicio de Cyrus IMAP. Esto permite gestionar eficientemente enormes cantidades de datos de forma eficiente y con un intérprete de mandatos para su administración. Incluye soporte para los protocolos IMAP, IMAPS, POP3 y POP3S, así como soporte para listas de control de acceso y cuotas de almacenamiento en la jerarquía de buzones.

Un típico buzón de correo consiste en un único archivo dentro de /var/spool/mail y que contiene todos los mensajes de correo electrónico del usuario. Para leer un único mensaje el sistema debe abrir ese único archivo. Si el buzón contiene muchos mensajes o es de gran tamaño, este procedimiento puede repercutir negativamente en el desempeño del sistema. En el caso de los buzones Cyrus IMAP, cada mensaje es almacenado en un archivo individual dentro de sub-directorios de /var/spool/imap, por lo que la apertura de un mensaje consiste en consultar un archivo índice y abrir sólo el archivo específico para ese mensaje, todo con un mínimo consumo de recursos.

Es la mejor alternativa para servidores de correo electrónico con Sendmail y elevada carga de trabajo.

URL: http://cyrusimap.org/

Equipamiento lógico necesario.

Instalación a través de yum.

Los paquetes RPM oficiales para CentOS 7 y Red Hat™ Enterprise Linux 7 para Cyrus IMAP 2.4 carecen de los parches para crear automáticamente los buzones de usuarios y carpetas Sieve. Los paquetes que distribuye AlcanceLibre.org incluyen los parches actualizados correspondientes. Ejecute lo siguiente para configurar el almacén YUM de AL-Server:

wget http://www.alcancelibre.org/al/server/AL-Server.repo \
    /etc/yum.repos.d/AL-Server.repo

Lo anterior es innecesario si utiliza ALDOS, CentOS 6 o Red Hat™ Enterprise Linux 6.

Ejecute lo siguiente para instalar o actualizar Cyrus IMAP:

yum -y install cyrus-imapd cyrus-imapd-utils \
    cyrus-sasl cyrus-sasl-plain

Procedimientos.

En la mayoría de los casos Cyrus IMAP funcionará sin modificar sus archivos de configuración. Los valores predeterminados permiten un funcionamiento normal y estándar.

Se debe asignar una clave de acceso para el usuario administrador de Cyrus IMAP, a fin de impedir accesos no autorizados al intérprete de mandatos de administración. Ejecute passwd con cyrus como argumento:

passwd cyrus

Si estuviese activo y en ejecución el servicio dovecot, ejecute lo siguiente:

service dovecot status && service dovecot stop

Y también elimine éste de los servicios de arranque del sistema.

chkconfig dovecot off

Durante los procedimientos descritos en el documento titulado «Configuración básica de Sendmail» debió haberse configurado, añadido a los servicios de arranque del sistema e iniciado el servicio saslauthd que es necesario para poder autenticar los usuarios del sistema a través de Cyrus IMAP. Ejecute lo siguiente para verificar lo anterior y activar e iniciar el servicio si fuese necesario:

service saslauthd status || \
chkconfig saslauthd on || \
service saslauthd start

Elimine el certificado de prueba.

rm -f /etc/pki/cyrus-imapd/cyrus-imapd.pem

Durante los procedimientos del documento titulado «Configuración básica de Sendmail» debió haberse creado el archivo /etc/pki/tls/certs/sendmail.pem. Copie éste como el archivo /etc/pki/cyrus-imapd/cyrus-imapd.pem:

cp -a /etc/pki/tls/certs/sendmail.pem \
    /etc/pki/cyrus-imapd/cyrus-imapd.pem

El archivo resultante debe ser propiedad del usuario cyrus y el grupo root.

chown cyrus:root /etc/pki/cyrus-imapd/cyrus-imapd.pem

Cambie los permisos a lectura y escritura para el usuario cyrus y sólo lectura el grupo root y:

chmod 640 /etc/pki/cyrus-imapd/cyrus-imapd.pem

Edite el archivo /etc/imapd.conf:

vi /etc/imapd.conf

Verifique sea correcta la ruta del archivo cyrus-imapd.pem definida para los valores de las opciones tls_cert_file y tls_key_file:

configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
# uncomment this if you're operating in a DSCP environment (RFC-4594)
# qosmarking: af13

Desactive la opción tls_ca_file si se carece del archivo con el certificado de la Autoridad Certificadora (CA) con al que fueron creados los certificados. Esta opción sólo se utiliza si adquirió un certificado con VeriSign, Comodo, Geotrust, etc. o bien si se creo previamente una CA y se generó el certificado con ésta. Si deja habilitada la opción sin tomar en cuenta lo anterior, fallará invariablemente la validación de certificado del lado del cliente cuando se acceda de manera remota utilizando STARTTLS con IMAP o POP3.

Para resumir lo anterior: la opción tls_ca_file indicará a Cyrus IMAP que los clientes de correo que utilicen STARTTLS deben validar el certificado definido con la opción tls_cert_file utilizando el certificado de la CA que se haya especificado.

configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
# tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
# uncomment this if you're operating in a DSCP environment (RFC-4594)
# qosmarking: af13

Se crearán automáticamente el buzón de correo del usuario cuando éste autentique por primera vez a través de PO3 o IMAP. Sin embargo, si se envía un mensaje de correo electrónico antes de que lo anterior ocurra, el mensaje rebotaría pues el buzón sería inexistente. Añada la opción createonpost con el valor yes para crear automáticamente el buzón de correo del usuario al recibir un primer mensaje:

configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
# tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
# uncomment this if you're operating in a DSCP environment (RFC-4594)
# qosmarking: af13
createonpost: yes

Si va a utiliza Postfix, éste rechazará automáticamente el correo dirigido hacia cuentas inexistentes. Si va a utilizar Sendmail como MTA, deshabilite la opción anterior después de concluir el alta de usuarios y las pruebas, a menos que configure el servidor de correo electrónico para rechazar los mensajes hacia cuentas inexistentes añadiendo @dominio.com error:nouser en el archivo /etc/mail/virtusertable como se muestra el documento titulado «Configuración avanzada de Sendmail».

Añada las opciones autocreateinboxfolders y autosubscribeinboxfolders, utilizando como valor para ambas Archives|Drafts|Junk|Sent|Trash para definir que se genere automáticamente este juego de carpetas IMAP para cada nuevo buzón. Ejemplo:

configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
# tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
# uncomment this if you're operating in a DSCP environment (RFC-4594)
# qosmarking: af13
createonpost: yes
autocreateinboxfolders: Archives|Drafts|Junk|Sent|Trash
autosubscribeinboxfolders: Archives|Drafts|Junk|Sent|Trash

Añada las siguientes líneas resaltadas para hacer que los nuevos buzones tengan automáticamente una cuota de 1048576 kB, se envíen mensajes de advertencia al alcanzar el 90% de la capacidad y que se impida recibir más correo después de alcanzar al 100% de la cuota disponible:

configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
# tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
# uncomment this if you're operating in a DSCP environment (RFC-4594)
# qosmarking: af13
createonpost: yes
autocreateinboxfolders: Archives|Drafts|Junk|Sent|Trash
autosubscribeinboxfolders: Archives|Drafts|Junk|Sent|Trash
autocreatequota: 1048576
unixhierarchysep: yes
quotawarn: 90
lmtp_over_quota_perm_failure: 1

Sieve es el programa utilizado por Cyrus IMAP para hacerse cargo de la filtración de mensajes, es decir es un sustituto para Procmail, el cual carece de soporte para LMTP. Añada la opción anysievefolder con le valor yes para crear automáticamente cualquier carpeta solicitada por Sieve:

configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
# tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
# uncomment this if you're operating in a DSCP environment (RFC-4594)
# qosmarking: af13
createonpost: yes
autocreateinboxfolders: Archives|Drafts|Junk|Sent|Trash
autosubscribeinboxfolders: Archives|Drafts|Junk|Sent|Trash
autocreatequota: 1048576
unixhierarchysep: yes
quotawarn: 90
lmtp_over_quota_perm_failure: 1
anysievefolder: yes

Añada la opción virtdomains con el valor yes sólo si éste se utilizará para el hospedaje de dominios virtuales —es decir crear usuarios en el formato usuario@dominio o usuario%dominio:

configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
# tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
# uncomment this if you're operating in a DSCP environment (RFC-4594)
# qosmarking: af13
createonpost: yes
autocreateinboxfolders: Archives|Drafts|Junk|Sent|Trash
autosubscribeinboxfolders: Archives|Drafts|Junk|Sent|Trash
autocreatequota: 1048576
unixhierarchysep: yes
quotawarn: 90
lmtp_over_quota_perm_failure: 1
anysievefolder: yes
virtdomains: yes

Añada la opción defaultdomain usando como valor el nombre del dominio principal del servidor si se trata de un escenario con un único dominio virtual:

configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
# tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
# uncomment this if you're operating in a DSCP environment (RFC-4594)
# qosmarking: af13
createonpost: yes
autocreateinboxfolders: Archives|Drafts|Junk|Sent|Trash
autosubscribeinboxfolders: Archives|Drafts|Junk|Sent|Trash
autocreatequota: 1048576
unixhierarchysep: yes
quotawarn: 90
lmtp_over_quota_perm_failure: 1
anysievefolder: yes
virtdomains: yes
defaultdomain: dominio.com

Esta opción adjuntará automáticamente @dominio.com a cualquier usuario que intente autenticar sin dominio. Ejemplo: si quiere autenticar con la cuenta fulano, deberá hacerlo como fulano@dominio.com.

Pude definir varios administradores para gestionar cada dominio coo se muestra en el siguiente ejemplo:

configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus usuario@otrodominio.com usuario@otrodominio.net
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
# tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
# uncomment this if you're operating in a DSCP environment (RFC-4594)
# qosmarking: af13
createonpost: yes
autocreateinboxfolders: Archives|Drafts|Junk|Sent|Trash
autosubscribeinboxfolders: Archives|Drafts|Junk|Sent|Trash
autocreatequota: 1048576
unixhierarchysep: yes
quotawarn: 90
lmtp_over_quota_perm_failure: 1
anysievefolder: yes
virtdomains: yes
defaultdomain: dominio.com

El usuario cyrus —y cualquier otro que carezca de dominio— será añadido automáticamente al dominio predeterminado. Los usuarios que formen parte de dominio.com deberán autenticar a través de POP3 o IMAP sin utilizar @dominio.com. El resto de los usuarios deberá especificar el dominio al que pertenezcan. En este mismo escenario el usuario cyrus deberá autenticar a través de cyradm —la herramienta de administración de Cyrus IMAP— como cyrus@dominio.com.

Inicie el servicio:

service cyrus-imapd start

Active el servicio en todos lo niveles de ejecución:

chkconfig cyrus-imapd on

Integración con Sendmail.

Los siguientes procedimientos requieren primero haber configurado exitosamente Sendmail. Por favor realice o verifique los procedimientos descritos en el documento titulado «Configuración básica de Sendmail».

Edite el archivo /etc/mail/sendmail.mc:

vim /etc/mail/sendmail.mc

Para hacer que el correo que llega a través de Sendmail sea almacenado en su totalidad en los buzones de Cyrus IMAP a través de LMTP (Local Mail Transfer Protocol o Protocolo de trasferencia de correo local, descrito en el RFC 2033), es necesario descomentar/agregar las siguientes líneas resaltadas en el archivo /etc/mail/sendmail.mc —están alrededor del la línea 111.

dnl # the following 2 definitions and activate below in the MAILER section the
dnl # cyrusv2 mailer.
dnl #
define(`confLOCAL_MAILER', `cyrusv2')dnl
define(`CYRUSV2_MAILER_ARGS', `FILE /var/lib/imap/socket/lmtp')dnl
dnl #
dnl # The following causes sendmail to only listen on the IPv4 loopback address
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback

Habilite también la línea que contiene MAILER(cyrusv2)dnl. La encontrará al final del archivo /etc/mail/sendmail.mc, justo debajo de MAILER(procmail)dnl.

dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
MAILER(cyrusv2)dnl

Reinicie el servicio sendmail para que surtan efecto los cambios:

service sendmail restart

Integración con Postfix.

Edite al archivo /etc/postfix/main.cf:

vi /etc/postfix/main.cf
Añada las siguientes 2 líneas:

mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
virtual_transport = lmtp:unix:/var/lib/imap/socket/lmtp
O bien ejecute lo siguiente:

postconf -e 'mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp'
postconf -e 'virtual_transport = lmtp:unix:/var/lib/imap/socket/lmtp'
Reinicie el servicio postfix para que surtan efecto los cambios:

service postfix restart

Administración de buzones.

El paquete de Cyrus IMAP distribuido con ALDOS, CentOS, Fedora™ y Red Hat™ Enterprise Linux incluye un parche que permite crear automáticamente los buzones de los usuarios con el primer ingreso al sistema a través de POP3 o IMAP. Ésto hace que la integración al sistema sea prácticamente tan transparente como lo es con Dovecot.

Ejecute lo siguiente para acceder hacia el intérprete de mandatos de administración de Cyrus IMAPDcyradm— sólo si necesita administrar buzones de correo:

cyradm --user cyrus --auth plain localhost

Lo anterior fallará si configuró el soporte para dominios virtuales. Si así fue el caso, ejecute lo siguiente donde dominio.com corresponde al dominio predeterminado especificado como valor de la opción defaultdomain del archivo /etc/imapd.conf:

cyradm --user cyrus@dominio.com --auth plain localhost

Deberá crear manualmente los buzones de los usuarios manualmente si utiliza paquetes de Cyrus IMAP que carecen de función para auto-crear éstos —como sería el caso para los paquetes RPM oficiales para CentOS 7 y Red hat Enterprise Linux 7. Ejecute createmailbox utilizando como argumentos la palabra user, una diagonal y el nombre del usuario para crear manualmente el buzón de éste. En el siguiente ejemplo se crea manualmente el buzón del usuario fulano:

createmailbox user/fulano

En el siguiente ejemplo se crearán manualmente los buzones para los usuario mengano, perengano y zutano:

createmailbox user/mengano
createmailbox user/perengano
createmailbox user/zutano

La asignación de quotas se hace ejecutando setquota utilizando como argumentos la palabra user, una diagonal, el nombre del usuario y la cantidad de espacio de almacenamiento a asignar en kilobytes. En el siguiente ejemplo se asigna una cuota de 2097152 kB (2 GiB) al usuario fulano:

setquota user/fulano 2097152

En el siguiente ejemplo se asigna una cuota de 2097152 kB para los buzones de los usuarios mengano, perengano y zutano:

setquota user/mengano 2097152
setquota user/perengano 2097152
setquota user/zutano 2097152

Para eliminar la cuota al usuario se ejecuta setquota utilizando como argumentos la palabra user, una diagonal y el nombre del usuario y la cadena de texto none. En el siguiente ejemplo se elimina la cuota al usuario zutano:

setquota user/zutano none

Ejecute listquotaroot utilizando como argumentos la palabra user, una diagonal y el nombre del usuario para consultar la información del estado de la cuota de un usuario. En el siguiente ejemplo se consulta la información de estado de quota para el usuario fulano

listquotaroot user/fulano

Lo anterior puede devolver una salida similar a la siguiente:

user/fulano STORAGE 0/1048576 (0%)

Para poder eliminar un buzón, primero se requiere asignar privilegios de eliminación al administrador de Cyrus IMAP, ejecutando setaclmailbox utilizando como argumentos la palabra user, una diagonal, el nombre del usuario, cyrus y la letra d. En el siguiente ejemplo se otorgan al administrador de Cyrus IMAP privilegios de eliminación sobre el buzón del usuario fulano:

setaclmailbox user/fulano cyrus d

Para listar todos los buzones disponibles ejecute lo siguiente:

listaclmailbox user/%

Lo anterior puede devolver una salida similar a la siguiente:

user/fulano:
  fulano lrswipkxtecda
user/mengano:
  mengano lrswipkxtecda
user/perengano:
  perengano lrswipkxtecda
user/zutano:
  zutano lrswipkxtecda
l

Permite mostrar el nombre del buzón, pero jamás su contenido.

r

Permite leer contenidos del buzón.

s

Preserva los estádos de «visto» y «reciente» de los mensajes entre sesiones IMAP.

w

Permite escritura y cambiar las banderas como serían «reciente», «respondido» y «borrador».

i

Permite insertar (mover o copiar) unmensaje dentro del buzón.

p

Permite publicar un mensaje en el buzón enviando el mensaje hacia dirección de destinatario del buzón.

c

Permite crear un nuevo buzón debajo del nivel superior. Los usuarios regulares tienen denegado crear nuevos buzones en el nivel superior.

d

permite eliminar un mensaje o bien el buzón completo.

a

Otorga privilegios de administrar las listas de contrll de acceso del buzón.

Para listar las carpetas IMAP disponibles debajo del buzón de un usuario en particular, ejecute algo similar a lo siguiente:

listaclmailbox user/fulano/%

Lo anterior puede devolver una salida similar a la siguiente:

user/fulano/Archives:
  fulano lrswipkxtecda
user/fulano/Drafts:
  fulano lrswipkxtecda
user/fulano/Junk:
  fulano lrswipkxtecda
user/fulano/Sent:
  fulano lrswipkxtecda
user/fulano/Trash:
  fulano lrswipkxtecda

Ejecute deletemailbox utilizando como argumentos la palabra user, una diagonal y el nombre del usuario para eliminar un buzón. En el siguiente ejemplo se elimina el buzón del usuario fulano.

deletemailbox user/fulano

Ejecute listmailbox para mostrar la lista de buzones existentes. Para salir del intérprete de mandatos de administración, sólo ejecute exit.

Nota.

En el caso en que se haya decidido utilizar métodos cifrados (CRAM-MD5 y DIGEST-MD5), puede mostrarse la lista de los usuarios con clave de acceso a través de SASL-2 utilizando sasldblistusers2.


Iniciar, detener y reiniciar el servicio cyrus-imapd.

Ejecute lo siguiente para hacer surtan efecto los cambios hechos a la configuración del servicio cyrus-imapd surtan efecto:

service cyrus-imapd restart

Para iniciar el servicio cyrus-imapd cuando éste fue previamente detenido, ejecute lo siguiente:

service cyrus-imapd start

Ejecute lo siguiente para detener el servicio cyrus-imapd:

service cyrus-imapd stop

Agregar el servicio cyrus-imapd al arranque del sistema.

Para hacer que el servicio de cyrus-imapd esté activo con el siguiente inicio del sistema, en todos los niveles de ejecución (2, 3, 4 y 5), ejecute lo siguiente:

chkconfig cyrus-imapd on

Comprobaciones.

Envíe un mensaje de correo electrónico utilizando a cualquier usuario del sistema.

echo "Hola. Este es un mensaje de prueba"|mail -s "Prueba" fulano

Establezca una conexión entre el cliente y el servidor a través de POP3 ejecutando lo siguiente:

openssl s_client -crlf -connect 127.0.0.1:110 -starttls pop3

Autentique y realice una operación de lectura de correo electrónico como se muestra a continuación:

Servidor: 

+OK localhost.localdomain Cyrus POP3 v2.3.18-Fedora-RPM-2.3.18-1.fc14.al server ready.

Cliente: 

user fulano

Servidor: 

+OK

Cliente: 

pass contraseña de fulano

Servidor: 

+OK Logged in.

Cliente: 

stat

Servidor: 

+OK 1 728

Cliente: 

list

Servidor: 

+OK 1 messages:
1 728
.

Cliente: 

retr 1

Servidor: 

+OK 728 octets
Return-Path: <fulano@localhost.localdomain>
Received: from localhost.localdomain (localhost.localdomain [192.168.1.254])
         by localhost.localdomain (8.13.1/8.13.1) with SMTP id k2IM2RjA003987
         for <root@localhost.localdomain>; Sat, 18 Mar 2006 16:03:21 -0600
Date: Sat, 18 Mar 2006 16:02:27 -0600
Message-Id: <200603182203.k2IM2RjA003987@localhost.localdomain>
Subject: Mensaje de prueba
From: fulano@localhost.localdomain
To: root@localhost.localdomain
Status: O
Content-Length: 43
Lines: 2
X-UID: 202
X-Keywords:

Hola. Este es un mensaje de prueba.
Adios.
.

Cliente: 

quit

Servidor: 

+OK Logging out.
Connection closed by foreign host.

Puede realizarse la misma prueba para comprobar la conectividad a través POP3 con SSL ejecutando lo siguiente:

openssl s_client -connect 127.0.0.1:995

Para comprobar la conectividad a través de IMAP con TLS, ejecute lo siguiente:

openssl s_client -crlf -connect 127.0.0.1:143 -starttls imap

Realice los ejemplos de conexión para IMAP descritos en el documento titulado «Introducción a los protocolos de correo electrónico».

Puede realizarse la misma prueba para comprobar la conectividad a través de IMAP con SSL ejecutando lo siguiente:

openssl s_client -connect 127.0.0.1:993

Modificaciones necesarias en el muro cortafuegos.

Como medida de seguridad, siempre abra los puertos del cortafuegos sólo hasta después de finalizar la configuración del servidor de correo electrónico y que sólo hasta que haya comprobado las configuraciones.

Se requiere haber abierto previamente los puertos 25 (smtp), 465 (smtps) y 587 (submission) utilizados por Sendmail y que debieron haber sido configurados siguiendo los procedimientos del documento titulado «Configuración básica de Sendmail».

Para el funcionamiento normal de un servicio de correo electrónico estándar, es necesario abrir también los puertos 110 (pop3), 143 (imap), 993 (imaps) y 995 (pop3s), todos por TCP.

Servicio iptables.

Ejecute lo siguiente:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT

Ejecute lo siguiente para guardar los cambios:

service iptables save

O bien añada lo siguiente al archivo /etc/sysconfig/iptables:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT

Reinicie el servicio para aplicar los cambios:

service iptables restart

Shorewall.

Edite el archivo /etc/shorewall/rules:

vi /etc/shorewall/rules

Las reglas corresponderían a algo similar a lo siguiente:


#ACTION	SOURCE	DEST	PROTO	DEST		SOURCE
#				PORT	PORT(S)
ACCEPT	all	fw	tcp	25,465,587
ACCEPT	all	fw	tcp	110,143,993,995

Ejecute lo siguiente para aplicar los cambios:

service shorewall restart

Configuración de clientes.

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.

Inicie el asiste de configuración de nueva cuenta de correo electrónico.

Defina su nombre completo, dirección de correo electrónico y contraseña. Al terminar pulse el botón Continuar.

Configuración IMAP, Mozilla Thunderbird.

Thunderbird intentará buscar si su servidor de correo está en la base de datos de proveedores conocidos.

Configuración IMAP, Mozilla Thunderbird.

Thunderbird debe detectar soporte para IMAP, POP3 y SMTP. Todo con STARTTLS. haga clic en el botón de Finalizado.

Configuración IMAP, Mozilla Thunderbird.

Aparecerá un diálogo parta gestionar la excepción de seguridad debido al certificado auto-firmado. Haga clic en el botón Confirmar excepción de seguridad.

Configuración IMAP, Mozilla Thunderbird.

Si decide configurar manualmente la cuenta, defina el nombre del servidor utilizado para crear el certificado, usuario y utilice conexión segura con STARTTLS.

Configuración IMAP, Mozilla Thunderbird.

Configure las opciones de correo basura. Habilite la casilla ara confiar en las cabeceras de SpamAssassin y seleccione la carpeta donde se almacenara el correo basura.

Configuración IMAP, Mozilla Thunderbird.

Se hace lo mismo para la configuración de SMTP (utilizar STARTTLS), 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.

Por favor continúe con el documento titulado «Optimización y procedimientos de emergencia de Cyrus IMAP».