Configuración Básica de Sendmail Con Soporte SSL
Configuración Básica de Sendmail Con Soporte SSL
Configuración Básica de Sendmail Con Soporte SSL
soporte SSL/TLS.
Autor: Joel Barrios Dueas
Correo electrnico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org
1999-2016 Joel Barrios Dueas. Usted es libre de copiar, distribuir y comunicar pblicamente 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 publicacin, a travs de cualquier medio,
por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, slo puede distribuir la obra generada bajo una licencia
idntica a sta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los trminos 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 legtimos u otras limitaciones no se ven afectados por lo
anterior. Licencia completa en castellano. La informacin contenida en este documento y los derivados de ste se proporcionan tal cual son y los autores no
asumirn responsabilidad alguna si el usuario o lector hace mal uso de stos.
Introduccin.
Es imprescindible primero estudiar y comprender los conceptos descritos en el documento
titulado Introduccin a los protocolos de correo electrnico.
Acerca de Sendmail.
URL: http://www.sendmail.org/.
SASL (Simple Authentication and Security Layer) es una implementacin diseada para la
seguridad de datos en protocolos de Internet. Desempareja los mecanismos de la
autenticacin desde protocolos de aplicaciones, permitiendo, en teora, cualquier
mecanismo de autenticacin soportado por SASL, para ser utilizado en cualquier protocolo
de aplicacin que sea capaz de utilizar SASL. En la actualidad SASL es un protocolo de
IETF (Internet Engineering Task Force) que ha sido propuesto como estndar. Est
especificado en el RFC 2222 creado por John Meyers en la Universidad Carnegie Mellon.
Cyrus SASL es una implementacin de SASL que puede ser utilizada del lado del servidor
o bien del lado del cliente y que incluye como principales mecanismos de autenticacin
soportados a ANONYMOUS, CRAM-MD5, DIGEST-MD5, GSSAPI y PLAIN. El cdigo
fuente incluye tambin soporte para los mecanismos LOGIN, SRP, NTLM, OPT y
KERBEROS_V4.
URL: http://asg.web.cmu.edu/sasl/sasl-library.html.
Acerca de DSA.
URL: http://es.wikipedia.org/wiki/DSA
Acerca de RSA.
RSA, acrnimo de los apellidos de sus autores, Ron Rivest, Adi Shamir y Len Adleman, es
un algoritmo para el ciframiento de claves pblicas que fue publicado en 1977, patentado
en EE.UU. en 1983 por el Instituto Tecnolgico de Michigan (MIT). RSA es utilizado
ampliamente en todo el mundo para los protocolos destinados para el comercio electrnico.
URL: http://es.wikipedia.org/wiki/RSA
Acerca de X.509.
URL: http://es.wikipedia.org/wiki/X.509
Acerca de OpenSSL.
OpenSSL es una implementacin libre de cdigo fuente abierto, de los protocolos SSL
(Secure Sockets Layer o Nivel de Zcalo Seguro) y TLS (Transport Layer Security o
Seguridad para Nivel de Transporte). Est basado sobre el extinto proyecto SSLeay
iniciado por Eric Young y Tim Hudson.
URL: http://www.openssl.org/
Procedimientos.
Definiendo Sendmail como agente de transporte de correo predeterminado.
Lo anterior devolver una salida similar a la siguiente, donde deber elegir entre postfix y
sendmail como MTA predeterminado del sistema:
Seleccin Comando
-----------------------------------------------
1 /usr/sbin/sendmail.postfix
*+ 2 /usr/sbin/sendmail.sendmail
Defina Sendmail como agente de transporte de correo (MTA, Mail Transport Agent),
seleccionado ste
Certificado SSL/TLS.
rm -f /etc/pki/tls/certs/sendmail.pem
La creacin de la firma digital y certificado en un nico archivo con extensin *.pem
requiere utilizar una firma con algoritmo RSA de 4096 octetos (bits), estructura X.509 y sin
DES. En el siguiente ejemplo, se establece una validez por 1825 das (cinco aos) para el
certificado creado:
Es indispensable que el archivo *.pem tenga permisos de acceso de lectura y escritura slo
para root:
vi /etc/sysconfig/saslauthd
# Options sent to the saslauthd. If the MECH is other than "pam" uncomment
# the next line.
# DAEMONOPTS=--user saslauth
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 stos a travs de los mtodos PLAIN y
LOGIN.
passwd usuario
Nota.
saslpasswd2 usuario
Cabe sealar que slo algunos clientes de correo electrnico tienen de soporte para autenticar a travs de estos
mtodos.
Puede mostrarse la lista de los usuarios con contrasea asignada a travs de SASL-2 ejecutando
sasldblistusers2.
Dominios a administrar.
vi /etc/mail/local-host-names
dominio1.com
dominio2.net
dominio3.org
dominio4.com.mx
Control de acceso
vi /etc/mail/access
Este archivo debe incluir todas las direcciones IP locales del servidor las que se
devuelvan tras ejecutar ip addr show.
Puede incluir tambin la lista direcciones IP, dominios o cuentas de correo electrnico a las
que se quiera otorgar permisos de re-transmisin sin restricciones o con permiso para
enviar correo electrnico slo a cuentas locales. Puede definir tambin una lista negra de
direcciones de correo electrnico, dominios y direcciones IP a las que se desee denegar el
acceso. Considere que:
Nota.
Jams configure una segmento completo de red local con RELAY, ya que dejara de tener sentido utilizar
autenticacin a travs de SMTP y potencialmente podra permitir que los problemas de seguridad de maquinas
infectadas con virus, gusanos o troyanos, se magnifiquen, siendo que permitira el envo, sin restricciones, de
correo electrnico infectado o bien cantidades extraordinarias de spam, originadas por los equipos cuya
seguridad se haya visto comprometida.
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
#
# Direccin 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 travs del propio servidor de correo.
Connect:192.168.70.52 RELAY
#
# Direcciones IP que slo podrn 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
#
# 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
Alias de root.
Es peligroso autenticarse con la cuenta de root para revisar los mensajes de correo
electrnico originados por el sistema. Defina un alias hacia el cual se entregar todo el
correo electrnico que originalmente fue dirigido a root.
vi /etc/aliases
Defina al final del archivo la cuenta de usuario regular al que le ser entregado el correo
electrnico originalmente iba dirigido a root:
root: fulano
newaliases
confSMTP_LOGIN_MSG.
Reinicie el servicio:
Realice una conexin al puerto 25. Obtendr una salida similar a la siguiente:
$ telnet 127.0.0.1 25
220 mail.dominio.com ESMTP Sendmail ; Mon, 17 May 2004
02:22:29 -0500
quit
221 2.0.0 mail.dominio.com closing connection
Connection closed by foreign host.
$
confAUTH_OPTIONS.
vi /etc/mail/sendmail.mc
La siguiente lnea resaltada permite realizar el proceso de autenticacin a travs del puerto
25 utilizando el mtodo PLAIN o bien el mtodo LOGIN, los cuales transmiten el nombre
de usuario junto con su correspondiente contrasea en texto simple, garantizando 100% de
compatibilidad con todos los clientes de correo electrnico existentes. Sin embargo sto
tambin implica un enorme riesgo de seguridad, por lo cual se recomienda implementar
seguridad a travs 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
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
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
Localice la siguiente lnea resaltada y habilite sta eliminado el dnl y el espacio sobrante
como se muestra a continuacin:
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
Lo anterior har que sea obligatorio a utilizar SSL/TLS para todas las conexiones con
cualquier cliente de correo electrnico
TRUST_AUTH_MECH y confAUTH_MECHANISMS.
Habilite las siguientes lneas resaltadas para hacer el uso de la firma digital y certificado
creados:
DAEMON_OPTIONS.
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 # 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
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 que normalmente utilizan el
puerto 25. Localice y habilite la siguiente lnea resaltada:
dnl #
dnl # For this to work your OpenSSL certificates must be configured.
dnl #
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
dnl #
dnl # The following causes sendmail to additionally listen on the IPv6
loopback
dnl # device. Remove the loopback address restriction listen to the network.
FEATURE(`accept_unresolvable_domains').
A fin de permitir el envo local del correo electrnico para los mensajes y alertas del
sistema en un escenario sin servidores DNS, se utiliza la opcin
FEATURE(`accept_unresolvable_domains'). Debe inhabilitarse para impedir se acepte
correo de dominios inexistentes (generalmente utilizado para el envo de correo masivo no
solicitado o Spam). Inhabilite la lnea aadiendo un dnl y un espacio:
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 #
Si lo prefiere, puede descargar un archivo plantilla con todas las opciones para el archivo
/etc/mail/sendmail.mc mencionadas arriba.
wget http://www.alcancelibre.org/linux/secrets/sendmail.mc \
-O /etc/mail/sendmail.mc
Enmascaramiento.
Habilite las siguientes tres lneas resaltadas eliminando los dnl y los espacio sobrantes 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):
dnl # The following example makes mail from this host and any additional
dnl # specified domains appear to be sent from mydomain.com
dnl #
MASQUERADE_AS(`dominio1.com')dnl
dnl #
dnl # masquerade not just the headers, but the envelope as well
dnl #
FEATURE(masquerade_envelope)dnl
dnl #
dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com as
well
dnl #
FEATURE(masquerade_entire_domain)dnl
dnl #
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
Si se van a administrar mltiples dominios, aada aquellos que considere deban conservar
su propia mscara. Utilice la opcin MASQUERADE_EXCEPTION para cada uno como
se muestra en el siguiente ejemplo:
Si se desea utilizar listas negras para mitigar el correo chatarra (spam), pueden aadir la
siguiente lnea 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
tail -f /var/log/maillog
Comprobaciones.
Realice una conexin con nc (netcat) o bien con telnet, hacia al puerto 25 del anfitrin
local:
telnet 127.0.0.1 25
Ejecute EHLO usando como argumento el nombre del dominio configurado y pulse la
tecla ENTER. La salida deber devolver todas las funciones del servidor y entre stas debe
devolver una lnea que indica STARTTLS. La salida puede ser similar a la siguiente:
Ingrese EHLO con el dominio configurado. La salida deber devolver todas las funciones
del servidor y entre stas debe devolver una lnea que indica AUTH LOGIN PLAIN. La
salida despus del la informacin del certificado puede ser similar a la siguiente:
Servicio iptables.
Ejecute lo siguiente:
vi /etc/sysconfig/iptables
Aada lo siguiente:
Reinicie el servicio:
Shorewall.
vi /etc/shorewall/rules
Cyrus IMAP es una compleja pero muy robusta y escalable solucin que permite acceder
hacia enormes cantidades de correo electrnico a travs de IMAP o POP3 con mediana a
elevada carga de trabajo. Si as fuesen las circunstancias, por favor consulte el documento
titulado Configuracin de Cyrus IMAP con soporte SSL/TLS.
Lecturas posteriores.
Se recomienda consultar los documentos titulados Configuracin de Cyrus IMAP con
soporte SSL/TLS, Configuracin de Dovecot con soporte SSL/TLS, Configuracin
avanzada de Sendmail, Cmo instalar y configurar Spamassassin y Configuracin
simple para Antivirus y Antispam.