Heute habe ich mir mal die Mühe gemacht, ein kleines HowTo zum Einrichten eines IMAP Mailservers inkl. Mailscanner, Spamschutz etc. zu erstellen.
Dieses Howto bezieht sich auf die Einrichtung eines Mailservers mit den folgenden Komponenten:
Debian SID + Exim4 + Courier IMAP SSL + Spamassasin + procmail + Squirrelmail + Mailscanner Als Basis dient ein RootDS Server von server4you. Ich gehe davon aus, dass dieser völlig leer ist und praktisch "frisch" zur Verfügung gestellt wurde. Natürlich sollte dieses HowTo auch bei einem nicht mehr so frischen System funktionieren ;-)
1. Mailserver Vorbereitung
Ausgehend von einem "leeren, frischen" Server sollte man als aller erstes ein
zabulus:~# apt-get dist-upgrade
durchführen. Nachdem alle Pakete ihr verdientes Update erhalten haben, installieren wir anstatt des vorinstallierten "uw-imapd" Mailservers - der grundsätzlich nicht schlecht ist, aber leider ein unperformantes Mailformat verwendet - den Courier Mailserver. Damit können wir später das meiner Meinung nach wesentlich bessere Maildir Format nutzen.
Dazu installieren wir erst mal alle nötigen Pakete. Da wir später noch Programme wie fetchmail, procmail, mailscanner benötigen installieren wir diese direkt mit:
zabulus:~# apt-get install fetchmail procmail mailscanner courier-authdaemon courier-base courier-ssl courier-imap courier-imap-ssl courier-ssl courier-webadmin couriergraph locales Optional können wir dann noch mb2md installieren, womit man sein altes Mail Format in das Maildir Format umwandeln kann. Eine schöne Anleitung dazu findet ihr hier.
Konvertierungsbeispiel:
zabulus:~# ./mb2md.pl -s /var/mail/username -d /var/opt/vmail/mydomain.de/username/Maildir/ Converting /var/mail/username to maildir: /var/opt/vmail/mydomain.de/username/Maildir Source Mbox is /var/mail/username Target Maildir is var/opt/vmail/mydomain.de/username/Maildir 666 messages.
2. Konfiguration
- System
Nachdem alle Pakete (hoffentlich erfolgreich) installiert wurden, können wir jetzt alles nach unseren Wünschen konfigurieren. Damit man den Couriere Mailserver überhaupt starten kann, sollte man in der /etc/inetd alles was mit imap / pop3 zu tun hat auskommentieren.
-snip- #:MAIL: Mail, news and uucp services. #imap2 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/imapd #<off># imaps stream tcp nowait root /usr/sbin/tcpd /usr/sbin/imapd #pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/ipop3d #pop3s stream tcp nowait root /usr/sbin/tcpd /usr/sbin/ipop3d -snip- Die inetd.conf abspeichern und mit:
zabulus:/# /etc/init.d/inetd restart
den Dienst neu starten.
jetzt kann man auch erfolgreich den Courrier Mailserver starten:
zabulus:/# /etc/init.d/courier-imap start zabulus:/# /etc/init.d/courier-imap-ssl start
- Exim4 Anpassung:
Damit exim4 in Zukunft auch mit dem Mailscanner zusammenarbeiten kann, müssen wir hier ein paar Veränderungen vornehmen. Exim4 bietet bei der Konfiguration die Möglichkeit, alles in einer Datei zu konfigurieren oder alles in viele Dateien aufzusplitten. Ich habe mich für letztere Variante entschieden da diese wesentlich übersichtlicher ist.
In /etc/exim4/ finden wir alle benötigten Dateien. Um exim4 nun die Kommunikation mit dem Mailscanner beizubringen fehlen noch einige Einstellungen.
I. Datei erzeugen: Erstellt in /etc/exim4/conf.d/main/ Die Datei: 01_mailscanner_config Inhalt dieser Datei sollte sein:
#01_mailscanner_config # .ifdef OUTGOING SPOOLDIR = /var/spool/exim4 .else queue_only = true queue_only_override = false SPOOLDIR = /var/spool/exim4_incoming log_file_path = /var/log/exim4_incoming/%slog .endif II. Verzeichnis erstellen:
Wir müssen ein Verzeichnis "exim4_incomming" erstellen. Dazu erstellen wir eine Kopie des bereits vorhandenen exim4 spool Verzeichnis. zabulus:/# cp -a /var/spool/exim4 /var/spool/exim4_incoming/ III. Datei Anpassen: Die folgende Datei benötigt ein paar Anpassungen:
zabulus:/# vi /etc/exim4/conf.d/transport/30_exim4-config_mail_spool Inhalt:
# This transport is used for local delivery to user mailboxes in traditional # BSD mailbox format. # mail_spool: debug_print = "T: appendfile for $local_part@$domain" driver = appendfile #file = /var/mail/$local_part delivery_date_add envelope_to_add return_path_add group = mail mode = 0660 mode_fail_narrower = false directory = ${home}/Maildir maildir_format message_prefix = "" IV. Logfile Verzeichnis erstellen zabulus:/# cp -a /var/log/exim4/ /var/log/exim4_incoming/
- Mailscanner konfiguration
Der Mailscanner soll in Zukunft alle mails beim Eintreffen prüfen und nach Viren bzw. Spam durchsuchen. Dazu müssen wir noch ein paar Berechtigungen neu setzten:
zabulus:/# chown -R Debian-exim /var/spool/MailScanner/ zabulus:/# chgrp -R Debian-exim /var/spool/MailScanner/ zabulus:/# chown -R Debian-exim /var/lib/MailScanner/ zabulus:/# chgrp -R Debian-exim /var/lib/MailScanner/ zabulus:/# chown -R Debian-exim /var/run/MailScanner/ zabulus:/# chgrp -R Debian-exim /var/run/MailScanner/ zabulus:/# chown -R Debian-exim /var/lock/subsys/MailScanner/ zabulus:/# chgrp -R Debian-exim /var/lock/subsys/MailScanner/ Jetzt können wir den Mailscanner ohne Warnmeldung starten: zabulus:/# /etc/init.d/mailscanner start Dabei befindet er sich in der default Einstellung. Bitte konfiguriert die:
zabulus:/# vi /etc/MailScanner/MailScanner.conf
nach Euren Wünschen. Diese Datei ist recht selbsterklärend da nahezu alles kommentiert wurde. - Spamassassin updaten
Spamassassin bietet von Grund auf sehr gute Einstellungen. Jedoch versuchen "Spammer" stetig diese Einstellungen zu umgehen. Dazu findet ihr hier ein kleines tool - womit ihr z.B. per cronjob den Mailscanner immer auf dem Laufenden haltet.
http://www.exit0.us/index.php?pagename=RulesDuJour
3. Erweiterte Literatur
Configuring Exim4 and Courier IMAP under Debian GNU/Linux http://www.trekweb.com/~jasonb/articles/exim4_courier
Konvertierung: http://batleth.sapienti-sat.org/projects/mb2md/
Kommentare und Anregungen sind erwünscht! |