Tutorial de Sendmail
V0.40 - Diego Bravo Estrada
Apr 2006
Tabla de contenidos
1. Nota Introductoria .....................................................................................................2
2. Una Configuración Típica ........................................................................................2
3. Conceptos ....................................................................................................................5
4. Empezando..................................................................................................................7
5. Configuración del sistema........................................................................................9
6. Sistema de configuración M4.................................................................................12
7. El Procesamiento de los mensajes ........................................................................14
8. Administración de la cola de Sendmail...............................................................16
9. Dominios virtuales ..................................................................................................18
10. Enmascaramiento...................................................................................................20
11. Sitios con más de un servidor..............................................................................21
12. Performance/Tuning..............................................................................................25
13. Reglas y Rulesets ...................................................................................................28
A. Ejemplo: Ambiente de alta seguridad ................................................................33
B. Ejemplo de configuración de MUA .....................................................................35
C. Referencias ...............................................................................................................38
Este tutorial pretende dar una visión general del MTA Sendmail. Los ejemplos
asumen un sistema Linux RedHat, pero pueden extenderse a cualquier otro sis-
tema operativo soportado.
El lector realmente interesado en conocer este MTA debe consultar la referencia
[1], a partir de la cual se ha hecho este tutorial.
1. Nota Introductoria
Si tuviera que buscar un adjetivo para calificar a Sendmail, pensaría en "excesi-
vamente flexible": este programa intenta -y consigue- satisfacer las necesidades
de correo electrónico de una audiencia extremadamente amplia... incluso, de una
audiencia que hace años ha desaparecido.
En general, cuando un programa es "más y más flexible", los usuarios deben pa-
gar el precio de "más y más complejidad" para asimilar toda aquella flexibili-
dad. Sendmail permite configurar aspectos que normalmente yacen ocultos en el
código compilado de otros programas similares... aspectos que en la actualidad
casi nadie requiere ya.
Es por eso que usar Sendmail suele ser una experiencia desconcertante... desde el
inicio y hasta el final. Y en ese sentido tengo que admitir que este pequeño texto
también puede serlo, pese a que he procurado que no ocurra así.
Sendmail es calificado de "inseguro", y con justa razón. Tiene una larga historia
de "vulnerabilidades" que han conminado a muchos administradores a optar por
soluciones más seguras como postfix y qmail. En favor de Sendmail sólo tengo
que indicar que sus creadores han venido haciendo grandes esfuerzos para que
esto cambie, y ciertamente sus últimas versiones han consistido esencialmente en
mejoras en esa dirección.
Un último adjetivo para Sendmail podría ser "legendario", en el sentido que es
una de las utilidades más antiguas de los sistemas Unix, proporcionándose en
prácticamente todas sus variantes (y también en Linux); es (todavía) el servidor
de email más utilizado a nivel mundial, y sorprendentemente es a la vez una de
los programas menos comprendidos por los administradores debido a todo lo
antes indicado - así como a una muy deficiente documentación online!
1.1. Autoría y Copyright
documento
tiene
(c)
copyright
2006 Diego
Estrada
Este
<diegobravoestrada en hotmail>. Se otorga permiso para copiar, distribuir y/o
modificar este documento bajo los términos de la "GNU Free Documentation
License, Version 1.2", excepto en lo mencionado en el siguiente párrafo. Esta
licencia puede obtenerse en: http://www.gnu.org/licenses/fdl.txt
Si se desea crear un trabajo derivado o publicar este documento para cualquier
propósito, apreciaría que se me contacte primero a fin de tener la oportunidad de
proporcionar una versión más reciente. De no ser esto posible, la última versión
debería estar disponible en el sitio web GatoGringo.com.2
Bravo
1.2. Cómo se ha confeccionado este texto
Como de costumbre, mediante mi script "QDK" disponible en Sourceforge.3
1.3. Esta versión del tutorial
Complementa el caso de organizaciones que reparten el email en diversas "sucur-
sales".
Lima, Abril de 2006
2
2. Una Configuración Típica
Empezaremos con una descripción general de los pasos que se requieren en una
configuración típica de Sendmail.
Los lectores que no disponen de absolutamente ninguna experiencia con Send-
mail deberían pasar previamente por la sección denominada "Conceptos".
Tutorial de Sendmail
2.1. Escenario
La gran mayoría de sitios pequeños en Internet puede usar la configuración que
proporciona RedHat en forma automática. Es el caso típico de una organización
que disponde de un único servidor de correo electrónico con conexión directa a
Internet, y que posee un dominio tal como "laorganizacion.org".
Asumiremos
llama
"correo.laorganizacion.org" y no consideraremos detalles de seguridad como
firewalls y redes DMZ.
Asumiremos también que nuestros clientes son las estaciones de trabajo que se
conectan con algún cliente de correo estándar como "Outlook Express", "Mozilla",
etc.
designado
servidor
correo
que
se
el
de
2.2. Configurar el DNS
Asumiremos que las direcciones de correo de nuestros usuarios son de la forma
"
[email protected]". En ese caso, en el archivo de configuración de la
zona "laorganizacion.org" deberá inscribirse el siguiente registro MX:
@ 1D IN MX 0 correo
envía
Esto
a
"correo.laorganizacion.org". (He asumido el uso de BIND.)
los mensajes
formato
con
ese
nuestro
servidor
2.3. Configurar las opciones del puerto SMTP
En RedHat 7.x, 8, 9 (y quizá futuras versiones), Sendmail viene por defecto config-
urado para aceptar sólo conexiones locales; es decir, no recibirá ningún mensaje
que llege desde el exterior.
Esto no sirve de mucho en ambientes típicos de red, por lo que editaremos el
archivo /etc/mail/sendmail.mc y modificaremos la siguiente línea:
DAEMON_OPTIONS(‘Port=smtp,Addr=127.0.0.1, Name=MTA’)
por:
DAEMON_OPTIONS(‘Port=smtp, Name=MTA’)
Y regeneraremos la configuración:
# cd /etc/mail
# m4 sendmail.mc > sendmail.cf
Análogamente, en RedHat 7.x se modificará el archivo redhat.mc.
2.4. Configurar el archivo /etc/hosts
Asegurémonos de que existan las siguientes DOS líneas, y que tengan un con-
tenido como a este:
127.0.0.1 localhost
1.2.3.4 correo.organizacion.org correo
3
Obviamente, se deberá reemplazar "1.2.3.4" por la dirección IP asociada a la in-
terfaz de la red local.
Tutorial de Sendmail
nuestras
son
2.5. Configurar el archivo local-host-names
nuestro
Como
servidor debe asumir
los mensajes dirigidos a
"@organizacion.org". Esto se consigue escribiendo "organizacion.org" en el
archivo /etc/mail/local-host-names:
"
[email protected]",
como SUYOS todos
direcciones
organizacion.org
En muchas versiones antiguas de Sendmail, el archivo equivalente se llama
/etc/sendmail.cw.
2.6. Permitir el relay a nuestros clientes
Asumiremos que las estaciones de nuestra organizacion están contenidas
en la subnet "1.2.3.0". En ese caso, añadiremos la siguiente línea al archivo
/etc/mail/access:
1.2.3 RELAY
Luego generaremos la versión indexada:
# cd /etc/mail
# make
Nótese que en muchos sistemas distintos a RedHat habrá que usar (en vez de
"make") el comando "makemap" con las opciones correspondientes:
bash# cd /etc/mail
bash# makemap hash access < access
funcionalidad viene
Esta
configuración
proporcionada por RedHat. En otros sistemas probablemente esto se debe
configurar explícitamente como se indica más abajo.
activada normalmente
en la
2.7. Configurar servicios POP / IMAP
Estos dos servicios provienen del paquete "imap*.rpm". Se deberán activar con
el comando ntsysv o chkconfig (basta con uno de ellos.) Por ejemplo, para el
último caso:
bash# chkconfig --level 345 ipop2 on
bash# chkconfig --level 345 ipop3 on
bash# chkconfig --level 345 imap on
Luego se deberá recargar la configuración de xinetd:
# service xinetd reload
Ahora todo está listo por el lado del servidor.
4
2.8. Pruebas con el cliente "mail"
En los sistemas Linux el comando mail permite enviar y leer mensajes de correo
electrónico mediante Sendmail. Por ejemplo, para enviar un mensaje a una
cuenta exterior de test:
Tutorial de Sendmail
[diego@edithpiaf diego]$ mail
[email protected]
Subject: This is a test
There goes the challenger
.
Cc:
[diego@edithpiaf diego]$
La lectura de mensajes de correo recibidos se puede hacer también con el co-
mando "mail":
Sun Jan 27 06:24 "prueba"
[pedrito@correo pedrito]$ mail
Mail version 8.1 6/6/93.
Type ? for help.
"/var/spool/mail/pedrito": 1 message 1 new
>N 1
[email protected]
&
Message 1:
From
[email protected] Sun Jan 27 06:24 2002
Delivered-To:
[email protected]
Date: Mon, 25 Feb 2002 02:09:26 -0500
From: pepe <
[email protected]>
To:
[email protected]
Subject: prueba
Esta es una prueba
&
Durante estas operaciones conviene verificar los mensajes del log desde otra ven-
tana:
# tail -f /var/log/maillog
Véase el apéndice intitulado "Ejemplo de configuración de MUA" si requiere una
idea acerca de cómo se configura un cliente gráfico de correo electrónico.
3. Conceptos
Esta sección proporciona una serie de conceptos que se utilzarán en lo que sigue.
Comentarios de: Tutorial de sendmail (0)
No hay comentarios