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
|