[LinuxFocus Image]
HomeIndexSearchLinksAbout Us[Navegation Bar]
  Neuigkeiten   Archiv   Firmen   Tips  

 

Erzeugen, Installieren und Konfigurieren von 

sendmail 8.8.x 

von John E. Gotts

Aus dem Englischen ins Deutsche übersetzt von Kai Debus

Angehängt ist ein Patch für ../../common/March1998/Makefile.Linux, der den TCP-Wrapper einschaltet und einige andere, harmlose Modifikationen durchführt. (Bei eingeschaltetem TCP-Wrapper kann man den Remote-Zugriff auf den sendmail-Dämon beschränken. Siehe hierfür die Man-Page für hosts_access(5)) (1). Nachdem der Patch unter dem Namen ../../common/March1998/sendmail.diff abgespeichert worden ist, kann man ihn von dem Verzeichnis unterhalb von sendmail-8.8.x aus einpflegen:
patch p0 < ../../common/March1998/sendmail.diff
Danach wechselt man in das src-Verzeichnis und startet
./makesendmail
Nun sollte sendmail ohne Probleme erzeugt werden.

Von nun an gehe ich davon aus, daß nur TCP/IP zum Versenden von elektronischer Post verwendet wird. Die Einbindung von UUCP-Unterstützung wird in diesem Dokument nicht besprochen.

Wir wechseln nun in das Verzeichnis cf/cf und erzeugen eine neue Datei, nämlich generic-linux2.mc:

divert(-1)

divert(0) dnl

VERSIONID (`@(#)generic-linux2.mc 8.8 (Local) 11/22/97´)

OSTYPE (linux) dnl

FEATURE (nouucp) dnl

MAILER (local) dnl

MAILER (smtp) dnl
Soll zusätzlich noch ein Masquerading verwendet werden, so müssen die folgenden Zeilen hinzugefügt werden:
MASQUERADE_AS () dnl

EXPOSED_USER (root) dnl
Dies bedeutet, daß alle emails, die von dieser Maschine aus versendet werden (außer die des Benutzers root), als Absender den Maschinennamen erhalten, den wir angeben. (Diese Option ist für Personen ohne permanenten Netzwerkzugang nützlich, z.B. bei Zugängen über SLIP oder PPP, und für Maschinen, die ihre IP-Adresse dynamisch über BOOTP oder DHCP zugewiesen bekommen.) Ab sendmail 8.8.8 ist EXPOSED_USER(root) zum Standard-Verhalten geworden und muß somit nicht mehr angegeben werden.

Wenn als lokaler Mail-Agent procmail verwendet werden soll (wie das bei Red Hat Linux üblich ist (und bei S.u.S.E, Anm.des dt. Übersetzers)), muß eine weitere Zeile eingefügt werden:

FEATURE (local_procmail) dnl
Nun wird aus dieser Datei das sendmail.cf - File erzeugt:
m4 ../m4/cf.m4 generic-linux2.mc > obj/sendmail.cf
Es kann notwendig sein, die Zeile
Cwlocalhost
in der Datei obj/sendmail.cf mit dem Doppelkreuz (#) auszukommentieren, da offenbar sonst bei neueren Linux-Distributionen einlaufende elektronische Briefe zerstört werden.

Nun sollte eine Sicherung von der originalen /etc/sendmail.cf -Datei gemacht werden und die neu erzeugte mit folgendem Befehl installiert werden:

install -m 644 -o 0 -g 0 obj/sendmail.cf /etc/sendmail.cf
              
Nachdem das neue sendmail.cf installiert ist, muß der sendmail-Dämon mit dem »kill«-Kommando beendet werden. Anschließend wechseln wir in das src-Verzeichnis und führen die folgende Zeile aus:
cd obj.Linux.*.* ; make install              
Hierdurch werden die sendmail-Binärdatei und die symbolischen Links installiert. Die Manual-Pages müssen von Hand installiert werden.

Wer sich nicht für die Verwendung von procmail entschieden hat, muß noch in das Hauptverzeichnis von sendmail wechseln und folgendes eingeben:

uudecode contrib/mail.local.linux

mv mail.local mail.local.old

tar zxvf mail.local.linux.tar.Z

cd mail.local

gcc -O3 -o mail.local mail.local.c

strip mail.local

install -m 2711 -o 0 -g mail mail.local /bin

install -m 644 -o 0 -g 0 mail.local.8 /usr/man/man8
Das Verzeichnis /var/spool/mail muß die Dateirechte 775 haben und dem Benutzer root und der Gruppe mail gehören. Die Email-Klienten müssen SGID mail sein (Mode 2711 und im Besitz von Benutzer root und Gruppe mail).

Nun sollte einem Restart des sendmail-Dämons nichts mehr im Wege stehen. Meiner wird wie folgt aufgerufen:

/usr/sbin/sendmail  -bd  -q1h
              
Hinweis: Red Hat startet sendmail ohne komplette Pfadangabe. Hierdurch wird verhindert, daß man an sendmail ein »HUP«-Signal senden kann, damit es seine Konfigurationsdatei neu liest. 
Um dieses zu beheben, muß man in der Startdatei (/etc/rc.d/init.d/sendmail.init) den Programmaufruf um den kompletten Pfad erweitern (also /usr/sbin/sendmail mit den entsprechenden Argumenten).

Benutzer ohne permanente Netzverbindung sollten im „startup-file“ sendmail so starten, daß Mails nur nach Aufforderung versendet werden (deferred mode):

/usr/sbin/sendmail -bd -o DeliveryMode=d
              
Um die zurückgehaltenen Mails zu versenden, muß man sendmail nach Aufbau der Netzwerkverbindung durch den Befehl
/usr/sbin/sendmail -q
              
wecken. Dies kann man bei bestehender Verbindung periodisch wiederholen (z.B. durch einen cron-Job).

An dieser Stelle sollte man die neue sendmail-Installation testen. Hier ist eine Möglichkeit, dies zu tun:

% telnet localhost smtp

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 ESMTP Sendmail 8.8.8/8.8.8 Fri, 22 Nov 1997 03:21:18 -0500
helo localhost
250 Hello jgotts@localhost [127.0.0.1], pleased to meet you
mail from: jgotts
250 jgotts... Sender ok
rcpt to: jgotts
250 jgotts... Recipient ok
data
354 Enter mail, end with "." on a line by itselv
This is a test.
.

250 DAA23297 Message accepted for delivery
Außerdem sollte man testen, ob sein(e) Email-Client(s) weiterhin arbeitet und daß man immer noch email von außerhalb empfangen kann.

Fußnote:
(1) Die Unterstützung für den TCP-Wrapper ist in sendmail 8.8.8 nicht in Ordnung. Einen Patch findet man unter http://www-personal.engin.umich.edu/~jgotts/linux/sendmail-8.8.8-tcp-wrappers-patch

Bei der Gelegenheit kann man sich auch gleich folgendes ansehen: http://www-personal.engin.umich.edu/~jgotts/linux/sendmail-8.8.8-core-dump-patch



 
Für weitere Informationen:
  • Lesen Sie die sendmail Manual Page 
© 1998 John E. Gotts
Diese Webseite wird unterhalten von Miguel A. Sepulveda und Franz-Josef Lücke.