Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Evita el apocalipsis de los servidores de correo electrónico en CentOS/RHEL 6.4.

En el pasado los servidores de correo electrónico configurados en CentOS o RHEL 6.x con Sendmail y Dovecot tenía un pequeño detalle que en su momento carecía de mayor relevancia. Con el reciente lanzamiento de CentOS 6.4 y RHEL 6.4 este detalle toma una enorme relevancia.

De modo predeterminado Sendmail crea los buzones de entrada con permiso 0660, como propiedad del usuario y grupo mail. Dovecot carece de privilegios sobre el grupo mail y es por eso que siempre el primer ingreso del usuario a través de POP3 o IMAP devolvía un error de falta de permisos para crear el índice IMAP del buzón de entrada en el directorio de inicio del usuario y que se corregía solo en el siguiente acceso. Hasta CentOS 6.3 era la forma en que funcionaba este detalle en servidores de correo electrónico que utilizaban Sendmail y Dovecot con buzones en formato mbox.

En CentOS y RHEL 6.4 este comportamiento cambia de modo radical. Si dovecot es configurado sin privilegios sobre del grupo mail, ningún usuario del sistema podrá hacer uso de nuevos buzones de entrada a través de POP3 o IMAP a menos que se genere manualmente el directorio del índice IMAP correspondiente (mkdir ~/mail/.imap/INBOX) o se cambien manualmente los permisos de acceso de los buzones de entrada de 0660 a 0600.

Los manuales de Alcance Libre ya han sido actualizados para resolver y prevenir este problema.

Si se va a utilizar Sendmail como MTA predeterminado, es importante definir un grupo de acceso de correo en la configuración de Dovecot. Si se va a utilizar Postfix se puede omitir el siguiente paso. Alrededor de la línea 115 del archivo /etc/dovecot/conf.d/10-mail.conf, localice la opción mail_privileged_group, descomente ésta y defina como valor el grupo mail:

# Group to enable temporarily for privileged operations. Currently this is
# used only with INBOX when either its initial creation or dotlocking fails.
# Typically this is set to "mail" to give access to /var/mail.
mail_privileged_group = mail

Alrededor de la línea 122 del archivo /etc/dovecot/conf.d/10-mail.conf, localice la opción mail_access_groups, descomente ésta y defina también como valor el grupo mail:

# Grant access to these supplementary groups for mail processes. Typically
# these are used to set up access to shared mailboxes. Note that it may be
# dangerous to set these if users can create symlinks (e.g. if "mail" group is
# set here, ln -s /var/mail ~/mail/var could allow a user to delete others'
# mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it).
mail_access_groups = mail

Se requiere que los usuarios locales pertenezcan al grupo mail para que lo anterior represente un problema de seguridad.

Nota.

Es importante señalar Postfix crea automáticamente los buzones de entrada con permiso 0600 (-rw-------) y por tanto impide utilizar buzones de entrada compartidos, mientras que Sendmail lo hace con permiso 0660 (-rw-rw----) y por tanto permite utilizar buzones de entrada compartidos. En ambos casos los permisos predeterminados de los buzones de entrada sólo se pueden cambiar modificando y compilando de nuevo el código fuente.

Si se utiliza Sendmail como MTA predeterminado, debido al permiso 0660 con el que son creados los buzones de entrada, a Dovecot le será imposible generar automáticamente las carpetas e índices IMAP, pues éste fallará al copiar el grupo al que pertenece el buzón de entrada cuando éste tiene permisos de lectura y escritura para grupo. Por lo tanto se obtendrían continuamente los siguientes errores en la bitácora /var/log/maillog:

Mar 21 22:31:45 mail dovecot: pop3(fulano): Error: mkdir(/home/fulano/mail/.imap/INBOX) failed: Operation not permitted
Mar 21 22:31:45 mail dovecot: pop3(fulano): Error: Couldn't open INBOX: Internal error occurred. Refer to server log for more information. [2013-03-21 22:31:45]
Mar 21 22:31:45 mail dovecot: pop3(fulano): Couldn't open INBOX top=0/0, retr=0/0, del=0/0, size=0

Es por ésto que, en el caso de utilizar Sendmail como MTA predeterminado, se requiere configurar que Dovecot tenga privilegios de acceso sobre el grupo mail. De otro modo el administrador del sistema estaría obligado a crear manualmente los directorios ~/mail/.imap/INBOX de todos los usuarios locales o cambiar manualmente los permisos de todos los buzones de entrada de 0660 a 0600 y repetir cualquiera de las dos operaciones cada vez que se genere un nuevo usuario.

Si se utiliza Postfix como MTA predeterminado, es innecesario definir valor alguno en las opciones mail_privileged_group y mail_access_groups pues los buzones de entrada se crean con permiso 0600 y por tanto carecen de permisos de lectura y escritura para grupo.

Guarde el archivo y salga del editor de texto y reinicie dovecot.


Atención: Salvo que se indique lo contrario, la licencia del texto de este documento es Creative Commons Reconocimiento 2.5, mediante la cual usted tiene permitido copiar, modificar, comunicar y distribuir el contenido de este texto, de manera total o parcial, y publicarlo o difundirlo en cualquier otro sitio de Internet o medio de comunicaciòn, siempre y cuando incluya o cite (1)el nombre de este sitio de Internet, (2)enlace permanente de este documento, (3)nombre del autor y (4)la misma licencia de distribución.

Opciones: Imprimir | Recomendar | Enlace permanente

Twitter Facebook Google Bookmarks Bitacoras.com Wikio Menéame Technorati Bloglines Digg Yahoo Buzz

Seguimientos (Trackback)

URL de seguimiento para esta entrada:
http://www.alcancelibre.org/trackback.php/evita-apocalipsis-correo-centos-rhel-64
  • Evita el apocalipsis de los servidores de correo electrónico en CentOS/RHEL 6.4.
  • 0comentarios
  • Crea cuenta nueva
Agregar comentario

Los siguientes comentarios son de la persona que los haya enviado. Este sitio se deslinda de cualquier responsabilidad respecto de las opiniones expresadas por los participantes en nuestros foros y secciones de comentarios, y el hecho de publicar las mismas no significa que se esté de acuerdo con éstas.