Welche Programme für Mail-Server?
Christian Schnitz
ml at jackd.de
Fre Jan 20 14:44:50 GMT 2006
Am Donnerstag, 19. Januar 2006 15:53 schrieb Heiner Gewiehs:
> Hallo zusammen,
>
> komme mir meinem Vorhaben einfach nicht weiter.
> Systemnachrichten liegen noch auf /var/mail/user - ich bekomme sie
> nicht ins lokale Postfach von "user heiner".
> Als Mail-Client fungiert KMail.
> Zwischen KMail und Provider soll ein Mail-Server her.
>
> Zum Abruf der POP3-Mailboxen habe ich fetchmail!
> Als MTA ist Postfix installiert.
> Zum Verteilen auf die einzelnen "user" habe ich Procmail.
>
> Prima, wenn ich jetzt noch wüsste, wie man die dazu bewegt, ihre
> Arbeit aufzunehmen wäre ich glücklich.
>
> Bei SuSE gings mit YaST - gibt es bei Kubuntu ein ähnliches Tool,
> das solche Dienste konfiguriert?
> Ich habe sie zumindest nicht gefunden.
> Mit diesbezüglicher deutscher Literatur wär ich schon zufrieden -
> wie's bei SuSE geht weiss ich - eine Red-Hat Anleitung scheint auch
> nicht praktikabel - mehr fand ich nicht.
>
>
> Vielen Dank
> Heiner
Hier mal ein schnelles HowTo, allerdings mit Exim4, Cyrus Imapd, Fetchmail
EXIM
Sollte Exim bei der Installation von Debian noch nicht eingerichtet worden
sein, einfach das Konfigurationsprogramm starten und die Fragen beantworten:
# dpkg-reconfigure exim-config
Wähle die Option aus, mit der die Exim-Konfiguration auf mehrere Dateien
verteilt wird.
Sollte der SMTP-Server der Internet-Providers eine Anmeldung (smpt_auth)
erfordern, muss Exim dementsprechend ergänzend konfiguriert werden. Trage
dazu in /etc/exim4/passwd.client in einer neuen Zeile die Anmeldedaten für
den SMTP-Server des Providers in folgendem Format ein:
# /etc/exim4/passwd.client
[...]
<SMTP-Server>:<Benutzername>:<Passwort>
[...]
Dabei ist:
SMTP-Server:
Der Name des Servers des Internet-Providers, über den die E-Mails
versendet werden
Benutzername:
Der Benutzername für die Anmeldung am STMP-Server
Passwort:
Das zum Benutzernamen passende Passwort
Kann der SMTP-Server nicht mit verschlüsselten Passwörtern umgehen, was häufig
der Fall ist, musst Du noch folgende Anpassungen vornehmen: Kommentiere
in /etc/exim/conf.d/auth/30_exim-config_examples die Einträge unter
cram_md_5: aus, indem Du den Zeilen ein # voranstellst. Kommentiere auf die
gleiche Weise jeweils unter plain: und login: den vorhandenen Eintrag
client_send aus und entferne das # vor dem alternativen Eintrag client_send.
Aktiviere anschließend die neuen Einstellungen in dem Du Exim neu
startest: /etc/init.d/exim4 restart
***
CYRUS IMAPD
Cyrus IMAP verwaltet die E-Mail-Ordner der Benutzer. Daher wird auch die
Zustellung durch Cyrus vorgenommen. Gegenüber anderen Lösungen verwendet
Cyrus eine eigene, sehr effektive Verwaltungsmethode für die E-Mails. Das
heißt, Du kannst nicht mehr direkt aus den für Linux üblichen Dateien
ausgelesen werden (und natürlich auch nicht dort hereingeschrieben werden).
Cyrus stellt eine sehr sichere IMAP-Lösung dar, da es unter einem eigenen
Benutzer ausgeführt wird (cyrus), der nur Zugriff auf die für die
E-Mail-Verwaltung benötigten Ordner hat.
Zunächst werden die benötigten Programmpakete installiert:
# apt-get install cyrus21-imapd cyrus21-admin libsasl2-modules libsasl2
sasl2-bin
Dann wird die Konfigurationsdatei /etc/imapd.conf eingerichtet (Details in man
imapd.conf). Hier können grundsätzlich die Standardeinstellungen beibehalten
werden, jedoch muss ein Administrator bezeichnet werden (hier der Benutzer
cyrus:)
# /etc/imapd.conf
[...]
admins: cyrus
[...]
Anschließend wird Cyrus mit den neuen Einstellungen gestartet:
# /etc/init.d/cyrus21 restart
Nun muss noch der Benutzer cyrus angelegt werden. Da Cyrus die
Authentifizierung über SASL vornimmt geschieht dies so:
# saslpasswd2 -c cyrus
Das Cyrus-System wird mit cyradm verwaltet. So wird es aufgerufen:
# cyradm --user cyrus localhost
Vor hier aus können dann Benutzer angelegt, Rechte verändert, Quota festgelegt
und Ordner verwaltet werden.
Alle verfügbaren Befehle auflisten (dabei ist localhost> die
Eingabeaufforderung):
localhost> help
Neue (Toplevel-)Mailbox für einen Benutzer anlegen (dann hat dieser Benutzer
ein Cyrus-Account!):
localhost> cm user.<Benutzername>
Entsprechend der Konfiguration von Procmail benötigt jeder Benutzer einen
Unterordner »Spam« in seiner Mailbox:
localhost> cm user.<Benutzername>.Spam
Hinweis: Um später eine Mailbox wieder zu löschen, müssen erst die Rechte zum
Löschen gesetzt werden und erst anschließend kann die jeweilige Mailbox
gelöscht werden:
localhost> sam user.<Benutzername> cyrusadm d
localhost> dm user.<Benutzername>
SIEVE
Zuerst noch ein Paket installiert:
apt-get install mailutils
Als Benutzer mit einem Editor seiner Wahl eine Datei erstellen.
nano sieve_script:
# Beispiel Skript
require ["fileinto", "reject"];
# Eine Mailing Liste soll in einen Ordner "Ubuntu" verschoben #werden
if address :is ["From", "To","Cc"] " ubuntu-de at lists.ubuntu.com" {
fileinto "INBOX.Ubuntu";
stop;
}
# Spam Regel: Nachricht enthält meine Adresse nicht im
# header, oder Subject ist irgendwas mit "money" bzw. #"Viagra".
if anyof (not address :all :contains ["To", "Cc", "Bcc"] "me at domain.invalid",
header :matches "Subject" ["*money*","*Viagra*"])
{ fileinto "INBOX.Spam";
stop;
}
# Alle anderen Mails behalten wir.
else {
keep;
}
Um dieses Beispiel zu nutzen rufen wir das Programm sieveshell auf:
sieveshell localhost
Please enter your Password:
put sieve_script
activate sieve_script
list
quit
Mit delete wird das Script für den Benutzer wieder gelöscht.
Wenn der aufruf sieveshell am Passwort scheitert, ist für den Benutzer noch
kein Imap-Password angelegt worden:
sudo saslpasswd2 -c <benutername> holt das nach.
***
FETCHMAIL:
Fetchmail schließt den Kern des Mail-Systems ab. Es dient dazu, E-Mails vom
POP3-Server (oder IMAP4-Server) des Providers abzurufen und zur Zustellung zu
übergeben.
So geht's
Zuerst wird das Fetchmail-Package installiert:
# apt-get install fetchmail
Dann wird die Datei /etc/fetchmailrc konfiguriert:
# /etc/fetchmailrc
set daemon 300 # Alle 5 Minuten nach eMails sehen.
set syslog
set no bouncemail
defaults:
antispam -1
batchlimit 100
poll <Mail-Server> protocol <Protokoll>
user "<Benutzername>" password "<Passwort>"
is user <Benutzername> here;
Schließlich benötigt die Datei /etc/fetchmailrc noch die richtigen Rechte und
den richtigen Besitzer, damit fetchmail (aber sonst niemand!) sie lesen kann:
# chmod 600 /etc/fetchmailrc
# chown fetchmail /etc/fetchmailrc
Zu schluss noch ein:
/etc/init.d/fetchmail restart
und die eMails werden abgeholt.
Das Grundsystem ist damit fertig und läßt sich noch sehr gut Ausbauen, mit
Spamfilter (Spamassassin) und Virenscaner (Clam-AV).
Gruß
Christian