Im Katalog suchen

Linux - Wegweiser für Netzwerker

Online-Version

Copyright © 2001 by O'Reilly Verlag GmbH & Co.KG

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser für Netzwerker oder wollen Sie es bestellen, dann klicken Sie bitte hier.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel



Die Dateien sendmail.cf und sendmail.mc

Der m4-Makroprozessor verarbeitet die Makro-Konfigurationsdatei des lokalen Systemadministrators und erzeugt daraus eine sendmail.cf-Datei. Diese Makro-Konfigurationsdatei werden wir im folgenden als sendmail.mc bezeichnen.

Der Konfigurationsprozeß besteht im Grunde nur darin, daß eine geeignete sendmail.mc-Datei erzeugt wird, die die von Ihnen gewünschte Konfiguration mittels Makros beschreibt. Diese Makros sind Ausdrücke, die der m4-Makroprozessor versteht und in die komplizierte sendmail.cf-Syntax übersetzt. Ein Makro besteht jeweils aus dem Makronamen (der Text in Großbuchstaben am Anfang), was mit einem Funktionsnamen in einer Programmiersprache vergleichbar ist, und aus einigen Parametern (der Text in Klammern), die für die Expandierung benutzt werden. Die Parameter können wörtlich in die sendmail.cf-Ausgabe übernommen werden, oder sie beeinflussen lediglich die weitere Makroverarbeitung.

Für eine minimale Konfiguration (UUCP oder SMTP, bei dem alle nichtlokalen Mails an einen direkt angeschlossenen Smart Host geleitet werden) reicht bereits ein 10- oder 15-Zeiler aus (ohne Kommentare).

Zwei sendmail.mc-Beispiele

Wenn Sie ein Administrator mehrerer verschiedener Mail-Hosts sind, werden Sie Ihre Konfigurationsdatei nicht sendmail.mc nennen, sondern der üblichen Praxis folgen und sie nach dem Hostnamen benennen, in unserem Fall z.B. vstout.m4. Der Name spielt keine Rolle, solange die Ausgabedatei sendmail.cf heißt. Wenn Sie für jeden Host einen eindeutigen Namen für die Konfigurationsdatei wählen, können Sie alle Konfigurationsdateien in einem einzelnen Verzeichnis unterbringen, was Ihnen die administrative Arbeit erleichtert. Lassen Sie uns jetzt einen Blick auf zwei Beispiel-Makro-Konfigura­tionsdateien werfen, damit wir wissen, wo es langgeht.

Die meisten sendmail-Konfigurationen benutzen heutzutage nur SMTP. sendmail für SMTP zu konfigurieren ist sehr einfach. Tabelle 18.1 geht von der Existenz eines DNS-Name-Servers aus, der für die Namensauflösungen zuständig ist und versucht, alle anfallenden Mails nur mit SMTP zu senden und zu empfangen.

Beispiel 18.1: Beispiel-Konfigurationsdatei vstout.smtp.m4

divert(-1) # # Beispiel-Konfigurationsdatei für vstout - nur SMTP # divert(0) VERSIONID(`@(#)sendmail.mc  8.9 (Linux) 01/10/98´) OSTYPE(`linux´) # # Unterstützung für das lokale Mail-Transportprotokoll und SMTP MAILER(`local´) MAILER(`smtp´) # FEATURE(rbl) FEATURE(access_db) # Ende

Eine sendmail.mc-Datei für vstout in der virtuellen Brauerei wird in Tabelle 18.2 gezeigt. vstout benutzt SMTP zur Kommunikation mit allen Hosts im Brauerei-LAN. Sie sehen die Gemeinsamkeiten mit der bereits beschriebenen allgemeinen Konfigurationsdatei, die nur SMTP unterstützt. Außerdem sendet die vstout-Konfiguration alle Mails für andere Bestimmungsorte über UUCP an moria, ihren Internet-Mail-Verteiler. Außerdem bewirkt die vstout-Konfiguration, daß alle Mails an andere Bestimmungsorte mittels UUCP an den Internet-Mail-Verteiler moria gesandt werden.

Beispiel 18.2: Beispiel-Konfigurationsdatei vstout.uucpsmtp.m4

divert(-1) # # Beispiel-Konfigurationsdatei für vstout # divert(0) VERSIONID(`@(#)sendmail.mc        8.7 (Linux) 3/5/96´) OSTYPE(`linux´) dnl # moria ist unser Smart Host und benutzt den "uucp-new-Transport". define(`SMART_HOST´, `uucp-new:moria´) dnl # Unterstützung für lokale, SMTP- und UUCP-Mail-Transportprotokolle. MAILER(`local´) MAILER(`smtp´) MAILER(`uucp´) LOCAL_NET_CONFIG # Diese Regel stellt sicher, daß alle lokalen Mails mittels SMTP # zugestellt werden. Alles andere läuft über den Smart Host. R$* < @ $* .$m. > $*        $#smtp $@ $2.$m. $: $1 < @ $2.$m. > $3 dnl # FEATURE(rbl) FEATURE(access_db) # Ende

Wenn Sie diese beiden Konfigurationen vergleichen, können Sie herausfinden, welchen Zwecken die Konfigurationsparameter dienen. Wir besprechen sie alle in Kürze.

Häufig genutzte Parameter in sendmail.mc

Einige Einträge in der sendmail.mc-Datei werden immer wieder benötigt, andere können entfallen, wenn Sie mit den Standardvorgaben zufrieden sind. Die Definitionen in sendmail.mc nimmt man im allgemeinen in folgender Reihenfolge vor:

  1. VERSIONID

  2. OSTYPE

  3. DOMAIN

  4. FEATURE

  5. Lokale Makrodefinitionen

  6. MAILER

  7. LOCAL_*-Regelsätze

Alle diese Definitionen besprechen wir der Reihe nach in den folgenden Abschnitten. Für die Erläuterungen greifen wir gegebenenfalls auf unsere Beispiele in Tabelle 18.1 und Tabelle 18.2 zurück.

Kommentare

Alle Zeilen in der Eingabedatei sendmail.mc, die mit dem Hashzeichen (#) beginnen, werden von m4 nicht analysiert, sondern unverändert in die Ausgabedatei sendmail.cf übernommen. Sie können damit Kommentare zu Konfigurationsdetails angeben, die sowohl in der Eingabe- als auch in der Ausgabedatei erscheinen.

Für Kommentare in der sendmail.mc-Datei, die nicht in sendmail.cf erscheinen sollen, benutzen Sie die m4-Schlüsselwörter divert und dnl. Mit divert(-1) läßt sich die Ausgabe vollständig unterbinden und mit divert(0) wieder freischalten; alle dazwischenliegenden Ausgabezeilen werden ignoriert. In unserem Beispiel haben wir diesen Befehl benutzt, um einen Kommentar einzufügen, der nur in sendmail.mc erscheint. Um dasselbe für eine einzelne Zeile zu erreichen, benutzen Sie dnl. Damit wird der Bereich vom Beginn des Wortes “dnl” bis zum (in der gleichen Zeile) folgenden Zeilenende gelöscht. Auch das haben wir in unserem Beispiel benutzt.

Nun folgen die Standard-Features von m4. Mehr darüber erfahren Sie in den Manpages.

VERSIONID und OSTYPE

VERSIONID(`@(#)sendmail.mc  8.9 (Linux) 01/10/98´)
Das Makro VERSIONID ist optional und nützlich zur Aufzeichnung der aktuellen Version der Sendmail-Konfiguration in der sendmail.cf-Datei. Dieser Option werden Sie oft begegnen, und wir können sie auch nur empfehlen. Wie auch immer, Sie sollten grundsätzlich folgendes mit angeben:

OSTYPE(`linux´)
Das ist die vielleicht wichtigste Definition. Das OSTYPE-Makro bewirkt, daß eine Datei mit diversen Definitionen eingebunden wird, die sinnvolle Standardvorgaben für Ihr Betriebssystem enthalten. Die meisten Definitionen in dieser Makrodatei legen die Verzeichnisse verschiedener Konfigurationsdateien fest, dazu Verzeichnisse und Argumente für Mail-Programme sowie Verzeichnisse, in denen sendmail die Nachrichten abspeichert. Der Standard-Quellcode von sendmail enthält unter anderem eine solche Datei für Linux, welche in unserem vorigen Beispiel eingebunden würde. Einige Linux-Distributionen, insbesondere Debian, enthalten eine eigene Definitionsdatei, die vollständig Linux-FHS-konform ist. Wenn Ihre Distribution auch eine solche Datei enthält, sollten Sie vielleicht lieber diese benutzen als die vorgegebene.

Die OSTYPE-Definition sollte in Ihrer sendmail.mc-Datei möglichst ganz am Anfang erscheinen. Viele andere Definitionen hängen von dieser Option ab.

DOMAIN

Das DOMAIN-Makro ist dann nützlich, wenn Sie eine Vielzahl von Maschinen im gleichen Netzwerk einheitlich konfigurieren wollen. Wenn Sie es nur mit wenigen Hosts zu tun haben, ist der Aufwand vielleicht etwas zu hoch. Die Konfiguration betrifft normalerweise Einträge wie die Namen von Mail-Verteilern oder -Hubs, die alle Hosts Ihres Netzwerks benutzen.

Die Standardinstallation enthält ein Verzeichnis mit m4-Makro-Templates, mit denen der Konfigurationsprozeß in Gang gebracht wird. Dieses Verzeichnis ist normalerweise /usr/share/sendmail.cf oder so ähnlich. Darin befindet sich ein Unterverzeichnis namens domain, das domainspezifische Konfigurations-Templates enthält. Um das DOMAIN-Makro anzuwenden, müssen Sie Ihre eigene Makrodatei erzeugen, die die für Ihr System erforderlichen Standarddefinitionen enthält, und sie im Unterverzeichnis domain abspeichern. Im allgemeinen geben Sie hier nur diejenigen Makrodefinitionen an, die ausschließlich für Ihre Domain gelten, zum Beispiel Definitionen von Smart Hosts oder Mail-Verteilern. Sie sind aber nicht darauf beschränkt.

Der Quellcode von sendmail enthält eine Reihe von beispielhaften Domain-Makro­dateien, die Sie für Ihre eigenen Zwecke anpassen können.

Wenn Sie Ihre Domain-Makrodatei als /usr/share/sendmail.cf/domain/vbrew.m4 gespeichert haben, binden Sie Definitionen in Ihrer sendmail.mc wie folgt ein:

DOMAIN(`vbrew´)

FEATURE

Mit dem FEATURE-Makro binden Sie vordefinierte sendmail-Features in Ihre Konfiguration ein. Diese Features erleichtern die Anwendung der unterstützten Konfigurationen ungemein. Es gibt viele davon; in diesem Kapitel gehen wir allerdings nur auf einige besonders nützliche und wichtige ein. Umfangreiche Informationen über die verfügbaren Features finden Sie in der Datei README im Unterverzeichnis cf des Quellcode-Archivs.

Um eines der aufgeführten Features anzuwenden, fügen Sie eine Zeile wie die folgende in Ihre sendmail.mc ein:

FEATURE(name)
Dabei bezeichnet name den Namen des Features. Für einige Features gibt es einen optionalen Parameter. Wenn Sie einen anderen Vorgabewert benutzen wollen, sollten Sie einen Eintrag folgender Form verwenden:
FEATURE(name, param)
Dabei bezeichnet param den zu übergebenden Parameter.

Lokale Makrodefinitionen

Die Standard-Makro-Konfigurationsdateien von sendmail enthalten eine Fülle von Variablen, mit denen Sie Ihre Konfiguration anpassen können. Sie werden als lokale Makrodefinitionen bezeichnet. Viele davon sind in der README-Datei im Unterverzeichnis cf des sendmail-Quellcode-Archivs enthalten.

In der Regel rufen Sie diese lokalen Makrodefinitionen auf, indem Sie ihren Namen angeben sowie ein Argument, das den Wert repräsentiert, den Sie in die vom Makro verwendete Variable eintragen wollen. Einige der geläufigeren lokalen Makrodefinitionen erkunden wir in den Beispielen, die wir später in diesem Kapitel vorstellen.

Definition von Mail-Transportprotokollen

Wenn Sie sendmail dazu bringen wollen, Mails auf irgendeine andere Weise als lokal zu transportieren, müssen Sie ihm ein Transportprotokoll angeben. Mit dem MAILER-Makro ist das ganz einfach. Die aktuelle sendmail-Version unterstützt eine Vielzahl von Mail-Transportprotokollen. Einige von ihnen befinden sich noch im experimentellen Stadium, andere werden eher selten genutzt.

In unserem Netzwerk brauchen wir SMTP, um Mails zwischen den Hosts unseres LANs zu transportieren, und UUCP, um Mails von bzw. zu unserem Smart Host zu übertragen. Dazu geben wir einfach beide Protokolle smtp und uucp an. Der local-Mail-Transport ist standardmäßig enthalten, kann aber auf Wunsch zur Verdeutlichung trotzdem definiert werden. Wenn Sie sowohl smtp als auch uucp in Ihrer Konfiguration angeben, müssen Sie den smtp-Mailer immer zuerst definieren.

Die geläufigeren Transportprotokolle, die Sie mit dem MAILER-Makro definieren können, sind in der folgenden Liste aufgeführt:

local

Dieser Transport umfaßt sowohl den lokalen Mail-Verteiler, mit dem Mails in die Mailbox der Benutzer auf dieser Maschine gesendet werden, als auch den prog-Mailer, mit dem Nachrichten an lokale Programme gesendet werden. Dieser Transport ist standardmäßig enthalten.

smtp

Dieser Transport implementiert das Simple Mail Transport Protocol (SMTP), das häufigste im Internet eingesetzte Transportmittel für E-Mail. Wenn Sie diesen Transport einbinden, werden insgesamt vier Mailer konfiguriert: smtp (basic SMTP), esmtp (Extended SMTP), smtp8 (8bit binary clean SMTP) und relay (speziell entwickelt für die Weiterleitung von Nachrichten zwischen Hosts).

uucp

Der uucp-Transport bietet Unterstützung für zwei Mailer: uucp-old, das traditionelle UUCP, und uucp-new, das in einem Transfer gleich mehrere Empfänger bedienen kann.

usenet

Mit diesem Mailer können Sie Mail-Nachrichten direkt an Usenet-artige News-Netzwerke senden. Jede lokale Nachricht, die an eine Adresse der Domain news.group.usenet gerichtet ist, wird an das News-Netzwerk der Newsgruppe news.group weitergereicht.

fax

Wenn Sie die HylaFAX-Software installiert haben, können Sie mit diesem Mailer direkt E-Mails an sie senden. Damit können Sie ein E-Mail-Fax-Gateway aufbauen. Als dieses Buch geschrieben wurde, befand sich dieses Feature noch im Experimentierstadium. Mehr Informationen erhalten Sie unter http://www.vix.com/hylafax/.

Es gibt auch noch andere Mail-Protokolle wie pop, procmail, mail11, phquery und cyrus. Sie sind alle nützlich, aber nicht sehr verbreitet. Wenn sie Ihre Neugier geweckt haben, können Sie darüber im sendmail-Buch oder in der Dokumentation zum Quellcode nachlesen.

Mail-Routing für lokale Hosts konfigurieren

Die Konfiguration für die virtuelle Brauerei ist vielleicht komplizierter als bei vielen anderen Systemen. Die meisten Systeme benutzen nur SMTP und brauchen sich mit UUCP überhaupt nicht auseinanderzusetzen. In unserer Konfiguration haben wir einen “Smart Host” definiert, der für alle ausgehenden Mails zuständig ist. Da wir in unserem lokalen Netzwerk nur SMTP benutzen, müssen wir sendmail darüber in Kenntnis setzen, daß die lokalen Mails nicht über den Smart Host gesendet werden sollen. Mit dem Makro LOCAL_NET_CONFIG können Sie sendmail-Regeln direkt in die erzeugte sendmail.cf einfügen, um festzulegen, wie die lokalen Mails verarbeitet werden sollen. Auf das Überschreiben von Regeln gehen wir später noch ein. Im Moment sollten Sie einfach akzeptieren, daß die Regel, die wir in unserem Beispiel angegeben haben, festlegt, daß alle an die Hosts der Domain vbrew.com gerichteten E-Mails mittels SMTP direkt an die Zielhosts zugestellt werden.





vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel


Weitere Informationen zum Linux - Wegweiser für Netzwerker

Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center


O'Reilly Home|O'Reilly-Partnerbuchhandlungen|Bestellinformationen
Kontakt|Über O'Reilly|Datenschutz

© 2001, O'Reilly Verlag