Página siguiente Página anterior Índice general

3. Correo privado (NETs)

Ante todo, mucha calma. Mientras no consigáis enviar y recibir NETs, mejor que no paséis la página. Bien, sigamos.

3.1 Notación "Internet" de las direcciones de Fidonet

Antes de entrar en los ficheros de configuración, tengo que haceros ver cómo una dirección de Fidonet se expresa en Internet. Es importante para las siguientes secciones, así como para saber escribir un NET.

Bien, empecemos. Como sabéis, una dirección de Fidonet contiene información de zona, región, net, nodo y opcionalmente punto. Esto se nota así: ZONA:REGIÓN_Y_NET/NODO o ZONA:REGIÓN_Y_NET/NODO.PUNTO.

Por ejemplo, mi dirección de punto es 2:341/12.19 y la del nodo de mi BBS, 2:341/12 (nodo que llamamos Boss).

En Internet, una dirección de nodo se notará como:

        fNODO.nREGION_Y_NET.zZONA.fidonet.org

o bien:

        pPUNTO.fNODO.nREGION_Y_NET.zZONA.fidonet.org

Así, mi máquina será conocida en Fidonet como:

        p19.f12.n341.z2.fidonet.org     

Y yo, como usuario de mi máquina seré conocido como:

        Juan.Jose.Amor@p19.f12.n341.z2.fidonet.org

Un mensaje dirigido al usuario anterior quedará convertido en un mensaje dirigido al usuario "Juan Jose Amor" del punto 2:341/12.19

3.2 Configuración de Sendmail

Sobre sendmail podía tirarme varias horas escribiendo, pero para eso ya hay un buen tocho escrito (de O'Reilly, creo). Así que creo que lo mejor es proporcionar aquí mismo un fichero sendmail.cf, que sirve para una configuración típica, con conexión a Internet y Fidonet, e incluso una pequeña Intranet local.

Supongamos que vuestra máquina se llama DRAGON, y vuestro dominio ficticio (de Intranet) lo habéis llamado, MICASA.ES. Aquí tenéis un fichero sendmail.cf que te servirá para mandar correo de la siguiente forma:

Algunas observaciones sobre este fichero: en principio, no necesita que exista un servidor de nombres (DNS) disponible. No obstante, yo tengo uno local así que igual os da algún problema...

Por otra parte, si recibís este documento en un formato distinto al original (SGML) puede que los caracteres de tabulación que existen en sendmail.cf se hayan convertido en espacios. Por desgracia, así no os funcionará el fichero, de modo que tendréis que convertir a mano, los separadores de las reglas a tabuladores.

En la línea referente al nodo del proveedor (donde aparece la IP del mío, 194.224.28.2) debéis poner la IP del vuestro, claro :-). En la línea referente a Fidonet, debéis codificar el nombre del nodo al que llamáis. En mi caso, 2:341/12 se traduce a f12.n341.z2 (observad la línea del fichero sendmail.cf. Como véis, esto hace la función del fichero route.fe en FastEcho u otro procesador de correo de Fido bajo DOS: esta línea determina entregar todos los NETs vía el nodo elegido). Además, si no tenéis Internet o red local propia, podéis comentar las líneas correspondientes de la regla 0.

Una vez instalado el nuevo /etc/sendmail.cf, debéis reiniciar el demonio. Lo mejor es que lo matéis y lo relancéis de nuevo (enviarle la señal SIGHUP no funciona en todas las versiones). Hasta que no hagáis esto, tu nuevo sendmail.cf no será reconocido. Podéis comprobar que lo habéis logrado lanzando el demonio y a continuación ejecutar telnet al puerto 25. Debéis ver una referencia a la versión del sendmail.cf, BS-3.1 en la línea de bienvenida. Luego, escribid quit para salir:


$ telnet dragon.micasa.es 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 dragon.micasa.es ESMTP Sendmail 8.7.6/BS-3.1 ready at Tue, 22 Apr 1997 11:56:31 +0200
quit
221 dragon.micasa.es closing connection
Connection closed by foreign host.

$

Si tenéis algún problema con el comando telnet (en particular, os responde con un Connection refused) es porque el demonio no ha podido mantenerse tras el cambio en el sendmail.cf. El motivo es un error en dicho fichero, así que será el momento de repasarlo para luego volver a lanzar el sendmail. Los logs que este programa habrá dejado os darán una pista acerca de la causa del problema.



################################################################################
#####                                                                      #####
#####                 Fichero de Configuracion de SENDMAIL                 #####
#####                                                                      #####
#####             Realizado por:   Juan Jose Amor, 2:341/12.19             #####
#####       a partir del fichero FI-4.1 del Centro de Calculo de la        #####
#####              Facultad de Informatica de Madrid, U.P.M.               #####
#####                                                                      #####
#####                              04-08-97                                #####
#####                                                                      #####
################################################################################

# RCS: $Id: sendmail.cf,v 1.3 1997/04/08 11:34:02 jjamor Exp jjamor $

#   Version de Sendmail
DVBS-3.1

################################################################################
#   Definicion del Dominio                                                     #
################################################################################

#   Dominio Local
DOdragon
DQmicasa
DRes

#   Nombre del Dominio Oficial de la Maquina
Dj$O.$Q.$R

#   Sinonimos
Cw $w

################################################################################
#   Macros Especiales                                                          #
################################################################################

#   Mi nombre
DnMAILER-DAEMON

#   Cabecera en formato UNIX
DlFrom $g $d

#   Caracteres para delimitacion (operadores)
Do.:%@!^=/[]

#   Formato del nombre completo
Dq$g$?x ($x)$.

#   Mensaje de SMTP
De$j Sendmail $v/$V ready at $b

################################################################################
#   Opciones                                                                   #
################################################################################

#   Fichero de Alias
OA/etc/aliases
#   Fichero de Ayuda
OH/usr/lib/sendmail.hf
#   Fichero de estado
OS/etc/sendmail.st
#   Nivel de log
OL9
#   Copia al Postmaster en caso de error
OPPostmaster
#   Directorio de colas de mensajes
OQ/var/spool/mqueue
#   Intervalo de "timeout" en la cola
OT8d
#   No conectar en caso de mucho trafico
OX12
#   Modo de funcionamiento
Odb
#   Modo de gestion de errores
Oep
#   GID por defecto
Og1
#   Enviamelo tambien en caso de utilizacion de alias
Om
#   Por defecto, los mensajes en estilo tradicional
Oo
#   No admite EXPN ni VRFY
Opnoexpn,novrfy
#   "Timeout" de lectura
Or5m
#   Arranca la cola antes de enviar un mensaje,
Os
#   UID por defecto
Ou1
#   Encolar en caso de mucho trafico
Ox8
#   Numero maximo de vueltas antes de decidir que estamos en un bucle de correo
Oh17

################################################################################
#   Precedencia de Mensajes                                                    #
################################################################################

Pfirst-class=0
Pspecial-delivery=100
Pjunk=-100

################################################################################
#   Usuarios Validados                                                         #
################################################################################

#Troot
#Tdaemon
#Tuucp
#Tnetwork

################################################################################
#   Formato de las Cabeceras                                                   #
################################################################################

H?P?Return-Path: <$g>
HReceived: $?sfrom $s $.by $j ($v/$V) $b
H?D?Resent-Date: $a
H?D?Date: $a
H?F?Resent-From: $q
H?F?From: $q
H?x?Full-Name: $x
HSubject:
H?M?Resent-Message-Id: <$t.$i@$j>
H?M?Message-Id: <$t.$i@$j>

################################################################################
#####                                                                      #####
#####               REGLAS  DE  REESCRITURA  DE  DIRECCIONES               #####
#####                                                                      #####
################################################################################


################################################################################
#####                                                                      #####
#####               REGLA  CERO                                            #####
#####                                                                      #####
################################################################################
S0

#   Gestiona casos especiales
R@                              $#local $:$n

#   Filtra casos miscelaneos
R$*<$*.>                     $1<$2>
R$+<@>                               $@$>0$1

#   Maquina local: entregar a buzon local de usuario
R$+<@$j>                     $#local $:$1

#   Desactivar si no queremos que esta maquina sea "maestra de dominio"
R$+<@$Q.$R>                  $#local $:$1

#   Maquina local: entregar a buzon local de usuario
R$+<@$*$O.$Q.$R>             $#local $:$1

#   Maquina del dominio local: entregar directamente (por la Ethernet)
R$+<@$*$Q.$R>                        $#tcp $@$2$Q.$R $:$1<@$2$Q.$R>

#   Dominio fidonet.org: entregar a ifmail (Mfido)
R$*<@$+.fidonet.org>$*               $#fido $@f12.n341.z2 $:$1<@$2.fidonet.org>$3

#   Cualquier otra direccion, al nodo del proveedor (relevo) para su tramitacion
R$+                             $#tcp $@[194.224.28.2] $:$1

################################################################################
#####                                                                      #####
#####               REGLA  1  -  Reescritura del Campo Origen              #####
#####                                                                      #####
################################################################################
S1


################################################################################
#####                                                                      #####
#####               REGLA  2  -  Reescritura del Campo Destino             #####
#####                                                                      #####
################################################################################
S2


################################################################################
#####                                                                      #####
#####               REGLA  3  -  Paso de la Direccion a Forma Canonica     #####
#####                                                                      #####
################################################################################
S3

#   Gestion del caso especial "from:<>"
R<>                          $@@

#   Canonizacion basica
R$*<$+>$*                    $2

#   Encaminamiento norma RFC 822
R@$+:$+@$+                      $:$1,@$3!$2
R$+,@$+                         $1!$2

#   El delimitador @ indica precedencia
R$+@$+                          $:$1<@$2>
R$+<$+@$+>                   $1$2<@$3>
R$+<@$+>                     $@$>5$1<@$2>

#   Trata el delimitador !
R$+^$+                          $1!$2
R$-!$+                          $@$>5$2<@$1.uucp>
R$+!$+                          $@$>5$2<@$1>

#   % es una precedencia inferior a @
R$+%$+                          $:$1@$2
R$+@$+%$+                       $1%$2@$3
R$+@$+                          $@$>5$1<@$2>

#   Correo local
R$+                             $@$>5$1<@$j>

################################################################################
#####                                                                      #####
#####               REGLA  4  -  Reescritura salida final                  #####
#####                                                                      #####
################################################################################
S4

#   Extrae informacion relativa al dominio local
R$*<$+>$*                    $1$2$3

################################################################################
#####                                                                      #####
#####               REGLA  5  -  Cualifica Completamente la Direccion      #####
#####                                                                      #####
################################################################################
S5

#   Maquinas locales
R$+<@$*$O>                   $@$>6$1<@$2$j>
R$+                             $@$>6$1

################################################################################
#####                                                                      #####
#####               REGLA  6  -  Resuelve sinonimos                        #####
#####                            y elimina encaminamientos locales         #####
#####                                                                      #####
################################################################################
S6

#   Elimina redundancias de nombres de maquinas locales
R$+@$+<@$j>                  $@$>3$1@$2
R$+!$+<@$j>                  $@$>3$1!$2
R$+%$+<@$j>                  $@$>3$1%$2

################################################################################
#   Especificacion del programa local de gestion de correo                     #
################################################################################

Mlocal, P=/usr/local/sbin/deliver, F=lsDFMShP, S=10, R=20/40, A=deliver $u
Mfido, P=/usr/lib/ifmail/ifmail, F=mSDFMuC, S=11, R=21, A=ifmail -l -1 -r $h $u
#
# NOTA: Si su sistema va a ser pasarela 'oficial' de mensajes entre Fido e
# Internet, se recomienda eliminar la opcion '-l -1' donde pone:
# A=ifmail -l -1 -r $h $u en la linea anterior
#
Mprog, P=/bin/sh, F=DFMPelsu, S=10, R=10, A=sh -c $u
S10
R$*<@$j>                     $@$1

################################################################################
#   Especificacion del gestor de correo SMTP/IPC                               #
################################################################################

Mtcp, P=[IPC], F=CDFMXmsu, S=11, R=11, A=IPC $h
S11

3.3 Configuracion de Sendmail usando macros M4

La mayoría de los usuarios de Unix prefieren configurar el sendmail con las colecciones de macros M4 que incluye. Reconozco que es la forma más flexible y a la vez fácil de entender para configurar este programa. Eso sí, si el fichero presentado en la sección anterior os vale, mejor es que os saltéis esta sección o posiblemente os volveréis locos (¡y no quiero que alguien me acuse de contagiaros nada!).

Lo que viene a continuación es una contribución recibida de Roberto Suárez Soto, y no me hago responsable de su eficacia (en realidad, no me voy a hacer responsable de la eficacia de nada que se haya dicho en este documento. Me lavo las manos como cualquier otro colaborador de la causa GNU ;-) ).

La configuración de sendmail para ifmail puede ser hecha mediante un fichero de éstos, y de hecho es lo más fácil. Un fichero sendmail-ifmail.mc (el nombre es indiferente) podría ser éste que pongo a continuación. Está casi copiado del que viene en el paquete ifmail-2.14-tx8.8.tar.gz, de Pablo Saratxaga. La "primera versión" que hice se la mandé al propio Pablo para que la revisara, y en su contestación me mandó un fichero .mc completísimo y muy bien explicado que es el que pongo aquí. Así que todo el mérito es suyo :-) Yo sólo me limito a transcribir lo que me mandó él (si hay algún fallo en los comentarios o en las explicaciones, eso sí que será obra mía O:-))

Los datos son imaginarios, necesitarás cambiarlos para tu configuración. Otra cosa: este fichero lo he probado con sendmail 8.9.1; con la versión 8.8.x hay un par de líneas que no funcionan. De todos modos, si tienes una distribución más o menos reciente, seguro que ya trae un sendmail de la serie 8.9.x (y si no, ¿no crees que ya es hora de actualizarse? :-))



divert(-1)
include(`../m4/cf.m4')
OSTYPE(`linux')
dnl ##########################
dnl #  Configurable options  #
dnl ##########################

dnl ### El servidor SMTP de tu Proveedor de Internet
dnl ### Los corchetes ( [ ] ) evitan las llamadas al DNS;
dnl ### útil si no estás conectado a Internet las 24 horas del día
define(`SMART_HOST',            ``[smtp.de.tu.proveedor.com]'')

dnl ### La dirección Fido de tu uplink; esta será la ruta por defecto
dnl ### para el correo de Fido
define(`FIDO_SMART_HOST',       ``f1.n2.z3.fidonet.org'')

dnl ### La pasarela Fidonet --> Internet
define(`FIDO_GATEWAY',          ``f4.n5.z6.fidonet.org'')

dnl ### Si vas a usar una pasarela, déjalo así;
dnl ### cámbialo a "undefine" si no la vas a usar
dnl ### (si tienes una cuenta de email real, pon el undefine)
define(`USE_FGATE')

dnl ### Esto es necesario si no tienes acceso permanente a un DNS
dnl ### (es decir, si no tienes conexión 24h a Internet; si tienes
dnl ###  este tipo de conexión, puedes quitar estas líneas)
FEATURE(accept_unresolvable_domains)
FEATURE(nodns)dnl

dnl
dnl ####################################
dnl #    End of configurable section   #
dnl ####################################
dnl

define(`confDEF_USER_ID',``8:12'')
define(`confMATCH_GECOS',`True')
define(`confTRY_NULL_MX_LIST',`True')
define(`confTO_QUEUEWARN', `2d')
define(`confTO_QUEUERETURN', `8d')
define(`confUSE_ERRORS_TO',`True')
define(`confTRUSTED_USERS',`ftn')
define(`confCT_FILE', ` -o /etc/mail/sendmail.ct')dnl
define(`confCW_FILE', ` /etc/mail/sendmail.cw')dnl
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy')dnl
define(`confSTATUS_FILE',`/var/run/sendmail.st')dnl
dnl ### Esta línea que viene a continuación define dos ficheros
dnl ### de alias para sendmail; el segundo (/etc/mail/majordomo)
dnl ### sólo hace falta si usáis majordomo como gestor de listas
dnl ### de correo; como no es mi caso (y tampoco el de la mayoría
dnl ### de la gente), he cambiado la línea para reflejarlo.
dnl ### (dejo la original como comentario para el que le interese)
dnl ### define(`ALIAS_FILE',`/etc/mail/aliases,/etc/mail/majordomo')dnl
define(`ALIAS_FILE',`/etc/mail/aliases')dnl
define(`HELP_FILE',`/etc/mail/sendmail.hf')dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`STATUS_FILE',`/var/run/sendmail.st')dnl
undefine(`UUCP_RELAY')dnl
undefine(`BITNET_RELAY')dnl
FEATURE(access_db, hash -o /etc/mail/access)dnl
FEATURE(always_add_domain)dnl
FEATURE(blacklist_recipients)dnl
dnl FEATURE(limited_masquerade)dnl
dnl FEATURE(masquerade_entire_domain)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(local_procmail)dnl
FEATURE(redirect)dnl
FEATURE(relay_based_on_MX)dnl
FEATURE(relay_entire_domain)dnl
FEATURE(relay_local_from)dnl
FEATURE(use_ct_file)dnl
FEATURE(use_cw_file)dnl
FEATURE(`domaintable',`hash -o /etc/mail/domaintable')dnl
FEATURE(`genericstable',`hash -o /etc/mail/genericstable')dnl
GENERICS_DOMAIN_FILE(confCW_FILE)dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')dnl
FEATURE(nocanonify)dnl
MAILER(procmail)dnl
MAILER(smtp)dnl
MAILER(ftn)dnl
MAILER(usenet)dnl
MAILER(uucp)dnl

LOCAL_CONFIG
# Pseudo-dominios (no se llama al DNS para ellos)
CPz1.fidonet.org z2.fidonet.org z3.fidonet.org z4.fidonet.org
CPz5.fidonet.org z6.fidonet.org ftn

# Para las direcciones de Fido, que no se manden a través del mailer
# smtp.z2.fidonet.org, www.z2.fidonet.org, etc
CFfidonet ns ns2 mail smtp www ftp

# Esto es un pequeño parche para que ciertas direcciones que nosotros
# digamos no salgan a Internet, sino que sean entregadas localmente
Kpirateo hash -o /etc/mail/pirateo

LOCAL_RULE_0
# pirateo
R$+ < @ $+ . > $*            $: < $(pirateo $1 @ $2 $: $) > $1 < @ $2 . > $3
R$+ < @ $+ $~. > $*          $: < $(pirateo $1 @ $2 $3 $: $) > $1 < @ $2 $3 > $4
R< $+ > $+ < @ $+ > $*            $@ $>97 $1 $4
R<> $+ < @ $+ > $*                $: $1 < @ $2 > $3

LOCAL_NET_CONFIG
# ************ FIDONET.ORG ***********
# for nodes allways put leading $* if you want to route his points too
# routed trough default smart host FIDO_SMART_HOST
R$* < @ $~F $+ .z1.fidonet.org . > $*        $#ftn $@ FIDO_SMART_HOST $: $1 < @ $2 $3 .z1.fidonet.org > $4
R$* < @ $~F $+ .z2.fidonet.org . > $*        $#ftn $@ FIDO_SMART_HOST $: $1 < @ $2 $3 .z2.fidonet.org > $4
R$* < @ $~F $+ .z3.fidonet.org . > $*        $#ftn $@ FIDO_SMART_HOST $: $1 < @ $2 $3 .z3.fidonet.org > $4
R$* < @ $~F $+ .z4.fidonet.org . > $*        $#ftn $@ FIDO_SMART_HOST $: $1 < @ $2 $3 .z4.fidonet.org > $4
R$* < @ $~F $+ .z5.fidonet.org . > $*        $#ftn $@ FIDO_SMART_HOST $: $1 < @ $2 $3 .z5.fidonet.org > $4
R$* < @ $~F $+ .z6.fidonet.org . > $*        $#ftn $@ FIDO_SMART_HOST $: $1 < @ $2 $3 .z6.fidonet.org > $4

# El resto de redes FTN se rutarán a través del FIDO_SMART_HOST
R$* < @ $+ .ftn . > $*                       $#ftn $@ FIDO_SMART_HOST $: $1 < @ $2 .ftn > $3

# Si no tienes conexión permanente a Inet, comenta esta línea
ifdef(`USE_FGATE',`',`#')R$* < @ $* > $*                     $#ftn $@ FIDO_SMART_HOST $: $1 % $2 < @ FIDO_GATEWAY > $3

Explico algunas de las opciones de este fichero.

En esta línea se le dice al sendmail que va a usar un mailer llamado ftn. Tiene que haber un fichero "ftn.m4" en el directorio "mailer" para este mailer. En Debian, con el paquete de ifmail viene un fichero "ifmail.m4", así que tienes que cambiar las ocurrencias de "ftn" por "ifmail". Esto lo puedes hacer fácilmente con sed:


sed s/ftn/ifmail/g ifmail.mc > ifmail.mc.nuevo

Para los que no tengan un fichero ifmail.m4 o ftn.m4 en su distribución de ifmail, aquí pongo el que uso yo:



PUSHDIVERT(-1)
ifdef(`FIDO_MAILER_FLAGS',, `define(`FIDO_MAILER_FLAGS', `8mDFMuSC')')
ifdef(`FIDO_MAILER_PATH',, `define(`FIDO_MAILER_PATH', /usr/lib/ifmail/ifmail)')
ifdef(`FIDO_MAILER_USER',, `define(`FIDO_MAILER_USER', `ftn:uucp')')
ifdef(`FIDO_MAILER_ARGS_H',, `define(`FIDO_MAILER_ARGS_H', `ifmail -r $h -g h $u')')
ifdef(`FIDO_MAILER_ARGS_C',, `define(`FIDO_MAILER_ARGS_C', `ifmail -r $h -g c $u')')
ifdef(`FIDO_MAILER_ARGS_B',, `define(`FIDO_MAILER_ARGS_B', `ifmail -b -r $h -g h $u')')
ifdef(`FIDO_MAILER_ARGS_P',, `define(`FIDO_MAILER_ARGS_P', `ifmail -l-3 -r $h -g h $u')')
POPDIVERT

#############################
# FIDO Mailer specification #
#############################

VERSIONID(`@(#)ftn.m4  1.01 (srtxg@f2219.n293.z2.fidonet.org) 7/7/97')

# normal ftn mailer, pkt as hold
Mftn,  P=FIDO_MAILER_PATH, F=FIDO_MAILER_FLAGS, S=11, R=21,
        _OPTINS(`FIDO_MAILER_CHARSET', `C=', `, ')U=FIDO_MAILER_USER,
        ifdef(`FIDO_MAILER_MAX', `M=FIDO_MAILER_MAX, ')A=FIDO_MAILER_ARGS_H

# This is for crash mail just in case you need it * USE WHITH CARE *
Mftn-crash,  P=FIDO_MAILER_PATH, F=FIDO_MAILER_FLAGS, S=11, R=21,
        _OPTINS(`FIDO_MAILER_CHARSET', `C=', `, ')U=FIDO_MAILER_USER,
        ifdef(`FIDO_MAILER_MAX', `M=FIDO_MAILER_MAX, ')A=FIDO_MAILER_ARGS_C

# This doesn't split messages when writting in pkt, of course the node
# receiving the pkt must be able to handle arbitrary size messages.
# if the other end uses ifmail too use this.
Mftn-big,  P=FIDO_MAILER_PATH, F=FIDO_MAILER_FLAGS, S=11, R=21,
        _OPTINS(`FIDO_MAILER_CHARSET', `C=', `, ')U=FIDO_MAILER_USER,
        ifdef(`FIDO_MAILER_MAX', `M=FIDO_MAILER_MAX, ')A=FIDO_MAILER_ARGS_B

# This one uses a "kludge verbosity" of level -3, that is nothing is kept
# from usenet/email infos.
Mftn-poor, P=FIDO_MAILER_PATH, F=FIDO_MAILER_FLAGS, S=11, R=21,
        _OPTINS(`FIDO_MAILER_CHARSET', `C=', `, ')U=FIDO_MAILER_USER,
        ifdef(`FIDO_MAILER_MAX', `M=FIDO_MAILER_MAX, ')A=FIDO_MAILER_ARGS_P

Está sacado, como tantas otras cosas, del paquete ifmail-2.14-tx8.8.tar.gz.

Estas tres líneas sirven para utilizar un fichero (/etc/mail/sendmail.cw en nuestro caso, aunque puedes poner el que quieras) en el que pondremos todos los nombres de nuestra máquina. La tercera línea ("GENERICS_DOMAIN_TABLE") en realidad es para indicar un fichero en el que aparecen todos los dominios a enmascarar; para nuestro caso, vamos a decirle que enmascare todos los dominios locales (porque, a menos que tengas una máquina conectada directamente a Inet, los nombres locales no serán reales). Por ejemplo, el mío es:


cheetah.darkland.es
p83.f105.n348.z2.fidonet.org
p76.f1.n348.z13.ficnet.org

Así, todo el correo dirigido a uno de estos dominios se entregará localmente.

Esto vale para crear un fichero (/etc/mail/mailertable, pero como antes, podemos escoger otro sitio) con "mailers". Es decir, que el correo dirigido a unos dominios que nosotros digamos se rutará a través de los mailers especificados. Mi fichero mailertable es éste:


.z13                            ftn:f1.n348.z13
ceu.fi.udc.es                   smtp:ceu.fi.udc.es
lucus.org                       smtp:lucus.org

Los dominios que empiezan por un punto (".") especifican cualquier subred de ese dominio, y en el caso de los dominios de redes FTN (fidonet.org), cualquier punto/nodo de esa red. Por ejemplo: con ".z13" estamos diciendo que cualquier mail (que en este caso será un net) a un punto o nodo de la zona 13 (FiCNet, con la forma "pXX.fY.n348.z13") será encaminado a través del nodo 13:348/1, que en formato Inet es f1.n348.z13. Esto sólo hace falta para rutas alternativas a las normales, ya que todo el correo, por defecto, se encaminará a través del smtp que hayas definido (en el caso de correo Inet) o a través de tu uplink (en el caso del correo para fidonet.org y demás redes FTN). Otro ejemplo: suponiendo que además de ser punto de Fido, eres punto de FiCNet y de SubNet:


.z13            ftn:f1.n348.z13
.z93            ftn:f1.n3481.z93

En realidad, en mi caso (y en el de la mayoría, me imagino) no harían falta estas especificaciones. El nodo 13:348/1 y mi uplink 2:348/105 son el mismo, FiC BBS; y por defecto, todo el correo FTN va a ir allí. Así que las mailertables sólo tienen un verdadero sentido cuando rutéis varias redes a distintos uplinks. En el resto de los casos, podéis pasar sin ellas. Sólo que me pareció una cosa interesante :-) Quizás no tanto para puntos, pero sí para nodos. (recordemos que en principio Ifmail está pensado para nodos, no para puntos)

Este fichero hay que compilarlo, para que el sendmail pueda leerlo. Para esto, sólo tenéis que hacer:


makemap hash mailertable < mailertable

(suponiendo que estáis en el directorio en el que está el fichero mailertable, claro)

Se creará un fichero mailertable.db, que es el que usará sendmail.

Esta línea no es para el correo Fido, sino más bien para el de Inet. Sirve para enmascarar el correo saliente con vuestra dirección de Inet, en vez de la dirección local. Supongamos que el usuario que usas es "robe" (como es mi caso :-)), y tu dirección de Internet es "rss-trgn@usa.net" (como también es mi caso :-)). Crearías un fichero /etc/mail/genericstable que tuviera esto:


robe    rss-trgn@usa.net

Y así, todo el correo que escribas con este usuario y que salga de tu máquina para Inet, será reescrito de tal forma que parezca que procede de rss-trgn@usa.net. Sí, también aparecerá así en el "From" del correo Fido que envíes, pero no te preocupes: ifmail se encargará de que el campo "Reply-To" vaya con tu dirección de punto, así que no habrá problema a la hora de responder a tus mensajes :-)

Este fichero hay que compilarlo, como el anterior:


makemap hash genericstable < genericstable

Estas dos líneas especifican que el mailer local será procmail. Si tienes instalado este programa, el correo será entregado por él. Esto tiene una ventaja: si usas procmail para filtrar el correo, no te hará falta más que crear un fichero ".procmailrc" con las recetas adecuadas en tu directorio, sin el ".forward" que haría falta en otro caso. Además, en las versiones 8.9.x de sendmail, el fichero .forward no está muy bien visto, con lo que te ahorrarías problemas si lo hicieras así. Que lo instales, vamos :-) Es algo extremadamente útil que todo el mundo ha instalado ya, ¿por qué no lo ibas a hacer tú? }:-) ;-)

Con esta línea, y si usáis Sendmail 8.9.x (mi caso), podéis controlar el correo de entrada, para rechazarlo en el caso de que provenga de spammers conocidos (o de alguien que no os caiga bien :-)). Esto se realiza mediante un fichero /etc/mail/access, que también controla aspectos de relay. Un fichero de ejemplo (el que me mandó P.S. O:-)) sería éste:



#
# allways accept those
#
postmaster@                     OK
abuse@                          OK
#
# domains we accept they relay trough us
#
z1.fidonet.org                  RELAY
z2.fidonet.org                  RELAY
z3.fidonet.org                  RELAY
z4.fidonet.org                  RELAY
z5.fidonet.org                  RELAY
z6.fidonet.org                  RELAY
ftn                             RELAY
#
# special mail to accept, despite their domains are bannished
#
auclairdelalune@hotmail.com     OK
mwibmer@hotmail.com             OK
#
# mail to reject
#
infobeat.com                    REJECT
magnumhosting.com               REJECT
net-vest.net                    REJECT
# cyberpromo.com [204.137.222.*]
# se puede dar un mensaje de error:
cyberpromo.com                  550 We don't accept mail from spammers
204.137.222                     550 We don't accept mail from spammers
# discard ni siquiera envia mensaje de error, lo hace desaparecer
# aunque yo prefiero dar un mensaje de error para hacerles saber que
# su basura no llega
Republica.Utocratica.de.Nowheresville   DISCARD
_                               DISCARD

Este fichero hay que compilarlo con makemap, como los demás:


makemap hash access < access

Esta línea permite usar un fichero en el que definiremos direcciones de Inet que corresponden a direcciones locales. Sirve para que el correo que dirijamos a nuestra dirección de Inet no salga al mailer y luego vuelva, sino que se entregue directamente en la máquina. Yo tengo esto:


rss-trgn@usa.net        robe

Y todo el correo que made a rss-trgn@usa.net no saldrá a Inet, sino que se entregará localmente al usuario robe (que soy yo). Otro uso que se me ocurre, pero no he probado, es poner ahí la dirección Mail.Delivery.Subsystem@<dirección de tu uplink>. Durante una semana o así, hubo un net que "rebotaba" constantemente entre mi uplink y mi máquina con una dirección parecida, y era rechazado por ambos extremos. Añadiendo una línea:


Mail.Delivery.Subsystem@f105.n348.z13.fidonet.org       postmaster

Se conseguiría que este tipo de correo fuera al postmaster, es decir, al root, y no molestara a mi ya atribulado Sysop :-) Pero bueno, como decía antes esto no lo he probado todavía ... y no tengo ganas de crear un pequeño caos para probarlo, sinceramente ;-)

En fin ... como antes, recomiendo encarecidamente que creéis un fichero como éste con vuestra dirección email. En una instalación de ifmail que he estado haciendo recientemente, sendmail buscaba esta dirección para entregar el netmail a mi usuario :-? Y claro, es mucho mejor que se entregue localmente en vez de tener que salir a Inet y luego volver. Pero seguro que es por algún fallo que tuve al configurar ifmail o sendmail, no porque en realidad haga falta todo esto O:-)

Después de todo esto, hay que compilar el fichero sendmail-ifmail.mc que habéis creado:


m4 sendmail-ifmail.mc > sendmail-ifmail.cf

Y luego, hay que copiarlo encima (o haced un enlace) del sendmail.cf actual (¡haced una copia de seguridad antes!), reiniciar el sendmail y empezar a hacer pruebas. Si no me he equivocado mucho, funcionará ;-)

De nuevo, agradezco a Pablo Saratxaga la atención y la ayuda que me ha brindado en la confección de este capítulo :-)

Nota: Este capítulo ha sido escrito por Roberto Suárez Soto, a quien podéis localizar para lo que sea en rss-trgn@usa.net.

3.4 Configuración de Ifmail

Vamos a tratar aquí qué partes de ifmail hay que tocar para hacer funcionar el NETmail. Luego nos meteremos con las áreas de ECHO. Paciencia.

Personalmente, si usáis RedHat os aconsejo que empecéis por instalaros el paquete rpm de ifmail (versiones tx) que podréis encontrar en cualquier mirror de sunsite.unc.edu. Si no usáis RedHat, aun os debo recomendar el ifmail versión tx en formato tar, ya que está mucho mejor preparado para FidoNet que el ifmail original. Una vez instalado podréis configurar vuestros ficheros, que estarán en /etc/ifmail.

Básicamente son dos los ficheros que hay que tocar:

El fichero config es el primero que hay que tocar. Creo que hay opciones obvias (logfile, debugfile) y no os las voy a explicar por eso. Tenéis otras que son del estilo de las de FrontDoor (o incluso más sencillas). Aquí os dejo un fichero ejemplo config comentado para que hagáis el vuestro.



# Fichero de configuracion de ifmail (ifmail+ifnews+ifcico)
# En esta version para RedHat, debe estar en /etc/ifmail/config

# Cualquier linea que empiece con un caracter '#' es un comentario

# Fichero de log
logfile         /var/log/ifmail/iflog

# Fichero para depuracion.
debugfile       /var/log/ifmail/ifdebug

# Nivel de informacion de depuracion. 0 Para ninguno. En pruebas, poner 4.
verbose         0

# Direccion principal de Fido
address         2:341/12.19

# AKAs:
address         93:341/12.19
# address               2:341/14.119

# Passwords de inicio de sesion EMSI y yoohoo.
password        2:341/12.19     SI_HOMBRE_COMO_QUE_TE_LA_VOY_A_DECIR

# Passwords para paquetes (no suelen usarse).
#packetpasswd   2:5929/6        AZERTY

# Alias del sistema. Para convertir nombres de usuario a nombres de Fido
# Por ejemplo, saber que un mensaje de 'jpgarcia' procede de
# Juan Perez Garcia.
sysalias        /etc/aliases

# Nombre completo del sistema (FQDN)
myfqdn          dragon.micasa.es

# Directorio para los paquetes y ficheros entrantes:
inbound         /var/spool/ifmail/inb
# Directorios para sesiones "listed" y "protected"
listinbound     /var/spool/ifmail/inb
protinbound     /var/spool/ifmail/inb

# Directorio para paquetes salientes.
outbound        /var/spool/ifmail/fidonet

# Directorio con los ficheros de "file-request" (de interes solo para
# quien gestione una BBS con este software).
public          /home/ftp/pub

# Fichero que establece correspondencia entre nombres de ficheros cortos
# y nombres con ruta completa. Opcion para sistemas que acepten "filereq"
# reqmap                /usr/local/lib/fnet/reqmap

# Directorio para nombres "magicos" de ficheros. Para sistemas con "filereq"
magic           /usr/lib/ifmail/magic

# Lista de nodos primaria. Se expande a extension de dia juliano (".NNN")
# automaticamente si es necesario.
nodelist        /var/spool/ifmail/nl.d/REGION34

# Lista de nodos para otros dominios. Aqui podemos meter la lista de puntos.
# Se incluye el nodo que genera dicha lista (2:341/14 en este momento).
nodelist        ptlstr34        2:341/14@fidonet

# Traducciones de dominios.
domtrans        .fidonet                .fidonet.org

# Base de datos de alias para las lineas ocultas
# ^aREPLYADDR y ^aREPLYTO
database        /var/spool/ifmail/ifdbm

# Fichero con numero de secuencia (usado para generar IDs unicos)
sequencer       /var/spool/ifmail/seq

# Fichero de areas de ECHO
areas           /etc/ifmail/Areas

# Nombres de grupos cuyos mensajes no se entregaran a Fido.
badgroup        relcom.ads.
badgroup        relcom.commerce.

# Limitacion en el numero de grupos que pueden aparecer en la cabecera
# Newsgroups. Si se excede, el articulo no se mandara a Fido. Si se omite
# la opcion, no supondra limite alguno.
#maxgroups      10

# Directorio con las tablas de traduccion de caracteres.
maptabdir       /etc/ifmail/maptabs

# Linea de comandos para entregar NETs con sendmail, y mensajes publicos
# con news (INN).
sendmail        /usr/lib/sendmail -f $F $T
rnews           /usr/bin/rnews

# Programa de desempaquetado
iftoss          /usr/lib/ifmail/iftoss

# Descompresores.
# $F se convierte en el nombre del fichero.
unzip           /usr/bin/unzip -Lojq $F
unarj           /usr/bin/unarj e $F
unlzh           /usr/bin/lha xiq $F
unarc           /usr/bin/unpack $F
unzoo           /usr/bin/zoo -extract $F
# unrar         /usr/bin/unrar e $F
unrar           /usr/local/bin/rar e $F

# Compresor. Yo uso RAR, a lo mejor te interesa el ZIP.
# $F es el nombre del fichero, $P es el nombre de los paquetes.
#packer         /usr/bin/zip -q9 $F $P
packer          /usr/local/bin/rar a $F $P

# Tama~no maximo de un paquete comprimido de correo. ifpack lo partira 
# en varios si este tama~no es superado.
maxfsize        500000

# Tama~no maximo de un paquete .pkt. Se partira en varios si se supera.
maxpsize        30000

# Tama~no maximo de un mensaje cuando se permite auto-fragmentacion de
# mensajes grandes.
maxmsize 12300

# Casos en los que no se aplican los limites de tama~no de paquete. El caso
# "m" se refiere a los Nets.
nonpacked       cm

# Logs de News, y base de datos temporal para lineas "seen-by"
newslog         /var/log/news/ifmail/
msgidbm         /tmp/ifmsgids

# Base de datos de traduccion MSGID <-> Message-ID para crear cabeceras
# References: correctas (util con lectores de news que manejen threads)
refdbm          /tmp/ref_db

# OPCIONES PARA EL MODEM Y DEFINICION DEL SISTEMA DE PUNTO
# Ver ejemplos incluidos con ifmail para mas detalle
#
# Aqui se incluye una configuracion basica para modems 14.4K
#

# Puerto del modem (nombre del dispositivo de /dev) y velocidad del puerto
ModemPort       modem:L38400

# Traduccion de telefonos desde las listas de nodos. Muy similar a la
# que se utiliza en FrontDoor.
PhoneTrans      34-     /
PhoneTrans              /       00

# Secuencias de inicio del modem (adaptar a tus necesidades)
ModemReset      AT&F\r
ModemDial               ATDT\T\r
# Si tienes acceso a otro nodo con alguna peculiaridad... (como yo :-) )
#ModemDial      (address 2:341/41) ATX2B9M0S7=60S11=60DT\T
ModemHangup     ATZ\r
ModemOK         OK
ModemConnect    CONNECT
ModemError      BUSY
ModemError      NO\sCARRIER
ModemError      NO\sDIAL
ModemError      RING\r
ModemError      ERROR

# Tiempos de expiracion, respectivamente de espera a mensajes OK y CONNECT
TimeoutReset    3
TimeoutConnect  70

# Delay in seconds before every call in "automatic" mode.  Ignored
# if explicit list of addresses specified in the command string.
DialDelay       0

# Datos EMSI para este nodo.
Name            Nombre del Punto
Location        Madrid - Spain
SysOp           Nombre del sysop
Phone           -Unpublished-
Speed           14400
Flags           V32,V42,V42B

3.5 ¿Enviamos un NET?

Seguro que estáis deseando de ver que lo que habéis configurado sirve para algo. Yo también: si no os funciona, pasar al siguiente capítulo sería inútil...

Bien, en principio, enviar un NET es tan simple como coger vuestro programa de correo preferido y escribirlo. Ya sabéis, utilizando una dirección de Fido al estilo Internet.

Una prueba que podéis hacer es mandarte un NET a ti mismo, para que os hagáis la idea de cómo funciona. Así que suponed que sois el punto 2:341/12.89 (o sea, un punto del mejor Boss que conozco ;-) ). Y supongamos que vuestro nombre es Juan Pérez.

Para enviar el NET, dirigid el mensaje a Juan.Perez@p89.f12.n341.z2.fidonet.org. Podrán pasar varias cosas:

  1. El mensaje ni se encola ni se devuelve, pero os sale en pantalla un mensaje tal que así: /etc/sendmail.cf: line 166: replacement $7 out of bounds. Normalmente, esto significa un error grave en el sendmail.cf. Revisad su contenido. Puede ocurrir que como separador se estén usando espacios en lugar de tabuladores.
  2. El mensaje os resulta devuelto, con un contenido así:
    
    From: MAILER-DAEMON (Mail Delivery Subsystem)
    Subject: Returned mail: Service unavailable
    
    [...]
    
       ----- The following addresses have delivery notifications -----
    Juan.Perez@p89.f12.n341.z2.fidonet.org  (unrecoverable error)
    
       ----- Transcript of session follows -----
    451 Cannot exec /usr/lib/ifmail/ifmail: No such file or directory
    554 Juan.Perez@p89.f12.n341.z2.fidonet.org... Service unavailable
    

    Eso quiere decir, bien que os habéis olvidado de instalar ifmail, o no lo habéis hecho correctamente (problemas de permisos, etc).
  3. El mensaje no se os es devuelto, pero se os queda en la cola de Internet (lo veréis porque aparece en el comando mailq, indicando que está encolado por algún fallo de la red, como Network unreachable). En este caso, revisad el fichero sendmail.cf, algo hay mal escrito, que evita la entrega de los mensajes de Fido a ifmail. ¡Ah!, después de arreglarlo, no os olvidéis de borrar la cola (ficheros de /var/spool/mqueue/) o de lo contrario, el mensaje anterior se acabará encaminando por las pasarelas Internet<->Fido que pululan por ahí (deberíais saber que su uso indiscriminado no es recomendable...).
  4. El mensaje no es devuelto, ni aparece en la cola de Internet. En este caso, empecemos por repasar el log de correo. Debe aparecer algo así:
    
    Apr 20 13:50:45 dragon sendmail[1723]: NAA01723: from=jperez, size=1912,
    class=0, pri=31912, nrcpts=1, msgid=<199704201150.NAA01723@dragon.micasa.es>,
    relay=f12.n341
    
    Apr 20 13:50:46 dragon sendmail[1728]: NAA01723: to=Juan.Perez@p89.f12.n341.z2.fidonet.org,
    ctladdr=jperez (9/13), delay=00:00:02, xdelay=00:00:01, mailer=fido, stat=Sent
    

    ¡Enhorabuena! Este log os indica que tu mensaje ha sido entregado (Stat=Sent) al relevo f12.n341 vía ifmail, o sea, que ha entrado en un paquete de Fido. Eso lo comprobaremos ahora.

Si habéis conseguido que se entregue el correo a ifmail, podéis comprobar que se ha creado un paquete mirando el directorio /var/spool/ifmail/fidonet. Allí deberíais encontrar un fichero con un nombre parecido a 0155000c.out. Si no aparece, puede que ifmail no haya podido escribir ahí por problemas de permisos, o que el fichero /etc/ifmail/config esté mal escrito. En este punto os será de ayuda echar un vistazo a los logs disponibles en /var/log/ifmail/.

Ahora podéis ver cómo ese paquete se convierte de nuevo en correo de Internet. Para ello, movedlo a /var/spool/ifmail/inb y ejecutad desde el usuario fnet (propietario de todos estos ficheros) el comando /usr/lib/ifmail/ifunpack. El mensaje deberá ser entregado de nuevo a sendmail, para el usuario de vuestra máquina cuyo nombre completo (campo gecos del fichero passwd) coincida con el destinatario del mensaje, o se encuentre en la base de datos ifdbm (ver la siguiente sección de este documento). Si ifunpack aparenta no hacer nada, probad a ejecutar cambiar la extensión del fichero (de .out a .pkt) en el directorio /var/spool/ifmail/inb y reejecutad ifunpack de nuevo. El comportamiento depende de la versión que hayáis instalado.

Una vez hechas estas pruebas, vamos a intentar llamar al Boss. Para ello, mandadle un mensaje como hemos hecho antes. A continuación, os recomiendo que copiéis el script ifpoll que viene en la documentación, en el directorio donde están los binarios de ifmail. Este script está para empaquetar los mensajes y llamar cíclicamente a tu Boss hasta conseguir una conexión.

Editad el fichero ifpoll, poniendo los datos de vuestro nodo. En particular, necesitaréis tocar las líneas siguientes (que he rellenado con los datos del sistema ficticio, punto de 2:341/12):

Antes de ejecutar, tenéis que compilar la lista de nodos. Coloca en /var/spool/ifmail/nl.d un par de ficheros de nodos y puntos recientes (REGION34.XXX y ptlstr34.YYY). Ejecuta, desde el usuario propietario de los ficheros de este directorio, el comando /usr/lib/ifmail/ifindex para compilarlos. Te generará un par de ficheros, index.dir e index.pag.

Os recuerdo que REGION34.XXX no es una nodelist verdadera, con lo que para que funcione correctamente, muy probablemente tendréis que poner al principio del fichero anterior, las siguientes líneas, para luego compilarlo con ifindex:


Zone,2,Europe_etc,Finland,Ron_Dwight,358-0-2983308,9600,CM,V32B,HST,V42B,XA
,999,I_Gate,Nobody,Nowhere,-Unpublished-,9600,CM
;

No os preocupéis por el teléfono del Gate de Europa: el encaminamiento previsto en esta configuración impedirá cualquier llamada que no sea a vuestro boss local.

A continuación, ejecutad ifpoll. Vigilad los logs del sistema. Empezarán a aparecer mensajes. Os muestro aquí un log de conexión correcta:


Apr  3 23:25:51 dragon ifcico[649]: calling 2:341/12@fidonet (Corben, phone 34-1-5702555)
Apr  3 23:25:51 dragon ifcico[649]: chat got "OK", continue
Apr  3 23:26:13 dragon ifcico[649]: chat got "CONNECT", continue
Apr  3 23:26:15 dragon ifcico[649]: start outbound EMSI session
Apr  3 23:26:16 dragon ifcico[649]: remote  address: 2:341/12@Fidonet
Apr  3 23:26:16 dragon ifcico[649]: remote  address: 2:34/777@Fidonet
Apr  3 23:26:16 dragon ifcico[649]: remote  address: 37:1/5001@TrekNet
Apr  3 23:26:16 dragon ifcico[649]: remote  address: 93:341/102@Subnet
Apr  3 23:26:16 dragon ifcico[649]: remote  address: 9:3410/23@Virnet
Apr  3 23:26:16 dragon ifcico[649]: remote  address: 9:3410/24@Virnet
Apr  3 23:26:16 dragon ifcico[649]: remote  address: 2:341/41@Fidonet
Apr  3 23:26:16 dragon ifcico[649]: remote  address: 37:1/5000@TrekNet
Apr  3 23:26:16 dragon ifcico[649]: remote password: SI_HOMBRE_COMO_QUE_TE_LA_VOY_A_DECIR
Apr  3 23:26:16 dragon ifcico[649]: remote     uses: FrontDoor [0c] version 2.20c.mL/BR000086
Apr  3 23:26:16 dragon ifcico[649]: remote   system: TIPTOP Gate R34 - TrekNet Gate (R34)
Apr  3 23:26:16 dragon ifcico[649]: remote location: Madrid !!!BASTA YA!!!
Apr  3 23:26:16 dragon ifcico[649]: remote operator: Enrique Lopez
Apr  3 23:26:16 dragon ifcico[649]: remote    phone: +341 5702555 341 5712437
Apr  3 23:26:16 dragon ifcico[649]: remote     baud: 28800
Apr  3 23:26:16 dragon ifcico[649]: remote    flags: V32B,V42B,V34,ARQ,FAX,CM,XA,LO
Apr  3 23:26:16 dragon ifcico[649]: remote tag: "FDREV" value: "[2MY4J]"
Apr  3 23:26:16 dragon ifcico[649]: remote     time: Apr 03 22:25:22
Apr  3 23:26:16 dragon ifcico[649]: start ZedZap send
Apr  3 23:26:19 dragon ifcico[649]: zmodem send: "0000015c.out" 2259 bytes
Apr  3 23:26:18 dragon ifcico[649]: zmodem send rc=0
Apr  3 23:26:18 dragon ifcico[649]: start ZedZap receive
Apr  3 23:26:19 dragon ifcico[649]: zmodem receive: "01165d15.pkt" 2259 bytes dated Apr 04 00:25:26 mode 100400
Apr  3 23:26:20 dragon ifcico[649]: received 2259 bytes in 1 seconds (2259 cps)
Apr  3 23:26:20 dragon ifcico[649]: zmodem receive: "49b0f5c0.mo0" 410408 bytes dated Apr 03 23:47:36 mode 100400
A

[...]
Apr  3 23:30:26 dragon ifcico[649]: zmodem receive rc=0
Apr  3 23:30:27 dragon ifcico[649]: got SIGHUP

Como véis, se parece mucho a un log de conexión de FrontDoor. Así que supongo que lo entenderéis.

Si todo va bien, en el log aparecerá, después de la llamada, la parte correspondiente al desempaquetado: vigilad el log, pues igual surge algún error. De momento, como no habéis configurado las news, todos los mensajes de ECHO se perderán, pero sí se entregarán los NETs. Todo esto lo veréis con claridad en los logs.

Mucho ojo: vuestro sistema es desde ahora mismo una pasarela entre Internet y FidoNet. O sea, si alguien envía un mensaje al usuario UUCP de vuestro sistema, ifmail entenderá que la primera línea del mensaje es un destinatario de Internet: como consecuencia, el mensaje lo mandará a sendmail para que lo encole para Internet.

Llegado a este punto, lo típico es contactar con el Boss para que compruebe si le ha llegado el NET, y si sus respuestas te llegan. Cuando lo consigas, será el momento de pasar al siguiente capítulo.

3.6 Acceso de otros usuarios al NET

Una de las ventajas de gestionar el correo de Fido desde Unix es la posibilidad de que varios usuarios del sisteman usen la dirección Fidonet. Por ejemplo, en mi sistema me pueden interesar las direcciones de fido, Juan Jose Amor,2:341/12.19 y Jose Gomez Diez, 2:341/12.19 (un amigo mío con cuenta en mi sistema; si queréis preguntarle algo dirigíos a su propio punto, 2:341/12.32).

El problema es establecer la correspondencia entre nombres de usuario de Fido (Jose Gomez Diez) y del sistema Unix (jfg o jjamor).

Existe un truco evidente para quien conozca sendmail: editar el fichero /etc/aliases para establecer la correspondencia entre el nombre de Fidonet y el usuario de Unix. No os olvidéis de ejecutar newaliases cuando editéis el fichero anterior.

Supongo que habrá algún otro método más, sin embargo el que más me gusta es el siguiente: ifmail mantiene una base de datos dbm en /var/spool/ifmail/ifdbm.*. Dicha base de datos establece la relación existente entre los nombres Fido y las direcciones de Internet. Cada vez que ifmail recibe por Internet (desde sendmail) un mensaje para Fido, obtiene del campo From: el nombre completo, si existe, y guarda la relación en la base de datos. Cuando se recibe un mensaje desde Fido a este nodo, se busca en la base de datos el nombre y si se encuentra, se entrega el mensaje al usuario correspondiente a través de sendmail.

Por lo tanto, la forma de establecer relaciones entre cuentas de Unix y usuarios del nodo de Fido es simple: enviar un mensaje a otro usuario de Fido desde esa cuenta. De este modo la base de datos recordará para siempre el nombre del remitente del mensaje y la cuenta Unix asociada.

3.7 Traducción automática de códigos ISO a IBM-PC

Como sabéis, en sistemas Unix se utiliza la tabla de códigos ISO-8859-1 para extender el ASCII a caracteres especiales del idioma, como acentos y eñes. En cambio, en sistemas basados en MS-DOS se suele utilizar la tabla de la ROM del IBM-PC.

Posteriormente contaré cómo programar automáticamente la conversión para las áreas de ECHO. Ahora os diré cómo conseguir ésta en los Nets, un asunto que tenía pendiente en otras versiones del documento.

Se trata de algo simple: vuestros Nets deben incluir una nueva cabecera, que diga: X-FTN-ORIGCHRS: IBMPC 2 (para añadir a vuestros mensajes nuevas cabeceras, usad algún programa de correo avanzado como Pine). Esta cabecerá hará que ifmail (versión tx) los convierta automáticamente de códigos ISO a IBM-PC. En caso de recibir mensajes de fuera, siempre que se incluya la cabecera de Fido CHRS: IBMPC 2 se producirá automáticamente una conversión a vuestra tabla ISO.


Página siguiente Página anterior Índice general