Este documento proporciona instrucciones para configurar la instalación básica de Sendmail, Dovecot y Cyrus SASL en un servidor Linux. Explica cómo instalar y configurar estos programas, definir dominios y listas de control de acceso, y crear cuentas de usuario y asignar contraseñas para permitir la autenticación SMTP.
Docencia en la Era de la Inteligencia Artificial UB4 Ccesa007.pdf
Configuración básica de sendmail
1. Configuración básica de Sendmail.
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 Sendmail.
Es el más popular agente de transporte de correo (MTA o Mail Transport Agent), responsable,
quizá, de poco más del 70% del correo electrónico del mundo. Aunque por largo tiempo se le ha
criticado por muchos incidentes de seguridad, lo cierto es que éstos siempre han sido resueltos en
pocas horas.
URL: http://www.sendmail.org/.
Acerca de Dovecot.
Dovecot es un servidor de POP3 e IMAP, de código fuente abierto, 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 una implementación diseñada para la
seguridad de datos en protocolos de Internet. Desempareja los 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 sea 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 bien
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.
Equipamiento lógico necesario.
cyrus-sasl
cyrus-sasl-plain
dovecot
m4
make
2. sendmail-cf
sendmail
Instalación a través de yum.
Si se utiliza de CentOS o Red Hat Enterprise Linux ejecute lo siguiente:
yum -y install sendmail sendmail-cf dovecot m4 make
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. 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 contraseñas para SMTP a través del mandato saslpasswd2. Outlook carece de soporte
para estos métodos de autenticación.
yum remove cyrus-sasl-gssapi cyrus-sasl-md5
Procedimientos.
Definiendo Sendmail 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 Sendmail como agente de transporte de correo (MTA, MailTransport 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 bien escriba el número de la
3. 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 postfix stop
chkconfig postfix off
service sendmail start
chkconfig sendmail on
Alta de cuentas de usuario y asignación de contraseñas.
La autenticación para SMTP, a través de cualquier método (PLAIN, LOGIN, Digest-MD5 o CRAM-
MD5), requiere se active, e inicie, el servicio saslauthd del siguiente modo:
chkconfig saslauthd on
service saslauthd start
El alta de usuarios es la misma que como con cualquier otro usuario del sistema. Sendmail utilizará
el servicio saslauthd para autenticar a los usuarios a través de los métodos PLAIN y LOGIN, con
opción a utilizar también Digest-MD5 o bien CRAM-MD5.
El alta de las cuentas del usuario en el sistema, la cual se sugiere se
asigne /dev/null o /sbin/nologin como intérprete de mandatos, pude hacerse del siguiente modo:
useradd -s /dev/null usuario
La asignación de contraseñas, para permitir autenticar a través de SMTP, POP3, e IMAP,
utilizando el método PLAIN o bien el método LOGIN, se hace exactamente igual que con cualquier
otra cuenta de usuario del sistema, como se muestra a continuación:
passwd usuario
Ejecutando lo anterior, el sistema solicitará se ingrese una contraseña, con confirmación. Prefiera
utilizar buenas contraseñas y de este modo evitará problemas de seguridad.
Nota.
La asignación de contraseñas para autenticar SMTP, a través de métodos cifrados
(CRAM-MD5 y DIGEST-MD5), en sistemas con versión de Sendmail compilada
contra SASL-2 (Red Hat™ Enterprise Linux 5, CentOS 5 y versiones posteriores de
éstos), puede hacerse a través del mandato saslpasswd2 del siguiente modo,
tomando en consideración que Outlook y Outlook Express carecen de soporte para
autenticar contraseñas a través de estos métodos, los cuales requieren además
tener instalado el paquete cyrus-sasl-md5 en el servidor para la gestión de
contraseñas:
saslpasswd2 usuario
Puede mostrarse la lista de los usuarios con contraseña asignada a través de
4. SASL-2 utilizando el mandatosasldblistusers2.
Si los usuarios se van a dar de alta siguiendo el formato usuario@dominio.tld en lugar de
sólo usuario, una práctica común en los servidores con múltiples dominios virtuales, es necesario
añadir al servicio saslauthd la opción -r, la cual permite combinar el nombre de usuario y dominio
antes de pasar por el mecanismo de autenticación. Si éste es el caso, se debe editar el
archivo /etc/sysconfig/saslauthd:
vi /etc/sysconfig/saslauthd
Y añadir la opción -r a los argumentos de FLAGS:
# Directory in which to place saslauthd's listening socket, pid file, and so
# on. This directory must already exist.
SOCKETDIR=/var/run/saslauthd
# Mechanism to use when checking passwords. Run "saslauthd -v" to get a list
# of which mechanism your installation was compiled with the ablity to use.
MECH=pam
# Options sent to the saslauthd. If the MECH is other than "pam" uncomment
# the next line.
# DAEMONOPTS=--user saslauth
# Additional flags to pass to saslauthd on the command line. See saslauthd(8)
# for the list of accepted flags.
FLAGS=-r
Y reiniciar el servicio saslauthd.
service saslauthd restart
Dominios a administrar.
Edite el archivo /etc/mail/local-host-names:
vi /etc/mail/local-host-names
5. Establezca los dominios locales que serán administrados. En el siguiente ejemplo se establecen 4
dominios a administrar, donde tld (Top Level Domain o dominio de nivel superior) correspondería a
.com, .org, .net, etc.:
dominio1.tld
dominio2.tld
dominio3.tld
dominio4.tld
Proceda a crear el archivo /etc/mail/relay-domains:
touch /etc/mail/relay-domains
Edite el archivo /etc/mail/relay-domains que acaba de crear:
vi /etc/mail/relay-domains
Establezca los nombres de los dominios que tendrán permitido re-transmitir correo electrónico
desde el servidor. Técnicamente tendrá casi el mismo contenido de /etc/mail/local-host-names, a
menos que se desee excluir algún dominio en particular o bien se trate de servidor de correo
secundario para otro dominio en otro servidor.
dominio1.tld
dominio2.tld
dominio3.tld
dominio4.tld
Control de acceso
Para definir las listas de control de acceso, edite el archivo /etc/mail/access:
vi /etc/mail/access
Debe incluir en el archivo /etc/mail/access todas las direcciones IP locales del servidor (las que
devuelva el mandato ip addr show).
Puede incluir también la lista direcciones IP, dominios o bien cuentas de correo electrónico, a las
que se quiera otorgar permisos de re-transmisión sin restricciones o con permiso para enviar
correo electrónico sólo a cuentas locales. Puede definir también una lista negra de direcciones de
correo electrónico, dominios y direcciones IP, a las que se desee denegar el acceso. Considere
que:
Cualquier elemento que vaya acompañado de RELAY, tendrá permitido enviar correo electrónico,
sin necesidad de autenticar y re-transmitir éste sin restricción alguna.
Cualquier elemento que vaya acompañado de OK, tendrá permitido enviar correo electrónico, sin
necesidad de autenticar, pero sólo a las cuentas locales.
Cualquier elemento que vaya acompañado de REJECT, tendrá prohibida cualquier tipo de
comunicación de correo electrónico.
6. Nota.
Jamás configure una segmento completo de red local con RELAY, ya que dejaría de
tener sentido utilizar autenticación a través de SMTP y potencialmente podría
permitir que los problemas de seguridad de maquinas infectadas con virus, gusanos
o troyanos, se magnifiquen, siendo que permitiría el envío, sin restricciones, de
correo electrónico infectado o bien cantidades extraordinarias de spam, originadas
por los equipos cuya seguridad se haya visto comprometida.
Ejemplo de configuración para el archivo /etc/mail/access:
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
#
# Dirección IP del propio servidor.
Connect:192.168.70.51 RELAY
#
# Otros servidores de correo en la LAN a los que se les permitirá enviar
# correo libremente a través del propio servidor de correo.
Connect:192.168.70.52 RELAY
#
# Direcciones IP que sólo podrán entregar correo de forma local, es decir,
# no pueden enviar correo fuera del propio servidor.
Connect:192.168.2.24 OK
#
# Lista negra
usuario@molesto.com REJECT
productoinutil.com.mx REJECT
10.4.5.6 REJECT
#
7. # Bloques de Asia Pacific Networks, ISP desde el cual se emite la mayor
# parte del Spam del mundo.
# Las redes involucradas abarcan Australia, Japón, China, Corea del Sur, Taiwan,
# Hong Kong e India por lo que bloquear el correo de dichas redes significa
# cortar comunicación con estos países, pero acaba con entre el 60% y 80%
# del Spam.
222 REJECT
221 REJECT
220 REJECT
219 REJECT
218 REJECT
212 REJECT
211 REJECT
210 REJECT
203 REJECT
202 REJECT
140.109 REJECT
133 REJECT
61 REJECT
60 REJECT
59 REJECT
58 REJECT
Alias de la cuenta del usuario root.
Es peligroso autenticarse con la cuenta del usuario root, a través de cualquier tipo de red, sólo para
revisar los mensajes de correo electrónico originados por el sistema. Se recomienda definir alias
para la cuenta del usuario root, hacia la cual se entregará todo el correo electrónico originalmente
dirigido a root.
Edite el archivo /etc/aliases:
8. vi /etc/aliases
Al final de éste, defina a que cuenta de usuario regular le será entregado el correo electrónico
originalmente destinado a root:
root: fulano
Para convertir el archivo /etc/aliases en /etc/aliases.db, que es el archivo, en formato de base de
datos, que utilizará sendmail y para verificar que la sintaxis esté correcta o bien si existen aliases
duplicados, ejecute el siguiente mandato:
newaliases
Lo anterior, debe devolver una salida similar a la siguiente:
/etc/aliases: 77 aliases, longest 10 bytes, 777 bytes total
Configuración de funciones de Sendmail.
Para definir, cambiar o añadir funciones, edite el archivo /etc/mail/sendmail.mc.
vi /etc/mail/sendmail.mc
confSMTP_LOGIN_MSG.
Este parámetro permite establecer el mensaje de bienvenida al establecer la conexión al servidor.
Es posible ocultar el nombre y la versión de Sendmail, ésto con el objeto de agregar seguridad por
oscuridad. Funciona de manera sencilla, haciendo que, quien establezca una conexión hacia el
servidor, sea incapaz determinar qué versión de Sendmail se está utilizando y con ésto dificultar a
un delincuente o abusador del servicio, el determinar que vulnerabilidad específica aprovechar.
Descomente lo siguiente en el archivo /etc/mail/sendmail.mc, eliminando el dnl y el espacio que le
antecede:
dnl #
dnl # Do not advertize sendmail version.
dnl #
define(`confSMTP_LOGIN_MSG',`$j Sendmail; $b')dnl
dnl #
dnl # default logging level is 9, you might want to set it higher to
dnl # debug the configuration
dnl #
dnl define(`confLOG_LEVEL', `9')dnl
Guarde los cambios y salga del editor.
9. Reinicie el servicio sendmail:
service sendmail restart
Realice una conexión al puerto 25. Obtendrá una salida similar a la siguiente:
$ nc 127.0.0.1 25
Trying 127.0.0.1...
Connected to mail.dominio.tld.
Escape character is '^]'.
220 mail.dominio.tld ESMTP Sendmail ; Mon, 17 May 2004 02:22:29 -0500
quit
221 2.0.0 mail.dominio.tld closing connection
Connection closed by foreign host.
$
confAUTH_OPTIONS.
Vuelva a edita el archivo /etc/mail/sendmail.mc:
vi /etc/mail/sendmail.mc
La siguiente línea viene habilitada de modo predeterminado y permitirá realizar el proceso de
autenticación a través del puerto 25, utilizando el método PLAIN o bien el método LOGIN, los
cuales transmiten el nombre de usuario, junto con su correspondiente contraseña, en texto simple,
garantizando 100% de compatibilidad con todos los clientes de correo electrónico existentes. Sin
embargo, ésto también implica un enorme riesgo de seguridad, por lo cual se recomienda
implementar seguridad a través de SSL/TLS.
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS',`A')dnl
dnl #
dnl # The following allows relaying if the user authenticates, and disallows
dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links
Para añadir la seguridad necesaria, consulte y estudie el documento titulado «Cómo configurar
Sendmail y Dovecot con soporte SSL/TLS.»
10. .
Nota.
Si utiliza la siguiente línea, en lugar de la mencionada arriba, se desactivará la
función que permite la autenticación enviando las contraseñas en texto simple, a
través de conexiones sin cifrar (SSL/TLS) y se habilitará la función que sólo permite
autenticar con contraseñas en texto simple a través de SSL/TLS y a través de
métodos que utilicen contraseñas cifradas, como sería CRAM-MD5 y DIGEST-MD5
con o sin SSL/TLS. Esto obliga a utilizar SSL/TLS para realizar conexiones a través
de cualquier cliente de correo electrónico o bien clientes de correo electrónico con
soporte para autenticación a través de CRAM-MD5 y DIGEST-MD5.
Todos clientes de correo electrónico conocidos, excepto Outlook y Outlook
Express), incluyen soporte para CRAM-MD5 y DIGEST-MD5. Las conexiones sin
SSL/TLS requieren a tener instalado el paquete cyrus-sasl-md5 en el servidor y
asignar las contraseñas para SMTP a través del mandato saslpasswd2.
dnl # The following allows relaying if the user authenticates, and
disallows
dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links
dnl #
define(`confAUTH_OPTIONS',`A p')dnl
dnl #
dnl # PLAIN is the preferred plaintext authentication method and used
by
dnl # Mozilla Mail and Evolution, though Outlook Express and other
MUAs do
dnl # use LOGIN. Other mechanisms should be used if the connection
is not
Conviene habilitar esta opción en lugar de la anterior una vez que se ha configurado
el soporte SSL/TLS para Sendmail, pues obliga a los usuarios a autenticarse
utilizando sólo conexiones SSL/TLS.
TRUST_AUTH_MECH y confAUTH_MECHANISMS.
Si se desea utilizar SMTP con autenticación, se requieren des-comentar las siguientes dos líneas
del archivo/etc/mail/sendmail.mc, eliminando el dnl y el espacio que les precede:
dnl # PLAIN is the preferred plaintext authentication method and used by
11. dnl # Mozilla Mail and Evolution, though Outlook Express and other MUAs do
dnl # use LOGIN. Other mechanisms should be used if the connection is not
dnl # guaranteed secure.
dnl # Please remember that saslauthd needs to be running for AUTH.
dnl #
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-
MD5LOGIN PLAIN')dnl
dnl #
dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl # cd /etc/pki/tls/certs; make sendmail.pem
DAEMON_OPTIONS.
De modo predeterminado, Sendmail escucha peticiones sólo a través de la interfaz de retorno del
sistema (127.0.0.1), e ignorando otros dispositivos de red. Sólo se necesita eliminar la restricción
de la interfaz de retorno para poder recibir correo desde Internet o desde la red de área local.
Localice la siguiente línea resaltada:
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
dnl # address restriction to accept email from the internet or intranet.
dnl #
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 587 for
dnl # mail from MUAs that authenticate. Roaming users who can't reach their
dnl # preferred sendmail daemon due to port 25 being blocked or redirected find
dnl # this useful.
dnl #
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
dnl #
12. dnl # The following causes sendmail to additionally listen to port 465, but
dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed
Examine este parámetro y elimine el valor Addr=127.0.0.1, además de la coma (,) que le antecede,
de modo que quede como se muestra a continuación:
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
dnl # address restriction to accept email from the internet or intranet.
dnl #
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 587 for
dnl # mail from MUAs that authenticate. Roaming users who can't reach their
dnl # preferred sendmail daemon due to port 25 being blocked or redirected find
dnl # this useful.
dnl #
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 465, but
dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed
El puerto 587 (submission) puede ser utilizado también para envío de correo electrónico. Por
estándar se utiliza como puerto alternativo en los casos donde un cortafuegos impide a los
usuarios acceder hacia servidores de correo electrónico, los cuales normalmente trabajan a través
del puerto 25. Para este fin, se requiere descomentar la línea que
incluyeDAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl, como se ilustra a
continuación, resaltado en negrita:
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
dnl # address restriction to accept email from the internet or intranet.
dnl #
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
13. dnl #
dnl # The following causes sendmail to additionally listen to port 587 for
dnl # mail from MUAs that authenticate. Roaming users who can't reach their
dnl # preferred sendmail daemon due to port 25 being blocked or redirected find
dnl # this useful.
dnl #
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 465, but
dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed
FEATURE(`accept_unresolvable_domains').
De modo predeterminado, como una forma de permitir el envío local del correo del propio sistema
en una computadora de escritorio o una computadora portátil, está se utiliza el
parámetro FEATURE(`accept_unresolvable_domains'). Se recomienda desactivar esta función a fin
de impedir se acepte correo de dominios inexistentes (generalmente utilizado para el envío de
correo masivo no solicitado o Spam). Comente esta línea colocando un dnl y un espacio, del
siguiente modo:
dnl # We strongly recommend not accepting unresolvable domains if you want to
dnl # protect yourself from spam. However, the laptop and users on computers
dnl # that do not have 24x7 DNS do need this.
dnl #
dnl FEATURE(`accept_unresolvable_domains')dnl
dnl #
dnl FEATURE(`relay_based_on_MX')dnl
dnl #
Enmascaramiento.
Des-comente las siguientes tres líneas y adapte el valor de MASQUERADE_AS para definir la
máscara que utilizará el servidor para enviar correo electrónico (es decir, define lo que va después
de la @ en la dirección de correo):
14. MASQUERADE_AS(`dominio1.tld')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
Si se van a administrar múltiples dominios, añada aquellos deban conservar su propia máscara,
utilizando el parámetroMASQUERADE_EXCEPTION del siguiente modo:
MASQUERADE_AS(`dominio1.tld')dnl
MASQUERADE_EXCEPTION(`dominio2.tld')dnl
MASQUERADE_EXCEPTION(`dominio3.tld')dnl
MASQUERADE_EXCEPTION(`dominio4.tld')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
Control del correo chatarra (spam) a través de DNSBLs.
Si se desea utilizar listas negras para mitigar el correo chatarra (spam), pueden añadir la siguiente
línea para definir la lista negra de SpamCop.net, casi al final del archivo /etc/mail/sendmail.mc y
justo arriba de MAILER(smtp)dnl:
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
FEATURE(`enhdnsbl', `bl.spamcop.net', `"Spam blocked see:
http://spamcop.net/bl.shtml?"$&{client_addr}', `t')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
dnl MAILER(cyrusv2)dnl
Configuración de Dovecot.
Opciones del archivo /etc/dovecot/dovecot.conf 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 y versiones anteriores. Edite el archivo/etc/dovecot/dovecot.conf y descomente
el parámetro protocols, estableciendo como valor pop3 imap lmtp.
# Protocols we want to be serving.
protocols = imap pop3 lmtp
Opciones del archivo /etc/dovecot/conf.d/10-mail.conf en CentOS 6 y Red Hat Enterprise Linux 6.
15. 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.
# See doc/wiki/Variables.txt for full list. Some examples:
#
# mail_location = maildir:~/Maildir
# mail_location = mbox:~/mail:INBOX=/var/mail/%u
# mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
#
# <doc/wiki/MailLocation.txt>
#
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Cabe señalar que la versión de dovecot incluida en CentOS 6 y Red Hat™ Enterprise Linux 6, es
obligatorio generar un certificado, pues sólo permitirá conexiones sin TLS desde 127.0.0.1. Siga el
procedimiento descrito en el documento tituladoCómo configurar Sendmail y Dovecot con soporte
SSL/TLS.
Opciones del archivo /etc/dovecot/conf.d/10-auth.conf en CentOS 6 y Red Hat Enterprise Linux 6.
De modo predeterminado Dovecot sólo permite autenticar con texto simple sin SSL/TLS desde el
anfitrión local. La autenticación de usuarios desde anfitriones remotos sólo se permite a través de
SSL/TLS. Si requiere permitir la autenticación de usuarios sin SSL/TLS, edite el archivo
/etc/dovecot/conf.d/10-auth.conf:
vi /etc/dovecot/conf.d/10-auth.conf
Localice la opción disable_plaintext_auth:
##
## Authentication processes
##
# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
#disable_plaintext_auth = yes
16. Quite la almohadilla y cambie el valor yes por no:
##
## Authentication processes
##
# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
disable_plaintext_auth = no
Se recomienda dejar la opción disable_plaintext_auth con la opción yes a fin de obligar a los
usuarios a autenticar sólo a través de conexiones SSL/TLS.
Opciones del archivo /etc/dovecot/dovecot.conf en CentOS 5 y Red Hat Enterprise Linux 5.
Si utiliza CentOS 5 o Red Hat™ Enterprise Linux 5, sólo debe editar el archivo /etc/dovecot.conf y
habilitar los servicios de IMAP y/o POP3, del siguiente modo (están habilitados de modo
predeterminado pop3, pop3s, imap, e imaps):
# Protocols we want to be serving:
# imap imaps pop3 pop3s
protocols = imap imaps pop3 pop3s
Añadir al inicio del sistema e iniciar servicios dovecot y sendmail.
El servicio dovecot, en cualquiera de las versiones de los sistemas operativos mencionados, se
agrega al inicio del sistema del siguiente modo:
chkconfig dovecot on
Para iniciar el servicio dovecot, se ejecuta lo siguiente:
service dovecot start
Para aplicar cambios en la configuración del servicio dovecot, se ejecuta lo siguiente:
service dovecot restart
El servicio sendmail se agrega al inicio del sistema, ejecutando lo siguiente:
chkconfig sendmail on
Para iniciar el servicio sendmail, se ejecuta lo siguiente:
17. service sendmail start
Para reiniciar servicio sendmail, sólo bastará ejecutar:
service sendmail restart
Probar servidor enviando/recibiendo mensajes con CUALQUIER cliente estándar de correo
electrónico con soporte para POP3/IMAP/SMTP con soporte para autenticar a través de SMTP
utilizando los métodos LOGIN o PLAIN.
Para detectar posibles errores, se puede examinar el contenido de la bitácora de correo electrónico
del sistema, utilizando el mandato tail, con la opción -f, sobre el archivo /var/log/maillog, como se
muestra a continuación:
tail -f /var/log/maillog
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.
Para el funcionamiento normal de un servicio de correo electrónico estándar, es necesario abrir los
puertos 25 (smtp), 465 (smtps), 587 (submission), 110 (pop3), 143 (imap), 993 (imaps) y 995
(pop3s), todos por TCP.
Servicio iptables.
Puede utilizar iptables, ejecutando lo siguiente:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
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 465 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 587 -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
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 25 -j ACCEPT
-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
18. -A INPUT -m state --state NEW -m tcp -p tcp --dport 465 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 587 -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
Y reinicie el servicio iptables:
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)1
ACCEPT all fw tcp 25,465,587
ACCEPT all fw tcp 110,143,993,995
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Al terminar de configurar las reglas para Shorewall, reinicie el muro cortafuegos, ejecutando el
siguiente mandato:
service shorewall restart