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