2574 lines
106 KiB
XML
Executable file
2574 lines
106 KiB
XML
Executable file
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!--
|
|
The FreeBSD Documentation Project
|
|
|
|
The FreeBSD Spanish Documentation Project
|
|
%SOURCE% en_US.ISO8859-1/books/handbook/mail/chapter.xml
|
|
%SRCID% 0.0
|
|
|
|
$FreeBSD$
|
|
$FreeBSDes: doc/es_ES.ISO8859-1/books/handbook/mail/chapter.xml,v 1.2 2004/07/29 15:31:44 carvay Exp $
|
|
-->
|
|
|
|
<chapter id="mail">
|
|
<chapterinfo>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Bill</firstname>
|
|
<surname>Lloyd</surname>
|
|
<contrib>Escrito por </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Jim</firstname>
|
|
<surname>Mock</surname>
|
|
<contrib>Reescrito por </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</chapterinfo>
|
|
|
|
<title>Correo Electrónico</title>
|
|
|
|
<sect1 id="mail-synopsis">
|
|
<title>Sinopsis</title>
|
|
<indexterm><primary>email</primary></indexterm>
|
|
<indexterm><primary>correo electónico</primary></indexterm>
|
|
|
|
<para>El <quote>Correo Electrónico</quote>, o <quote>email</quote>,
|
|
es una de las formas de comunicación más usadas hoy en
|
|
dia.
|
|
Este capítulo es una introducción básica de
|
|
cómo poner en marcha un servidor de correo en FreeBSD, aunque
|
|
no es una guía completa y se han omitido muchos conceptos
|
|
importantes. Si se necesita información exhaustiva sobre el
|
|
tema puede recurrirse a los libros listados en <xref
|
|
linkend="bibliography"/>.</para>
|
|
|
|
<para>Después de leer este capítulo usted sabrá:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Qué software está involucrado en el envío y
|
|
recepción de correo electrónico.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Dónde se encuentran en FreeBSD los ficheros
|
|
básicos de configuración de
|
|
<application>sendmail</application>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Cómo bloquear a los <quote>spammers</quote> y evitar
|
|
el uso no autorizado de su servidor de correo.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Cómo instalar y configurar agentes de transferencia de
|
|
correo (MTA) en su sistema, para reemplazar
|
|
<application>sendmail</application>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Cómo resolver problemas comunes en servidores de
|
|
correo.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Cómo usar SMTP con UUCP.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Cómo usar correo con una conexión dialup.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Cómo configurar SMTP con autentificación para
|
|
más seguridad.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Antes de leer este capítulo debería usted:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Configurar apropiadamente su conexión de red
|
|
(<xref linkend="advanced-networking"/>).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Configurar apropiadamente la información de DNS de su
|
|
servidor de correo (<xref linkend="advanced-networking"/>).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Saber como instalar software adicional (<xref linkend="ports"/>).</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect1>
|
|
|
|
<sect1 id="mail-using">
|
|
<title>Utilización del correo electrónico</title>
|
|
<indexterm><primary>POP</primary></indexterm>
|
|
<indexterm><primary>IMAP</primary></indexterm>
|
|
<indexterm><primary>DNS</primary></indexterm>
|
|
|
|
<para>Existen varios elementos relacionados con el intercambio de correo
|
|
electrónico. A saber:
|
|
<link linkend="mail-mua">El agente de usuario (Mail User Agent o
|
|
MUA)</link>,
|
|
<link linkend="mail-mta">El agente de transporte de correo (Mail
|
|
Transport Agent o MTA)</link>,
|
|
<link linkend="mail-dns">El DNS</link>,
|
|
<link linkend="mail-receive">Las carpetas de correo (Mailboxes)</link>,
|
|
y por supuesto,
|
|
<link linkend="mail-host">la máquina servidora de correo (mail
|
|
host)</link>.</para>
|
|
|
|
<sect2 id="mail-mua">
|
|
<title>El Agente de Usuario</title>
|
|
|
|
<para>Entre las opciones más conocidas tenemos:
|
|
<application>mutt</application>,
|
|
<application>pine</application>, <application>elm</application>,
|
|
y <command>mail</command>, junto con programas con interfaz
|
|
gráfica del estilo de <application>balsa</application> o
|
|
<application>xfmail</application> por nombrar unos pocos.
|
|
También existen lectores de correo basados en navegadores web.
|
|
Los programas de correo basados en navegadores web
|
|
actúan de pasarela para las transacciones de correo
|
|
electrónico, entregando dichas transacciones al
|
|
<link linkend="mail-host"><quote>servidor de correo</quote></link>
|
|
local, llamando a uno de los <link linkend="mail-mta">agentes
|
|
de transporte de correo</link> disponibles en la máquina local,
|
|
o entregando dichas transacciones a un agente de transporte
|
|
remoto utilizando el protocolo <acronym>TCP</acronym>.</para>
|
|
</sect2>
|
|
|
|
<sect2 id="mail-mta">
|
|
<title>Agente de Transporte de Correo</title>
|
|
<indexterm>
|
|
<primary>transporte</primary>
|
|
<secondary><application>sendmail</application></secondary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>transporte</primary>
|
|
<secondary><application>postfix</application></secondary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>transporte</primary>
|
|
<secondary><application>qmail</application></secondary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>transporte</primary>
|
|
<secondary><application>exim</application></secondary>
|
|
</indexterm>
|
|
|
|
<para>&os; viene con <application>sendmail</application> por defecto,
|
|
pero también se soportan otros dæmones, entre los cuales
|
|
se encuentran:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><application>exim</application>;</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><application>postfix</application>;</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><application>qmail</application>.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>El agente de transporte de correo normalmente posee dos
|
|
funcionalidades, por un lado se responsabiliza de la recepción
|
|
y por otro se encarga de entregar el correo de salida.
|
|
<emphasis>No</emphasis> es responsable de la recolección
|
|
automática de correo mediante la utilización de
|
|
protocolos como <acronym>POP</acronym> o <acronym>IMAP</acronym>,
|
|
ni se utiliza para que el usuario pueda acceder a las
|
|
carpetas de correo locales. Para realizar estas otras tareas,
|
|
se necesitan <link linkend="mail-receive">dæmons</link>
|
|
adicionales.</para>
|
|
|
|
<warning>
|
|
<para> Versiones antiguas de <application>sendmail</application>
|
|
poseen varios problemas de seguridad que pueden facilitar a un
|
|
atacante el acceso local o remoto a la máquina
|
|
que ejecuta <application>sendmail</application>.
|
|
Para evitar dichos problemas de seguridad se recomienda
|
|
utilizar una versión actualizada de <application>
|
|
sendmail</application>.
|
|
Tiene más opciones a la hora de elegir <acronym>
|
|
MTA</acronym> en los <link linkend="ports">Ports de
|
|
&os;</link>.</para>
|
|
</warning>
|
|
</sect2>
|
|
|
|
<sect2 id="mail-dns">
|
|
<title>Correo electrónico y DNS</title>
|
|
|
|
<para>El Sistema de Nombres de Dominio (en inglés DNS) y su
|
|
correspondiente dæmon (llamado <command>named</command>)
|
|
constituyen una parte fundamental del procedimiento
|
|
de entrega de correo electrónico. Para entregar el correo
|
|
electrónico al destinatario adecuado el dæmon
|
|
servidor de correo busca el sitio remoto dentro del sistema de
|
|
DNS.</para>
|
|
<indexterm>
|
|
<primary>registro MX</primary>
|
|
</indexterm>
|
|
|
|
<para>El <acronym>DNS</acronym> es la entidad responsable de asociar
|
|
nombres con direcciones IP, pero además se encarga de
|
|
almacenar información específica relacionada con la
|
|
entrega de correo mediante registros de tipo MX. Los registros MX
|
|
(Mail eXchanger) especifican qué máquina o
|
|
máquinas están encargadas de recibir correo
|
|
electrónico para un determinado nombre de dominio. En caso
|
|
de no existir ningún registro MX para el dominio del
|
|
destinatario, se busca información almacenada
|
|
en registros de tipo A para enviar el correo al destino final.</para>
|
|
|
|
<para>Se pueden consultar los registros MX para cualquier dominio
|
|
utilizando el comando &man.host.1;, como se puede observar en el
|
|
siguiente ejemplo:</para>
|
|
|
|
<screen>&prompt.user; <userinput>host -t mx FreeBSD.org</userinput>
|
|
FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org</screen>
|
|
</sect2>
|
|
|
|
<sect2 id="mail-receive">
|
|
<title>Recepción de correo</title>
|
|
<indexterm>
|
|
<primary>correo</primary>
|
|
<secondary>recepción</secondary>
|
|
</indexterm>
|
|
|
|
<para>La recepción de correo electrónico para su dominio
|
|
se realiza mediante lo que se conoce como la máquina de
|
|
correo (mail host). Ésta máquina recoge todo el correo
|
|
dirigido a su dominio y lo almacena en <filename>mbox</filename>
|
|
(el método por defecto para el almacenamiento de correo) o en
|
|
formato Maildir, dependiendo de la configuración de la
|
|
máquina. Una vez que el correo ha sido almacenado
|
|
con éxito se puede leer en local utilizando aplicaciones como
|
|
&man.mail.1; o como <application>mutt</application>, o de forma remota
|
|
mediante un conjunto de protocolos tales como
|
|
<acronym>POP</acronym> o <acronym>IMAP</acronym>. Esto significa que
|
|
si usted va a leer el correo de forma local no necesita instalar
|
|
ningún servidor de <acronym>POP</acronym> o
|
|
<acronym>IMAP</acronym>.</para>
|
|
|
|
<sect3 id="pop-and-imap">
|
|
<title>Acceso a carpetas de correo remotas mediante
|
|
<acronym>POP</acronym> e <acronym>IMAP</acronym></title>
|
|
|
|
<indexterm><primary>POP</primary></indexterm>
|
|
<indexterm><primary>IMAP</primary></indexterm>
|
|
<para>Para poder acceder a carpetas de correo de forma remota se
|
|
necesita tener acceso a un servidor de <acronym>POP</acronym> o
|
|
<acronym>IMAP</acronym>. Éstos protocolos permiten a los
|
|
usuarios conectarse a sus carpetas de correo desde ubicaciones
|
|
remotas de una forma sencilla. Aunque ambos, <acronym>POP</acronym>
|
|
y <acronym>IMAP</acronym>, permiten este acceso remoto
|
|
<acronym>IMAP</acronym> ofrece algunas ventajas añadidas,
|
|
algunas de las cuales son:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>El acceso mediante <acronym>IMAP</acronym> permite almacenar
|
|
los correos en el servidor remoto sin necesidad de extraerlos
|
|
y tener que almacenarlos en local.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><acronym>IMAP</acronym> soporta actualizaciones concurrentes.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><acronym>IMAP</acronym> resulta ser extremadamente
|
|
útil bajo enlaces de baja velocidad puesto que permite
|
|
a los usuarios recuperar la estructura de los mensajes sin
|
|
necesidad de bajarse todo el contenido. Además puede
|
|
realizar tareas tales como búsquedas directas en el
|
|
servidor con el fin de minimizar la utilización
|
|
de la red.</para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para>Para instalar un servidor de <acronym>POP</acronym> o de
|
|
<acronym>IMAP</acronym> se deben dar los siguientes pasos:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Seleccionar el servidor <acronym>IMAP</acronym> o
|
|
<acronym>POP</acronym> que mejor cumpla a sus necesidades.
|
|
Los siguientes servidores <acronym>POP</acronym> e
|
|
<acronym>IMAP</acronym> son bien conocidos y son firmes
|
|
candidatos para ello:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><application>qpopper</application>;</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><application>teapop</application>;</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><application>imap-uw</application>;</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><application>courier-imap</application>;</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
</step>
|
|
|
|
<step>
|
|
<para>Instalar el dæmon <acronym>POP</acronym> o
|
|
<acronym>IMAP</acronym> de su elección desde
|
|
el árbol de <quote>ports</quote>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Modifique donde sea necesario <filename>
|
|
/etc/inetd.conf</filename> para que el servidor
|
|
<acronym>POP</acronym> o <acronym>IMAP</acronym>
|
|
se ejecute automáticamente.</para>
|
|
</step>
|
|
</procedure>
|
|
|
|
<warning>
|
|
<para> Tenga en cuenta que tanto <acronym>POP</acronym>
|
|
como <acronym>IMAP</acronym> transmiten información,
|
|
en especial el usuario y la contraseña, en texto plano.
|
|
Eso significa que si se desea seguridad en la transmisión
|
|
de la información a través de la red se deben
|
|
considerar mecanismos adicionales como por ejemplo el
|
|
encapsulado de la sesión mediante &man.ssh.1;.
|
|
El encapsulado de sesiones se explica en
|
|
<xref linkend="security-ssh-tunneling"/>.</para>
|
|
</warning>
|
|
</sect3>
|
|
|
|
<sect3 id="local">
|
|
<title>Acceso a carpetas de correo locales</title>
|
|
|
|
<para>Las carpetas de correo pueden abrirse de forma local utilizando
|
|
un agente de correo de usuario <acronym>(MUA)</acronym>
|
|
en el servidor donde reside la carpeta. Se suelen usar los
|
|
programas <application>mutt</application> or &man.mail.1;.</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2 id="mail-host">
|
|
<title>El Servidor de Correo (Mail Host)</title>
|
|
<indexterm><primary>servidor de correo</primary></indexterm>
|
|
|
|
<para>El servidor de correo es el nombre que se usa para identificar a
|
|
la máquina responsable de la entrega y
|
|
recepción de correo electrónico dentro de una
|
|
organización. Ésta máquina puede recibir correo
|
|
de varios usuarios dentro de su dominio.</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="sendmail">
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Christopher</firstname>
|
|
<surname>Shumway</surname>
|
|
<contrib>Contribuido por </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
<title>Configuración de <application>sendmail</application></title>
|
|
|
|
<indexterm>
|
|
<primary><application>sendmail</application></primary>
|
|
</indexterm>
|
|
|
|
<para>&man.sendmail.8; es el agente de transporte de correo (MTA) por
|
|
defecto de FreeBSD.
|
|
La responsabilidad de <application>sendmail</application> consiste en
|
|
aceptar correo de agentes de correo de usuario (<acronym>MUA</acronym>)
|
|
y en entregar dichos correos al agente de transporte de correo
|
|
apropiado, según se especifique en su archivo de
|
|
configuración. <application>Sendmail</application>
|
|
también acepta conexiones de red provinientes de otros agentes
|
|
de transporte y puede depositar el correo recibido en carpetas locales o
|
|
o entregarlo a otros programas.</para>
|
|
|
|
<para><application>sendmail</application> utiliza los siguientes ficheros
|
|
de configuración:</para>
|
|
|
|
<indexterm>
|
|
<primary><filename>/etc/mail/access</filename></primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary><filename>/etc/mail/aliases</filename></primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary><filename>/etc/mail/local-host-names</filename></primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary><filename>/etc/mail/mailer.conf</filename></primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary><filename>/etc/mail/mailertable</filename></primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary><filename>/etc/mail/sendmail.cf</filename></primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary><filename>/etc/mail/virtusertable</filename></primary>
|
|
</indexterm>
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Filename</entry>
|
|
<entry>Function</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>
|
|
<filename>/etc/mail/access</filename>
|
|
</entry>
|
|
<entry>Base de datos de accesos de <application>sendmail</application></entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<filename>/etc/mail/aliases</filename>
|
|
</entry>
|
|
<entry>Carpeta de alias</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<filename>/etc/mail/local-host-names</filename>
|
|
</entry>
|
|
<entry>Listados de máquinas para las que
|
|
<application>sendmail</application>acepta correo</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<filename>/etc/mail/mailer.conf</filename>
|
|
</entry>
|
|
<entry>Configuración del programa de correo</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<filename>/etc/mail/mailertable</filename>
|
|
</entry>
|
|
<entry>Tabla de entregas de correo</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<filename>/etc/mail/sendmail.cf</filename>
|
|
</entry>
|
|
<entry>Archivo de configuración principal de
|
|
<application>sendmail</application></entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<filename>/etc/mail/virtusertable</filename>
|
|
</entry>
|
|
<entry>Usuarios virtuales y tablas de dominio</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
<sect2>
|
|
<title><filename>/etc/mail/access</filename></title>
|
|
|
|
<para>La base de datos de accesos define qué máquinas o
|
|
direcciones IP pueden acceder al servidor de correo y quée clase
|
|
de acceso tienen permitido. Las máquinas se listan junto con
|
|
las opciones <option>OK</option>, <option>REJECT</option>,
|
|
<option>RELAY</option> o simplemente junto con un mensaje de error
|
|
que se entrega a la rutina de gestión de excepciones de
|
|
<application>sendmail</application>.
|
|
Las máquinas que se listan junto con la opción
|
|
<option>OK</option>, que es el valor por defecto, tienen permiso
|
|
para enviar correo a la máquina servidora siempre y cuando la
|
|
dirección de correo de destino sea la máquina servidora
|
|
de correo. Las máquinas listadas junto con la opción
|
|
<option>REJECT</option> tienen el acceso prohibido a
|
|
conexiones de correo electrónico con el servidor. Por
|
|
último las máquinas que poseen la etiqueta
|
|
<option>RELAY</option> para sus nombres tienen permitido enviar correo
|
|
para cualquier destino a través de la máquina
|
|
servidora de correo.</para>
|
|
|
|
<example>
|
|
<title>Configuración de la base de datos de acceso de <application>sendmail</application>
|
|
</title>
|
|
|
|
<programlisting>cyberspammer.com 550 We don't accept mail from spammers
|
|
FUENTE.DE.CORREO.INDISCRIMINADO@ 550 We don't accept mail from spammers
|
|
otra.fuente.de.spam REJECT
|
|
okay.cyberspammer.com OK
|
|
128.32 RELAY</programlisting>
|
|
</example>
|
|
|
|
<para>En el ejemplo se pueden observar cinco entradas. Los generadores de
|
|
correo que coinciden con la parte izquierda de la tabla se ven afectados
|
|
por la parte acción especificada en la parte derecha.
|
|
Los primeros dos ejemplos emiten un código de error para la
|
|
rutina de excepciones de <application>sendmail</application>.
|
|
El mensaje de error se transmite a la máquina remota cuando
|
|
se recibe un correo que coincide con la parte izquierda de la tabla.
|
|
La siguiente entrada rechaza correo de una determinada máquina
|
|
de internet, <hostid>otra.fuente.de.spam</hostid>.
|
|
La siguiente entrada acepta conexiones de correo de la máquina
|
|
<hostid role="fqdn">okay.cyberspammer.com</hostid>, lo cual es
|
|
más exacto que la línea de arriba de
|
|
<hostid role="domainname">cyberspammer.com</hostid>. Las coincidencias
|
|
más completas tienen precedencia sobre las menos
|
|
específicas. La última entrada permite actuar como
|
|
<quote>relay</quote> o pasarela de correo electrónico para aquellas
|
|
máquinas que posean una dirección IP que comience por
|
|
<hostid>128.32</hostid>. Éstas máquinas podrían
|
|
enviar correo destinado a otros servidores de correo utilizando el
|
|
nuestro.</para>
|
|
|
|
<para>Cuando se actualiza este fichero se debe ejecutar
|
|
<command>make</command> dentro de <filename>/etc/mail/</filename>
|
|
para que se actualice la base de datos.</para>
|
|
|
|
</sect2>
|
|
<sect2>
|
|
<title><filename>/etc/mail/aliases</filename></title>
|
|
|
|
<para>La base de datos de alias contiene una lista de directorios virtuales
|
|
que son traducidas a otros usuarios, ficheros, programas o incluso otros
|
|
alias.
|
|
A continuación se muestran unos pocos ejemplos de la
|
|
sintáxis que se puede utilizar
|
|
dentro del fichero <filename>/etc/mail/aliases</filename>:</para>
|
|
|
|
<example>
|
|
<title>Mail Aliases</title>
|
|
<programlisting>root: usuariolocal
|
|
ftp-bugs: joe,eric,paul
|
|
bit.bucket: /dev/null
|
|
procmail: "|/usr/local/bin/procmail"</programlisting>
|
|
</example>
|
|
|
|
<para>El formato del fichero es sencillo; el nombre de la carpeta de
|
|
correo que aparece a la izquierda
|
|
de los dos puntos se traduce al/los destinos de la derecha.
|
|
El primer ejemplo simplemente traduce la carpeta
|
|
<username>root</username>
|
|
a la carpeta <username>usuariolocal</username>, la cual se examina de
|
|
nuevo utilizando la misma base de datos de alias, y si no existe
|
|
ninguna otra coincidencia el mensaje se entrega
|
|
al usuario local <username>usuariolocal</username>.
|
|
En el ejemplo siguiente se muestra una lista de correo.
|
|
Todo correo que se envía a la carpeta <username>ftp-bugs</username> se traduce en un envío para
|
|
tres carpetas locales diferentes: <username>joe</username>,
|
|
<username>eric</username> y <username>paul</username>.
|
|
Es importante señalar que
|
|
también se pueden especificar carpetas remotas mediante la forma
|
|
<literal>usuario@ejemplo.com</literal>. El siguiente ejemplo muestra
|
|
la escritura del correo a un fichero, en este caso en <filename>
|
|
/dev/null</filename>. El último ejemplo muestra el
|
|
envió de correo a un programa; en este caso el mensaje de
|
|
correo se escribe en la entrada estándar del programa
|
|
<filename>/usr/local/bin/procmail</filename> utilizando una
|
|
tubería (o <quote> pipe</quote>) de &unix;.</para>
|
|
|
|
<para>Cuando se actualiza este fichero se debe ejecutar
|
|
<command>make</command> dentro de <filename>/etc/mail/</filename>
|
|
para actualizar la base de datos.</para>
|
|
</sect2>
|
|
<sect2>
|
|
<title><filename>/etc/mail/local-host-names</filename></title>
|
|
|
|
<para>Este archivo es una lista de nombres de máquinas que
|
|
&man.sendmail.8; acepta como nombres locales.
|
|
Se suele utilizar para escribir aquellos dominios o máquinas
|
|
de los cuales <application>sendmail</application> va a recibir correo.
|
|
Por ejemplo, si nuestro servidor de correo
|
|
va a aceptar correo proveniente del dominio <hostid
|
|
role="domainname">ejemplo.com</hostid> y también de la
|
|
máquina <hostid role="fqdn">mail.ejemplo.com</hostid> nuestro
|
|
<filename>local-host-names</filename>
|
|
debería ser algo así:</para>
|
|
|
|
<programlisting>ejemplo.com
|
|
mail.ejemplo.com</programlisting>
|
|
|
|
<para>Cuando se actualiza este fichero &man.sendmail.8; necesita ser
|
|
reiniciado para que tenga en cuenta los cambios.</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title><filename>/etc/mail/sendmail.cf</filename></title>
|
|
|
|
<para>Archivo de configuración principal de <application>
|
|
sendmail</application>, controla el comportamiento global de
|
|
<application>sendmail</application>, incluyendo cualquier tarea
|
|
desde la reescritura de direcciones de correo electrónico
|
|
hasta la devolución de mensajes de error a los servidores
|
|
de correo remotos. Es evidente que con un abanico tan diverso el
|
|
fichero de configuración
|
|
acaba por ser bastante complejo y sus detalles quedan fuera de los
|
|
objetivos de esta sección. Afortunadamente este
|
|
fichero raras veces necesita ser modificado, al menos en lo que
|
|
respecta a servidores de correo estándar.
|
|
</para>
|
|
|
|
<para>El fichero de configuración principal de <application>
|
|
sendmail</application> se puede construir a partir de
|
|
&man.m4.1;, es decir, macros que se utilizan para definir
|
|
características y comportamientos específicos
|
|
de <application>sendmail</application>. Se ruega al lector consultar
|
|
<filename>/usr/src/contrib/sendmail/cf/README</filename> para obtener
|
|
más detalles acerca de las distintas macros que
|
|
se pueden utilizar.</para>
|
|
|
|
<para>Cuando se realizan cambios a este fichero
|
|
<application>sendmail</application> debe ser reiniciado para que los
|
|
cambios surtan efecto.</para>
|
|
|
|
</sect2>
|
|
<sect2>
|
|
<title><filename>/etc/mail/virtusertable</filename></title>
|
|
|
|
<para>El fichero <filename>virtusertable</filename> asocia direcciones de
|
|
correo pertenecientes a dominios y carpetas virtuales con carpetas
|
|
reales. Estas carpetas pueden ser locales, remotas, alias
|
|
definidos en <filename>/etc/mail/aliases</filename> o incluso ficheros.</para>
|
|
|
|
<example>
|
|
<title>Ejemplo de asociación de correo de dominio virtual</title>
|
|
|
|
<programlisting>root@ejemplo.com root
|
|
postmaster@ejemplo.com postmaster@noc.ejemplo.net
|
|
@ejemplo.com joe</programlisting>
|
|
</example>
|
|
|
|
<para>En el ejemplo superior se observa una asociación para el
|
|
dominio <hostid role="domainname">ejemplo.com</hostid>.
|
|
Este fichero se procesa de arriba a abajo buscando la primera
|
|
coincidencia. La primera entrada asocia <literal>
|
|
root@ejemplo.com</literal> con la carpeta de correo local denominada
|
|
<username>root</username>. La siguiente entrada asocia
|
|
<literal>postmaster@ejemplo.com</literal> con la carpeta
|
|
<username>postmaster</username> situada en la máquina
|
|
<hostid role="fqdn">noc.ejemplo.net</hostid>. Por último, si
|
|
no se ha encontrado ninguna coincidencia para
|
|
<hostid role="domainname">ejemplo.com</hostid> se le asigna la
|
|
última asociación, la cual asocia cualquier mensaje
|
|
de correo proveniente de <hostid role="domainname">
|
|
ejemplo.com</hostid> con la carpeta de
|
|
correo local denominada <username>joe</username>.</para>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="mail-changingmta">
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Andrew</firstname>
|
|
<surname>Boothman</surname>
|
|
<contrib>Escrito por </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Gregory</firstname>
|
|
<surname>Neil Shapiro</surname>
|
|
<contrib>Información obtenida de correos escritos por </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
<title>Sustitución del Agente de Transferencia de Correo</title>
|
|
<indexterm>
|
|
<primary>email</primary>
|
|
<secondary>cambio de mta</secondary>
|
|
</indexterm>
|
|
|
|
<para>Como ya se ha comentado FreeBSD viene con <application>
|
|
sendmail</application> ya instalado como agente de transferencia de
|
|
correo por defecto. De esta forma <application>sendmail</application>
|
|
se encarga de gestionar el correo entrante y saliente.</para>
|
|
|
|
<para>No obstante, debido a distintas razones algunos administradores de
|
|
sistemas prefieren utilizar otro MTA.
|
|
Estas razones varían desde simplemente querer probar otros
|
|
programas de transferencia de correo, hasta la necesidad
|
|
de utilizar un determinado programa que hace uso de una función
|
|
específica de un agente determinado. Por suerte
|
|
cualesquiera que sean estas razones FreeBSD posee un sencillo
|
|
procedimiento para sustituir a
|
|
<application>sendmail</application>.</para>
|
|
|
|
<sect2>
|
|
<title>Instalación de un nuevo MTA</title>
|
|
|
|
<para>Existen una amplia gama de MTA alternativos a <application>
|
|
sendmail</application>. Un buen punto de partida es el <link
|
|
linkend="ports">Sistema de Ports de FreeBSD</link>,
|
|
donde se pueden localizar varios. Por supuesto el usuario tiene
|
|
libertad para utilizar cualquier MTA, siempre y cuando se pueda
|
|
ejecutar en FreeBSD sin problemas.</para>
|
|
|
|
<para>Lo primero es instalar el nuevo MTA. Una vez que está
|
|
instalado normalmente se tiene la oportunidad para decidir si
|
|
realmente cubre las necesidades y también se tiene la
|
|
oportunidad de configurar el nuevo software antes de sustituir a
|
|
<application>sendmail</application>. El usuario debe tener en cuenta
|
|
que el nuevo MTA puede sobreescribir algunos binarios del sistema como
|
|
por ejemplo <filename>/usr/bin/sendmail</filename>.
|
|
En cualquier caso el nuevo software de correo
|
|
suele entrar en funcionamiento con una configuración
|
|
por defecto.</para>
|
|
|
|
<para>Por favor, recuerde que se recomienda leer la documentación
|
|
del MTA seleccionado para obtener más
|
|
información.</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Desactivación de la aplicación <application>
|
|
sendmail</application></title>
|
|
|
|
<para>El procedimiento utilizado para ejecutar
|
|
<application>sendmail</application> cambió significativamente
|
|
entre las releases 4.5-RELEASE y 4.6-RELEASE.
|
|
De esta forma el procedimiento utilizado para la desactivación
|
|
hoy en día es
|
|
sutílmente distinto al utilizado en dichas distribuciones.</para>
|
|
|
|
<sect3>
|
|
<title>FreeBSD 4.5-STABLE antes de 2002/4/4 y anteriores
|
|
(Incluyendo 4.5-RELEASE y anteriores)</title>
|
|
|
|
<para>Introducir:</para>
|
|
|
|
<programlisting>sendmail_enable="NO"</programlisting>
|
|
|
|
<para>dentro de <filename>/etc/rc.conf</filename>. Esta variable
|
|
desactiva el servicio de recepción de correo de
|
|
<application>sendmail</application>,
|
|
pero salvo que se modifique (ver más adelante) el
|
|
fichero <filename>/etc/mail/mailer.conf</filename>
|
|
<application>sendmail</application> todavía será
|
|
la aplicación elegida para enviar correo
|
|
electrónico.</para>
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>FreeBSD 4.5-STABLE desde de 2002/4/4
|
|
(Incluyendo 4.6-RELEASE y posteriores)</title>
|
|
|
|
<para>Para poder desactivar completamente
|
|
<application>sendmail</application> haga lo siguiente:</para>
|
|
|
|
<programlisting>sendmail_enable="NONE"</programlisting>
|
|
|
|
<para>dentro del fichero <filename>/etc/rc.conf.</filename></para>
|
|
|
|
<warning>
|
|
<para> Se desactiva el servicio de correo de salida de
|
|
<application>sendmail</application>.
|
|
Es importanque que se reemplace con un sistema de entrega de
|
|
correo alternativo que sea totalmente funcional.
|
|
En caso contrario funciones del sistema FreeBSD tales como
|
|
&man.periodic.8; no podrán entregar sus resultados por
|
|
correo eletrónico tal y como normalmente hacen.
|
|
Varias partes del sistema FreeBSD esperan disponer de un sistema
|
|
de correo funcional compatible con
|
|
sendmail. Si las aplicaciones continúan utilizando los
|
|
binarios de <application>sendmail</application>
|
|
para realizar envíos de correo después de su
|
|
desactivación el correo podría ser almacenado en una
|
|
cola inactiva de <application>sendmail</application>, en cuyo caso
|
|
nunca se entregaría.</para>
|
|
</warning>
|
|
|
|
<para>Si sólo se quiere desactivar el servicio de correo de
|
|
entrada de <application>sendmail</application>, basta con establecer
|
|
la variable:</para>
|
|
|
|
<programlisting>sendmail_enable="NO"</programlisting>
|
|
|
|
<para>dentro de <filename>/etc/rc.conf</filename>.
|
|
En &man.rc.sendmail.8; tiene más información sobre
|
|
las opciones de arranque de <application>
|
|
sendmail</application>.</para>
|
|
</sect3>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Ejecución del nuevo MTA en el arranque</title>
|
|
|
|
<para>Existen dos métodos alternativos para ejecutar el nuevo
|
|
MTA en el arranque, dependiendo
|
|
de la versión de FreeBSD que se esté ejecutando.</para>
|
|
|
|
<sect3>
|
|
<title>FreeBSD 4.5-STABLE antes de 2002/4/11
|
|
(Incluyendo 4.5-RELEASE y anteriores)</title>
|
|
|
|
<para>Se debe añadir un script en
|
|
<filename>/usr/local/etc/rc.d/</filename> cuyo nombre termine en
|
|
<filename>.sh</filename> y que sea ejecutable por
|
|
<username>root</username>. El script debe aceptar los
|
|
parámetros <literal>start</literal> y
|
|
<literal>stop</literal>. Cuando el sistema &os; se está
|
|
inicializando, los scripts de arranque
|
|
ejecutarán el siguiente comando:</para>
|
|
|
|
<programlisting>/usr/local/etc/rc.d/supermailer.sh start</programlisting>
|
|
|
|
<para>La misma orden se puede utilizar también para ejecutar
|
|
el servidor de forma manual.
|
|
Cuando el sistema se está reiniciando los scripts del sistema
|
|
ejecutan los ficheros ubicados en
|
|
<filename>/usr/local/etc/rc.d/</filename> utilizando la opción
|
|
<literal>stop</literal>, en nuestro caso:</para>
|
|
|
|
<programlisting>/usr/local/etc/rc.d/supermailer.sh stop</programlisting>
|
|
|
|
<para>Dicho comando tambíen se puede utilizar para detener el
|
|
servidor de correo de forma manual cuando el
|
|
sistema FreeBSD se ejecuta con normalidad.</para>
|
|
|
|
</sect3>
|
|
|
|
<sect3>
|
|
<title>FreeBSD 4.5-STABLE después de 2002/4/11
|
|
(Incluyendo 4.6-RELEASE y posteriores)</title>
|
|
|
|
<para>Con las últimas versiones de FreeBSD se puede utilizar el
|
|
método anterior pero también se puede
|
|
especificar</para>
|
|
|
|
<programlisting>mta_start_script="nombre_de_fichero"</programlisting>
|
|
|
|
<para>dentro de <filename>/etc/rc.conf</filename>, donde
|
|
<replaceable>nombre_de_fichero</replaceable> es el nombre de
|
|
algún script que se ejecuta en tiempo de arranque
|
|
para inicializar el nuevo MTA.</para>
|
|
</sect3>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Sustitución de <application>sendmail</application> como el
|
|
agente de transporte de correo predeterminado.</title>
|
|
|
|
<para>El programa <application>sendmail</application> es tan
|
|
imprescindible y es utilizado por tal multitud de programas en
|
|
los sistemas &unix; que algunos programas simplemente asumen que
|
|
<application>sendmail</application> se encuentra instalado y
|
|
configurado dentro del sistema.
|
|
Por esta razón varios MTAs alternativos proporcionan su propia
|
|
implementación de la interfaz de línea de comandos que
|
|
posée <application>sendmail</application>; esto facilita que se
|
|
puedan utilizar como sustitutos de <application>sendmail</application>
|
|
sin mayores dificultades.</para>
|
|
|
|
<para>Por lo tanto si desea utilizar un agente de transporte de correo
|
|
alternativo debe asegurarse de que todo software que intente ejecutar
|
|
binario de <application>sendmail</application> estándar,
|
|
<filename>/usr/bin/sendmail</filename>, realmente ejecute el nuevo MTA
|
|
en su lugar. Por fortuna FreeBSD proporciona un sistema llamado
|
|
&man.mailwrapper.8; que realiza precisamente esta tarea.</para>
|
|
|
|
<para>Cuando <application>sendmail</application> está funcionando
|
|
se debe localizar algo como lo siguiente dentro del fichero
|
|
<filename>/etc/mail/mailer.conf</filename>:</para>
|
|
|
|
<programlisting>sendmail /usr/libexec/sendmail/sendmail
|
|
send-mail /usr/libexec/sendmail/sendmail
|
|
mailq /usr/libexec/sendmail/sendmail
|
|
newaliases /usr/libexec/sendmail/sendmail
|
|
hoststat /usr/libexec/sendmail/sendmail
|
|
purgestat /usr/libexec/sendmail/sendmail</programlisting>
|
|
|
|
<para>Esto significa que cuando cualquiera de estos comandos
|
|
(por ejemplo <filename>sendmail</filename> mísmamente)
|
|
se ejecutan el sistema ejecutará en su lugar una copia del
|
|
el sistema ejecuta en su lugar una copia del <quote>
|
|
mailwrapper</quote> denominada <filename>sendmail</filename>
|
|
que chequea el fichero <filename>mailer.conf</filename> y ejecuta
|
|
<filename>/usr/libexec/sendmail/sendmail</filename>.
|
|
Este sistema permite cambiar de una forma sencilla los binarios que
|
|
se ejecutan realmente cuando se invocan las funciones de
|
|
<filename>sendmail</filename>.</para>
|
|
|
|
<para>Si se quiere que ejecutar
|
|
<filename>/usr/local/supermailer/bin/sendmail-compat</filename>
|
|
en lugar de <application>sendmail</application> se puede cambiar el
|
|
fichero <filename>/etc/mail/mailer.conf</filename> para que contenga
|
|
lo siguiente:</para>
|
|
|
|
<programlisting>sendmail /usr/local/supermailer/bin/sendmail-compat
|
|
send-mail /usr/local/supermailer/bin/sendmail-compat
|
|
mailq /usr/local/supermailer/bin/mailq-compat
|
|
newaliases /usr/local/supermailer/bin/newaliases-compat
|
|
hoststat /usr/local/supermailer/bin/hoststat-compat
|
|
purgestat /usr/local/supermailer/bin/purgestat-compat</programlisting>
|
|
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Últimos Pasos</title>
|
|
|
|
<para>Una vez que todo estáconfigurado a su gusto
|
|
hay que matar los procesos de <application>sendmail</application>
|
|
que ya no se necesitan y ejecutar los procesos pertenecientes al
|
|
nuevo software de MTA, o utilizar la opción más
|
|
sencilla: reiniciar la máquina. Reinicar la máquina
|
|
nos brinda la oportunidad de comprobar que se ha configurado
|
|
correctamente el arranque del sistema para que ejecute de forma
|
|
automática el nuevo MTA.</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="mail-trouble">
|
|
<title>Depuración de Problemas</title>
|
|
<indexterm>
|
|
<primary>email</primary>
|
|
<secondary>Depuración de problemas</secondary>
|
|
</indexterm>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question>
|
|
<para>?Por qué tengo que utilizar el FQDN para las
|
|
máquinas de mi organización?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Probablemente se deba a que la máquina de correo se
|
|
encuentra en un dominio diferente; si por ejemplo la
|
|
máquina de correo se encuentra en <hostid
|
|
role="fqdn">foo.bar.edu</hostid>
|
|
y se desea alcanzar una máquina llamada
|
|
<hostid>mumble</hostid> en el dominio
|
|
<hostid role="domainname">bar.edu</hostid> se tiene que referir a
|
|
ella mediante un nombre de dominio completo
|
|
(<quote>fully-quailified domain name</quote> o FQDN), en éste
|
|
caso <hostid role="fqdn">mumble.bar.edu</hostid> en lugar de
|
|
referirse a ella simplemente como <hostid>mumble</hostid>.</para>
|
|
|
|
<indexterm><primary>BIND</primary></indexterm>
|
|
<para>Tradicionalmente, la referencia incompleta era posible
|
|
utilizando <quote>resolvers</quote> de BSD BIND.
|
|
No obstante la versión de <application>BIND</application>
|
|
que en la actualidad se ofrece con FreeBSD ya no permite por defecto
|
|
el uso de dichas abreviaturas salvo para aquellas máquinas
|
|
que pertenecen al dominio al que su sistema pertenezca.
|
|
Una máquina como <hostid>mumble</hostid> será buscada
|
|
como <hostid role="fqdn">mumble.foo.bar.edu</hostid> o la
|
|
búsqueda será redireccionada al servidor de dominio
|
|
raíz del DNS.</para>
|
|
|
|
<para>Esto es distinto a lo que ocurría en versiones anteriores
|
|
de BIND, donde la búsqueda se producía a través
|
|
de <hostid role="domainname">mumble.bar.edu</hostid> y de
|
|
<hostid role="domainname">mumble.edu</hostid>. Se recomienda
|
|
consultar a la RFC 1535 para conocer el motivo que se considerara
|
|
una práctica errónea o incluso un agujero de
|
|
seguridad.</para>
|
|
|
|
<para>Una buena solución a este problema puede ser
|
|
incluír la siguiente línea
|
|
|
|
<programlisting>search foo.bar.edu bar.edu</programlisting>
|
|
|
|
en lugar de
|
|
|
|
<programlisting>domain foo.bar.edu</programlisting>
|
|
|
|
dentro del fichero <filename>/etc/resolv.conf</filename>.
|
|
No obstante se debe asegurar de que el orden de
|
|
búsqueda no se expande más allá del
|
|
<quote>límite entre la administración local y la administración pública</quote>,
|
|
tal y como se le denomina en la RFC 1535.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question>
|
|
<indexterm>
|
|
<primary>MX record</primary>
|
|
</indexterm>
|
|
|
|
<para><application>sendmail</application> dice <errorname>mail
|
|
loops back to myself</errorname> (el correo vuelve a mis manos)</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Esta pregunta se responde en las FAQ de
|
|
<application>sendmail</application> de la siguiente forma:</para>
|
|
|
|
<programlisting>Estoy obteniendo los siguientes mensajes de error:
|
|
|
|
553 MX list for domain.net points back to relay.domain.net
|
|
554 <user@domain.net>... Local configuration error
|
|
|
|
¿Cómo puedo solucionar esto?
|
|
|
|
Usted ha especificado que el correo para el dominio (por ejemplo,
|
|
para el dominio dominio.net) sea reenviado a una máquina determinada
|
|
(en este caso relay.dominio.net), para lo que se utiliza un registro
|
|
de DNS de tipo MX, pero la máquina que actúa de relay no se
|
|
reconoce a sí misma como perteneciente al dominio dominio.net.
|
|
Se debe añadir dominio.net al fichero /etc/mail/local-host-names,
|
|
que recibe el nombre de /etc/sendmail.cw en versiones de sendmail previas
|
|
a la 8.10. Se puede utilizar la macro FEATURE(use_cw_file) para indicar
|
|
dónde se encuentra el fichero local-host-names; también se
|
|
puede añadir <quote>Cw dominio.net</quote> directamente
|
|
al fichero <filename>/etc/mail/sendmail.cf</filename>
|
|
</programlisting>
|
|
|
|
<para>Las FAQ de <application>sendmail</application> se pueden
|
|
encontrar en <ulink
|
|
url="http://www.sendmail.org/faq/"></ulink> y son de lectura
|
|
obligada si se quiere depurar el comportamiento y la
|
|
configuración de <application>sendmail</application>.
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question>
|
|
<indexterm><primary>PPP</primary></indexterm>
|
|
<para>?Cómo puedo ejecutar un servidor de correo
|
|
utilizando una máquina que se conecta a internet
|
|
mediante modem analógico (dial-up) ?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se quiere conectar una máquina FreeBSD dentro de una LAN a
|
|
Internet. La máquina FreeBSD será una pasarela de
|
|
correo para dicha LAN. La conexión mediante PPP no es
|
|
dedicada.</para>
|
|
|
|
<indexterm><primary>UUCP</primary></indexterm>
|
|
<indexterm>
|
|
<primary>MX record</primary>
|
|
</indexterm>
|
|
|
|
<para>Existen al menos dos formas distintas de hacerlo. Una de ellas
|
|
consiste en utilizar UUCP.</para>
|
|
|
|
<para>Otra forma consiste en hacerse con un servidor de internet a
|
|
tiempo completo para proporcionar servicios de agente de transporte
|
|
secundario para nuestro dominio. Si por ejemplo el dominio de
|
|
nuestra compañía es <hostid
|
|
role="domainname">ejemplo.com</hostid>, nuestro proveedor de acceso
|
|
a internet puede instalar lo siguiente en el DNS:</para>
|
|
|
|
<programlisting>ejemplo.com. MX 10 ejemplo.com.
|
|
MX 20 ejemplo.net.</programlisting>
|
|
|
|
<para>Nótese que el agente de correo primario es nuestro
|
|
dominio, ejemplo.com, y además se encuentra configurado
|
|
un agente de transporte secundario en la máquina
|
|
ejemplo.net. En este caso sólamente se debe especificar
|
|
una máquina como receptor final de correo
|
|
(añadiendo <literal>Cw ejemplo.com</literal>) al fichero
|
|
<filename>/etc/mail/sendmail.cf</filename> de la máquina
|
|
<hostid role="domainname">example.com</hostid>)</para>
|
|
|
|
<para>Cuando el <command>sendmail</command> que está enviando
|
|
el correo trata de entregar dicho correo primero intentará
|
|
conectarse con nosotros (<hostid
|
|
role="domainname">ejemplo.com</hostid>) utilizando el enlace de
|
|
modem. Lo más probable es que la operación termine
|
|
después de un tiempo de espera debido a que el enlace modem
|
|
esté caído.
|
|
La aplicación <application>sendmail</application>
|
|
automáticamente entregará el correo al servidor
|
|
especificado como agente de transporte de correo secundario
|
|
(segundo registro MX), es decir, entregará el correo a
|
|
nuestro proveedor de servicios de internet (<hostid
|
|
role="domainname">ejemplo.net</hostid>). El sitio MX secundario
|
|
tratará de conectarse con nuestra máquina de una forma
|
|
periódica con el objeto de entregar el correo a la
|
|
máquina que actúa como agente servidor de correo
|
|
primario (<hostid role="domainname">ejemplo.com</hostid>).</para>
|
|
|
|
<para>Puede ser de mucha utilidad un script de <quote>login</quote>
|
|
como el que se muestra a continuación:</para>
|
|
|
|
<programlisting>#!/bin/sh
|
|
# Ponme en /usr/local/bin/pppmiconexion
|
|
( sleep 60 ; /usr/sbin/sendmail -q ) &
|
|
/usr/sbin/ppp -direct pppmiconexion</programlisting>
|
|
|
|
<para>Si vamos a crear un script de <quote>login</quote> separado para
|
|
un usuario determinado se puede utilizar
|
|
<command>sendmail -qRejemplo.com</command> en lugar del script
|
|
anterior. Esto obliga a que se procesen
|
|
de forma inmediata todos los correos que se encuentren en la cola de
|
|
<hostid role="domainname">ejemplo.com</hostid>.</para>
|
|
|
|
<para>Vamos a dar una vuelta más de tuerca a la
|
|
situación:</para>
|
|
|
|
<para>Mensaje robado a la &a.isp;.</para>
|
|
|
|
<programlisting>
|
|
> Nosotros proporcionamos servicio de MX secundario a un cliente nuestro.
|
|
> El cliente se conecta a nuestro servidor varias veces al día
|
|
> de forma automática para recoger sus correos para almacenarlos en
|
|
> su servidor MX primario (nosotros no llamamos a su organización
|
|
> justo cuando nos llega un correo suyo).
|
|
> Nuestro sendmail envía la cola de correos cada 30 minutos. En
|
|
> estos momentos nuestro cliente tiene que estar al menos 30 minutos
|
|
> conectado para asegurarnos de que todo su correo ha sido enviado al
|
|
> servidor MX primario.
|
|
>
|
|
> ?Existe algún comando que permita indicar a sendmail que
|
|
> envíe todos los correos de la cola cuando quiera el cliente?
|
|
> El cliente no tiene permisos de superusuario en la máquina que
|
|
> alberga nuestro agente de transporte, por supuesto.
|
|
|
|
En la sección de <quote>privacy flags</quote> del fichero sendmail.cf
|
|
existe una definición como ésta:
|
|
Opgoaway,restrictqrun
|
|
|
|
Basta con eliminar restrictqrun para permitir que usuarios sin permisos de
|
|
superusuario arranquen el procesamiento de la cola.
|
|
Sería conveniente además que reordenaran los registros MX.
|
|
Nosotros somos el primer MX para nuestros clientes.
|
|
Además de esto hay que especificar:
|
|
|
|
# Si somos el mejor MX para una determinada máquina, intenta
|
|
# utilizarnos directamente en vez de generar un error de
|
|
# configuración local.
|
|
OwTrue
|
|
|
|
en el archivo de configuración de <application>sendmail</application>.
|
|
Mediante la configuración anterior,
|
|
una organización remota entregará sus correos directamente a
|
|
usted, sin necesidad de intentar conectarse primero a través de
|
|
la conexión del cliente. La etiqueta "OwTrue" se necesita para evitar
|
|
que <application>sendmail</application> genere un mensaje de error.
|
|
A continuación ustedes se encargan de entregar el
|
|
correo a su(s) respectivo(s) cliente(s) tal como vienen haciendo.
|
|
|
|
Esta configuración sólo funciona para
|
|
<quote>máquinas individuales</quote>,
|
|
de tal forma que se necesita que el cliente especifique su servidor de correo
|
|
mediante entradas de tipo A en el DNS. En concreto se necesita una entrada de
|
|
tipo A en el DNS para el dominio del cliente (<quote>cliente.com</quote>).
|
|
</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question>
|
|
<para>?Por qué me siguen saliendo mensajes de error
|
|
del tipo <errorname>Relaying Denied</errorname> cuando se trata
|
|
de enviar correo proveniente de otras máquinas?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>En las instalaciones del sistema FreeBSD por defecto
|
|
<application>sendmail</application> se configura para enviar
|
|
correo sólamente desde la máquina en la cual
|
|
se está ejecutando. Por ejemplo si un servidor
|
|
<acronym>POP</acronym> está disponible los usuarios
|
|
serán capaces de consultar su correo desde la universidad,
|
|
el trabajo u otras localizaciones remotas, pero dichos usuarios
|
|
podrán enviar correo desde dichas ubicaciones.
|
|
Es habitual que unos instantes después del envío
|
|
del correo dichos usuarios reciban un mensaje proveniente del
|
|
<application>MAILER-DAEMON</application> con un error como
|
|
<errorname>5.7 Relaying Denied</errorname>.</para>
|
|
|
|
<para>Existen varias formas de solventar este problema. La
|
|
más sencilla consiste en escribir la dirección
|
|
IP de su proveedor de servicios dentro del fichero
|
|
<filename>/etc/mail/relay-domains</filename>. Una forma
|
|
rápida de hacerlo sería:
|
|
</para>
|
|
|
|
<screen>&prompt.root; <userinput>echo "un.isp.ficticio.com" > /etc/mail/relay-domains</userinput></screen>
|
|
|
|
<para>Después de crear o editar dicho fichero se debe
|
|
reiniciar <application>sendmail</application>. Esto funciona
|
|
perfectamente si usted es el administrador del servidor y no
|
|
desea enviar correo localmente o si prefiere utilizar un cliente
|
|
de correo o cualquier otro sistema en otra máquina distinta
|
|
a la que alberga el servidor de correo. Es muy útil sobre
|
|
todo cuando sólamente se tienen una o dos direcciones de
|
|
correo eletrónico. Si hay en liza un gran número de
|
|
direcciones de correo, edite el fichero anterior con su editor de
|
|
texto favorito y añada uno a uno los correspondientes
|
|
dominios.</para>
|
|
|
|
<programlisting>un.isp.ficticio.com
|
|
otro.isp.ficticio.net
|
|
y.otro.isp.ficticio.org
|
|
www.ejemplo.org</programlisting>
|
|
|
|
<para>Ahora, cualquier correo enviado a través de su sistema
|
|
por cualquier máquina que se encuentre en este fichero
|
|
(siempre y cuando el usuario tenga una cuenta en nuestro sistema)
|
|
podrá ser enviado con éxito.
|
|
Es una manera elegante de permitir a los usuarios enviar
|
|
correo eletrónico desde nuestro servidor de correo sin
|
|
permitir al resto del mundo que haga lo mismo (lo que se conoce
|
|
como SPAM).</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</sect1>
|
|
|
|
<sect1 id="mail-advanced">
|
|
<title>Conceptos Avanzados</title>
|
|
|
|
<para>La siguiente sección trata conceptos más
|
|
específicos relacionados con la configuración del correo
|
|
y la implantación del servicio de correo en una
|
|
organización.</para>
|
|
|
|
<sect2 id="mail-config">
|
|
<title>Configuración Básica</title>
|
|
<indexterm>
|
|
<primary>email</primary>
|
|
<secondary>configuration</secondary>
|
|
</indexterm>
|
|
|
|
<para>Por defecto debemos ser capaces de enviar correo a máquinas
|
|
externas, siempre y cuando tengamos nuestro <filename>
|
|
/etc/resolv.conf</filename> bien configurado o ejecutemos nuestro
|
|
propio servidor de nombres. Si queremos que el correo para nuestra
|
|
máquina se nos entregue en nuestra propia máquina,
|
|
es decir, a nuestro propio <application>sendmail</application>,
|
|
en lugar de tener que ir a recogerlo al servidor de correo de
|
|
nuestra organización, podemos usar dos métodos:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Ejecutar nuestro propio servidor de nombres y comprar nuestro
|
|
propio dominio. Por ejemplo <hostid
|
|
role="domainname">FreeBSD.org</hostid></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Conseguir la entrega de correo directa hacia nuestra
|
|
máquina. Esto se logra entregando el correo a la
|
|
dirección IP que se asocia al nombre de DNS de nuestra
|
|
máquina. Por ejemplo <hostid
|
|
role="fqdn">ejemplo.FreeBSD.org</hostid>.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<indexterm><primary>SMTP</primary></indexterm>
|
|
<para>Independientemente de la opción elegida para tener entrega
|
|
directa en nuestra máquina debemos poseer una dirección
|
|
IP estática (a diferencia de las direcciones dinámicas,
|
|
que son utilizadas en configuraciones donde se utiliza el protocolo
|
|
PPP). Si nos encontramos detrás de un cortafuegos se debe
|
|
permitir el tráfico SMTP (puerto 25) hacia nuestra
|
|
máquina. Si además queremos recibir correo directamente
|
|
en nuestra máquina se deben cumplir los siguientes
|
|
requisitos:</para>
|
|
|
|
<itemizedlist>
|
|
<indexterm><primary>MX record</primary></indexterm>
|
|
<listitem>
|
|
<para>Asegurar que el registro MX de menor numeración de
|
|
nuestro DNS apunta a la dirección IP de nuestra
|
|
máquina.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Asegurar que no existe ninguna entrada MX en nuestro DNS para
|
|
nuestra máquina. Es decir, mientras que el registro MX del
|
|
punto anterior hace referencia al dominio administrativo que
|
|
gestionamos con nuestro servidor de nombres, en este apartado se
|
|
quiere destacar que no debe existir ningún registro MX
|
|
específico para el nombre concreto de nuestra
|
|
máquina.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Cumpliendo las dos puntualizaciones anteriores podemos recibir
|
|
correo electrónico mediante entrega directa en nuestra
|
|
máquina.</para>
|
|
|
|
<para>Por ejemplo:</para>
|
|
|
|
<screen>&prompt.root; <userinput>hostname</userinput>
|
|
ejemplo.FreeBSD.org
|
|
&prompt.root; <userinput>host ejemplo.FreeBSD.org</userinput>
|
|
ejemplo.FreeBSD.org has address 204.216.27.XX</screen>
|
|
|
|
<para>Si se observa esta configuración la entrega directa de
|
|
correo para <email>su_login@ejemplo.FreeBSD.org</email> debería
|
|
funcionar sin problemas (suponiendo que <application>
|
|
sendmail</application> se está ejecutando correctamente en
|
|
<hostid role="fqdn">ejemplo.FreeBSD.org</hostid>).</para>
|
|
|
|
<para>Si en lugar de lo anterior ve algo como esto:</para>
|
|
|
|
<screen>&prompt.root; <userinput>host ejemplo.FreeBSD.org</userinput>
|
|
ejemplo.FreeBSD.org has address 204.216.27.XX
|
|
ejemplo.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org</screen>
|
|
|
|
<para>Todos los correos enviados a nuestro host (<hostid
|
|
role="fqdn">ejemplo.FreeBSD.org</hostid>) serán recogidos por
|
|
<hostid>hub</hostid> bajo el mismo nombre de usuario en lugar de ser
|
|
enviados directamente a nuestra máquina.</para>
|
|
|
|
<para>La información anterior se gestiona utilizando el servidor
|
|
de DNS. El registro de DNS que transporta la información
|
|
de encaminamiento de correo eletrónico es el
|
|
registro <emphasis>M</emphasis>ail e<emphasis>X</emphasis>change.
|
|
Si no existe ningún registro MX el correo se entregará
|
|
a la dirección IP que se obtenga de resolver el nombre
|
|
de dominio que se encuentre a continuación del nombre de
|
|
usuario en la dirección de correo de destino (esto es,
|
|
(después de la @).</para>
|
|
|
|
<para>En un cierto momento la entrada MX para <hostid
|
|
role="fqdn">freefall.FreeBSD.org</hostid> tenía este
|
|
aspecto:</para>
|
|
|
|
<programlisting>freefall MX 30 mail.crl.net
|
|
freefall MX 40 agora.rdrop.com
|
|
freefall MX 10 freefall.FreeBSD.org
|
|
freefall MX 20 who.cdrom.com</programlisting>
|
|
|
|
<para>Como se puede observar, <hostid>freefall</hostid> tenía
|
|
varias entradas MX. El número de MX más bajo es la
|
|
máquina que recibe correo directamente si se encuentra
|
|
disponible; si dicha máquina no está accesible por
|
|
algún motivo las otras máquinas (llamadas también
|
|
<quote>MXs de backup</quote>) aceptarán los mensajes
|
|
temporalmente, y los transmitirán de nuevo cuando alguna
|
|
máquina perteneciente a alguna entrada MX de numeración
|
|
más baja se encuentre disponible y el proceso se
|
|
repetirá hasta que se alcance la máquina que tenga
|
|
el registro MX más bajo.</para>
|
|
|
|
<para>Las organizaciones donde residen los servidores (MX) de backup
|
|
deberían poseer acceso a internet de una forma independiente
|
|
para minimizar el riesgo de pérdida de conectividad. Nuestro
|
|
ISP o cualquier otra organización independiente debería
|
|
poder proporcionarnos este servicio sin problemas.</para>
|
|
</sect2>
|
|
|
|
<sect2 id="mail-domain">
|
|
<title>Correo para Nuestro Dominio</title>
|
|
|
|
<para>Para establecer un <quote>mailhost</quote> (servidor de correo)
|
|
en nuestra organización debemos ser capaces de redirigir el
|
|
correo destinado a cualquier máquina de nuestra
|
|
organización hacia nuestro servidor de correo.
|
|
Básicamente queremos <quote>reclamar</quote> como nuestro
|
|
cualquier correo destinado a cualquier máquina de nuestro
|
|
dominio (en este caso <hostid
|
|
role="fqdn">*.FreeBSD.org</hostid>) y desviarlo a nuestro servidor
|
|
de tal forma que los usuario lean su correo
|
|
utilizando nuestra máquina servidora.</para>
|
|
|
|
<indexterm><primary>DNS</primary></indexterm>
|
|
<para>Para hacer las cosas lo más sencillas posible se debe crear
|
|
una cuenta de usuario (con el mismo <emphasis>
|
|
nombre de usuario</emphasis>) tanto en el servidor de correo como en
|
|
la máquina del usuario o destinatario final del correo.
|
|
&man.adduser.8; puede usarse para ello.</para>
|
|
|
|
<para>El servidor de correo debe funcionar como el agente de transporte
|
|
predeterminado para todas las máquinas de nuestra
|
|
organización. Esto se realiza mediante la siguiente
|
|
configuración del DNS:</para>
|
|
|
|
<programlisting>ejemplo.FreeBSD.org A 204.216.27.XX ; Workstation
|
|
MX 10 hub.FreeBSD.org ; Mailhost</programlisting>
|
|
|
|
<para>Esta configuración redirigirá el correo para
|
|
cualquier estación de trabajo hacia nuestro servidor de correo
|
|
sin que tengan importancia las direcciones IP asignadas mediante
|
|
el registro de tipo A. Recordemos que el correo siempre
|
|
se encamina utilizando primero los registros de tipo MX.</para>
|
|
|
|
<para>Normalmente no podremos realizar esta configuración salvo
|
|
que estemos ejecutando nuestro propio servidor de DNS
|
|
para nuestro dominio. Si no es el caso y no es posible ejecutar
|
|
nuestro propio servidor de DNS debemos comunicarnos con nuestro
|
|
proveedor de servicios o con quien pueda proporcionarnos servicio de
|
|
DNS y solicitarle una modificación como la anterior.</para>
|
|
|
|
<para>Si además ofrecemos servicios de alojamiento virtual de
|
|
correo la siguiente información puede resultar útil.
|
|
Asumiremos que tenemos un cliente con su propio dominio, por ejemplo
|
|
<hostid role="domainname">cliente1.org</hostid> y queremos que todo el
|
|
correo enviado a <hostid
|
|
role="domainname">cliente1.org</hostid> sea redirigido hasta nuestro
|
|
servidor de correo, <hostid
|
|
role="fqdn">mail.nuestroservidor.com</hostid>. La entrada necesaria
|
|
en el DNS debería ser la siguiente:</para>
|
|
|
|
<programlisting>cliente1.org MX 10 mail.nuestroservidor.com</programlisting>
|
|
|
|
<para>No necesitamos <emphasis>ningún</emphasis> registro de tipo
|
|
A para <hostid
|
|
role="domainname">cliente1.org</hostid> si sólamente queremos
|
|
gestionar el correo para ese dominio.
|
|
</para>
|
|
|
|
<note>
|
|
<para>Tenga en cuenta que un ping a <hostid
|
|
role="domainname">cliente1.org</hostid> no funcionará a menos
|
|
que exista un registro de tipo A para dicha máquina.
|
|
</para>
|
|
</note>
|
|
|
|
<para>La última cosa que debemos realizar en nuestro servidor de
|
|
correo es comunicar a <application>sendmail</application> para
|
|
qué dominios y/o máquinas debe aceptar correo. Existen
|
|
varias formas en las que se puede realizar esta tarea.
|
|
Cualquiera de las siguiente funcionará:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Añadir las máquinas deseadas al fichero
|
|
<filename>/etc/mail/local-host-names</filename> si se está
|
|
utlizando la macro
|
|
<literal>FEATURE(use_cw_file)</literal>. Si se está
|
|
utilizando una versión de <application>
|
|
sendmail</application> anterior a la 8.10 el fichero que se debe
|
|
utilizar es <filename>/etc/sendmail.cw</filename>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Añadir la línea <literal>
|
|
Cwsu.servidor.com</literal> al fichero
|
|
<filename>/etc/sendmail.cf</filename> o
|
|
<filename>/etc/mail/sendmail.cf</filename> si se está
|
|
utilizando una versión de <application>
|
|
sendmail</application> posterior a la versión 8.10.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="SMTP-UUCP">
|
|
<title>SMTP con UUCP</title>
|
|
|
|
<para>La configuración de <application>sendmail</application> que
|
|
se proporciona con la distribución de FreeBSD está
|
|
diseñada para organizaciones que se conectan directamente a
|
|
internet. Las organizaciones que deseén enviar y recibir
|
|
sus correos utilizando UUCP deben instalar otro fichero de
|
|
configuración para <application>
|
|
sendmail</application>.</para>
|
|
|
|
<para>El ajuste de forma manual del archivo <filename>
|
|
/etc/mail/sendmail.cf</filename> es un tema para expertos.
|
|
La versión 8 de <application>sendmail</application> genera
|
|
ficheros de configuración mediante el preprocesador
|
|
&man.m4.1;, gracias al que las opciones de configuración se
|
|
pueden escribir utilizando un nivel de abstracción mayor.
|
|
Los archivos de configuración de &man.m4.1; se pueden encontrar
|
|
en <filename>/usr/src/usr.sbin/sendmail/cf</filename>.</para>
|
|
|
|
<para>Si no se instaló el sistema base con todas las fuentes el
|
|
conjunto de ficheros de configuración de <application>
|
|
sendmail</application> se puede obtener a partir de un paquete de
|
|
fuentes determinado. Suponiendo que tengamos el CDROM con el
|
|
código fuente de FreeBSD montado se puede ejecutar:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /cdrom/src</userinput>
|
|
&prompt.root; <userinput>cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmail</userinput></screen>
|
|
|
|
<para>Este comando extrae sólamente unos pocos cientos de
|
|
kilobytes. El fichero <filename>README</filename> que hay en
|
|
el directorio <filename>cf</filename> puede servirle como
|
|
una introducción básica a la configuración
|
|
mediante &man.m4.1;.</para>
|
|
|
|
<para>La mejor forma de soportar la entrega de correo mediante UUCP es
|
|
utilizando la característica <literal>mailertable</literal>.
|
|
Esta característica crea una base de datos que
|
|
<application>sendmail</application> utiliza para tomar decisiones de
|
|
encaminamiento.</para>
|
|
|
|
<para>En primer lugar creamon el fichero <filename>.mc</filename>.
|
|
El directorio <filename>/usr/src/usr.sbin/sendmail/cf/cf</filename>
|
|
alberga varios ejemplos del mismo. Suponiendo que nuestro fichero
|
|
configuración se llama
|
|
<filename>foo.mc</filename> para convertir dicho archivo en un fichero
|
|
<filename>sendmail.cf</filename> válido basta con ejecutar lo
|
|
siguiente:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail/cf/cf</userinput>
|
|
&prompt.root; <userinput>make foo.cf</userinput>
|
|
&prompt.root; <userinput>cp foo.cf /etc/mail/sendmail.cf</userinput></screen>
|
|
|
|
<para>Un fichero <filename>.mc</filename> suele tener este aspecto:</para>
|
|
|
|
<programlisting>VERSIONID(`<replaceable>Su número de versión</replaceable>') OSTYPE(bsd4.4)
|
|
|
|
FEATURE(accept_unresolvable_domains)
|
|
FEATURE(nocanonify)
|
|
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
|
|
|
|
define(`UUCP_RELAY', <replaceable>su.relay.uucp</replaceable>)
|
|
define(`UUCP_MAX_SIZE', 200000)
|
|
define(`confDONT_PROBE_INTERFACES')
|
|
|
|
MAILER(local)
|
|
MAILER(smtp)
|
|
MAILER(uucp)
|
|
|
|
Cw <replaceable>alias.de.su.servidor</replaceable>
|
|
Cw <replaceable>nombredesunodouucp.UUCP</replaceable></programlisting>
|
|
|
|
<para>Las líneas que contienen
|
|
<literal>accept_unresolvable_domains</literal>,
|
|
<literal>nocanonify</literal>, y
|
|
<literal>confDONT_PROBE_INTERFACES</literal> prohíben la
|
|
utilización del DNS durante la entrega de correo.
|
|
La cláusula <literal>UUCP_RELAY</literal> es necesaria
|
|
para soportar entrega mediante UUCP. Lo único que hay que hacer
|
|
es escribir un nombre de máquina en ese punto.
|
|
Dicha máquina debe ser capaz de gestionar las direcciones del
|
|
pseudo-dominio .UUCP; en la mayoría de los casos se escribe en
|
|
este punto el nombre de la máquina perteneciente al proveedor de
|
|
servicios que hace de relay.</para>
|
|
|
|
<para>Una vez que tenemos esto configurado se necesita un fichero
|
|
<filename>/etc/mail/mailertable</filename>. Si solamente tenemos un
|
|
enlace con el exterior, que usamos para todos nuestro correos,
|
|
basta una configuración como la que se muestra a
|
|
continuación:</para>
|
|
|
|
<programlisting>#
|
|
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
|
|
. uucp-dom:<replaceable>su.relay.uucp</replaceable></programlisting>
|
|
|
|
<para>Un ejemplo más complejo puede parecerse al siguiente:</para>
|
|
|
|
<programlisting>#
|
|
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
|
|
#
|
|
horus.interface-business.de uucp-dom:horus
|
|
.interface-business.de uucp-dom:if-bus
|
|
interface-business.de uucp-dom:if-bus
|
|
.heep.sax.de smtp8:%1
|
|
horus.UUCP uucp-dom:horus
|
|
if-bus.UUCP uucp-dom:if-bus
|
|
. uucp-dom:</programlisting>
|
|
|
|
|
|
<para>Las primeras tres líneas se encargan de manejar casos
|
|
especiales en los que el correo dirigido directamente al dominio no se
|
|
envía a la ruta por defecto sino a algún vecino UUCP para
|
|
acortar el número de saltos involucrados en la entrega de dichos
|
|
correos.
|
|
La siguiente línea gestiona el correo para el dominio ethernet
|
|
local, el cual puede ser entregado utilizando SMTP. Finalmente los
|
|
vecinos UUCP se mencionan en la notación de pseudo-dominio
|
|
.UUCP para permitir que un
|
|
<literal><replaceable>vecino UUCP receptor</replaceable></literal>
|
|
de correo pueda sobreescribir las reglas por defecto. La última
|
|
línea siempre es un punto; se asocia con cualquier otra cosa que
|
|
no ha sido tratada en reglas anteriores y donde se realiza entrega UUCP
|
|
a un vecino UUCP que sirve como pasarela de correo universal para todo
|
|
el mundo. Todos los nombres de máquinas bajo la clave
|
|
<literal>uucp-dom:</literal> deben ser vecinos UUCP válidos, lo
|
|
cual se puede verificar utilizando el comando <literal>
|
|
uuname</literal>.</para>
|
|
|
|
<para>Recuerde que este fichero debe convertirse en una base de datos DBM
|
|
antes de que usarse. El comando que se utiliza para realizar esta tarea
|
|
se suele especificar como un comentario al principio del fichero
|
|
<filename>mailertable</filename>. Cada vez que se modifique el fichero
|
|
<filename>mailertable</filename> se debe ejecutar dicho comando.</para>
|
|
|
|
<para>Un consejo final: si dudamos sobre una determinada ruta de
|
|
encaminamiento de correo se puede ejecutar <application>
|
|
sendmail</application> con el parámetro <option>-bt</option>.
|
|
Este parámetro ejecuta <application>sendmail</application>
|
|
en <emphasis>modo prueba de direcciones</emphasis>;
|
|
simplemente basta con escribir <literal>3,0</literal> seguido por la
|
|
dirección de correo de la que queremos comprobar su correcto
|
|
encaminamiento. La última línea nos dice el agente de
|
|
correo interno que se utiliza, la máquina de destino con que el
|
|
agente será invocado y la dirección (posiblemente
|
|
traducida) de correo. Se puede abandonar este modo de funcionamiento
|
|
escribiendo <keycombo action="simul"><keycap>Ctrl</keycap><keycap>D</keycap></keycombo>.</para>
|
|
|
|
<screen>&prompt.user; <userinput>sendmail -bt</userinput>
|
|
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
|
|
Enter <ruleset> <address>
|
|
<prompt>></prompt> <userinput>3,0 prueba@ejemplo.com</userinput>
|
|
canonify input: foo @ example . com
|
|
...
|
|
parse returns: $# uucp-dom $@ <replaceable>su.relay.uucp</replaceable> $: prueba < @ ejemplo . com . >
|
|
<prompt>></prompt> <userinput>^D</userinput></screen>
|
|
</sect1>
|
|
|
|
<sect1 id="outgoing-only">
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Bill</firstname>
|
|
<surname>Moran</surname>
|
|
<contrib>Escrito por </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
|
|
<title>Configuración para sólamente enviar correo</title>
|
|
|
|
<para>Existen multitud de casos en los que puede bastarnos con enviar
|
|
nuestro correo a través de una pasarela o relay. He aquí
|
|
algunos de ellos:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Nuestra computadora es una máquina de escritorio, pero
|
|
queremos ser capaces de utilizar programas como &man.send-pr.1;.
|
|
Para ello se debería utilizar el relay de nuestro ISP.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Nuestra computadora es un servidor que no gestiona correo de
|
|
forma local, si no que necesita pasar todos los correos recibidos
|
|
una pasarela que se encarga de su procesamiento y entrega
|
|
final.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Casi cualquier <acronym>MTA</acronym> es capaz de actuar como
|
|
pasarela o relay. Por desgracia configurar un MTA para que sólo
|
|
gestione correo saliente puede ser muy complicado. Programas del estilo
|
|
de <application>sendmail</application> y <application>
|
|
postfix</application> son demasiado pesados para realizar
|
|
sólamente esta tarea.</para>
|
|
|
|
<para>Si además estamos utilizando un servicio de acceso a internet
|
|
típico nuestro contrato puede prohibir explícitamente
|
|
la ejecución de un servidor de correo (o los puertos pueden estar
|
|
filtrados).</para>
|
|
|
|
<para>La forma más sencilla de utilizar un servicio de pasarela es
|
|
mediante la instalación del port
|
|
<filename role="package">mail/ssmtp</filename>. Basta con ejecutar el
|
|
siguiente comando como <username>root</username>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/ports/mail/ssmtp</userinput>
|
|
&prompt.root; <userinput>make install replace clean</userinput></screen>
|
|
|
|
<para>Una vez que ha sido instalado <filename
|
|
role="package">mail/ssmtp</filename> podemos configurarlo
|
|
mediante un fichero de sólo cuatro líneas ubicado en
|
|
<filename>/usr/local/etc/ssmtp/ssmtp.conf</filename>:</para>
|
|
|
|
<programlisting>root=sudireccionrealdecorreo@ejemplo.com
|
|
mailhub=mail.ejemplo.com
|
|
rewriteDomain=ejemplo.com
|
|
hostname=_HOSTNAME_</programlisting>
|
|
|
|
<para>Debemos asegurarnos de que se utiliza una dirección de correo
|
|
real para <username>root</username>. Se debe introducir nuestra
|
|
pasarela de correo en lugar de <hostid role="fqdn">
|
|
mail.ejemplo.com</hostid> (algunos ISP llaman a la pasarela
|
|
<quote>servidor de correo saliente</quote> o simplemente
|
|
<quote>servidor SMTP</quote>).</para>
|
|
|
|
<para>Debemos asegurarnos de que se desactiva
|
|
<application>sendmail</application> mediante
|
|
<literal>sendmail_enable="NONE"</literal>
|
|
en <filename>/etc/rc.conf</filename>.</para>
|
|
|
|
<para><filename role="package">mail/ssmtp</filename> acepta algunas otras
|
|
opciones. Consulte el fichero de ejemplo que encontrará en
|
|
<filename>/usr/local/etc/ssmtp</filename>; consulte también
|
|
la página de manual de <application>ssmtp</application>,
|
|
en la que hay más ejemplos e información al respecto.
|
|
</para>
|
|
|
|
<para>Ejecutar <application>ssmtp</application> de esta forma permite que
|
|
cualquier software de nuestra computadora que necesite enviar correo
|
|
funcione sin problemas y a la vez poder cumplir con las normas
|
|
estipuladas en el contrato con nuestro ISP. Al mismo tiempo evitamos el
|
|
uso de nuestro servidor de correo por parte de <quote>
|
|
spammers</quote>.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="SMTP-dialup">
|
|
<title>Utilización del correo con una conexión mediante módem analógico (dial-up)</title>
|
|
|
|
<para>Si se dispone de una dirección IP privada no es necesario
|
|
realizar ningún ajuste a partir de la configuración por
|
|
defecto. Basta con asignar como nombre de nuestra máquina el
|
|
nombre que tenemos registrado en el DNS y <application>
|
|
sendmail</application> se encargará del resto.</para>
|
|
|
|
<para>Por otra parte si utilizamos una conexión temporal a internet
|
|
mediante PPP y se nos asigna una dirección IP
|
|
de forma dinámica, lo más normal es tener nuestras
|
|
carpetas de correo alojadas en el servidor de correo de
|
|
nuestro proveedor de servicios. Supongamos que el dominio de nuestro
|
|
ISP es <hostid
|
|
role="domainname">ejemplo.net</hostid> y que nuestro nombre de usuario
|
|
es <username>usuario</username>; además hemos llamado a nuestra
|
|
<username>user</username>, además, hemos llamado a nuestra
|
|
máquina <hostid
|
|
role="fqdn">bsd.home</hostid>, y nuestro ISP nos ha comunicado que
|
|
debemos utilizar como pasarela la máquina <hostid
|
|
role="fqdn">relay.ejemplo.net</hostid>.</para>
|
|
|
|
<para>Para recuperar correo de nuestra carpeta de correo se debe instalar
|
|
un agente de recuperación automática de correo.
|
|
<application>fetchmail</application> es una buena elección puesto
|
|
que permite utilizar varios protocolos. Este programa está
|
|
disponible como un paquete y también desde la colección de
|
|
ports (<filename
|
|
role="package">mail/fetchmail</filename>). Normalmente nuestro
|
|
<acronym>ISP</acronym> proporciona <acronym>POP</acronym>
|
|
<acronym>POP</acronym>. Si utilizamos <acronym>ppp</acronym> a nivel de
|
|
usuario se puede recuperar automáticamente el correo cuando se
|
|
establece la conexión <acronym>ppp</acronym> utilizando
|
|
el fichero <filename>/etc/ppp/ppp.linkup</filename>:</para>
|
|
|
|
<programlisting>MYADDR:
|
|
!bg su user -c fetchmail</programlisting>
|
|
|
|
<para>Si utilizamos <application>sendmail</application> (como se muestra
|
|
más adelante) para entregar correo a cuentas remotas
|
|
probablemente queramos que <application>sendmail</application>
|
|
procese nuestras colas de correo tan pronto como nuestra conexión
|
|
de internet se establezca. Para ello escriba el siguiente comando tras
|
|
el comando de <command>fetchmail</command> que hemos escrito antes en
|
|
el fichero <filename>/etc/ppp/ppp.linkup</filename>:</para>
|
|
|
|
<programlisting> !bg su user -c "sendmail -q"</programlisting>
|
|
|
|
<para>Asumiendo que tenemos una cuenta para el usuario
|
|
<username>usuario</username> en <hostid
|
|
role="fqdn">bsd.home</hostid>. En el directorio <quote>home</quote>
|
|
del usuario <username>usuario</username> en la máquina
|
|
<hostid role="fqdn">bsd.home</hostid> debemos crear un fichero
|
|
<filename>.fetchmailrc</filename> con el siguiente contenido:</para>
|
|
|
|
<programlisting>poll ejemplo.net protocol pop3 fetchall pass Secr3To</programlisting>
|
|
|
|
<para>Este fichero debe tener permisos de lectura sólo para el
|
|
propio dueño ya que contiene la contraseña de acceso
|
|
a nuestra cuenta de POP en nuestro ISP (<literal>
|
|
Secr3To</literal>).</para>
|
|
|
|
<para>Para poder enviar correo con la cabecera <literal>from:</literal>
|
|
correcta, debemos decir a
|
|
<application>sendmail</application> que utilice
|
|
<literal>usuario@ejemplo.net</literal> en vez de
|
|
<literal>usuario@bsd.home</literal>. Siguiendo con nuestro ejemplo
|
|
es necesario decirle a <application>sendmail</application> que
|
|
envíe todo el correo a través de la pasarela
|
|
<hostid role="fqdn">relay.ejemplo.net</hostid>.</para>
|
|
|
|
<para>El siguiente fichero de configuración
|
|
<filename>.mc</filename> debe ser suficiente para cumplir
|
|
con las anteriores tareas:</para>
|
|
|
|
<programlisting>VERSIONID(`bsd.home.mc version 1.0')
|
|
OSTYPE(bsd4.4)dnl
|
|
FEATURE(nouucp)dnl
|
|
MAILER(local)dnl
|
|
MAILER(smtp)dnl
|
|
Cwlocalhost
|
|
Cwbsd.home
|
|
MASQUERADE_AS(`ejemplo.net')dnl
|
|
FEATURE(allmasquerade)dnl
|
|
FEATURE(masquerade_envelope)dnl
|
|
FEATURE(nocanonify)dnl
|
|
FEATURE(nodns)dnl
|
|
define(`SMART_HOST', `relay.ejemplo.net')
|
|
Dmbsd.home
|
|
define(`confDOMAIN_NAME',`bsd.home')dnl
|
|
define(`confDELIVERY_MODE',`deferred')dnl</programlisting>
|
|
|
|
<para>En la sección anterior se explica cómo convertir este
|
|
fichero <filename>.mc</filename> en un fichero de
|
|
configuración para <application>sendmail</application>,
|
|
<filename>sendmail.cf</filename>. No debemos olvidar
|
|
reiniciar <application>sendmail</application>
|
|
después de mofidificar el fichero <filename>
|
|
sendmail.cf</filename>.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="SMTP-Auth">
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>James</firstname>
|
|
<surname>Gorham</surname>
|
|
<contrib>Escrito por </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
|
|
<title>Autentificación utilizando SMTP</title>
|
|
|
|
<para>La autentificación mediante SMTP puede proporcionarnos
|
|
diversas ventajas. Añade una capa adicional de seguridad a
|
|
a <application>sendmail</application> y además proporciona a los
|
|
usuarios móviles (usuarios que cambian de máquina)
|
|
la posibilidad de mantener el mismo servidor de correo sin necesidad de
|
|
reconfigurar sus agentes de usuario de correo cada vez que se
|
|
trasladan.</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Instalar <filename role="package">security/cyrus-sasl</filename>
|
|
desde los ports. Se puede encontrar dicho port en
|
|
<filename role="package">security/cyrus-sasl</filename>.
|
|
<filename role="package">security/cyrus-sasl</filename> posée
|
|
varias opciones en tiempo de compilación pero para el
|
|
método en particular que se va a explicar en esta
|
|
sección basta con asegurarse de seleccionar
|
|
la opción <option>pwcheck</option>.</para>
|
|
</step>
|
|
|
|
|
|
<step>
|
|
<para>Después de instalar <filename
|
|
role="package">security/cyrus-sasl</filename>,
|
|
edite <filename>/usr/local/lib/sasl/Sendmail.conf</filename>
|
|
(o créelo si no existe) y añada la siguiente
|
|
línea:</para>
|
|
|
|
<programlisting>pwcheck_method: passwd</programlisting>
|
|
|
|
<para>Este método activa la autentificación de
|
|
<application>sendmail</application> contra nuestra base de
|
|
datos de FreeBSD, <filename>passwd</filename>.
|
|
Esto nos evita el problema de tener que crear un nuevo conjunto de
|
|
usuarios y contraseñas para cada usuario que necesite
|
|
validarse mediante SMTP y además nos permite mantener el
|
|
mismo <quote>login</quote> y contraseña que los usuarios
|
|
utilizan para acceder a sus cuentas para el acceso al correo
|
|
electrónico.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Editar<filename>/etc/make.conf</filename> y añadir las
|
|
siguientes líneas:</para>
|
|
|
|
<programlisting>SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL
|
|
SENDMAIL_LDFLAGS=-L/usr/local/lib
|
|
SENDMAIL_LDADD=-lsasl</programlisting>
|
|
|
|
<para>Estas líneas proporcionan a <application>
|
|
sendmail</application> las opciones de configuración necesarias
|
|
para enlazar con <filename role="package">cyrus-sasl</filename> en
|
|
tiempo de compilación. Debemos asegurarnos de que <filename
|
|
role="package">cyrus-sasl</filename> ha sido instalado correctamente
|
|
recompilar <application>sendmail</application>.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Recompile <application>sendmail</application> utilizando el
|
|
siguiente comando:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail</userinput>
|
|
&prompt.root; <userinput>make cleandir</userinput>
|
|
&prompt.root; <userinput>make obj</userinput>
|
|
&prompt.root; <userinput>make</userinput>
|
|
&prompt.root; <userinput>make install</userinput></screen>
|
|
|
|
<para>La compilación de <application>sendmail</application> no
|
|
debería dar problemas siempre y cuando
|
|
<filename>/usr/src</filename> no haya cambiado sustancialmente y
|
|
siempre y cuando las bibliotecas compartidas
|
|
necesarias se encuentren disponibles.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Una vez que <application>sendmail</application> se ha compilado
|
|
y reinstalado con correctamente debemos editar el fichero
|
|
<filename>/etc/mail/freebsd.mc</filename> (o el fichero que se
|
|
utilice como <filename>.mc</filename> de referencia. Hay
|
|
administradores que escogen utilizar la salida de &man.hostname.1;
|
|
como el nombre del fichero <filename>.mc</filename> que se utiliza
|
|
para la configuración de sendmail por motivos de
|
|
uniformidad ). Añada las siguientes líneas a dicho
|
|
fichero:</para>
|
|
|
|
<programlisting>dnl set SASL options
|
|
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
|
|
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
|
|
define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl</programlisting>
|
|
|
|
<para>Estas opciones configuran los distintos métodos
|
|
de que dispone <application>sendmail</application> para validar a
|
|
los usuarios de correo. Si se desea utilizar otro método
|
|
distinto a <application>pwcheck</application> por favor consulte
|
|
la documentación.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Para terminar ejecutamos &man.make.1; mientras nos encontramos
|
|
dentro de <filename>/etc/mail</filename>.
|
|
Este comando trata el fichero <filename>.mc</filename> y crea el
|
|
fichero <filename>.cf</filename> correspondiente
|
|
(con el mismo nombre que el anterior pero terminado en .cf).
|
|
A continuación se utiliza el comando <command>
|
|
make install restart</command>, el cual copia el fichero .cf
|
|
recién generado al fichero <filename>
|
|
sendmail.cf</filename> y a continuación reinicia
|
|
<application>sendmail</application>.
|
|
Para más información sobre este proceso puede
|
|
consultarse el contenido de
|
|
<filename>/etc/mail/Makefile</filename>.</para>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>Si todo lo anteriormente comentado ha funcionado correctamente
|
|
deberíamos ser capaces de introducir la información de
|
|
nuestro <quote>login</quote> en nuestro cliente de correo y enviar un
|
|
mensaje de prueba. Para investigar más a fondo estos temas se
|
|
puede habilitar la opción <option>LogLevel</option> de
|
|
<application>sendmail</application> al valor 13 y observar detenidamente
|
|
el archivo <filename>/var/log/maillog</filename> en busca de posibles
|
|
mensajes de error.</para>
|
|
|
|
<para>Puede ser necesario añadir las siguientes líneas al
|
|
fichero <filename>/etc/rc.conf</filename> de modo que el servicio
|
|
explicado en esta sección se encuentre disponible
|
|
automáticamente desde el arranque:</para>
|
|
|
|
<programlisting>sasl_pwcheck_enable="YES"
|
|
sasl_pwcheck_program="/usr/local/sbin/pwcheck"</programlisting>
|
|
|
|
<para>Esto permite que la inicialización de <acronym>SMTP_AUTH</acronym> se produzca durante el arranque del sistema.</para>
|
|
|
|
<para>Para más información por favor visite la página
|
|
<ulink url="http://www.sendmail.org/~ca/email/auth.html">
|
|
autentificación <acronym>SMTP</acronym></ulink>
|
|
de <application>sendmail</application>·</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="mail-agents">
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Marc</firstname>
|
|
<surname>Silver</surname>
|
|
<contrib>Escrito por </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
<title>Agente de Correo de Usuario</title>
|
|
|
|
<indexterm>
|
|
<primary>Agentes de Correo de Usuario</primary>
|
|
</indexterm>
|
|
|
|
<para>Un agente de correo de usuario (<acronym>MUA</acronym> en
|
|
inglés Mail User Agent) es una aplicación
|
|
que se utiliza para enviar y recibir correo. Coomo el correo
|
|
electrónico está en constante evolución
|
|
y cada vez se vuelve más complejo y con más opciones,
|
|
los MUAs son cada vez más complejos y potentes.
|
|
Esto permite a los usuarios disponer de mayor flexibilidad y
|
|
funcionalidad. &os; admite para muchísimos
|
|
agentes de correo de usuario, todos los cuales pueden instalarse
|
|
desde los
|
|
<link linkend="ports">Ports</link>. Los usuarios pueden elegir entre
|
|
lientes de correo con interfaz gráfica como
|
|
<application>evolution</application> o <application>balsa</application>
|
|
o entre clientes basados en consola como
|
|
<application>mutt</application>, <application>pine</application>
|
|
o <command>mail</command>, e incluso utilizar interfaces web.</para>
|
|
|
|
<sect2 id="mail-command">
|
|
<title>mail</title>
|
|
|
|
<para>&man.mail.1; es el agente de correo de usuario
|
|
(<acronym>MUA</acronym>) que viene por defecto con &os;. Es un MUA de
|
|
consola que ofrece toda la funcionalidad básica
|
|
necesaria para enviar y recibir correos, aunque resulta limitado
|
|
limitado en su capacidad para manejar adjuntos y sólamente
|
|
soporta carpetas de correo locales.</para>
|
|
|
|
<para>Aunque <command>mail</command> no soporta de forma nativa la
|
|
interacción con servidores de correo mediante
|
|
<acronym>POP</acronym> o
|
|
<acronym>IMAP</acronym> estas carpetas de correo remotas pueden
|
|
descargarse a un fichero
|
|
<filename>mbox</filename> local utilizando una aplicación de
|
|
descarga como <application>fetchmail</application>, que se describe
|
|
en este mismo capítulo en (<xref
|
|
linkend="mail-fetchmail"/>).</para>
|
|
|
|
<para>Para enviar y recibir correo eletrónico basta con
|
|
ejecutar el comando
|
|
<command>mail</command>. Veamos un ejemplo:</para>
|
|
|
|
<screen>&prompt.user; <userinput>mail</userinput></screen>
|
|
|
|
<para>El contenido de la carpeta de usuario en el directorio
|
|
<filename class="directory">/var/mail</filename> se leen
|
|
automáticamente.
|
|
Si la carpeta se encuentra vacía la aplicación termina
|
|
su ejecución con un mensaje que indica que no ha podido
|
|
encontrar correo. Una vez que la carpeta ha sido
|
|
leída la interfaz de la aplicación entra en
|
|
funcionamiento y se muestra por pantalla un listado de los
|
|
mensajes recuperados. Los mensajes se numeran
|
|
automáticamente y pueden leerse como se observa en el
|
|
siguiente ejemplo:</para>
|
|
|
|
<screen>Mail version 8.1 6/6/93. Type ? for help.
|
|
"/var/mail/marcs": 3 messages 3 new
|
|
>N 1 root@localhost Mon Mar 8 14:05 14/510 "test"
|
|
N 2 root@localhost Mon Mar 8 14:05 14/509 "user account"
|
|
N 3 root@localhost Mon Mar 8 14:05 14/509 "sample"</screen>
|
|
|
|
<para>Los mensajes se pueden leer utilizando el comando <keycap>
|
|
t</keycap> de <command>mail</command> escribiendo a continuación
|
|
el número del mensaje que queremos leer.
|
|
En este ejemplo vamos a leer el primer correo:</para>
|
|
|
|
<screen>&prompt.user; <userinput>t 1</userinput>
|
|
Message 1:
|
|
From root@localhost Mon Mar 8 14:05:52 2004
|
|
X-Original-To: marcs@localhost
|
|
Delivered-To: marcs@localhost
|
|
To: marcs@localhost
|
|
Subject: test
|
|
Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST)
|
|
From: root@localhost (Charlie Root)
|
|
|
|
This is a test message, please reply if you receive it.</screen>
|
|
|
|
<para>Como podemos observar en el ejemplo anterior el comando
|
|
<keycap>t</keycap> muestra el contenido del correo
|
|
eletrónico con todas sus cabeceras. Para mostrar el
|
|
listado con todos los correos de nuevo, se debe utilizar la tecla
|
|
<keycap>h</keycap>.</para>
|
|
|
|
<para>Si el correo eletrónico requiere una contestación
|
|
se puede utilizar la aplicación
|
|
<command>mail</command> para responder utilizando la tecla
|
|
<keycap>R</keycap> o <keycap>r</keycap>. La tecla
|
|
<keycap>R</keycap> indica a
|
|
<command>mail</command> que conteste sólo al origen (remitente)
|
|
del correo, mientras que la tecla <keycap>r</keycap> tanto
|
|
al remitente a los otros usuarios receptores del mensaje original.
|
|
Además ambos comandos se pueden ejecutar escribiendo a
|
|
continuación el número que identifica al mensaje que
|
|
se quiere responder. Tras esto la respuesta puede redactarse
|
|
, y se debe indicar el final del mensaje mediante un punto
|
|
(<keycap>.</keycap>) a continuación de un salto de
|
|
línea. Veamos un ejemplo:</para>
|
|
|
|
<screen>&prompt.user; <userinput>R 1</userinput>
|
|
To: root@localhost
|
|
Subject: Re: test
|
|
|
|
<userinput>Thank you, I did get your email.
|
|
.</userinput>
|
|
EOT</screen>
|
|
|
|
<para>Para enviar nuevos correos eletrónicos se debe utilizar
|
|
la tecla <keycap>m</keycap> seguida de la dirección de
|
|
de correo del destinatario. Se pueden especificar varios
|
|
destinatarios de correo separando cada dirección de correo
|
|
con una coma ( <keycap>,</keycap> ).
|
|
El asunto del mensaje de correo se puede escribir a
|
|
continuación seguido por el cuerpo del mensaje. El final del
|
|
mensaje se especifica como en el caso anterior, utilizando un
|
|
<keycap>.</keycap> tras un saldo de línea y pulsando la
|
|
tecla <quote>enter</quote>.</para>
|
|
|
|
<screen>&prompt.user; <userinput>mail root@localhost</userinput>
|
|
Subject: <userinput>I mastered mail
|
|
|
|
Now I can send and receive email using mail ... :)
|
|
.</userinput>
|
|
EOT</screen>
|
|
|
|
<para>Mientras nos encontremos dentro de la <command>mail</command>
|
|
el comando <keycap>?</keycap> puede utilizarse para mostrar la
|
|
ayuda en línea aunque la principal fuente de información
|
|
detallda sobre esta aplicación es la página man
|
|
&man.mail.1;.</para>
|
|
|
|
<note>
|
|
<para>Tal y como se ha dicho ya la aplicación &man.mail.1;
|
|
no fue diseñada originalmente para gestionar adjuntos, por
|
|
lo que su forma de gestionarlos resulta ser extremadamente mala.
|
|
<acronym>MUA</acronym> más modernos como <application>
|
|
mutt</application> gestionan los adjuntos de correo
|
|
de una forma mucho más inteligente. Si se desea utilizar el
|
|
comando <command>mail</command> el port <filename
|
|
role="package">converters/mpack</filename> le puede resultar
|
|
bastante útil.</para>
|
|
</note>
|
|
</sect2>
|
|
|
|
<sect2 id="mutt-command">
|
|
<title>mutt</title>
|
|
|
|
<para><application>mutt</application> es un agente de correo de usuario
|
|
pequeño pero muy potente, funcional y con excelentes
|
|
características; veamos algunas:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>La habilidad de agrupar mensajes en hilos.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Soporte de PGP para cifradon y firma digital de correos
|
|
eletrónicos.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Soporte de tipos MIME.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Soporte de gestión de correo en formato Maildir.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Altamente configurable por el usuario.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Toda estas características hacen de
|
|
<application>mutt</application> uno de los agentes de correo
|
|
más avanzados del momento.
|
|
Consulte <ulink url="http://www.mutt.org"></ulink> para más
|
|
información sobre <application>mutt</application>.</para>
|
|
|
|
<para>La versión estable de <application>mutt</application> se
|
|
puede instalar usando el port <filename
|
|
role="package">mail/mutt</filename> mientras que la versión de
|
|
desarrollo está en <filename
|
|
role="package">mail/mutt-devel</filename>. Una vez que se ha
|
|
instalado el port, <application>mutt</application> puede ejecutarse
|
|
mediante el siguiente comando:</para>
|
|
|
|
<screen>&prompt.user; <userinput>mutt</userinput></screen>
|
|
|
|
<para><application>mutt</application> lee automáticamente el
|
|
contenido de la carpeta de correo del usuario dentro del directorio
|
|
<filename class="directory">/var/mail</filename> y muestra por pantalla
|
|
su contenido. Si el directorio está vacío
|
|
<application>mutt</application>
|
|
quedará a la espera de los comandos que pueda pasarle el
|
|
usuario. En el ejemplo que se muestra a continuación
|
|
puede verse cómo <application>mutt</application> facilita
|
|
la lista de mensajes al usuario:</para>
|
|
|
|
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="mail/mutt1"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
|
|
<para>Para leer un correo basta con seleccionarlo usando las teclas de cursor, y
|
|
presionando la tecla <keycap>Enter</keycap>. Veamos cómo
|
|
muestra <application>mutt</application> un correo
|
|
electrónico:</para>
|
|
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="mail/mutt2"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
|
|
<para>Al igual que ocurre con &man.mail.1;
|
|
<application>mutt</application> permite que los usuarios contesten al
|
|
remitente de cualquier mensaje así como a los demás
|
|
receptores. Para responder sólo al remitente se puede utilizar
|
|
la tecla <keycap>r</keycap>. Para responder a un grupo, es decir a
|
|
todos los receptores y al remitente del correo
|
|
eletrónico pulse <keycap>g</keycap>.</para>
|
|
|
|
<note>
|
|
<para><application>mutt</application> tiene &man.vi.1;
|
|
como editor por defecto para crear y responder a los mensajes de
|
|
correo eletrónico. Si prefiere emplear otro editor
|
|
modifique el valor de la variable <literal>editor</literal> en
|
|
<filename>.muttrc</filename>.</para>
|
|
</note>
|
|
|
|
<para>Para escribir un mensaje de correo presione la tecla
|
|
<keycap>m</keycap>. Después de escribir el asunto
|
|
<application>mutt</application> ejecuta &man.vi.1; y el cuerpo del
|
|
mensaje puede escribirse. Una vez escrito el correo
|
|
salga de <command>vi</command> y <application>mutt</application> se
|
|
ejecutará de nuevo mostrando por pantalla un resumen del
|
|
correo que está a punto de ser enviado. Para enviar ese
|
|
correo hay que pulsar <keycap>y</keycap>. Este es un ejemplo de
|
|
uno de esos resúmenes:</para>
|
|
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="mail/mutt3"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
|
|
<para><application>mutt</application> también contiene una amplia
|
|
ayuda a la que se accede desde la mayoría de los
|
|
menús pulsando la tecla <keycap>?</keycap>. La primera
|
|
lína de la pantalla también muestra las teclas de
|
|
método abreviado cuando es posible utilizarlas.</para>
|
|
</sect2>
|
|
|
|
<sect2 id="pine-command">
|
|
<title>pine</title>
|
|
|
|
<para><application>pine</application> es una aplicación de correo
|
|
enfocada a los usuarios principiantes o inexpertos pero
|
|
también incluye algunas características avanzadas.</para>
|
|
|
|
<warning>
|
|
<para>Se han descubierto en <application>pine</application> varias
|
|
vulnerabilidades que pueden explotarse de forma remota.
|
|
Esas vulnerabilidades permiten que atacantes remotos puedan ejecutar
|
|
código como si fueran usuarios locales del sistema
|
|
mediante el envío de correos con un formato determinado.
|
|
Todos los problemas <emphasis>conocidos</emphasis> se han
|
|
resuelto pero el código de <application>
|
|
pine</application> está escrito de una forma insegura y el
|
|
<quote>Security Officer</quote> de &os; opina que es probable que
|
|
existan todavía vulnerabilidades sin descubrir. Si decide
|
|
instalar <application>pine</application>
|
|
debe asumir los riesgos que ello puede implicar.</para>
|
|
</warning>
|
|
|
|
<para>La versión actual de <application>pine</application> se
|
|
puede instalar utilizando el port <filename
|
|
role="package">mail/pine4</filename>. Una vez que se ha instalado
|
|
<application>pine</application> se puede ejecutar mediante el siguiente comando:</para>
|
|
|
|
<screen>&prompt.user; <userinput>pine</userinput></screen>
|
|
|
|
<para>La primera vez que se ejecuta <application>pine</application> se
|
|
muestra un mensaje de bienvenida con una pequeña
|
|
introducción a la herramienta junto con una petición del
|
|
equipo de desarrollo de <application>pine</application> en la que se
|
|
solicita que se envíe un correo de forma anónima
|
|
un correo de forma anónima para que puedan hacerse una idea s
|
|
de cuántos usuarios están utilizando
|
|
la herramienta. Para enviar dicho correo hay que presionar la tecla
|
|
<keycap>Enter</keycap>, o bien puede pulsar
|
|
la tecla <keycap>E</keycap> para salir de la ventana de bienvenida
|
|
sin enviar dicho correo. A continuación se muestra un ejemplo
|
|
de la página de bienvenida:</para>
|
|
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="mail/pine1"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
|
|
<para>Los usuarios disponen de un menú principal, que puede
|
|
navegarse utilizando las flechas. Este menú proporciona
|
|
atajos para la composición de nuevos correos, para navegar a
|
|
través de las carpetas de correo, e incluso para
|
|
la administración de la libreta de direcciones. Justo debajo
|
|
del menú principal, se muestran las teclas de método
|
|
abreviado (atajos) que pueden utilizarse en cada momento.</para>
|
|
|
|
<para>El directorio por defecto que <application>pine</application>
|
|
intenta abrir es <filename
|
|
class="directory">inbox</filename>. Para ver el índice de
|
|
todos los mensajes recibidos pulse la tecla
|
|
<keycap>I</keycap> o seleccione la opción de menú
|
|
denominada
|
|
<guimenuitem>MESSAGE INDEX</guimenuitem> como se muestra a
|
|
continuación:</para>
|
|
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="mail/pine2"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
|
|
<para>El índice muestra los mensajes en el directorio actual y
|
|
puede navegarse en él utilizando las teclas
|
|
del cursor. El mensaje seleccionado se puede leer presionando la
|
|
tecla <keycap>Enter</keycap>.</para>
|
|
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="mail/pine3"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
|
|
<para>En la captura de pantalla que se muestra a continuación se
|
|
muestra un mensaje de ejemplo. Las teclas de atajo se muestran
|
|
como referencia en la parte baja de la pantalla. Un ejemplo de dichas
|
|
teclas de método abreviado es la tecla <keycap>r</keycap> que
|
|
permite responder al mensaje que se muestra en dicho momento.</para>
|
|
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="mail/pine4"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
|
|
<para>La contestación a un mensaje de correo eletrónico
|
|
en <application>pine</application> se realiza mediante el editor
|
|
<application>pico</application>, que se instala por defecto junto con
|
|
<application>pine</application>. <application>pico</application>
|
|
permite navegar de forma sencilla por los distintos mensajes de
|
|
correo y es ligeramente más sencilla de manejar
|
|
que &man.vi.1;, sobre todo para los usuarios noveles. Una vez que se
|
|
ha escrito la réplica al correo se envía pulsando
|
|
la tecla
|
|
<keycombo action="simul"><keycap>Ctrl</keycap><keycap>X</keycap>
|
|
</keycombo>. <application>pine</application> pedirá
|
|
confirmación antes de enviarlo.</para>
|
|
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="mail/pine5"/>
|
|
</imageobject>
|
|
</mediaobject>
|
|
|
|
<para><application>pine</application> puede configurarse utilizando la
|
|
entrada <guimenuitem>SETUP</guimenuitem> del menú principal.
|
|
Se ruega consultar <ulink
|
|
url="http://www.washington.edu/pine/"></ulink>
|
|
para obtener más información.</para>
|
|
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="mail-fetchmail">
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Marc</firstname>
|
|
<surname>Silver</surname>
|
|
<contrib>Escrito por </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
<title>Manejo de fetchmail</title>
|
|
|
|
<indexterm>
|
|
<primary>Uso de fetchmail</primary>
|
|
</indexterm>
|
|
|
|
<para><application>fetchmail</application> es un cliente de
|
|
<acronym>IMAP</acronym> y <acronym>POP</acronym> que permite a
|
|
los usuarios descargar automáticamente el correo de cuentas
|
|
remotas en servidores
|
|
<acronym>IMAP</acronym> y <acronym>POP</acronym> y almacenarlos
|
|
en carpetas de correo locales; una vez en local, se puede acceder a los
|
|
correos de una forma más sencilla y utilizando multitud de
|
|
programas cliente.
|
|
<application>fetchmail</application> se puede instalar a partir del port
|
|
<filename role="package">mail/fetchmail</filename>. Veamos algunas de
|
|
sus características más útiles:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Suporte de <acronym>POP3</acronym>,
|
|
<acronym>APOP</acronym>, <acronym>KPOP</acronym>,
|
|
<acronym>IMAP</acronym>, <acronym>ETRN</acronym> y
|
|
<acronym>ODMR</acronym>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Puede reenviar correo utilizando <acronym>SMTP</acronym> lo que
|
|
permite que las reglas de filtrado, reenvío y
|
|
<quote>aliasing</quote> funcionen correctamente.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Se puede ejecutar en modo dæmon comprobar
|
|
periódicamente el correo entrante.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Puede recuperar correo de múltiples carpetas y reenviarlos, en función de la configuración establecida,
|
|
a varios usuarios locales.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Queda fuera del objetivo de este documento explicar todas las
|
|
características de
|
|
<application>fetchmail</application> pero algunas de ellas se exponen a
|
|
ontinuación.
|
|
<application>fetchmail</application> usa un fichero de
|
|
configuración denominado
|
|
<filename>.fetchmailrc</filename>. Este fichero incluye
|
|
información sobre el servidor de correo remoto y los datos
|
|
necesarios para poder hacer login en él. Debido a la naturaleza
|
|
sensible de la información que se almacena en dicho fichero
|
|
se recomienda modificar los permisos para que sea de sólo
|
|
sea legible por su propietario. Lo conseguirá mediante el
|
|
siguiente comando:</para>
|
|
|
|
<screen>&prompt.user; <userinput>chmod 600 .fetchmailrc</userinput></screen>
|
|
|
|
<para>El siguiente ejemplo muestra un fichero de configuración
|
|
<filename>.fetchmailrc</filename>.
|
|
Este ejemplo sirve para automatizar la descarga del correo de un
|
|
determinado usuario mediante <acronym>POP</acronym>. El fichero de
|
|
configuración hace que
|
|
<application>fetchmail</application> se conecte a <hostid
|
|
role="fqdn">ejemplo.com</hostid> utilizando como nombre de usuario
|
|
<username>joesoap</username> y como contraseña
|
|
<literal>XXX</literal>. En el ejemplo se asume que el usuario
|
|
<username>joesoap</username> también es un usuario válido
|
|
en el sistema local.</para>
|
|
|
|
<programlisting>poll ejemplo.com protocol pop3 username "joesoap" password "XXX"</programlisting>
|
|
|
|
<para>El siguiente ejemplo permite a <application>fetchmail</application>
|
|
conectarse a múltiples servidores
|
|
<acronym>POP</acronym> e <acronym>IMAP</acronym> y redirige los correos
|
|
a diferentes usuarios locales en función
|
|
de la configuración establecida:</para>
|
|
|
|
<programlisting>poll ejemplo.com proto pop3:
|
|
user "joesoap", with password "XXX", is "jsoap" here;
|
|
user "andrea", with password "XXXX";
|
|
poll ejemplo.net proto imap:
|
|
user "john", with password "XXXXX", is "myth" here;</programlisting>
|
|
|
|
<para><application>fetchmail</application> se puede ejecutar en modo
|
|
dæmon mediante el parámetro <option>-d</option> seguido
|
|
seguido por un intervalo de tiempo (expresado en segundos)
|
|
que indica cada cuánto tiempo debe
|
|
<application>fetchmail</application> interrogar a los distintos
|
|
servidores listados en <filename>.fetchmailrc</filename>.
|
|
El siguiente ejemplo hace que
|
|
<application>fetchmail</application> interroge cada 60 segundos:</para>
|
|
|
|
<screen>&prompt.user; <userinput>fetchmail -d 60</userinput></screen>
|
|
|
|
<para>Se puede encontrar más información sobre
|
|
<application>fetchmail</application> en <ulink
|
|
url="http://www.catb.org/~esr/fetchmail/"></ulink>.</para>
|
|
</sect1>
|
|
|
|
<sect1 id="mail-procmail">
|
|
<sect1info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Marc</firstname>
|
|
<surname>Silver</surname>
|
|
<contrib>Escrito por </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect1info>
|
|
<title>Uso de procmail</title>
|
|
|
|
<indexterm>
|
|
<primary>Uso de procmail</primary>
|
|
</indexterm>
|
|
|
|
<para><application>procmail</application> es una aplicación
|
|
increíblemente potente que se utiliza para filtrar el correo de
|
|
entrada.
|
|
Permite a los usuarios definir <quote>reglas</quote> que se asocian
|
|
con correos entrantes y que realizan funciones concretas, como
|
|
reencaminar el correo a carpetas o direciones alternativas.
|
|
<application>procmail</application> se puede instalar utilizando el port
|
|
<filename role="package">mail/procmail</filename>. Una vez instalado,
|
|
se puede integrar directamente en la mayoría de los
|
|
<acronym>MTA</acronym>s; por favor, consulte
|
|
la documentación del <acronym>MTA</acronym> que utilice para
|
|
saber más sobre la integración entre ambos.
|
|
Por otro lado <application>procmail</application> se puede integrar
|
|
con el <acronym>MTA</acronym> que prefiera de una forma sencilla
|
|
añadiendo la siguiente línea al
|
|
fichero <filename>.forward</filename> dentro del directorio home del
|
|
usuario que desée usar <application>
|
|
procmail</application>:</para>
|
|
|
|
<programlisting>"|exec /usr/local/bin/procmail || exit 75"</programlisting>
|
|
|
|
<para>La siguiente sección muestra algunas reglas básicas de
|
|
<application>procmail</application>, junto con una breve
|
|
descripción de las acciones que realizan.
|
|
Estas reglas, y muchas otras se deben insertar dentro del fichero
|
|
<filename>.procmailrc</filename> ubicado en el directorio home del
|
|
usuario.</para>
|
|
|
|
|
|
<para>En la página man de <quote>procmailex</quote> se explica
|
|
la mayoría de estas reglas.</para>
|
|
|
|
<para>Reenvío de todo el correo proveniente de
|
|
<literal>usuario@ejemplo.com</literal> hacia la
|
|
dirección externa <literal>correodefiar@ejemplo.com</literal>:</para>
|
|
|
|
<programlisting>:0
|
|
* ^From.*usuario@ejemplo.com
|
|
! correodefiar@ejemplo.com</programlisting>
|
|
|
|
<para>Reenvío de todos los correos que ocupen menos de 1000 bytes
|
|
a la dirección <literal>corredefiar@ejemplo2.com</literal>:</para>
|
|
|
|
<programlisting>:0
|
|
* < 1000
|
|
! correodefiar@ejemplo2.com</programlisting>
|
|
|
|
<para>Envío de todos los correos dirigidos a
|
|
<literal>opcional@ejemplo.com</literal>
|
|
hacia una carpeta de correo llamada <filename>opcional</filename>:</para>
|
|
|
|
<programlisting>:0
|
|
* ^TOopcional@ejemplo.com
|
|
opcional</programlisting>
|
|
|
|
<para>Envío de todos los correos con un asunto que contenga la
|
|
palabra <quote>Spam</quote> al
|
|
dispositivo <filename>/dev/null</filename>:</para>
|
|
|
|
<programlisting>:0
|
|
^Subject:.*Spam
|
|
/dev/null</programlisting>
|
|
|
|
<para>Una útil receta para examinar mensajes de correo provenientes
|
|
de listas de distribución de
|
|
<hostid role="domainname">&os;.org</hostid> y poner cada mensaje en
|
|
el directorio apropiado en función del origen del mensaje:</para>
|
|
|
|
<programlisting>:0
|
|
* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
|
|
{
|
|
LISTNAME=${MATCH}
|
|
:0
|
|
* LISTNAME??^\/[^@]+
|
|
FreeBSD-${MATCH}
|
|
}</programlisting>
|
|
</sect1>
|
|
|
|
</chapter>
|