Partnerlinks:
Google

www.linux-club.de/ sehr aktives und kompetentes Board m. Fragen u. Antworten rund um Linux  |  www.linux-board.de/ privates Board m. Fragen u. Antworten rund um Linux  |  meybohm bei viando.de gute Tools - u.a. "Phase 5 / HTML Editor" mein Lieblings-HTML-Editor und "Proton" - guter Texteditor www.meybohm.de  |  Wunsch-Domain schon belegt? Hier finden Sie sie trotzdem!   |  Webhosting beim Testsieger 2007. www.greatnet.de  | 
Host Europe - World Class Internet Hosting
 

  Ein Pinguin-Logo    
news About Me linux referenz tips links downloads kontakt
 
News
About
Linux
Referenz
Tips
  Linux
  Sicherheit
  Perl
  Allround Server
  Fileserver Samba
  HTTP-Server
  Zope-Server
  SQL-Server
  Mail-Server
  Proxy_Server
  FAX-Server
  Netzwerk-Tools
  SMS-Tools
  Postscript
  MS Office
Links
Downloads
Kontakt

Besucher
seit 21.10.2002
 
Mein Gästebuch
 

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.


   
Mailserver (1)
Sendmail
Allgemeines
Installation
Konfiguration
Tip für Flatrates
Erster Test
Mailserver (2)
Mails abholen
Allgemeines
Konfiguration
Mailserver (3)
Fetchmail für Flatrate
Allgemeines
Konfiguration
Mailserver (4)
Spambekämpfung
Allgemeines
Auswege
 
©  09.09.2009  Heiko Teichmeier - Glauchau/Sa.