Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduccin.
Acerca de Sendmail.
Es el ms popular agente de transporte de correo (MTA o Mail Transport Agent),
responsable, quiz, de poco ms del 70% del correo electrnico 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 cdigo fuente abierto, que funciona en
Linux y sistemas basados sobre Unix y diseado 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/.
cyrus-sasl
cyrus-sasl-plain
dovecot
m4
make
sendmail-cf
sendmail
Procedimientos.
Definiendo Sendmail como agente de transporte de correo
predeterminado.
El mandato alternatives, con la opcin --config y el valor mta, se utiliza para conmutar
el servicio de correo electrnico del sistema y elegir qu programa utilizar. Slo 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, 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'.
Seleccin
Comando
----------------------------------------------1
/usr/sbin/sendmail.postfix
*+ 2
/usr/sbin/sendmail.sendmail
Presione Intro para mantener la seleccin actual[+] o bien escriba el nmero de la
seleccin: 2
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 travs de los
mtodos PLAIN y LOGIN, con opcin a utilizar tambin Digest-MD5 o bien CRAMMD5.
El alta de las cuentas del usuario en el sistema, la cual se sugiere se asigne /dev/null o
/sbin/nologin como intrprete de mandatos, pude hacerse del siguiente modo:
useradd -s /dev/null usuario
See
Dominios a administrar.
Edite el archivo /etc/mail/local-host-names:
vi /etc/mail/local-host-names
Establezca los nombres de los dominios que tendrn permitido re-transmitir correo
electrnico desde el servidor. Tcnicamente tendr casi el mismo contenido de
/etc/mail/local-host-names, a menos que se desee excluir algn 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
productoinutil.com.mx
REJECT
10.4.5.6
REJECT
#
# Bloques de Asia Pacific Networks, ISP desde el cual se emite la
mayor
# parte del Spam del mundo.
# Las redes involucradas abarcan Australia, Japn, China, Corea
del Sur, Taiwan,
# Hong Kong e India por lo que bloquear el correo de dichas redes
significa
# cortar comunicacin con estos pases, 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
Al final de ste, defina a que cuenta de usuario regular le ser entregado el correo
electrnico originalmente destinado a root:
root:
fulano
confSMTP_LOGIN_MSG.
Esta opcin permite establecer el mensaje de bienvenida al establecer la conexin al
servidor. Es posible ocultar el nombre y la versin de Sendmail, sto con el objeto de
agregar seguridad por oscuridad. Funciona de manera sencilla, haciendo que, quien
establezca una conexin hacia el servidor, sea incapaz determinar qu versin de
Sendmail se est utilizando y con sto dificultar a un delincuente o abusador del
servicio, el determinar que vulnerabilidad especfica 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
Realice una conexin 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
TRUST_AUTH_MECH y confAUTH_MECHANISMS.
Si se desea utilizar SMTP con autenticacin, se requieren des-comentar las siguientes
dos lneas 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
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
DAEMON_OPTIONS.
De modo predeterminado, Sendmail escucha peticiones slo a travs de la interfaz de
retorno del sistema (127.0.0.1), e ignorando otros dispositivos de red. Slo se necesita
eliminar la restriccin de la interfaz de retorno para poder recibir correo desde Internet o
desde la red de rea local. Localice la siguiente lnea 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 #
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
Elimine el valor Addr=127.0.0.1, adems de la coma (,) que le antecede, de modo que
quede como se muestra a continuacin:
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 tambin para envo de correo
electrnico. Por estndar se utiliza como puerto alternativo en los casos donde un
cortafuegos impide a los usuarios acceder hacia servidores de correo electrnico, los
cuales normalmente trabajan a travs del puerto 25. Para este fin, se requiere
descomentar la lnea que incluye DAEMON_OPTIONS(`Port=submission,
Name=MSA, M=Ea')dnl, como se ilustra a continuacin, 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
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 envo local del correo del
propio sistema en una computadora de escritorio o una computadora porttil, se utiliza
la opcin FEATURE(`accept_unresolvable_domains'). Se recomienda desactivar esta
funcin a fin de impedir se acepte correo de dominios inexistentes (generalmente
utilizado para el envo de correo masivo no solicitado o Spam). Comente esta lnea
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 lneas y adapte el valor de MASQUERADE_AS para
definir la mscara que utilizar el servidor para enviar correo electrnico (es decir,
define lo que va despus de la @ en la direccin de correo):
MASQUERADE_AS(`dominio1.tld')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
Si se van a administrar mltiples dominios, aada todos aquellos que deban conservar
su propia mscara, utilizando mltiples lneas con la opcin
MASQUERADE_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
10
11
Se requiere que los usuarios locales pertenezcan al grupo mail para que lo anterior
represente un problema de seguridad.
12
Cabe sealar que la versin de dovecot incluida en CentOS 6 y Red Hat Enterprise
Linux 6, es obligatorio generar un certificado, pues slo permitir conexiones sin TLS
desde 127.0.0.1.
Opciones del archivo /etc/dovecot/conf.d/10-auth.conf en CentOS 6 y Red Hat
Enterprise Linux 6.
De modo predeterminado Dovecot slo permite autenticar con texto simple sin
SSL/TLS desde el anfitrin local. La autenticacin de usuarios desde anfitriones
remotos slo se permite a travs de SSL/TLS. Si requiere permitir la autenticacin de
usuarios sin SSL/TLS algo poco prudente en servidores en produccin, pero
perfecto para realizar pruebas simples de autenticacin edite el archivo
/etc/dovecot/conf.d/10-auth.conf:
vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
Se recomienda dejar la opcin disable_plaintext_auth con la opcin yes a fin de
obligar a los usuarios a autenticar slo a travs de conexiones SSL/TLS.
Opciones del archivo /etc/dovecot/dovecot.conf en CentOS 5 y Red Hat Enterprise
Linux 5.
13
Si utiliza CentOS 5 o Red Hat Enterprise Linux 5, slo debe editar el archivo
/etc/dovecot.conf y habilitar los servicios de IMAP y/o POP3, del siguiente modo
(estn habilitados de modo predeterminado pop3, pop3s, imap, e imaps):
# Protocols we want to be serving:
# imap imaps pop3 pop3s
protocols = imap imaps pop3 pop3s
14