malte_si
Anmeldungsdatum: 19. Oktober 2018
Beiträge: 17
|
Hallo! Ich möchte für meine Familie einen kleinen Mailserver aufsetzen. Er soll die Post bei den Mailboxen einsammeln und via IMAP im Heimnetzwerk zur Verfügung stellen. Ebenso soll er als Server für die ausgehende Post dienen. Als Software habe ich Dovecot, Postfix und Fetchmail installiert. Was ich schon hinbekommen habe:
Clients können sich über SSL mit Dovecot verbinden und Mail bearbeiten. Postfix akzeptiert SSL-SMTP-Verbindungen, authentifiziert die Nutzer gegen Dovecot und verschickt ausgehende Email.
Momentan scheitere ich jedoch am Abholen der Email mit fetchmail. Ich habe fetchmail so eingerichtet, dass er zum lokalen Verteilen der Mail direkt den Dovecot MDA verwendet. Das möchte ich auch gerne so beibehalten, weil ich die zusätzliche Komplexität mit Postfix vermeiden möchte.
Der fetchmail-Daemon wacht regelmäßig auf, kann sich wohl auch mit dem Mail-Server beim Provider verbinden, meldet dann aber einen Fehler. Leider finde ich die Fehlermeldung nicht sehr aussagekräftig... Ich habe fast die Vermutung, dass der Dovecot-MDA gar nicht aufgerufen wird... Syslog sagt:
| Oct 14 12:56:17 heimdall fetchmail[12603]: 6 Nachrichten für XXXXX bei pop3.web.de (797797 Bytes).
Oct 14 12:56:17 heimdall fetchmail[12603]: Nachricht XXXXX@pop3.web.de:1 von 6 wird gelesen (49614 Bytes) (Log-Meldung unvollständig)
Oct 14 12:56:17 heimdall fetchmail[12603]: Fehler beim Schreiben des Nachrichtentextes
Oct 14 12:56:17 heimdall fetchmail[12603]: MDA-Fehler beim Abholen von XXXXX@pop3.web.de
Oct 14 12:56:17 heimdall fetchmail[12603]: Abfragestatus=6 (IOERR)
|
/etc/fetchmailrc:
| set daemon 300
set syslog
set bouncemail
set no spambounce
defaults:
antispam -1
batchlimit 100
mda "/usr/lib/dovecot/dovecot-lda -d %T"
poll pop3.web.de with protocol pop3
user 'XXXXX' there with password 'GEHEIM' is 'XXXXX@web.de' here options ssl
|
(Der Account ist in Dovecot als "XXXXX@web.de" eingerichtet. Beim Anmelden an Dovecot (z.B. mit Thunderbird) und beim Senden von Mail funktioniert das auch problemlos.) /etc/dovecot/conf.d/10-master.conf:
| ...
service auth {
unix_listener auth-userdb {
mode = 0660
user = fetchmail # User running dovecot-lda (fetchmail)
group = mail
}
...
}
...
|
Wie kann ich
herausfinden, ob dovecot-lda tatsächlich aufgerufen wird? aussagekräftigere Fehlermeldungen erhalten, was genau schiefgeht (z.B. ob Rechte fehlen, etc.)?
Vielen Dank für Eure Hilfe! Gruß,
Malte
|
TomLu
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
| Oct 14 12:56:17 heimdall fetchmail: Fehler beim Schreiben des Nachrichtentextes
|
und
| user = fetchmail # User running dovecot-lda (fetchmail)
|
Hat der User 'fetchmail' Schreibrechte auf das Dovecot-Postfach?
|
malte_si
(Themenstarter)
Anmeldungsdatum: 19. Oktober 2018
Beiträge: 17
|
Sollte es tatsächlich so einfach sein... Ich wollte gerade aus tiefster Überzeugung "Ja" schreiben, weil der Nutzer 'fetchmail' in der Gruppe 'mail' ist, genauso wie der Nutzer 'virtmail', den ich für die virtuellen Mailboxen in Dovecot angelegt habe. Allerdings hat die Inbox die Rechte | drwx--S--- 5 virtmail mail 4096 Jul 8 2017 XXXXX@web.de
|
Was ist jetzt besser?
Verzeichnisrechte ändern (wäre dann 770, oder)? fetchmail statt als Nutzer 'fetchmail' als Nutzer 'virtmail' laufen lassen? Wo kann ich das festlegen?
Danke für die Hilfe!
|
TomLu
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
malte_si schrieb:
Würde ich so machen... und ich hätte keine Zweifel an der Ordnungsmäßigkeit.
|
malte_si
(Themenstarter)
Anmeldungsdatum: 19. Oktober 2018
Beiträge: 17
|
Hmm... das war's leider nicht. Habe jetzt der Gruppe 'mail' Schreibrechte auf die inbox und alle Unterverzeichnisse gegeben:
| ls -la /var/inbox/XXXXX\@web.de/
drwxrws--- 5 virtmail mail 4096 Jul 8 2017 .
drwxrwsr-x 3 root mail 4096 Jul 8 2017 ..
drwxrws--- 2 virtmail mail 4096 Jul 8 2017 cur
-rw-rw---- 1 virtmail mail 348 Jul 8 2017 dovecot.index.log
-rw-rw---- 1 virtmail mail 51 Jul 8 2017 dovecot-uidlist
-rw-rw---- 1 virtmail mail 0 Jul 8 2017 maildirfolder
drwxrws--- 2 virtmail mail 4096 Jul 8 2017 new
drwxrws--- 2 virtmail mail 4096 Aug 5 18:01 tmp
|
Leider immer noch die gleiche Meldung im Syslog:
| Oct 21 18:05:44 heimdall fetchmail[23865]: 8 Nachrichten für XXXXX bei pop3.web.de (1025368 Bytes).
Oct 21 18:05:44 heimdall fetchmail[23865]: Nachricht XXXXX@pop3.web.de:1 von 8 wird gelesen (49614 Bytes) (Log-Meldung unvollständig)
Oct 21 18:05:44 heimdall fetchmail[23865]: Fehler beim Schreiben des Nachrichtentextes
Oct 21 18:05:44 heimdall fetchmail[23865]: MDA-Fehler beim Abholen von XXXXX@pop3.web.de
Oct 21 18:05:44 heimdall fetchmail[23865]: Abfragestatus=6 (IOERR)
|
Was könnte ich noch versuchen? Danke für Eure Hilfe!
|
TomLu
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
Ich würde jetzt zur Bestätigung noch mal folgendes testen: Terminal öffnen su fetchmail (den User wechseln) cd {/beliebiges new-User-Postfach} echo xx >yyyy (Versuch eine Datei resp. Mail anzulegen)
Wenn das klappt, liegt der Fehler tatsächlich woanders.... aber ich würde das erst wirklich bestätigen. 5. bei Erfolg die Datei wieder löschen.
|
malte_si
(Themenstarter)
Anmeldungsdatum: 19. Oktober 2018
Beiträge: 17
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 | YYYY@heimdall:~$ sudo su --preserve-environment fetchmail
fetchmail@heimdall:~$ cd /var/inbox/XXXXX@web.de/
fetchmail@heimdall:/var/inbox/XXXXX@web.de$ echo test >test
fetchmail@heimdall:/var/inbox/XXXXX@web.de$ ls -la
insgesamt 32
drwxrws--- 5 virtmail mail 4096 Okt 21 23:30 .
drwxrwsr-x 3 root mail 4096 Jul 8 2017 ..
drwxrws--- 2 virtmail mail 4096 Jul 8 2017 cur
-rw-rw---- 1 virtmail mail 348 Jul 8 2017 dovecot.index.log
-rw-rw---- 1 virtmail mail 51 Jul 8 2017 dovecot-uidlist
-rw-rw---- 1 virtmail mail 0 Jul 8 2017 maildirfolder
drwxrws--- 2 virtmail mail 4096 Jul 8 2017 new
-rw-r--r-- 1 fetchmail mail 5 Okt 21 23:30 test
drwxrws--- 2 virtmail mail 4096 Aug 5 18:01 tmp
fetchmail@heimdall:/var/inbox/XXXXX@web.de$ rm test
fetchmail@heimdall:/var/inbox/XXXXX@web.de$ echo test >new/test
fetchmail@heimdall:/var/inbox/XXXXX@web.de$ ls -la new
insgesamt 12
drwxrws--- 2 virtmail mail 4096 Okt 21 23:31 .
drwxrws--- 5 virtmail mail 4096 Okt 21 23:30 ..
-rw-r--r-- 1 fetchmail mail 5 Okt 21 23:31 test
fetchmail@heimdall:/var/inbox/XXXXX@web.de$ rm new/test
fetchmail@heimdall:/var/inbox/XXXXX@web.de$
|
Klappt problemlos... Danke für Deine unermüdliche Hilfe!
|
TomLu
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
Dann tuts mir leid... ich muss passen... 😕 ... jetzt bringts noch nicht mal was, wenn ich Dir einen Link auf die Doku meiner Lösung senden würde... weil... ich habe die gleiche Anforderung mit Dovecot, Postfix, Getmail und Sieve gelöst. Aber getmail ist ja nicht fetchmail.
|
malte_si
(Themenstarter)
Anmeldungsdatum: 19. Oktober 2018
Beiträge: 17
|
Vielleicht hilft's ja doch weiter. Ich denke ja immer noch, dass ich nur irgendeine Kleinigkeit übersehe. Ich wüsste vor allem gerne, wie ich fetchmail und dovecot-lda dazu überreden kann, etwas gesprächiger zu sein. Für den systemweiten fetchmail-Daemon habe ich irgendwie keinen Parameter gefunden (nur für das interaktive fetchmail) und die Änderungen an den Logging-Einstellungen für dovecot-lda nach Anleitung in der Doku haben irgendwie gar nichts bewirkt; aber vielleicht habe ich da auch nur etwas falsch gemacht. Hast Du vielleicht eine Idee, wie ich herausfinden kann, ob dovecot-lda überhaupt aufgerufen wird? Dann wüsste ich schon einmal, ob es an fetchmail oder an dovecot-lda liegt. Auf jeden Fall schon einmal Danke für Deine Hilfe.
|
TomLu
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
malte_si schrieb: Vielleicht hilft's ja doch weiter. Ich denke ja immer noch, dass ich nur irgendeine Kleinigkeit übersehe.
Ja vermutlich... vielleicht hilfts, wenn Du die dovecot.confs mal vergleichst... http://www.thlu.de/Public/TomsMailserver.pdf
Ich wüsste vor allem gerne, wie ich fetchmail und dovecot-lda dazu überreden kann, etwas gesprächiger zu sein. Hast Du vielleicht eine Idee, wie ich herausfinden kann, ob dovecot-lda überhaupt aufgerufen wird?
Eigentlich ist das kein Problem... bei mir wird das alles geloggt und das Journal enthält haufenweise Einträge:
journalctl -b | grep dovecot | egrep "lmtp|lda"
Dann wüsste ich schon einmal, ob es an fetchmail oder an dovecot-lda liegt.
Ich habe eher die Befürchtung, dass das ein grundsätzlich falscher Ansatz ist. Der Dovecot-LDA ist ja ein Delivery-Agent, der eine Mail von einem MTA (Transport-Agent (Postfix)) annimmt. Das Wiki https://wiki.dovecot.org/LDA sagt: This page describes the common settings required to make LDA work. You should read it first, and then the MTA specific pages:
LDA/Postfix LDA/Exim LDA/Sendmail LDA/Qmail LDA/ZMailer
Da steht nix davon, dass man einen MRA (Retrival-Agent (fetchmail)) als MTA konfigurieren kann. Vergleich mal mit meiner Konfiguration. Vielleicht ist das eine Alternative... und Du hast den Vorteil, Sieve-Scripte nutzen zu können.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Das naheliegende wäre doch: Werde zu dem Nutzer und führe das definierte Kommando mal händisch aus:
$ su - fetchmail
$ cat <<EOF | /usr/lib/dovecot/dovecot-lda -d "deine@mailadresse.de"
> From: <test@example.org>
> To: <deine@emailadresse.de>
> Date: $(date -R)
> Subject: Testmail
>
> Das ist eine Testmail.
> Foo.
> Bar.
> EOF
$ echo $?
|
malte_si
(Themenstarter)
Anmeldungsdatum: 19. Oktober 2018
Beiträge: 17
|
misterunknown schrieb: Das naheliegende wäre doch: Werde zu dem Nutzer und führe das definierte Kommando mal händisch aus:
Vielen Dank, das hat mich jetzt schon einmal einen Schritt weiter gebracht:
| lda(XXXXX@web.de,)Error: Error reading configuration: Invalid settings: postmaster_address setting not given
lda: Fatal: Internal error occurred. Refer to server log for more information.
|
Nachdem ich den Eintrag postmaster_address in /etc/dovecot/conf.d/15-lda.conf ergänzt habe ist die Fehlermeldung weg. Die Test-Mail aber auch... zumindest ist sie nicht in der Inbox von XXXXX@web.de angekommen... Ich forsche weiter. @TomLu: Deine Konfig schaue ich mir noch an. Heute war leider zu wenig Zeit.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
malte_si schrieb: Nachdem ich den Eintrag postmaster_address in /etc/dovecot/conf.d/15-lda.conf ergänzt habe ist die Fehlermeldung weg. Die Test-Mail aber auch... zumindest ist sie nicht in der Inbox von XXXXX@web.de angekommen...
Wie sieht denn in Dovecot die userdb-Konfiguration aus?
doveconf -n userdb
|
malte_si
(Themenstarter)
Anmeldungsdatum: 19. Oktober 2018
Beiträge: 17
|
misterunknown schrieb: Wie sieht denn in Dovecot die userdb-Konfiguration aus?
| YYYY@heimdall:~$ doveconf -n userdb
userdb {
args = username_format=%u /etc/dovecot/users
driver = passwd-file
}
|
/etc/dovecot/users:
| # user:passwort:UserID:GroupID::homeDir
XXXXX@web.de:{CRAM-MD5}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:998:8::/home/virtmail/XXXXX@web.de
|
UID 998 ist Nutzer 'virtmail', GID 8 ist Gruppe 'mail'.
|
malte_si
(Themenstarter)
Anmeldungsdatum: 19. Oktober 2018
Beiträge: 17
|
So, ich glaube ich habe das Problem jetzt gelöst! ☺ Nachdem der dovecot-lda jetzt auch eine Log-Datei schreibt (offenbar hat er das vorher nicht getan, da er keine gültige Konfiguration erkannt hat) habe ich beim händischen Versuch, Mail als Nutzer "fetchmail" zuzustellen (s. oben) die Meldung bekommen
Oct 25 22:10:24 lda(XXXXX@web.de): Fatal: setuid(998(virtmail) from userdb lookup) failed with euid=118(fetchmail): Operation not permitted (This binary should probably be called with process user set to 998(virtmail) instead of 118(fetchmail)) Und da er freundlicherweise die Lösung gleich mitliefert, habe ich anschließend das Ganze als Nutzer "virtmail" versucht und ... voilà, es klappt! Also habe ich den fetchmail-Daemon als Nutzer "virtmail" gestartet. Dazu musste ich /etc/init.d/fetchmail ändern:
...
USER=virtmail
...
Und die Dateirechte unter /var/run anpassen, damit eine .pid-Datei geschrieben werden kann:
sudo chown virtmail /var/run/fetchmail Jetzt noch die Frage an die Experten: Habe ich etwas übersehen, dass ich das so nicht hätte machen sollen? Schonmal vielen Dank an misterunknown und TomLu; ohne Euch wäre ich wohl so schnell nicht auf die richtige Idee gekommen! Und TomLus Dokumentation ist ja echt super. Die werde ich noch einmal in aller Ruhe durchlesen; da finden sich bestimmt noch massig gute Ideen, die ich übernehmen kann!
|