Stretch: Update von courier-authdaemon zerschießt Exim-Konfiguration
Hallo Liste!
Kürzlich gab es in Stretch ein Update des Paketes "courier-authdaemon", dessen Installation mir leider meine Exim-Konfiguration (in der ich User gegen courier-authdaemon authentifiziere) zerschossen hat. Doch der Reihe nach:
Nach dem Update hatte ich zunächst Fehlereinträge der folgenden Art im Exim Logfile:
| 2021-04-20 06:42:39 plain authenticator failed for xxx ([yyy]) [zzz]: 435 Unable to authenticate at present (set_id=sebastian): failed to connect to socket /var/run/courier/authdaemon/socket: Permission denied
("xxx", "yyy" und "zzz" sind jeweils anonymisierte Hostnamen und IP-Adressen.)
Tatsächlich - der Socket hat zwar noch "globale" Zugriffsrechte...
| # ls -la /var/run/courier/authdaemon/socket
| srwxrwxrwx 1 root root 0 Apr 20 06:42 /var/run/courier/authdaemon/socket
| #
...das Verzeichnis obendrüber jedoch nicht (mehr):
| # ls -la /var/run/courier/
| total 8
| drwxrwxr-x 3 root courier 140 Apr 20 06:42 .
| drwxr-xr-x 41 root root 1480 Apr 20 06:36 ..
| drwxr-x--- 2 courier courier 100 Apr 20 06:42 authdaemon
| -rw-r--r-- 1 root root 6 Apr 20 06:42 imapd.pid
| -rw------- 1 root root 0 Mar 15 2020 imapd.pid.lock
| -rw-r--r-- 1 root root 6 Apr 20 06:42 imapd-ssl.pid
| -rw------- 1 root root 0 Mar 15 2020 imapd-ssl.pid.lock
| #
Das habe ich zunächst einmal hemdsärmelig so gelöst, dass ich den Debian-User mit in die courier-Gruppe gepackt habe:
| # adduser Debian-exim courier
(Falls es dafür bessere Lösungen geben sollte: gerne her damit.)
Mitglied der "daemon"-Gruppe, wie man in älteren WWW-Fundstücken als Lösungsvorschlag findet, war Debian-exim schon vorher.
Das hat das Exim-Problem jedoch nur verlagert, nicht gelöst. Die Fehlermeldungen im Exim-Logfile lauten jetzt:
| 2021-04-20 06:57:41 plain authenticator failed for xxx ([yyy]) [zzz]: 535 Incorrect authentication data (set_id=sebastian)
| 2021-04-20 06:57:44 login authenticator failed for xxx ([yyy]) [zzz]: 535 Incorrect authentication data (set_id=sebastian)
authtest sagt jedoch, dass alles in bester Ordnung wäre und auch das Abrufen von Mail via courier-imap-ssal vom selben Server, der sich natürlich auch gegen denselben courier-authdaemon authentifiziert, klappt problemlos:
| # authtest sebastian §PASSWORT
| Authentication succeeded.
|
| Authenticated: sebastian (system username: sebastian)
| Home Directory: /home/sebastian
| Maildir: (none)
| Quota: (none)
| Encrypted Password: $HASH
| Cleartext Password: $PASSWORT
| Options: (none)
| #
(Statt "$PASSWORT" und "$HASH" stehen im Original natürlich das richtige Passwort und ein echter Hash.)
In /var/log/auth.log steht dazu auch nur:
| Apr 20 06:57:39 tigersclaw authdaemond: pam_unix(exim:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost= user=sebastian
| Apr 20 06:57:41 tigersclaw authdaemond: pam_unix(exim:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost= user=sebastian
Und hier noch der Auszug der Authenticators aus meiner Exim-Config:
| [...]
| plain:
| driver = plaintext
| public_name = PLAIN
| client_send = "^${extract{2}{::}{${lookup{$sender_address}lsearch*{CONFDIR/sender.smarthost.passwd}{$value}fail}}}\
| ^${extract{3}{::}{${lookup{$sender_address}lsearch*{CONFDIR/sender.smarthost.passwd}{$value}fail}}}"
| server_condition = \
| ${if eq {${readsocket{/var/run/courier/authdaemon/socket}\
| {AUTH ${strlen:exim\nlogin\n$2\n$3\n}\nexim\nlogin\n$2\n$3\n}}}{FAIL\n}{no}{yes}}
| server_set_id = $2
|
| login:
| driver = plaintext
| public_name = LOGIN
| client_send = ": ${extract{2}{::}{${lookup{$sender_address}lsearch*{CONFDIR/sender.smarthost.passwd}{$value}fail}}} \
| : ${extract{3}{::}{${lookup{$sender_address}lsearch*{CONFDIR/sender.smarthost.passwd}{$value}fail}}}"
| server_prompts = Username:: : Password::
| server_condition = ${if eq {${readsocket{/var/run/courier/authdaemon/socket} \
| {AUTH ${strlen:exim\nlogin\n$1\n$2\n}\nexim\nlogin\n$1\n$2\n}}}{FAIL\n}{no}{yes}}
| server_set_id = $1
| server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
| [...]
Wie gesagt: bis vor dem Update des courier-authdaemon-Paketes hat das Setup einwandfrei funktioniert, aber jetzt gehen mir gerade die Ideen aus, wo man noch suchen bzw. schrauben könnte. Exim und courier-authdaemon habe ich inzwischen auch schon jeweils mehrfach neu gestartet.
Lange Rede, kurzer Sinn: wie kriege ich Exim wieder dazu, gegen courier-authdaemon zu authentifiziern?
Tschüs,
Sebastian
PS: Sorry, falls diese Mail irgendwie komisch aussehen sollte. Wegen des nicht funktionierden E-Mail-Setups musste ich sie über das Webinterface von GMX schreiben.
Reply to: