Wenn Du Sendmail installierst, solltest Du besonders darauf achten,
daß Du den kompletten Satz an Configurations-Files installierst,
welcher sich bei Slackware in dem Paket smailcnf.tgz
versteckt.
Diese Configurations-Files finden sich in einem Verzeichnisbaum unter
/usr/src/sendmail/cf
. In diesem Verzeichnis sollte sich auch
ein knapp 50KB großes README befinden, daß die neue
Konfigurationsmethode beschreibt.
Obwohl Sendmail über ein gewöhnlich gut 20KB großes
Configurations-File (/etc/sendmail.cf
) gesteuert wird, mußt
man dieses File nicht selber schreiben (das denken nämlich die meisten
Leute, die von Sendmail abgeschreckt werden). Vielmehr benötigt man
den Macroprozessor M4, und ein kleines Konfigurationsfile (mc-File) in
/usr/src/sendmail/cf/cf
. M4 erzeugt dann aus dem mc-File und
den anderen (vom User normalerweise nicht zu ändernden) Config-Files
das sendmail.cf
-File.
Zunächst einmal muß FidoGate allerdings noch bekannt gemacht werden.
Hierzu muß das File /usr/src/sendmail/cf/mailer/ftn.m4
mit
folgendem Inhalt angelegt werden:
PUSHDIVERT(-1)
#
# /usr/src/sendmail/cf/mailer/ftn.m4
#
# FIDOGATE FTN mailer for sendmail V8
#
# MAILER(smtp) and MAILER(uucp) must be included!
#
ifdef(`FTN_MAILER_PATH',, `define(`FTN_MAILER_PATH',
/usr/local/lib/fidogate/rfc2ftn)')
ifdef(`FTN_MAILER_ARGS',, `define(`FTN_MAILER_ARGS', `rfc2ftn -w normal $u')')
ifdef(`FTN_MAILER_FLAGS',, `define(`FTN_MAILER_FLAGS', `')')
ifdef(`FTN_MAX_SIZE',, `define(`FTN_MAX_SIZE', 100000)')
POPDIVERT
#####################################
### FTN Mailer specification ###
#####################################
VERSIONID(`ftn.m4 V1.5')
ifdef(`_MAILER_smtp_',
`# FIDOGATE mailer
Mftn, P=FTN_MAILER_PATH, F=CONCAT(mDFMhu, FTN_MAILER_FLAGS),
S=52/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'),
A=FTN_MAILER_ARGS
')
Wie man sieht, ist die Konfiguration zur Verwendung von rfc2ftn nicht allzu aufwendig, aber was da genau passiert, braucht uns auch nicht zu kümmern, wir verwenden den eben definierten Mailer "ftn" jetzt einfach, wie die vordefinierten Mailer "smtp", "uucp" etc.
Kommen wir also nun zur Konfiguration des mc-Files. Ich habe es
spinnaker.mc
genannt, aber der Name tut nichts zur Sachen, das
File sollte nur in /usr/src/sendmail/cf/cf
liegen. spinnaker.mc
sieht bei mir so aus:
# /usr/src/sendmail/cf/cf/spinnaker.mc
#
# sendmail V8 configuration for spinnaker.rhein.de
# using UUCP and FidoGate
#
include(`../m4/cf.m4')
VERSIONID(`spinnaker.mc V1.16')
OSTYPE(linux)dnl
define(`confUSE_ERRORS_TO', `True')dnl
define(`confCOPY_ERRORS_TO', `postmaster')dnl
define(`confMIME_FORMAT_ERRORS', `False')dnl
FEATURE(notsticky)dnl
FEATURE(mailertable,hash -o /etc/sendmail/mailertable)dnl
FEATURE(always_add_domain)dnl
FEATURE(nodns)dnl
FEATURE(nocanonify)dnl
MAILER(local)dnl
MAILER(ftn)dnl
MAILER(smtp)dnl
MAILER(uucp)dnl
Cwspi spi.rhein.de
Cwp13 p13.flokiste.fido.de
Cwp13.f111.n2450.z2.fido.sub.de
Cwp13.f64.n100.z21.ger.sub.de
# define(`SMART_HOST', uucp-dom:rhein)
define(`SMART_HOST', ftn:f4.n5000.z2.fido.de)
LOCAL_RULE_3
# Route fidonet.org and fido.sub.org via FTN!
R$* < $* z2.fidonet.org > $* $1 < $2 z2.fido.sub.de > $3
R$* < $* fido.sub.org > $* $1 < $2 fido.sub.de > $3
Hier wird zunächst das Betriebssystem (Linux) definiert, anschließend
wird definiert, daß alle MAILERDAEMON-Mails auch an postmaster
geschickt werden, damit ich Fehler schnell finden und beheben kann.
Anschließend werden einige Optionen angegeben, die meine genaue
Konfiguration angeben, die Du aber so übernehmen kannst. Weiterhin
werden die Mailer "local" (für Mails an User auf dem gleichen Rechner,
welche mittels deliver ausgeliefert werden, das bei Slackware im
Sendmail-Paket enthalten ist), "ftn" (Fido-compatible Netze via
FidoGate), "smtp" (Transport über das Online-Mail-Protokoll SMTP) und
"uucp" (Transport per UUCP) definiert. Die letzten beiden sind für ein
System, das nur per FidoGate am Internet hängt nicht nötig, aber der
Mailer "ftn" basiert auf ihnen (nur so konnten wir das ftn.m4 so kurz
halten). In den mit Cw
beginnenden Zeilen werden jetzt noch
diverse Namen für meinen Rechner definiert.
Mit
define(`SMART_HOST', ftn:f4.n5000.z2.fido.de)
wird alle Mail, die nicht schon anders transportiert wird via FidoGate
an meinen fido.de-Uplink geschickt. Wenn Du einen UUCP-Uplink hast,
kannst Du diese Zeile durch
define(`SMART_HOST', uucp-dom:rhein)
ersetzen, dabei wird alles zu meinem UUCP-Uplink rhein geschickt.
Zum Ende von spinnaker.mc
habe ich noch ein besonderes Schmankerl
eingebaut:
LOCAL_RULE_3
# Route fidonet.org and fido.sub.org via FTN!
R$* < $* z2.fidonet.org > $* $1 < $2 z2.fido.sub.de > $3
R$* < $* fido.sub.org > $* $1 < $2 fido.sub.de > $3
Hier wird z2.fidonet.org
in z2.fido.sub.de
und
fido.sub.org
in fido.sub.de
umgemappt, so daß alle
Fido-Mails an die diversen Fido-Domains nach fido.sub.de
geschickt werden, was dann per FTN (statt per UUCP o.ä.) verschickt
wird. Dabei sollte man darauf achten, daß zwischen $*
und
$1
mindestens ein TAB stehen sollte (nicht nur Blanks).
Hierzu wird das oben definierte File
/etc/sendmail/mailertable
benötigt. In diesem File werden
"Ausnahmen" vom Default-Routing angegeben, so z.B. auch das Routing
über Fido.
.fido.sub.de ftn:f111.n2450.z2.fido.sub.de
.fido.de ftn:f111.n2450.z2.fido.sub.de
.ger.sub.de ftn:f64.n100.z21.ger.sub.de
.z242.fido.de ftn:f4.n5000.z242.fido.de
Wie man sieht werden alle Fido-Mails per ftn transportiert. Diese
Mailertable muß nun noch nach jeder Änderung in eine Datenbank
compiliert werden. Hierzu gibt man im Verzeichnis
/etc/sendmail
einfach folgendes Kommando ein:
makemap hash mailertable.db < mailertable
Sollte das die Fehlermeldung "makemap: Type hash not supported in this
version" ausgegeben werden, hast Du vermutlich Slackware 3.0
installiert, welche aus mir unerklärlichen Gründen den Typ hash nicht
verkraftet. Abilfe schafft das alternative Kommando
makemap dbm mailertable < mailertable
im selben Verzeichnis. Jetzt mußt Du allerdings auch
spinnaker.mc
ändern, damit dbm
statt hash
von sendmail
erkannt wird. Du trägst dort jetzt in der mailertable-Zeile folgendes
ein:
FEATURE(mailertable,dbm -o /etc/sendmail/mailertable)dnl
Dann sollte es keine Probleme mehr geben.
Nachdem spinnaker.mc
jetzt fertig editiert ist, können wir daraus
sendmail.cf
erzeugen. Hierzu wechselt man ins Verzeichnis
/usr/src/sendmail/cf/cf
und gibt dort pmake spinnaker.cf
ein. Daraufhin wird /usr/src/sendmail/cf/cf/obj/spinnaker.cf
erstellt, welches man nach nach /etc/sendmail.cf
schiebt und
schon ist die Konfiguration fertig. Falls pmake nicht installiert sein
sollte kann man stattdessen auch folgendes eingeben:
m4 spinnaker.mc > obj/spinnaker.cf
Abschließend mußt Du noch das ein Alias-File anlegen:
#
# /etc/aliases
#
# compile with
# newaliases
#
nobody: /dev/null
support: roland
admin: roland
operator: roland
Roland_Rosenfeld: roland
Roland.Rosenfeld: roland
postmaster: roland
faxadmin: roland
usenet: roland
sysop: roland
rosenfel: roland
rosenfeld: roland
roro: roland
uucp: roland
news: roland
Dieses File muß nach jeder Änderung mid dem Kommando newaliases
in eine Datenbank compiliert werden.
Nun muß Sendmail nur noch als Daemon gestartet werden, was mithilfe des Kommandos
/usr/sbin/sendmail -bd -q20m
in /etc/rc.d/rc.local
geschieht. Bei vielen Systemen ist
selbiges auch schon in /etc/rc.d/rc.M
angegeben, was
ebenfalls möglich ist. Alternativ kann man sendmail auch per Cron
starten und den inetd auf dem Port lauschen lassen. Hierzu trägt man
in die Crontab des Users root folgendes zusätzlich ein:
*/20 * * * * /usr/sbin/sendmail -q
und fügt in /etc/inetd.conf
die Zeile
smtp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/sendmail -bs
Anschließend das killall -1 inetd
nicht vergessen, um
inetd.conf
neu einzulesen.
Sendmail schreibt seine Logmessages per syslog. Hierzu empfiehlt es
sich, folgenden Eintrag in /etc/syslog.conf
aufzunehmen:
mail.* /var/log/mail
Nicht vergessen, den syslogd
nach dieser Änderung mit
killall -1
behandeln, wie schon in der
Konfiguration von ificio beschrieben.