Mail-Server -> Teil 1
Sendmail - Verwendung mit SuSE 7.2
1. Allgemeine Beschreibung
Der Mail-Server Sendmail ist ein sehr komplexer, aber dadurch auch sehr flexibler
Mailserver. Ihn findet man auf einem Großteil der Internet-Maschinen - nicht zu
Unrecht.
2. Installation
Da ich SuSE 7.2 verwende wird Sendmail schon defaultmäßig mit installiert.
Es wäre höchstens bei Bedarf im Internet nachzusehen ob ein Update notwendig ist.
Dieses kann man dann über die Paketverwaltung oder mit "rpm -Uhv Paket-Name"
einspielen.
3. Konfiguration in SuSE 7.2
In SuSE 7.2 setzt man in /etc/rc.config die Option SMTP="yes". Damit gibt man dem
System zu erkennen das man in der Datei /etc/rc.config.d/sendmail.rc.config
Otionen für Sendmail gesetzt hat. Aus diesen wird dann durch Aufruf von
"SuSEconfig" eine sendmail.cf erstellt.
Optionen in /etc/rc.config.d/sendmail.rc.config:
SENDMAIL_TYPE="yes"
Ähnlich wie oben geschildert.
SENDMAIL_SMARTHOST="smtp:mail.dein-provider.de"
Hier mußt du den Mail-Server für deine ausgehende Post angeben. Über diesen wird deine für "außen" anstehende Post verschickt. Aber Vorsicht T-Online-Kunden: Ich habe erlebt, daß der Magenta-Riese die Mail-Absender auf die t-online-Adresse umgeschrieben hat.
Später wenn wir "fetchmail" zum Abholen der Post konfigurieren müssen wir immer zuerst von hier Post holen, da ja die meisten Provider "SMTP after POP" verlangen.
SENDMAIL_LOCALHOST="localhost deine-domain-1.de deine-domain-2.de"
Hier alle Domains eintragen, die nur auf deinem Rechner bleiben sollen. So habe ich in unserer Firma das interne Mail-System aufgebaut. Die Postfächer von allen Usern liegen auf dem Mail-server lokal (für diesen melden sich also alle User "local" an und holen ihre Mails).
SENDMAIL_RELAY=""
Nur für Netzwerke. Wenn eure Mail von diesem Rechner zum Beispiel auf einen extra
Mailserver am anderen Ende der Firma weitergeleitet werden soll.
#
# with what parameters should sendmail be started?
# normal sites use "-bd -q30m -om". if you set
# SENDMAIL_EXPENSIVE and you have a dialup ISDN connection, to
# you probably want to set this "-bd -om" and run
# "sendmail -q" from your crontab.
#
SENDMAIL_ARGS="-bd -om"
Der obige Kommentar aus der Originaldatei sagt eigentlich alles. Wenn ihr
die Mails aller halben Stunde und bei jedem Online-gehen holen wollt müsst
ihr diese Option wählen.
Die Option "-q30m" bewirkt, daß sendmail aller 30 Minuten nachschaut ob
ausgehende Mail in der "Queue" wartet und versendet sie dann. Bei SMTP after
POP könnte diese "Eigenmächtigkeit" aber Probleme bereiten.
Die anderen Optionen könnt ihr ja mal mit "man sendmail" nachlesen.
#
# sendmail will only queue email in /var/spool/mqueue and
# will only start to deliver it if "sendmail -q" is run
#
SENDMAIL_EXPENSIVE="yes"
Ergänzung zur vorhergehenden Option.
SENDMAIL_NOCANONIFY="yes"
Sendmail versucht nicht bei unbekannten Namen in der Mail-Adresse diese über DNS-Abfragen aufzulösen. Das würde sonst jedesmal bei Eingang einer solchen Mail bei Sendmail (ihr wollt ja bestimmt auch einmal Mail in die weite Welt schicken ;-)) zu einer Internetverbindung führen.
SENDMAIL_NODNS="yes"
Nochmals wie eben geschildert.
#
# let sendmail deliver local mails in defer (postpone) mode.
# This also sets some entries to avoid dialups. A correct
# FQHOSTNAME for the local host is required.
#
SENDMAIL_DIALUP="no"
Sendmail soll keinen Verbindungsaufbau auslösen.
#
# these domains can additional to the local domains be changed
# in /etc/mail/genericstable
#
SENDMAIL_GENERICS_DOMAIN=""
Diese Angaben habe ich aus Gewohnheit in /etc/mail/genericstable gemacht. Das erkläre ich weiter unten.
#
# this is useful if you have several domains with disjoint
# namespaces hosted on the same machine.
#
MASQUERADE_DOMAINS=""
Hier habe ich nichts drin stehen.
Zum Abschluss müsste man jetzt noch "SuSEconfig" aufrufen. Da wir aber gleich alles mit einem Rutsch am Ende machen wollen lassen wir das an dieser Stelle.
Nach Abspeichern der Datei wechseln wir in das Verzeichnis "/etc/mail". Hier öffnen wir zuerst die Datei "aliases".
3.1. Konfiguration für Flatrate-Nutzer
Für Flatrate-Nutzer kommt es auf die Onlinezeit nicht so an, deshalb kann man
in diesem Fall einiges abwandeln.
Das Versenden der Mails kann in kurzen, regelmäßigen Abständen erfolgen.
Dazu startet man sendmail am besten im Daemon-Mode mit der Option -q5m.
Damit schaut "sendmail" aller 5 Minuten nach ob sich Mails in der "Versende-Queue"
befinden und verschickt sie bei Bedarf.
Im oben beschriebenen Normalfall setzt man in in /etc/rc.config.d/sendmail.rc.config:
#
# with what parameters should sendmail be started?
# normal sites use "-bd -q30m -om". if you set
# SENDMAIL_EXPENSIVE and you have a dialup ISDN connection, to
# you probably want to set this "-bd -om" and run
# "sendmail -q" from your crontab.
#
SENDMAIL_ARGS="-bd -q30m -om"
Damit entfällt der Eintrag in /etc/crontab und ip-up / ip-down.
Man muß aber beachten, dass die meisten Mail-Accounts heutzutage
"SMTP after POP" benutzen. Deshalb ist es nötig vor dem Mail-Versenden
erst Mails zu holen. Dazu könnt ihr auf der nächsten Seite nachlesen wie dies
eingestellt wird.
3.2. Weitere Dateien unter /etc/mail
aliases:
In dieser Datei werden die "Mail-Vornamen" (das vor dem @) auf lokale Benutzer abgebildet. Dazu gibt man links den "Mail-Vornamen" (z.Bsp. franz.mustermann) gefolgt von einem Doppelpunkt ein. Mit Tabs getrennt folgt dann rechts der Username der diese Mails erhalten soll.
An Stelle des Usernamens kann auch ein Programmaufruf stehen oder auch mehrere User.
Wenn man mal bloß hier Änderungen gemacht hat und nicht gleich SuSEconfig aufrufen möchte, reicht hier der Aufruf von "newaliases". Dadurch wird aus der Text-Datei eine .db Datei erzeugt (liegen direkt unter /etc). Danach natürlich mit "rcsendmail restart" Sendmail neu starten.
Als nächstes gehen wir in die Datei:
access:
Hier wird festgelegt wer euren Mailserver zum Versenden von Mail zum Provider
(oder überhaupt ins Internet) benutzen darf.
Die Einträge sind folgendermaßen aufgebaut: links steht ein (über hosts oder euren
lokalen Nameserver auflösbarer) Domain- oder Rechnername oder auch nur ein Teil einer
IP-Adresse (z.Bsp. 192.168.20). Alle die diesem Kriterium entsprechen drfen "relayen".
Mit Tabstobs getrennt folgt jetzt der Ausdruck "RELAY" oder "OK".
Jetzt mit "makemap hash /etc/mail/access.db < /etc/mail/access" aus dieser Text-Datei
eine Datenbankdatei für sendmail erzeugen.
Nun kommen wir zur Datei "genericstable".
genericstable:
Links steht der local-User-Name, mit Tabs getrennt folgt die Mail-Adresse, die bei Mails von der Konsole oder wenn der Domain-Teil vergessen wurde nach außen hin erscheinen soll.
Bsp.: franz franz.mustermann@muster-domain.de
Nach Abspeichern ruft man auf: "makemap hash /etc/mail/genericstabe.db < /etc/mail/genericstable"
Das erzeugt mit der Methode "hash" wieder eine Datenbankdatei.
relay-domains:
.deine-domain.de
Hier habe ich meine "lokale" Domain(s) eingegeben. Jeder Rechner mit diesem Domain-Anteil darf diesen Mail-Server zum Versenden benutzen.
virtusertable:
franz@musterstadt.de franz
franz.mustermann@my-home.de franz
fmuma@gmx.de franz
marie@musterstadt.de marie
mamu@gmx.de marie
fliege@web.de marie
Mit dieser Datei kann ich nochmal die lokalen Empfänger für Mails mit diesem "To:" (das was links steht) festlegen. Das ist eigentlich nur nötig, wenn ihr in eurem lokalen Netz mit diesen Adressen mailt.
Jetzt kann man ähnlich wie bei genericstable aufrufen: "makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable"
Wie ihr euch bestimmt schon denken könnt, wird jetzt wieder eine Datenbank-Datei erzeugt.
Jetzt kann man zur Sicherheit nochmal "SuSEconfig" aufrufen, das erledigt dann das, was man vielleicht noch vergessen hat.
Nach dem Neustart von Sendmail mit "rcsendmail" restart sollte das Mailen lokal schon funktionieren.
4. Test der Konfiguration
An diesem Punkt sollte man seine Konfiguration testen um zu sehen, wo eine bestimmte
Mail hingeschickt wird. Dazu benutzt man folgende Befehle:
/usr/sbin/sendmail -bv heiko.teichmeier@teichmeier-gc.de
/usr/sbin/sendmail -bv heiko@teichmeier-gc.de
/usr/sbin/sendmail -bv heiko
/usr/sbin/sendmail -bv root
Daraufhin sollte eine Ausgabe wie diese erfolgen:
heiko.teichmeier@teichmeier-gc.de... deliverable: mailer local,
user heiko
Hat man einen Fehler gemacht oder eine lokale Mailadresse noch nicht richtig eingepflegt, steht hinter
"mailer": " relay, host Dein-Internet-Provider.de,...", also die Mail tritt die Reise
ins Internet an.
|