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
©
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.»
Acerca de Sendmail.
Es uno de los más populares agentes de transporte de correo electrónico (MTA o
Mail
Transport
Agent). Es un proyecto derivado
delivermail
y fue dirigido originalmente por Eric Allman a principios de la década
de 1980. Aunque por largo tiempo se le ha criticado por muchos
incidentes de seguridad, lo cierto es que éstos siempre han sido
resueltos en tiempos razonables.
URL:
http://www.sendmail.org/.
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. En la actualidad
SASL es un protocolo de 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.
Acerca de DSA.
DSA (
Digital
Signature
Algorithm o Algoritmo de Firma digital) es un algoritmo creado por el NIST (
National
Institute of
Standards and
Technology
o Instituto Nacional de Normas y Tecnología de EE.UU.), publicado el 30
de agosto de 1991, como propuesta para el proceso de firmas digitales.
Se utiliza para firmar información, más no para cifrar ésta.
URL:
http://es.wikipedia.org/wiki/DSA
Acerca de RSA.
RSA, acrónimo de los apellidos de sus autores, Ron
Rivest, Adi
Shamir y Len
Adleman,
es un algoritmo para el ciframiento de claves públicas que fue
publicado en 1977, patentado en EE.UU. en 1983 por el Instituto
Tecnológico de Michigan (
MIT).
RSA es utilizado ampliamente en todo el mundo para los protocolos destinados para el comercio electrónico.
URL:
http://es.wikipedia.org/wiki/RSA
Acerca de X.509.
X.509 es un estándar
ITU-T (estandarización de
Telecomunicaciones de la
International
Telecommunication
Union ) para infraestructura de claves públicas (
PKI o
Public
Key
Infrastructure).
Establece los estándares para certificados de claves públicas y un
algoritmo para validación de ruta de certificación. Este último se
encarga de verificar que la ruta de un certificado sea válida bajo una
infraestructura de clave pública determinada. Es decir, desde el
certificado inicial —pasando por certificados intermedios— hasta el
certificado de confianza emitido por una Autoridad Certificadora (
CA o
Certification
Authority).
URL:
http://es.wikipedia.org/wiki/X.509
Acerca de OpenSSL.
OpenSSL es una implementación libre de código fuente abierto, de los protocolos
SSL (
Secure
Sockets
Layer o Nivel de Zócalo 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/
Equipamiento lógico necesario.
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 m4 make \
cyrus-sasl cyrus-sasl-plain
|
Procedimientos.
Definiendo Sendmail como agente de transporte de correo predeterminado.
Ejecute
alternatives con la opción
--config y el valor
mta:
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 selección: 2
|
Defina
Sendmail como agente de transporte de correo (
MTA,
Mail
Transport
Agent), seleccionado éste
Si estuviera presente
postfix, desactive y detenga éste y active e inicie el servicio
sendmail:
service postfix stop
chkconfig postfix off
service sendmail start
chkconfig sendmail on
|
Certificado SSL/TLS.
Es importante generar un certificado SSL/TLS personalizado.
Elimine el certificado de prueba que está asociado al nombre de anfitrión
localhost.
rm -f /etc/pki/tls/certs/sendmail.pem
|
La creación de la firma digital y certificado —en un único archivo
con extensión *.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 días (cinco años) para el certificado creado:
openssl req -sha256 -new -x509 -nodes -newkey rsa:4096 -days 1825 \
-out /etc/pki/tls/certs/sendmail.pem \
-keyout /etc/pki/tls/certs/sendmail.pem
|
Lo anterior solicitará se ingresen varios datos:
- Código de dos letras para el país.
- Estado o provincia.
- Ciudad.
- Nombre de la empresa o razón social.
- Unidad o sección.
- Nombre del anfitrión. En el formato nombre.dominio.tld o dominio.tld. Ejemplo: alcancelibre.org, mail.alcancelibre.org, correo.alcancelibre.org. Por si acaso lo desconoce, tld corresponde a las siglas de Top Level Domain, es decir Dominio de Primer Nivel, como serían .com, .net, .org, .info, .mx, etc.
- Dirección de correo.
La salida será algo similar a lo siguiente:
Generating a 1024 bit DSA private key
writing new private key to 'smtp.key'
-----
You are about to be asked to enter information that will be
incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name
or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:MX
State or Province Name (full name) [Berkshire]:Distrito Federal
Locality Name (eg, city) [Newbury]:Mexico
Organization Name (eg, company) [My Company Ltd]:Empresa, S.A. de C.V.
Organizational Unit Name (eg, section) []:Unidad de negoico responsable
Common Name (eg, your name or your server's hostname) []:mail.dominio.com
Email Address []:webmaster@dominio.com
|
Si definió un nombre de anfitrión absoluto (ejemplo:
mail.dominio.com), el certificado sólo será válido cuando el servidor de
correo electrónico sea invocado con el nombre definido en el campo
Common Name. Es decir, sólo podrá utilizarlo cuando se defina
mail.dominio.com como servidor
SMTP/
IMAP/
POP3 con soporte
TLS desde el cliente de correo electrónico. Funcionará incorrectamente si se invoca al servidor como, por mencionar un ejemplo,
correo.dominio.com.
A fin de facilitar a los clientes de correo electrónico el poder
gestionar una futura actualización de certificado, conviene añadir una
huella distintiva indubitable (fingerprint) al certificado.
openssl x509 -subject -fingerprint -noout \
-in /etc/pki/tls/certs/sendmail.pem
|
Es indispensable que el archivo *.pem tenga permisos de acceso de lectura y escritura sólo para
root:
chmod 600 /etc/pki/tls/certs/sendmail.pem
chown root:root /etc/pki/tls/certs/sendmail.pem
|
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 gestione a través del servicio
saslauthd.
Si los usuarios se van a dar de alta siguiendo el formato
usuario@dominio.com 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:
# 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
|
Añada el servicio al arranque del sistema e inicie éste ejecutando lo siguiente:
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 través de los métodos
PLAIN y
LOGIN.
Se sugiere se asignar
/dev/null o
/sbin/nologin como intérprete de mandatos para los usuarios de correo. Ejemplo:
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:
El sistema solicitará se confirme la nueva contraseña. Prefiera
utilizar buenas contraseñas y evitará así problemas de seguridad.
Nota. |
La asignación de contraseñas para autenticar SMTP a través de métodos CRAM-MD5 y DIGEST-MD5 puede hacerse ejecutando saslpasswd2 con el nombre de usuario como argumento:
Cabe señalar que sólo algunos clientes de correo electrónico tienen de soporte para autenticar a través de estos métodos.
Puede mostrarse la lista de los usuarios con contraseña asignada a través de SASL-2 ejecutando sasldblistusers2.
|
Dominios a administrar.
Edite el archivo
/etc/mail/local-host-names:
vi /etc/mail/local-host-names
|
Establezca los dominios locales que serán administrados:
dominio1.com
dominio2.net
dominio3.org
dominio4.com.mx
|
Control de acceso
Edite el archivo
/etc/mail/access para definir las listas de control de acceso:
Este archivo debe incluir todas
las direcciones IP locales del servidor —las que se devuelvan tras ejecutar
ip addr show.
Puede incluir también la lista direcciones IP, dominios o 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 con RELAY tendrá permitido enviar correo electrónico, sin necesidad de autenticar y re-transmitir éste sin restricción alguna.
- Cualquier elemento con OK tendrá permitido enviar correo electrónico, sin necesidad de autenticar pero sólo a las cuentas locales.
- Cualquier elemento con REJECT tendrá prohibida cualquier tipo de comunicación de correo electrónico.
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
#
# 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 root.
Es peligroso autenticarse con la cuenta de
root
para revisar los mensajes de correo electrónico originados por el
sistema. Defina un alias hacia el cual se entregará todo el correo
electrónico que originalmente fue dirigido a root.
Edite el archivo
/etc/aliases:
Defina al final del archivo la cuenta de usuario regular al que le
será entregado el correo electrónico originalmente iba dirigido a root:
Ejecute
newaliases para
convertir el archivo /etc/aliases en /etc/aliases.db y verificar que la
sintaxis esté correcta o determinar si existen aliases duplicados.
Lo anterior debe devolver una salida similar a la siguiente:
/etc/aliases: 77 aliases, longest 10 bytes, 777 bytes total
|
Configuración de opciones de Sendmail.
Edite el archivo
/etc/mail/sendmail.mc.
confSMTP_LOGIN_MSG.
Esta opción permite establecer el mensaje de bienvenida al establecer
la conexión al servidor y ocultar el nombre y la versión de Sendmail
para agregar
seguridad por oscuridad.
Funciona 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 se puedan determinar las debilidades del servicio o
determinar una vulnerabilidad específica. Habilite la siguiente línea
resaltada eliminando el
dnl y el espacio sobrante:
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
|
Guarde los cambios y salga del editor.
Reinicie el servicio:
Realice una conexión 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.
Vuelva a editar el archivo
/etc/mail/sendmail.mc:
La siguiente línea
resaltada permite 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
|
Inhabilite ésta añadiendo un
dnl y un espacio como se muestra a continuación:
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 línea
resaltada y habilite ésta eliminado el
dnl y el espacio sobrante como se muestra a continuación:
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 electrónico
TRUST_AUTH_MECH y confAUTH_MECHANISMS.
El soporte de autenticación requiere habilitar las siguientes
dos líneas
resaltadas:
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-MD5 LOGIN PLAIN')dnl
dnl #
dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl # cd /etc/pki/tls/certs; make sendmail.pem
|
Elimine el soporte para GSSAPI, DIGEST-MD5 y CRAM-MD5. El primero
requiere un servidor Kerberos y para los otros el algoritmo de
ciframiento es demasiado débil para ser utilizado sin SSL/TLS y además
sólo es soportado por algunos clientes de correo electrónico.
dnl # guaranteed secure.
dnl # Please remember that saslauthd needs to be running for AUTH.
dnl #
TRUST_AUTH_MECH(`EXTERNAL LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL LOGIN PLAIN')dnl
dnl #
dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl # cd /etc/pki/tls/certs; make sendmail.pem
|
Soporte para SSL/TLS.
Habilite las siguientes líneas
resaltadas para hacer el uso de la firma digital y certificado creados:
dnl # Complete usage:
dnl # make -C /etc/pki/tls/certs usage
dnl #
define(`confCACERT_PATH',`/etc/pki/tls/certs')dnl
define(`confCACERT',`/etc/pki/tls/certs/ca-bundle.crt')dnl
define(`confSERVER_CERT',`/etc/pki/tls/certs/sendmail.pem')dnl
define(`confSERVER_KEY',`/etc/pki/tls/certs/sendmail.pem')dnl
dnl #
dnl # This allows sendmail to use a keyfile that is shared with OpenLDAP's
dnl # slapd, which requires the file to be readble by group ldap
|
DAEMON_OPTIONS.
De modo predeterminado
Sendmail sólo escucha peticiones a través de la interfaz de retorno del sistema (127.0.0.1). Localice la siguiente línea
resaltada:
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
|
Elimine el valor
Addr=127.0.0.1 y la coma sobrante:
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 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 —que normalmente utilizan el puerto 25.
Localice y habilite la siguiente línea
resaltada:
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 acceso con STARTTLS se realizará a través de los puertos 25 o 587,
sin embargo el acceso con SSL se realizará a través del puerto 465.
Localice y habilite la siguiente línea
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 envío local del correo electrónico para los
mensajes y alertas del sistema en un escenario sin servidores DNS, se
utiliza la opción
FEATURE(`accept_unresolvable_domains').
Debe inhabilitarse para impedir se acepte correo de dominios
inexistentes (generalmente utilizado para el envío de correo masivo no
solicitado o
Spam).
Inhabilite la línea añadiendo 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 #
|
Archivo plantilla de todo lo anterior.
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.
El enmascaramiento sólo es necesario en casos donde el nombre de
anfitrión del sistema es distinto al del dominio(s) administrado(s) en
el servidor.
Habilite las siguientes tres líneas
resaltadas eliminando los
dnl y los espacio sobrantes 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):
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
|
En el ejemplo anterior
dominio1.com es sólo un ejemplo hipotético. Remplace por un dominio real.
Si se van a administrar múltiples dominios, añada aquellos que considere deban conservar su propia máscara. Utilice la opción
MASQUERADE_EXCEPTION para cada uno como se muestra en el siguiente ejemplo:
dnl # specified domains appear to be sent from mydomain.com
dnl #
MASQUERADE_AS(`dominio1.com')dnl
MASQUERADE_EXCEPTION(`dominio2.net')dnl
MASQUERADE_EXCEPTION(`dominio3.org')dnl
MASQUERADE_EXCEPTION(`dominio4.com.mx')dnl
dnl #
dnl # masquerade not just the headers, but the envelope as well
dnl #
|
En el ejemplo anterior
dominio1.com,
dominio2.net,
dominio3.org y
dominio4.com.mx son sólo ejemplos hipotéticos. Remplace por dominios reales.
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)dnlFEATURE(`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
|
Iniciar, detener o reiniciar servicio.
Ejecute lo siguiente para aplicar cambios realizados a la configuración:
Ejecute lo siguiente para iniciar por primera vez el servicio:
Ejecute lo siguiente para detener el servicio:
Examine el contenido de
/var/log/maillog ejecutando
tail con la opción
-f para detectar errores en la configuración:
Comprobaciones.
Realice una conexión con
nc (netcat) o bien con
telnet, hacia al puerto 25 del anfitrión local:
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 línea que indica
STARTTLS. La salida puede ser similar a la siguiente:
220 dominio.com ESMTP Sendmail ; Sat, 19 Jun 2010 18:18:02 -0500 ehlo dominio.com 250-dominio.dom Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-STARTTLS 250-DELIVERBY 250 HELP QUIT
|
Ejecute QUIT y pulse la tecla
ENTER para salir.
Ejecute lo siguiente para verificar el soporte SSL/TLS estableciendo conexiones SSL y TLS hacia los puertos 25, 465 y 587:
openssl s_client -crlf -connect 127.0.0.1:25 -starttls smtp
openssl s_client -connect 127.0.0.1:465
openssl s_client -crlf -connect 127.0.0.1:587 -starttls smtp
|
La salida de cualquiera de los anteriores será muy extensa, mostrando la información del certificado utilizado.
Ingrese
EHLO con el dominio
configurado. La salida deberá devolver todas las funciones del servidor y
entre éstas debe devolver una línea que indica
AUTH LOGIN PLAIN. La salida después del la información del certificado puede ser similar a la siguiente:
220 dominio.com ESMTP Sendmail ; Sat, 19 Jun 2010 18:18:02 -0500 ehlo dominio.com 250-dominio.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-DELIVERBY 250 HELP QUIT
|
Realice el ejemplo de conexión para SMTP descrito en el documento titulado
Introducción a los protocolos de correo electrónico para verificar el funcionamiento del envío de correo a través de SSL/TLS.
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.
El funcionamiento normal de un servicio de correo electrónico
estándar requiere abrir los puertos 25 (smtp), 465 (smtps) y 587
(submission), todos a través de TCP.
Servicio iptables.
Ejecute 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 465 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
|
Ejecute lo siguiente para guardar los cambios:
O bien edite el archivo
/etc/sysconfig/iptables:
vi /etc/sysconfig/iptables
|
Añada lo siguiente:
-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 465 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
|
Reinicie el servicio:
Shorewall.
Edite el archivo
/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
|
Reinicie el servicio para aplicar los cambios:
service shorewall restart
|
Equipamiento lógico para servicios de IMAP y POP3.
Dovecot es una ligera, rápida y
transparente solución de fácil administración para los servicios de
IMAP y POP3. Sólo es apropiado para servidores que serán accedido
preferentemente a través de POP3, menos de 100 usuarios o bien a través
de IMAP con buzones de menos de 50 MB y baja a mediana carga de trabajo.
Si así fuesen las circunstancias, por favor consulte el documento
titulado «
Configuración de Dovecot con soporte SSL/TLS.».
Cyrus IMAP es una compleja pero
muy robusta y escalable solución que permite acceder hacia enormes
cantidades de correo electrónico a través de IMAP o POP3 con mediana a
elevada carga de trabajo. Si así fuesen las circunstancias, por favor
consulte el documento titulado «
Configuración de Cyrus IMAP con soporte SSL/TLS».
Lecturas posteriores.
Se recomienda consultar los documentos titulados «
Configuración de Cyrus IMAP con soporte SSL/TLS», «
Configuración de Dovecot con soporte SSL/TLS», «
Configuración avanzada de Sendmail», «
Cómo instalar y configurar Spamassassin» y «
Configuración simple para Antivirus y Antispam».