Original in fr John Perr
fr to en: John Perr
en to de: Ralf Spenneberg
John verwendet Linux seit 1994; er ist einer der Editoren der franz�sischen Ausgabe des LinuxFocus.
Dieser Artikel erkl�rt die Konfiguration von Sendmail und
Fetchmail auf einem lokalen Rechner der �ber eine PPP
Verbindung mit dem Internet kommuniziert. Eine derartige
Konfiguration erlaubt die Verwendung jedes UNIX E-mail-Clients
(nicht nur Netscape). Bei jedem Aufbau einer PPP Verbindung werden
die Nachrichten ausgetauscht.
Damit auf dem Linux Rechner �berhaupt E-mails verwaltet
werden k�nnen, ben�tigt man einen Mail Transfer Agent
(MTA). Der bekannteste ist sicherlich Sendmail, aber es gibt eine
Reihe weiterer wie zum Beispiel qmail, welcher schneller und
einfacher zu konfigurieren ist, oder exim, der in Standard Debian
Konfigurationen enthalten ist. Wir werden uns in diesem Artikel
aber auf Sendmail beschr�nken und das Konfigurationskit der
Berkley Universit�t von Eric Allman verwenden.
Um die E-mails, die f�r uns bei unserem Internet Service
Provider (ISP) lagern abzuholen, ben�tigen wir
zus�tzlich Fetchmail. Fetchmail wird diese E-mails abholen
und an das lokale Sendmail zur Weiterverarbeitung und Einordnung in
die lokalen Mailboxen �bergeben. Fetchmail kann unter anderem
f�r diese Aufgabe die Protokolle pop-3 oder imap
einsetzen.
Zur Konfiguration von Sendmail ist die Installation folgender Pakete erforderlich (rpm Format):
In Abh�ngigkeit der verwendeten Distribution k�nnen sich die Namen leicht unterscheiden. Die Versionsnummern k�nnen ebenfalls abweichen. Tats�chlich erforderlich sind die ersten beiden Pakete.(Anmerkung des �bersetzers: Aktuell ist Sendmail 8.10. Es sollte mindestens Sendmail 8.9 installiert werden um die neuen Sicherheitsfeatures zu unterst�tzen)
Am einfachsten erfolgt nun die Konfiguration von Sendmail in den folgenden Schritten:
/usr/lib/sendmail-cf/cf/config.mc
mit folgendem
Inhalt:
# start of config.mcinclude(`../m4/cf.m4')dnl OSTYPE(`linux')dnl define(`SMTP_MAILER_FLAGS', `e9')dnl FEATURE(redirect)dnl FEATURE(nocanonify)dnl FEATURE(always_add_domain)dnl FEATURE(local_procmail)dnl GENERICS_DOMAIN(localhost.localdomain localhost localhost) FEATURE(genericstable)FEATURE(masquerade_envelope)dnl define(`confCF_VERSION',`dede's cf - 22/05/98')dnl define(`confCON_EXPENSIVE',`True')dnl define(`confME_TOO',`True')dnl define(`confCOPY_ERRORS_TO',`Postmaster')dnl define(`confDEF_CHAR_SET',`ISO-8859-1')dnl define(`confMIME_FORMAT_ERRORS',`True')dnl define(`SMART_HOST',`smtp8:[smtp.isp.net]')dnl define(`confTO_QUEUEWARN',`24h') MAILER(local) MAILER(smtp) # End of config.mc |
/etc/genericstable
:
dede: [email protected] root: [email protected] news: [email protected] |
/etc/alias
folgende Eintr�ge existieren:
MAILER-DAEMON: postmaster postmaster: root |
/etc/nsswitch.conf
wie folgt:
passwd: files shadow: files group: files hosts: files dns services: files networks: files protocols: files rpc: files ethers: files netmasks: files bootparams: files netgroup: publickey: automount: files aliases: files |
/etc/sendmail.cf
mit:m4 config.mc > /etc/sendmail.cf
-rw------- 1 root root 26468 mai 12 22:52
/etc/sendmail.cf
/usr/bin/sendmail -bi -oA/etc/genericstable
/etc/genericstable.db
erzeugt
werden.newaliases
/etc/hosts
sollte eine der folgenden
Zeile �hnliche Zeile enthalten:127.0.0.1 localhost.localdomain localhost
localhost
kill `head -1 /var/run/sendmail.pid`
/usr/bin/sendmail -bd -os
Damit ist die Konfiguration von Sendmail abgeschlossen. Nun
sollte die Funktionsf�higkeit �berpr�ft
werden:
Wir erzeugen eine Datei test.mail mit folgendem Inhalt:
Subject: Lokaler Test (leere Zeile) |
/usr/bin/sendmail -v dede < test.mail
Die folgenden Zeilen sollten angezeigt werden:
dede... Connecting to localdede... Sent
Nun l��t sich durch einen Aufruf von mail oder einem anderem E-mail Client (nicht Netscape) die Ankunft der E-mail kontrollieren.
Damit nun Netscape lokale E-mail liest konfigurieren wir es wie folgt:
Edit/Preferences/Mail & Groups/Mail
Server
localhost.localdomain
als
Outgoing mail (SMTP) server
movemail/built-in
als Mail
server type
/var/spool/mail
mit chmod 1777
/var/spool/mail
.Von nun an wird Netscape die E-mails direkt von dem PC empfangen, selbst wenn dieser nicht mit dem Internet verbunden ist. Nat�rlich lassen sich auch andere E-mail-Clients einsetzen, wie zum Beispiel XFmail, emacs, mutt, pine usw..
Bevor wir nun unseren E-mail Server im Internet ausprobieren,
m�ssen wir Fetchmail konfigurieren, damit es die f�r uns
bei unserem Provider gespeicherten E-mails abholt: Wir erzeugen eine
Datei .fetchmailrc in /home/dede:
poll pop.isp.net protocol POP3 user toto is dede password XXXXXXX |
Dabei sind toto und XXXXX die Anmeldekennung und das Kennwort
unseres E-mail Kontos bei pop.isp.net. Falls wir mehr als eine
Mailbox h�tten, w�rden wir hier f�r jede Mailbox
einen derartigen Eintrag vornehmen.
Die Datei .fetchmailrc mu� folgende Berechtigungen aufweisen,
damit Fetchmail sie nicht zur�ckweist:
-rw------- 1 dede dede 189 oct 6 21:45 /home/dede/.fetchmailrc
Nun zum echten Test:
mailq
Anschlie�end verbinden wir uns mit unserem ISP und
geben folgenden Befehl ein:
/usr/bin/sendmail -q
sendmail -q arbeitet den Queue ab und verschickt die E-mail.
Nach einiger Zeit sollte ein Aufruf von fetchmail
unsere E-mails abholen und wir sollte die E-mail von dem Spiegel
zur�ckerhalten. Wenn alle E-mails angekommen sind,
k�nnen wir die Verbindung zum ISP trennen.
Nachdem nun alles konfiguriert ist, wollen wir nun den
Proze� so automatisieren, da� er automatisch bei jedem
Verbindungsaufbau durchgef�hrt wird.
Bei einem Verbindungsauf- bzw. Abbau werden von dem
PPP-D�mon die Dateien /etc/ppp/ip-up bzw, ip-down
ausgef�hrt. Zun�chst kontrollieren wir, da� sich
in diesen Dateien folgende Zeile befindet oder f�gen sie
an:
[ -x /etc/ppp/ip-down.local ] &&
/etc/ppp/ip-down.local $*
Die Ausf�hrung der Dateien /etc/ppp/ip-up oder ip-down f�hrt dann automatisch zum Aufruf der Dateien ip-up.local oder ip-down.local:
#!/bin/bash # /etc/ppp/ip-up.local #Record connection parameters echo `date` $4 $5 ppp-on >> /etc/ppp/history tail -n 1 Verbindungsfehler >> /etc/ppp/history # Send waiting mail echo Sende E-mail... >; /dev/console /usr/sbin/sendmail -q echo E-mail versandt. > /dev/console # Get mail waiting on the pop server echo Hole E-mail... > /dev/console fetchmail > /dev/console 2>&1 echo E-mail bekommen. > /dev/console #End exit 0 # end of /etc/ppp/ip-up.local |
Die beiden wichtigen Befehle in diesem Skript sind sendmail -q und fetchmail. Die anderen Befehle haben lediglich kosmetischen Charakter und erlauben:
#!/bin/bash # /etc/ppp/ip-down.local #Record connection parameters echo `date` ppp-off >> /etc/ppp/history #end exit 0 # end of /etc/ppp/ip-down.local |
Diese Dateien laufen in dem Benutzerkontext von
root
, daher mu� die Datei .fetchmailrc
in
das /root
Verzeichnis kopiert werden.
Haben wir permanenten Zugang zu dem Internet so versendet
Sendmail die E-mails regelm��ig wenn es
folgenderma�en als D�mon gestartet wird:
sendmail -bd -q10m
So w�rde Sendmail alle 10 Minuten die E-mails versenden.
Fetchmail l��t sich ebenfalls so starten:
fetchmail -d 600
So w�rde Fetchmail eingehende E-mails alle 10 Minuten (600
Sekunden) abholen.
�blicherweise werden derartige Befehle in den Start
(oder init) Dateien in den Verzeichnissen /etc/rc
oder
/etc/rc.d/
eingetragen.(Die exakten Namen der
Verzeichnisse h�ngen von der Distribution ab).
Eine derartige Konfiguration erlaubt das Senden der in dem
Mail-Queue (mailq
) wartenden E-mails und das Abholen
der bei dem Provider wartenden eingehenden E-mails. xbiff, xmailbox
oder �hnliche Software kann nun anzeigen, da� neue
E-mails eingegangen sind. Weiteres Feintuning ist mittels procmail
m�glich. Dies wurde eingehend in folgendem Artikel
erkl�rt:November
1997 Artikel von Angel
Lopez.