











| 
|  Zitat von www.tuxhausen.de/email-server.html


Zitat von http://www.tuxhausen.de/email-server.html
(siehe
dazu auch: http://de.wikibooks.org/wiki/Postfix)
Linux Email-Server
In dieser Artikel-Serie lernst du alles um einen
kleinen Email-Servers aufzubauen.
Es handelt sich um einen kompletten Email-Server für kleine
Arbeitsgruppen (so bis 30 Benutzer)
Voraussetzung
für diese Serie sind leider grundlegende (keine speziellen)
Netzwerkkenntnisse, du solltest grob wissen, wie der Email-Transport
funktioniert und was ein DNS ist.
Der Email-Server soll folgende Aufgaben übernehmen:
- Abholen der Emails von mehreren Benutzern
- Emails lokal speichern
- Interne Emails direkt zustellen
- Externe Emails über SMPT-Server des Providers
senden
Zu den einzelnen Punkten im Detail:
- Es
existieren mehrere POP3-Fächer bei unserem Webhoster oder
Provider. Zum
Beispiel ein POP3 Fach für Angela und eines für Bert.
Diese
POP3-Fächer werden abgeholt und die Emails auf dem Server
gespeichert.
Jeder Benutzer greift nicht auf das POP3-Fach seines Providers/Hosters
zu, sondern auf unseren Server.
Der Server holt die Fächer von allen Benutzer
regelmäßig ab.
- Alle
Emails werden auf dem Server gespeichert. Jeder Benutzer kann
verschiedene Ordner selber anlegen und die Emails verteilen. Aber es
bleiben alle Emails auf dem Server, so können die Emails auch
außerhalb
des eigenen Arbeitsplatzes eingesehen werden.
- Schreibt
zum Beispiel Angela Bert eine Email, so kümmert sich unserer
Email-Server darum und verteilt die Email selber. Dafür
brauchen wir
dann keine Internet-Verbindung.
- Schreibt Bert eine
Email an eine externe Adresse, also außerhalb der Firma, so
gibt unser
Server diese weiter und versucht nicht selber die Email zu versenden.
Ist der Server nicht im Internet, soll er die Emails speichern und bei
der nächsten Einwahl weiterleiten.
Vorbereitungen
Zuerstmal schreibt man sich alle wichtigen Dinge auf:
Benutzer und POP3-Fächer
Es
ist am einfachsten wenn jeder Benutzer sein eigenes POP3-Fach bekommt,
dann brauchen die Emails nicht sortiert zu werden. Allgemeine
Fächer
wie office@example.net kann man mit einer "Email-Weiterleitung" direkt
beim Provider in ein POP3-Fach eines Benutzers weitergeleitet.
Ein weiteres kleines Problem:
Meist
bestehen in kleinen Netzwerken die Benutzer-Namen einfach nur aus dem
Vornamen, das ist zwar einfach und wenig Tipperei, aber von
außen
sollen Email-Namen in der Form A.Allen@example.net benutzt werden.
Also, müssen die Emails doch sortiert werden, d.h.eine Email
an A.Allen
geht an angela, das Problem ist aber mit Postfix sehr einfach zu
lösen.
Legst
du deine Benutzer aber neu an, so verwende einfach als lokalen
Benutzer-Namen die Email-Adresse, ist einfacher und
übersichtlicher.
(Ist das zu verstehen ? Wenn nicht bitte melden )
Noch ein Problem:
Meist
geben die Webhoster den POP3-Fächern andere Namen als den
eigentlichen
Email Namen, ich mache das hier auch mal so. Wenn du kannst, sollten
die Namen einen Bezug zum Benutzer herstellen
| Benutzer |
Email-Adresse |
Name des POP3-Faches /
Paßwort |
| angela |
A.Allen@example.net |
hdv45 / geheim |
| bert |
B.Beimer@example.net |
hdv46 / geheim2 |
Der Name des POP3-Servers: pop.puretec.de
der zu benutzende SMTP-Server (an den wir die externen Emails senden):
smtp.puretec.de
Das Netzwerk
Ich gehe bei mal folgendem Netzwerk aus :
Unsere Domain ist example.net,
das hat folgenden Grund: Ich hatte mal in einem Artikel
werner@tuxhausen.dee geschrieben und bekam darauf Spam !! Und
example.net ist laut RFC2606 für Doku reserviert.
Wir haben ein kleines Klasse-C Netzwerk mit der Netzwerkadresse
192.168.44.0 mit der Subnetmaske 255.255.255.0 oder kurz /24.
Wir haben ein Netzwerk mit einem Server
(benton.example.net) und zwei Client-Rechnern (ac01.example.net und
ac02.example.net).
Der
Server hat ein Modem/ISDN-Karte/Router und ist damit ans Internet
gebunden; er hat keine feste IP-Adresse, sondern bekommt diese bei der
Einwahl vom Provider zugewiesen.
Als Email-Software wird Netscape Messenger und Microsoft-Outlook
benutzt.
Hier mal ein Bild von unserem Beispiel-Netzwerk:

Software auf dem Server
Unser Netz steht, der Server ist bereit, alles läuft.
Welche Software brauchen wir ?
Da
wir unter Linux arbeiten, gibt es wie immer ca. 100 Wege das Ganze zu
machen. Aber ich nehme für unseren Server folgende Software:
- fetchmail - zum Abholen der POP3-Fächer
- UW Imapd - dient dem Benutzer zum Abholen der Emails vom
Email-Server
- Postfix - zum Versand der Emails
Warum diese ??
Naja, weil sie alle gut und stabil funktionieren und vor allem:
- fetchmail kann als Daemon laufen und so periodisch die Emails abholen
- UW Imapd ist sehr einfach einzurichten
- Postfix hat eine einfache Konfiguration (parameter = yes), und ist
sehr sicher
So es geht los, zur besseren Übersicht habe ich das
Ganze in drei Artikel gesplittet:
- Emails
abholen mit fetchmail [1]
- Emails
vom Server abholen mit IMAP [2]
- Emails
versenden mit Postfix [3]
Im Text genannte Links
Email-Server:
Emails abholen mit fetchmail
Im ersten Teil des Email-Servers
[1] erfährst wie du die Emails aller Benutzer abholst und
verteilst.
Dazu dient uns fetchmail.
fetchmail
fetchmail
[2] ist ein Linux Konsolenprogramm, es dient zum Abholen der Emails von
einem Emailserver. Es holt die Emails ab und übergibt sie dem
lokalen
Emailsystem. fetchmail wird meistens genutzt um
mehrere
Emailserver hintereinander abzufragen, die empfangenen Emails werden
dann an einen Emailverteiler (zum Beispiel: procmail)
oder direkt in die Inbox der Benutzer weitergeleitet.
fetchmail kann die Emails von folgenden Servern
abholen: POP2, POP3, IMAP4, MS Exchange Server (NTLM) , Kerberos POP,...
Man kann fetchmail direkt mit allen Parametern aufrufen, aber
normalerweise legt man im home Verzeichnis die
Datei .fetchmailrc an und schreibt dort alle
Parameter rein.
Installation von fetchmail
Am
einfachsten ist es fetchmail mit den Hilfsmittel deiner Distribution zu
installieren (SuSE: Yast; Mandrake: Software-Manager; Debian: apt-get).
Solltest du es dort nicht finden oder eine zu alte Version haben,
kannst du es aus den Quellen installieren.
Sollte dein Provider dir anbieten die Emails sicher via SSL
abzuholen, lies bitte diesen Tuxhausen-Artikel: fetchmail
und SSL [3], dort steht auch drin wie du fetchmail
aus den Quellen kompilierst.
fetchmail Konfigurationsdatei
fetchmail erwartet seine Konfigurationsdatei im
Homeverzeichnis des Benutzers unter dem Namen ".fetchmailrc" .
Die Emails bitte NICHT als root abholen, am besten einen extra Benutzer
dafür erstellen !!
Der Aufbau der Datei ist sehr einfach:
In dem folgendem Beispiel werden die Emails von Angela und Bert bei
Puretec abgeholt.
Die Emails von Angela und Bert werden in die INBOX (meist
/var/spool/mail/Benutzername) abgelegt.
Als kleinen Zusatz
zu den Fähigkeiten fetchmails werden noch die privaten Emails
von
markus (m.u@gmx.net) abgeholt und diese mit procmail sortiert.
Auf procmail gehe ich zunächst nicht weiter ein, vielleicht
kommt mal ein Artikel (bei Interesse bitte mailden):
#.fetchmailrc
#Server Puretec server pop.puretec.de proto pop3
#Benutzer und Password user hdv45 pass geheim
#Optionen to angela
#Weiterer User auf Server Puretec #Benutzer und Password user hdv46 pass geheim2
#Optionen to bert
#---------------- #Server GMX server pop.gmx.de proto pop3
#Benutzer und Password user m.u@gmx.net pass geheim
#Optionen keep mda /usr/bin/procmail
|
Die einzelnen Zeilen haben die folgende Bedeutung:
| server |
Der Name des Servers von dem du die Emails abholst |
| proto |
Das Protokoll des Servers. Meist wird POP3 benutzt |
| user |
Der Benutzername von dem du die Emails abholen willst |
| pass |
Das Passwort des Benutzers |
| to |
Emails direkt in die INBOX vom lokalen Benutzer
gespeichert |
| keep |
Zum Testen kann keep verwendet
werden, dann werden die Emails auf dem Server nicht gelöscht |
| mda |
Emails werden an das Programm (hier /usr/bin/procmail
)weitergeleitet
(procmail ist ein Mailfilter-Programm) |
Die Optionen to und mda
möchte ich noch etwas erläutern:
Normalerweise
hat man bei seinem Provider einen anderen Benutzernamen als auf dem
privaten Arbeitsplatz-Rechner. Deswegen muß man fetchmail
sagen was er
mit der Email machen soll. Sagt du das nicht, landen alle Emails in der
INBOX des Benutzers der die Emails abholt. Wenn du die Emails
für
mehrere Leute abholst, geht das natürlich nicht.
Mit der Option to werden die Emails dem angegebenen
Benutzer zugeordnet und in /var/spool/mail/ abgelegt.
Im
ersten Teil des Beispiels werden also alle Emails des Users hdv45 dem
lokalen Benutzer angela zugeteilt. Die Emails landen dann in
/var/spool/mail/angela.
Mit der Option mda können die
Emails an ein anderes Programm weitergegeben werden. Sinnvoll
wäre der
Filter procmail oder ein Virenscanner-Programm (das aber nach dem Scan
die Email weiterleitet !). Auf diese Optionen möchte ich hier
nicht
weiter eingehen.
Noch ein Tipp:
Holst du die Emails verschiedener User von dem selben Server ab, kannst
du server und proto ab dem
zweiten User-Eintrag sparen. Die Einstellung gilt für alle
folgenden user; bis zum nächsten server.
Im obigen Beispiel trifft das auf hdv46 (Bert) zu.
Abholen der Emails
So, nachdem du deine .fetchmailrc geschrieben hast, probieren
wir Sie aus. Am Besten schreibst du erstmal ein keep
als Option, dann kann nichts mit deinen nichtabgeholten Emails
passieren.
Nun logst du dich als der Benutzer ein, bei dem die .fetchmailrc im
Homeverzeichnis liegt:
[tux ] $ fetchmail #Emails abholen
1 message for hdv45 at pop.puretec.de (1244 octets).
reading message 1 of 1 (1244 octets) . flushed
fetchmail: No mail for hdv46 at pop.puretec.de
fetchmail: No mail for m.u@gmx.net at pop.gmx.de
|
Du siehst nun folgendes:
- Angela (user hdv45) hat eine Email mit der
Größe von 1244 octets (1000 octets ~ 1KB) erhalten
- Bert (user hdv46) und Markus privat (user m.u@gmx.net)
haben leider keine neue Emails :-(
Das wars, die Emails wurden angeholt und einsortiert.
Denk daran die Option keep wieder aus der
.fetchmailrc zu entfernen, sonst wurden sich einige Benutzer warum die
Email immer wieder ankommt.
Daemon-Modus
Eine Sache solltest du aber noch ändern:
fetchmail
sollte als Daemon laufen und selbstständig periodisch die
Emails
abholen, sonst müßtet du immer selber fetchmail
eintippen.
Das ist auch aber auch nicht schwer:
Für den Daemon-Modus schreibt du folgendes:
[tux] $ fetchmail --daemon 500
#fetchmail holt die Emails automatisch alle 500 sec ab
[tux] $ fetchmail --quit #Beendet den im Daemon-Modus laufenden
fetchmail |
Mit dem Parameter --daemon 500 startest du den Daemon-Betrieb,
und zwar holt fetchmail dann alle 500 Sekunden die Emails ab.
Und mit dem Parameter --quit beendest du den im Daemon-Modus laufenden
fetchmail, sehr schön für Skripte.
Damit
das Ganze auch noch nach dem nächsten Booten funktioniert
solltest du
dir ein Init-Skript schreiben, oder jeden Morgen um 6h fetchmail per
cron-Job starten und abends wieder beenden.
Auf gehts zum nächsten Teil des Email-Servers: Emails vom Server
abholen mit IMAP [4]
Tipps zum Betrieb von fetchmail
- Startest
du fetchmail mit der Option -v sieht du eine erweiterte Ausgabe
(verbose) . Je mehr -v ( -vv -vvv) du einsetzt desto mehr siehst du.
Diese Option ist gut zur Fehlersuche geeignet
Quellen und weitere Dokumentation
Eigentlich nur die man-Pages und die zu
fetchmail Dokumentation.
Auf der fetchmail-Homepage [1] gibt es
eine FAQ und die man-Pages als HTML
Im Text genannte Links
Email-Server:
IMAP-Server
Im zweiten Teil des Email-Servers
[1] erfährst du wie die Benutzer die Emails von deinem
Email-Server abholen.
Dazu dient uns der IMAP-Daemon.
Was ist IMAP ?
IMAP
(Internet Message Access Protocol) ) ist ein Dienst der das Abholen von
Emails von einem Server ermöglicht. IMAP ist ähnlich
POP3, hat aber
einen großen Vorteil: Bei IMAP bleiben die Emails auf dem
Server und
werden nicht auf dem Benutzer-Rechner gespeichert.
Wozu du das brauchst ?
- Du kannst alle deine Emails von mehreren Rechner lesen,
auch aus der Ferne.
- Bei
einem Crash deines Arbeitsplatz-Rechner verlierst du keine Email, da
diese auf dem Server liegen (der hoffentlich ein funktionierendes
Backup hat :-) )
- IMAP funktioniert unter verschiedenen
Betriebsystemen, du kannst deine Emails von Linux und Windows lesen
(ohne große Anstrengungen)
Ein Paar technische Infos zu IMAP: IMAP basiert auf TCP/IP und
hört auf Port 143, die aktuelle Version 4 ist in RFC
2060 [2] definiert. Weitere Info zu IMAP gibt es z.B: bei The IMAP
Connection [3].
Installation von UW Imapd
Unter Linux gibt es verbreitete IMAP-Server:
- der erste ist der UW
Imapd [4] der University of Washington.
Dieser ist klein, einfach und wird hier im diesem Artikel verwendet
- der zweite ist der Cyrus
IMAP Server [5] von Carnegie Mellon
Dieser ist eher für größere Installation
und schwieriger einzurichten.
So wie gesagt ich verwende hier den UW Imapd, warum sieht du
gleich.
Am
einfachsten ist es den UW Imapd mit den Hilfsmittel deiner Distribution
zu installieren (SuSE: Yast; Mandrake: Software-Manager; Debian:
apt-get).
Solltest du es dort nicht finden oder eine zu alte
Version haben, kannst du es aus den Quellen installieren. Diese findest
du auf den Seiten der University of Washington
Da ich selber den UW Imapd noch nie aus den Quellen kompiliert habe,
möchte hier auf diese Variante nicht weiter eingehen.
Hinweisen möchte ich aber auf die Doku zur Installation [6].
UW Imapd Konfiguration
Jetzt kommt das allerbeste: Den UW Imapd brauchst du nicht zu
konfigurieren, alles geht von alleine !!
Die University of Washington beschreibt das so :
"For ordinary "vanilla" UNIX systems, this software is plug and play;
just build it, install it, and you're done."
Mein
Versuch einer deutschen Übersetzung: Für
übliche "reine" UNIX Systeme
ist diese Software Plug and Play, compiliere, installiere, und du bist
fertig.
Und da uns die Distributoren das compilieren auch noch abgenommen
haben: installieren, fertig :-))
Solltest du allerdings spezielle Dinge brauchen (SSL, Kerberos, ...)
mußt du selber Hand an den Quelltext legen.
Einige Dinge solltest du allerdings wissen:
- UW
Imapd erwartet alle neuen Emails unter /var/spool/mail/BENUTZERNAME und
zwar für jeden Benutzer. Benutzt du allerdings fetchmail
(Option to ), solltest du hier keine Probleme haben
- Zusatz-Ordner werden im /home Verzeichnis des Benutzers
angelegt.
Ist
der Server nicht nur ein Email-, sondern auch noch ein Samba-Server,
könnte das Probleme geben: Jeder Benutzer kann seine
Email-Ordner mit
dem Windows-Explorer löschen !!
Wie man das aber einfach mit dem Netscape Messenger umgehen kann, zeige
ich dir gleich.
Mailprogramm-Konfiguration
Wie nun doch eine Konfiguration ?
Ja,
aber in deinem Email-Programm. Ich verwende hier mal den Netscape
Messenger der 4.x Serie, da dieser sehr gut mit Imap zusammenarbeitet.
Bei anderen Mailern sollte es ähnlich sein.
Zuerst die Grundeinstellungen unter /Einstellungen/Mail &
Diskussionsforen/Mail-Server und dort auf Hinzufügen:

Das dürfte eigentlich klar sein:
Unter Server-Name: kommt unser Email-Server, unter Benutzername unser
lokaler Benutzername.
Wenn du willst, kann der Messenger auch immer selber mal nach Emails
sehen.
Dann bitte auf den Reiter IMAP klicken:

Hier kommen einige spezielle Dinge:
Zuerst
finde ich es persönlich schön wenn die
gelöschten Emails im Papierkorb
landen. Du kannst die gelöschten auch markieren; dann sind sie
rot
durchgestrichen, stehen aber noch in der Liste und gehen erst weg wenn
du den Ordner komprimierst (dazu gleich mehr).
Der Punkt "Posteingang beim Beenden leeren" sorgt für eine
Komprimierung beim Beenden des Messengers, nützlich.
Jetzt noch auf den Reiter Erweitert klicken:

Jetzt
kommt der Punkt den ich oben schon angesprochen hatte: Normalerweise
liegen alle Emails (außer der Inbox) im home-Verzeichnis des
Benutzer.
Ist der Server auch noch ein Samba-Server, löscht der Benutzer
schnell
mal seine Emails, glaub mir.
Gibst du jetzt im Feld
"IMAP-Server-Verzeichnis" emails/ an, dann laden alle Emails
(außer der
INBOX) im Verzeichnis /home/benutzername/emails und das löscht
sich
keiner.
Die anderen Felder kannst du leer lassen, die werden beim ersten
Verbinden automatisch gefüllt.
So das war hier alles, du solltest nun die Emails abrufen und Ordner
anlegen können.
Ach ja, die Komprimierung:
Löscht du Emails aus einem Ordner, so sind diese erstmal nicht
weg,
sondern nur zum Löschen markiert. Gehst du auf einen Ordnern
und
drückst die rechte Maustaste oder oben auf /Datei, erscheint
der Punkt
"Ordner komprimieren". Klickst du den an, dann wird der Ordner
aufgeräumt und markierte Emails gelöscht. Das kannst
du aber auch
automatisch machen lassen: Bei den IMAP-Einstellung "Clean up All
Folders on Exit" (warum ist das in englisch ?!?) anklicken. Finde ich
persönlich nicht so gut, Geschmackssache.
Gut, Emails holen
wir mit fetchmail vom Provider ab, lesen diese über IMAP,
fehlt nur
noch das Senden der Emails. Also auf zum nächsten Teil der
Serie Emails
versenden mit Postfix [7]
Quellen und weitere Dokus
Die man-Pages und die zu UW Imapd
gelieferte Dokumentation.
Infos zu IMAP bei The IMAP Connection [3].
Im Text genannte Links
Email-Server: Postfix - Ein
Email-System für Linux
(siehe
dazu auch: http://de.wikibooks.org/wiki/Postfix)
Im dritten und letzten Teil des Email-Servers
[1] erfährst du wie die Emails von deinem Email-Server
versendet werden.
Dazu dient uns Postfix.
Postfix
Postfix ist ein sogennanter MTA, ein Mail Transfer
Agent,
er kümmert sich um den Versand und Empfang von Email. Er nimmt
die
Emails von den Nutzern im Netzwerk an, verteilt sie im eigenen Netzwerk
oder übergibt sie an einen anderen MTA. Desweiteren kann er
auch Emails
außerhalb des eigenen Netzes annehmen und weiterleiten. Er
ist quasi
der Postbote; ein Tux mit einem Rucksack, der durch das Netz flitzt.
Postfix
ist (wird) von Wietse Venema geschrieben worden und steht unter einer
von der Mozilla Public License abgeleiteten Lizenz von IBM. Richtig,
IBM, dort arbeitet Wietse und bei IBM hat Postfix einen anderen Namen
"IBM Secure Mailer".
Postfix ist ein sehr sicheres und ziemlich
einfach zu administrierendes Programm. Postfix istmodular aufgebaut und
besteht aus vielen kleinen Programmen, hier mal eine kleine
Übersicht
(Quelle: Postfix-Doku) :
Erklärung:
- gelbe Ellipsen = Programme
- gelbe Kästchen = Mail-Queues
- grüne Kästchen = Tabellen / Dateien
In der obigen Überischt erkennst du, welchen Weg die
Emails durch die einzelnen Postfix-Programme nehmen.
Ich denke mal das reicht als grober Überblick, weiteres
findest du in der Doku auf der Postfix-Homepage [2].
Installation von Postfix
Die
Installation kann einfach oder schwer werden, es hängt davon
ab ob und
welcher MTA (sendmail, smail, qmail, exim, ...) vorher auf deinem
System lief. Am besten einfach Postfix von deiner Distribution
installieren, sollte überall dabei sein (bei Mandrake ist es
der
Standart-MTA).
Bei Debian solltest du nicht den exim deinstallieren
(sonst wird noch weitere Software deinstalliert !! ), sondern einfach
Postfix installieren. Dann wird auch exim entfernt.
Wenn du es aus dem Internet im Quelltext laden willst, solltest du
vorher alles was mit sendmail zu tun hat umbennen
( d.h. sendmail, newaliases, mailq) und dann kompilieren und
installieren (der üblich Dreisatz: ./configure,
make, make install).
Aber wie gesagt, es kann beim selberkompilieren sehr verschiedene
Probleme geben und deshalb beschreibe ich es nicht, kann dir aber bei
Fragen evtl. weiterhelfen.
Wenn dein Provider dir anbietet oder dich zwingt SMTP mit
Authentifizierung (STMP Auth) zu verwenden, solltest du das
tun. Die Vorgehensweis hierzu findest du im Tuxhausen-Artikel SMTP
AUTH mit Postfix [3].
Konfiguration von Postfix
main.cf
Die Datei main.cf (meist unter /etc/postfix zu finden) ist die
Hauptkonfigurations-Datei von Postfix. In ihr stehen alle wichtigen
Parameter.
Die Datei erklärt auch direkt (in englisch) was der
Parameter bewirkt, und wie er voreingestellt ist. Ich werde hier nicht
alle Parameter erklären, sondern nur die wichtigen die wir
für unseren
Server brauchen!
Für dieses Beispiel hab ich Postfix in der Version 1.1.11
unter Debian Woody (3.0) benutzt.
- queue_directory,command_directory,
daemon_directory
dienen zum Einstellen der Arbeitsverzeichnisse und können
meist so stehen bleiben.
- mail_owner
legt
den Besitzer der Queues und der meisten Postfix-Programme fest. Auf
keinen Fall root verwenden !! Besser einen Benutzer anlegen der nur
für
Postfix zuständig ist und sich nicht einloggen kann,
Empfehlung: mail_owner = postfix
- myhostname
legt fest welchen Namen der Mailserver haben soll. Bei uns also:
myhostname=benton.example.net
Gibst du hier keinen Namen an, probiert Postfix den Namen mit Hilfe von
gethostname() selber herauszufinden.
Ein Tipp: Der Name muß nicht der richtige Name des Rechners
sein, solange der Name per DNS aufgelöst werden kann.
- mydomain
legt den Domain-Namen fest. Also für uns: mydomain=example.net
- mydestination
legt
fest wofür der Server zuständig ist; d.h.
für welche Domains die Emails
angenommen werden. Günstig wäre unser Hostnamen,
unsere Domain und noch
unser localhost, die Einstellung dafür ist :
mydestination= $myhostname, $mydomain,
localhost.$mydomain
Das $ vor $myhostname besagt, das der Namen
benutzt werden soll der in myhostname steht. Die Variable $myhostname
hat also den Wert benton.example.net
Diese Vorgehensweise verhindert Schreibfehler und dient zum schnellen
Ändern mehrerer Parameter.
- alias_maps
legt fest welche Alias-Datenbank verwendet werden soll und welches
Format sie hat. Siehe nächsten Abschnitt
Der richtige Eintrag für uns ist : alias_maps =
hash:/etc/aliases
- mynetworks
An diesem Punkt trägst du die Netzwerke ein, die Postfix als
vertrauenswürdig einstufen soll.
Also für uns: mynetworks = 127.0.0.0/8,
192.168.44.0/24
Die 127. Adresse stellt den localhost, also den Emailserver selber dar.
- relayhost
legt
fest wohin Postfix die Emails die er selber nicht ausliefern kann (also
alles außerhalb der Domain), senden soll. Wir wollen sie zu
dem
Mailserver unseres Providers senden, und zwar auf Port 25 (Standart
SMTP-Port). Wir geben also an: relayhost = smtp.puretec.de
Diese
Einstellung hängt natürlich davon wie dein Povider es
genau managt, es
könnte sein daß du dich zuerst via POP3 anmelden
mußt. Damit wollen die
Provider Spam verhindern. Verlangt dein Provider SMTP mit
Authentifizierung (STMP Auth), sollten du mal in Tuxhausen-Artikel SMTP
AUTH mit Postfix [3] gucken.
Genaueres bitte bei deinem Provider erfragen!
Wäre unser Server fest mit dem Internet verbunden,
wären wir so gut wie
fertig (allerdings wäre dieser Server dann extrem unsicher );
aber
unser Server wählt sich ja nur bei Bedarf ein und kann nur
dann die
Emails abschicken.
Also müßen wir noch einige Dinge einstellen:
- defer_transports = smtp
verhindert
das der Server selbständig versucht die Emails zu veschicken.
Wir
wollen dem Server nach der Einwahl explizit die Anweisung zum Email
versenden geben. Mit dem Befehl postfix flush
verschickt Postfix die Email, dieser Befehl gehöhrt also in
dein Einwahlscript.
Leider
ist dieses Script sehr Distributionsabhängig, aber unter
/etc/ppp/ip-up
findest du ein Script das sich um die PPP-Anmeldung kümmert.
Dort
trägst du diesen Befehl irgendwo unten ein, dann sollte der
Server nach
der Einwahl die Emails abliefern. Ich presönlich habe mir ein
Script
für diesen Zweck geschrieben (für Debian potato).
Leider gibt es ein
kleines Problem: Wenn du online bist und eine Email schreibst,
versendet Postfix diese nicht, da er ja nur explizit aufgefordert
ausliefern soll!
Tja, ich habe die Funktion wieder herausgenommen,
aber im Postfix-Manual wird extra darauf hingewiesen. Weitere Hinweise
zum Betrieb von Postfix an einem Einwahl-Rechner findest du hier [4] (eng.) (Ich danke Ralf
Rascher für diesen Tip).
Ist der Server allerdings nicht online und bekommt eine Email, so wird
diese gespeichert und später versendet.
Das war es auch schon, alle anderen Parameter sind für unseren
Zweck
nicht direkt wichtig. Solltest du den Server aber in einer
größeren
Umgebung einsetzen die permanent mit dem Internet verbunden ist,
solltest du noch einige Sicherheitsvorkehrungen gegen Spam einbauen.
Alle weiteren Parameter sind in der Datei und in der Doku beschrieben.
Zuerst testen wir mal ob alles soweit in Ordnung ist:
Achtung !! postfix check findet keinerlei Schreibfehler !!
Zum Überprüfen deiner Parameter folgendes eingeben:
Hier sollten jetzt alle Parameter die du in die main.cf geschrieben
hast auftauchen.
Jetzt kannst du deinen Postfix mal starten:
Gibt
es Fehler in deiner Konfigurationsdatei oder falsche Rechte, weist dich
Postfix nun darauf hin, ansonsten ist alles glatt gegangen.
Dieses
Start-Kommando mußt du natürlich noch in deine
Startscripte aufnehmen,
sonst hast du nach dem nächsten rebbot keinen Postfix mehr.
Das
brauchst du aber nur zu machen, wenn du Postfix aus den Quellen
kompilierst hast.
Beendet wird Postfix so:
Nach jeder Änderung mußt du Postfix sagen,
daß er die Konfiguration neu einlesen soll, und zwar so:
Die Alias-Datenbank
Mit dieser Datenbank lassen sich lokale Adressen umschreiben und
umleiten.
Wir
brauchen diese Datenbank um einen virtuellen Email-Namen einem reelen
Benutzer-Namen zuordnen, also alle Emails an B.Beimer@example.net gehen
an den lokalen Benutzer bert.
Verwendest du für die lokalen
Benutzer-Namen den Email-Namen, brauchst du die Alias eigentlich nicht,
aber guck trotzdem mal rein.
Die Eintragungen finden in der Datei aliases statt,
diese ist meistens im /etc Verzeichnis zu finden.
Achtung, sollte diese Datei noch von sendmail stammen, könnte
es damit evtl. Probleme geben!
Ein Eintrag in der Alias-Datenbank sieht bei Postfix so aus:
"B.Beimer": bert "A.Allen": angela
root: bert postmaster: root
test: tux@web.de
|
Die
erste Zeile bedeutet, alle Emails an B.Beimer(@example.net) werden an
bert(@example.net) weitergleitet. Das gleiche machen wir mit Angela.
Danach
legen wir fest, daß alle Emails die an root gehen, zu bert
geleitet
werden. Danach gehen alle Emails von postmaster an root , aber wir eben
festgelegt das diese an bert gehen; also kriegt bert alle Emails die an
postmaster gehen.
Als kleinen Zusatz zu den Fähigkeiten
von Postfix steht in der letzten Zeile: Alle Emails die nach
test@example.net gehen, werden an tux@web.de weitergeleitet.
Wichtig ist noch: Kommt ein Punkt im Namen vor, benutze die " "Zeichen
(siehe letzte Zeile).
Ich denk mal, so schwer war das nicht, oder?
Nach
jeder Änderung in aliases mußt du Postfix sagen,
daß er die Datenbank
neu erzeugen soll (keine Angst, die aliases wird dabei nicht
überschrieben) und das geht so:
| [root]# postalias /etc/aliases |
Mailing-Listen
Mit der Alias Datenbank kannst du auch prima kleine
Email-Verteiler-Listen schreiben. Nehmen wir mal an du willst allen
lokalen Benutzern eine Mitteilung schreiben, wäre es nicht
prima wenn
du eine Email an alle@example.net schreiben würdest, und alle
bekommen
sie?
Kein großes Problem mit Postfix:
Zuerst eine Text-Datei ( /etc/postfix/lists/alle ) mit der
Empfänger-Liste anlegen.
Hier die Liste:
#Interne Mailingliste von example.net #DAS LETZTE KOMMA IST WICHTIG!!! angela, bert,
|
Und in die Alias-Datenbank kommt dieser Eintrag:
#Mailinglisten alle: :include:/etc/postfix/lists/alle
|
Dann
noch schnell die Alias-Datenbank updaten und das war es schon,
schreibst du nun eine Email an alle@example.net, bekommen angela und
bert diese Email.
Das Ganze geht natürlich auch mit Adressen die nicht innerhalb
deiner Domain liegen. Der Tuxhausen-Newsletter
[5] funktioniert so. Deine Textdatei sieht dann in etwas so aus:
#Tuxhausen Newsletter #DAS LETZTE KOMMA IST WICHTIG
mu@web.de, tux@linux.org, "billy.regal@ikea.de",
|
Tipps zu Postfix
- Auch Postfix hat ein sendmail,
es ist aber nicht das Original sendmail gemeint, sondern das
"Postfix-sendmail-Ersatz-Programm", damit bleiben die wichtigsten alten
sendmail Befehl verfügbar, nur das sie jetzt von Postfix
ausgeführt
werden.
- Mit dem Befehl mailq werden alle
Emails angezeigt die noch nicht ausgeliefert wurden. Im Grunde
versteckt sich hinter mailq der Befehl sendmail
-bp
- Mit postfix flush
fordest du Postfix auf, alle wartenden Emails jetzt zu verschicken.
Sehr nützlich wenn die Einwahl ins Internet erfolgt ist
- Alle
noch nicht abgeschickten Emails lagern unter
/var/spool/postfix/deferred/. Löscht du eine Email aus dem
Verzeichnis,
wird sie nicht mehr versendet. Nützlich um eine fehlerhafte
Email noch
schnell abzufangen.
- Hast du eine echte Domain (wie
tuxhausen.de) und verwendest du diese Domain auch für dein
Intranet,
möchtest aber eine Email an einen externen Kollegen
(extern@tuxhausen.dee) senden, der Kollege aber keinen Zugang zu deinem
Postfix-Server hat, hast du ein kleines Problem. Schickst du die Email
an unseren Server nimmst er sie an und leitet sie weiter, aber Lokal !!
Postfix ist ja der Mailer der Domain (mydestination= $myhostname,
$mydomain, ...), und so bleibt die Email in deinem Netz !
Der einzige Weg den ich kenne: $mydomain aus mydestination
löschen und alle internen Emails an @benton.example.net senden.
- Wenn du eine Email aus der Warteschlange löschen
willst mußt du zuerst die Queue ID ermittlen und diese dann
löschen:
[root]# mailq #Wartende Emails
anzeigen
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
9064B165C4* 582 Tue Aug 20 22:11:11 m.ungermann@tuxhausen.de
mu@elzet80.de
-- 0 Kbytes in 1 Request.
[root]# postsuper -d 9064B165C4 #Wartende Email löschen
postsuper: 9064B165C4: removed
postsuper: Deleted: 1 message |
Quellen und weitere Dokus
Der deutsche Mirror der Postfix-Homepage [2]
Außerdem gibt es das Red Hat Postfix HowTo [6]
(englisch).
Im Linux-Magazin 06/2000 erschien ein Artikel über Postfix: Modular und sicher [7]
Über
Postfix gibt ein recht gutes deutschsprachiges Buch: "Das Postfix Buch"
von Peer Heinlein, erschienen bie SuSE Press (ist aber nicht nur
für
SuSE geeignet), ISBN 3-935922-41-8
Und natürlich die üblichen man
Pages....
Im Text genannte Links
(siehe
dazu auch: http://de.wikibooks.org/wiki/Postfix)

|