Der zweite Teil der Mailserver Saga setzt sich nun fort.
Im ersten Teil haben wir eigentlich die zeitraubenste Angelegenheit hinter uns gebracht, folgt nun das Herzstück der ganzen Geschichte: Sendmail. Wenn der nich läuft, geht nix
Vorraussetzungen:
Also einloggen und su’t euch.
Achtet darauf das kein Sendmail Dienst läuft (killall -9 sendmail)
Als erstes erstellt Ihr euch eine eigene Sendmailkonfiguration.
FreeBSD bringt dazu löblicherweise bereits die nötigen Mechanismen mit:
#> cd /etc/mail
#> make all install
Wenn Ihr euch nun das Verzeichnis /etc/mail/ genauer anschaut, dann seht Ihr vier neue Dateien:
`hostname`.cf
`hostname`.mc
`hostname`.submit.cf
`hostname`.submit.mc
z.B. also:
mail.bsdbox.de.cf
mail.bsdbox.de.mc
mail.bsdbox.de.submit.cf
mail.bsdbox.de.submit.mc
Interessant für die weitere Vorgehensweise ist die `hostname`.mc (mail.bsdbox.de.mc).
In dieser wird die komplette Konfiguration für Sendmail hinterlegt. Ein make all install übersetzt dann diese “Klartext”-Konfiguration in die `hostname`.cf (mail.bsdbox.de.cf), damit Sendmail überhaupt etwas damit anfangen kann. Es reicht also NICHT NUR an der `hostname`.mc rumzufummeln und dann den Sendmail-Dienst neu zu starten! Immer dran denken!
Ladet euch bitte diese Beispielkonfiguration herunter und ersetzt den Inhalt eurer `hostname`.mc mit dem Inhalt der Beispielkonfiguration. Entweder über copy’n'paste oder auf de faule Art:
#> cd /etc/mail
#> fetch 'http://www.bsdbox.de/downloads/emailserver/sendmailbeispiel.mc'
#> mv sendmailbeispiel.mc `hostname`.mc
Legt dann noch bitte diese Datei an:
#> touch /etc/mail/revocation.list
Bis auf den SMART_HOST (dazu später mehr) gibt es erst einmal in der Konfiguration nichts weiter anzupassen. Schaut aber trotzdem mal rein, damit Ihr ein Gefühl dafür bekommt, was da so drinsteht. Ich habe die Einträge mit Kommentaren versehen, damit sie besser zu verstehen sind.
#> more `hostname`.mc
Eine Besonderheit an dieser Konfiguration ist der dein Eintrag FEATURE(`ckuser_cyrus’),
auf den ich mal kurz eingehen werde.
Bisher war es immer so, das wenn CyrusIMAP im Sendmail aktiviert wurde, der Nebeneffekt auftrat, das Sendmail plötzlich alle Emails angenommen hat, ohne vorher zu prüfen, ob der Benutzer überhaupt existent ist, bzw. überhaupt ein IMAP Konto besitzt. Gerade in diesen Spamtagen nervt es gewaltig, wenn der Postmaster bzw. Root ständig mit irgendwelchen “Returned mail: see transcript for details”-Emails belästigt wird.
Das FEATURE(`ckuser_cyrus’) verhindert dies und weist Emails schon beim Empfang ab, wo klar ist, das die Email nicht im CyrusIMAP gespeichert werden kann.
Von Haus aus kennt Sendmail diese Funktion nicht und kann nachgerüstet werden:
1. Durch das neukompilieren im Teil1, kennt Sendmail nun die nötige Funktion -DSOCKETMAP. Damit hat Sendmail einen direkten Zugriff auf die Ordnerstruktur von CyrusIMAP (Cyrus wird dies mit dem nächsten Teil auch erlauben).
2. Benötigen wir diese weitere Konfigurationsdatei.
Vorgehensweise am besten wie bei der sendmailbeispiel.mc:
#> fetch 'http://www.bsdbox.de/downloads/emailserver/ckuser_cyrus.m4'
#> mv ckuser_cyrus.m4 /usr/share/sendmail/cf/feature/ckuser_cyrus.m4
Jetzt erklärt Ihr Senmail noch, auf welche Domains er reagieren soll, also welche Domainnamen werden von ihm selbst bearbeitet und nicht weitergeleitet (relay). Diese geschieht über den Inhalt der Datei “/etc/mail/local-host-names”
#> cd /etc/mail
#> edit local-host-names
Die sollte sinngemäß folgende Inhalte haben (natürlich Domain- und Hostnamen durch Eure ersetzen):
localhost
127.0.0.1
192.168.1.25
bsdbox.de
mail.bsdbox.de
Im großen und ganzen sind wir nun mit Sendmail durch und können die erstellte Konfiguration kompilieren:
#> cd /etc/mail
#> make all install
Die Ausgabe sieht ungefähr so aus:
install -m 444 mail.bsdbox.de.cf /etc/mail/sendmail.cf
install -m 444 mail.bsdbox.de.submit.cf /etc/mail/submit.cf
Alle Leser an einer Standleitung oder mit einer festen IP-Adresse können zum Teil 3 springen.
Leser, die an einer dynamischen Leitung hängen, werden sich mit Sicherheit noch für den SMART_HOST Eintrag interessieren. Viele Provider blockieren diese Zugänge (z.B. T-Online) nämlich und akzeptieren keine Emails.
Es heisst also, es sollen alle ausgehenden Emails über einen externen Mailserver eures Vertrauens verschickt werden. Ich zeige dies am Beispiel von 1&1, die Vorgehensweise ist bei nahezu jedem Provider gleich. (Mir persönlich bekannt ist noch Bytecamp oder All-inkl)
#> cd /etc/mail
#> edit access
Und fügt dort folgende Zeile ein. Das großgeschriebene natürlich wieder durch eure Informationen ersetzen
(EINE Zeile, also komplett ohne Umbruch):
AuthInfo:SMTPSERVER “U:USERNAME” “I:USERNAME” “P:PASSWORT” “R:SMTPSERVER” “M:DIGEST-MD5 CRAM-MD5 LOGIN PLAIN”
1&1 Beispiel:
AuthInfo:smtp.1und1.de “U:pt12345678-1″ “I:pt12345678-1″ “P:passwort” “R:auth.smtp.kundenserver.de” “M:DIGEST-MD5 CRAM-MD5 LOGIN PLAIN”
Jetzt noch den SMTP_HOST Eintrag in eurer `hostname`.mc aktivieren (einfach das DNL davor entfernen:
#> edit `hostname`.mc
define(`SMART_HOST’, `SMTPSERVER’)
Beispiel:
define(`SMART_HOST’, `smtp.1und1.de’)
Joa, das wär es dann auch schon. Ein beherztes
#> make all install
aktiviert die vorgenommen Einstellungen.
Jetzt gehts auch für auch in den wohlverdienten Teil 3.
Pingback: bsdbox » FreeBSD Emailserver Teil2