Mailserver
Mailserver unter Linux
... mit postfix, fetchmail, uw-imapd und Squirrelmail
Diese kleine Anleitung orientiert sich an dem Vorgehen mit der Distribution Mandrake 9.0. Natürlich lässt sich mit jeder beliebigen Distribution ein solcher Mailserver einrichten. Die Schritte dazu können dann aber von den hier genannten abweichen.
Benötigte Pakete
Für den Mailserver selbst sind folgende Pakete wichtig:
- Postfix (Kategorie Server)- Kernbestandteil des Mailservers, verschickt und nimmt Mails per SMTP.
- fetchmail (Kategorie Internet)
- fetchmaildaemon (Kategorie Internet/Sonstige)
- optional: fetchmailconf (Kategorie Internet/Sonstige) Für die einfach Konfiguration mittels GUI
- uw-imapd/imapd - Muss nachträglich installiert werden
Konfiguration
!!! Vor allen Änderungen eine Kopie der Konfigurationsdatei erstellen!!! (# cp datei datei.bkp) Als Editor verwende ich den vi. Wem das zu umständlich ist, der kann in der GUI Kate, KEdit oder was auch immer nehmen. Auf der Konsole ist noch der Editor vom Midnightcommander zu empfehlen. ( # mc )
Postfix
Die zentrale Konfigurationsdatei ist /etc/postfix/main.cf. Hier werden nur wenige Parameter geändert. Postfix läuft eigentlich schon und die Konfiguration muss nur angepasst werden:
myhostname = host.domain
# hostname des mailservers
# Beispiel: mail.hausnetz.local
mydomain = domain
# domain des mailservers
# s. myhostname wegen domain
# Beispiel: hausnetz.local
inet_interfaces = all
# Gibt die interfaces (ethx) an, für die postfix zuständig ist.
# Für lokalen mailserver auf jeden fall 'all', erschlägt alles
mynetworks = 168.100.189.0/28, 127.0.0.0/8
# Hiermit werden ip-adressen der rechner angegeben,
# die vom mailserver akzeptiert werden.
# Im Normalfall also das Subnetz, in welchem der Mailserver steht.
relayhost = [an.ip.add.ress]
# Mails außerhalb der domain werden an diesen Host geleitet.
# bsp. [an.ip.add.ress]:25
# In der Regel also der Mailserver des Providers.
Wenn man Kunde bei 1und1 ist oder bei einem anderen Provider, der SMTP-Auth unterstützt, sollte man dies in Postifx aktivieren und den Mailserver des Providers als Relayhost benutzen. Der Versand der Mails geht so schneller und man kann trotzdem frei wählbare Absender/Zieladressen angeben
Bei Mandrake 9.0 müssen noch Pakete nachinstalliert werden, damit SMTP-Auth auch funktioniert. Einfach mit dem Softwaremanager nach „sasl“ suchen und alle aufgeführten Pakete installieren.
Die Einstellungen für die Postfix Konfigurationsdatei sehen folgendermasse aus und werden einfach an das Ende der Datei angehängt:
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/saslpasswd
Die Datei /etc/postfix/saslpasswd muss noch mit dem Editor erstellt werden und enthält den Benutzernamen und das Password für den SMTP-Auth Server des Providers in folgender Form:
mailserver benutzer:password
In der Regel sind diese Benutzerdaten gleich den Daten für den POP Server des Providers. Ist die Datei angelegt, muss noch folgender Befehl ausgeführt werden:
postmap /etc/postfix/saslpasswd
IMAP
Über den Imap Daemon lassen sich die Mails mit einem Client abholen bzw. ansehen. Denn die Mails bleiben auf dem Server und ermöglichen so ein zentrales Backup.
Einfach installieren. Der Rest geht von allein. :) Bei Mandrake lässt sich das Paket wohl nicht während der Installation auswählen. Einfach nach der Installation mit dem Softwaremanager installieren. Der imapd wird dann aber noch nicht beim OS-Start als Dienst gesstartet. Das lässt sich hier ändern:
/etc/xinetd.d/imap
(der Pfad ist distributionsabhängig), die Zeile
„disable = yes“ auf „disable = no“
ändern. Nach einem Reboot oder Neustart des xinetd läuft der Imap Daemon dann als Dienst im Hintergrund.
Fetchmail
Konfiguration am besten über fetchmailconf. Das ist ein X-Windows Programm und selbsterklärend. Wer keine GUI installiert hat kann die Konfigurationsdateien natürlich auch selbst erstellen. Wenn fetchmail als Daemon im Hintergrund läuft editiert man dazu die datei /etc/fetchmailrc.
Um für den Benutzer bob mit dem Password xyzabc beim Providerserver pop.provider.com alle Mails abzuholen und diese im lokalen Imap-Postfach des Benutzers hans abzulegen, gibt man folgendes ein:
poll pop.provider.com with proto POP3 user 'bob' there with password 'xyzabc' is 'hans' here options fetchall
Diese Datei lässt sich ohne weiteres um mehrere Server und User erweitern.
Fertig
Das wars auch schon. Der Server ist fertig eingerichtet und man kann nun mit einem beliebigen Mailclient darau zugreifen.
Wer mag, kann jetzt auch noch ein Webmail Frontend auf dem Server installieren. Mittels einem Webserver, der PHP unterstützt, kann man dann auch mit einem normalen Browser Mails lesen und schreiben.
Quellen:
- http://www.heise.de/ct/aktuell/data/ju-28.02.03-000/
- http://www.linuxforen.de
- und natürlich die man-pages. :)
