Linuxmuster v7 und Mailcow

Hallo zusammen,

irgendwann muss ich auch auf die V7.1 upgraden, momentan läuft noch linuxmuster.net 6.2 mit einigen Zusatzdiensten. Hier geht es um die E-Mail-Anbindung.
Also bisher läuft das direkt auf dem Server mit. Alle Lehrer und Schüler haben automatisch ihre E-Mail-Adressen. Auf die Mails greift man nicht nur über Horde3 zu, sondern auch über IMAPS und SMTPS, das habe ich mal nach außen hin geöffnet und läuft total stabil.
Nach dem Umzug auf V7.1 ist also der Wunsch da, dass weiterhin nicht nur die Lehrer, sondern auch die Schüler schulische Mail-Adressen haben, die sie von außerhalb abrufen können.
Daher bin ich auf einem Testsystem gerade dabei, auf einem Dockerhost in der DMZ eine mailcow mit der Erweiterung linuxmuster-mailcow einzurichten.
Der Zugriff auf die Weboberfläche für den Administrator läuft über die Ports 8080 bzw. 8443, das wurde in der Konfigurationsdatei mailcow.conf so eingerichtet:

HTTP_PORT=8080
HTTP_BIND=

HTTPS_PORT=8443
HTTPS_BIND=

Nun kann ich ja die Log-Dateien der Container auslesen. Die Anbindung an das AD des Linuxmuster.net-Servers scheint zu funktionieren, aber irgendwas fehlt noch zwischen den Containern. Es kommt nämlich zu Fehlermeldungen im Container linuxmuster-mailcow (docker-compose logs linuxmuster-mailcow):

| 2022-08-03 07:47:10 - [INFO] === Starting sync ===
mailcowcustomized_linuxmuster-mailcow  | 2022-08-03 07:47:10 - [INFO] Step 1: Loading current Data from AD
mailcowcustomized_linuxmuster-mailcow  | 2022-08-03 07:47:10 - [INFO]     * Binding to ldap
mailcowcustomized_linuxmuster-mailcow  | 2022-08-03 07:47:10 - [INFO]     * Loading users from AD
mailcowcustomized_linuxmuster-mailcow  | 2022-08-03 07:47:10 - [INFO]     * Loading groups from AD
mailcowcustomized_linuxmuster-mailcow  | 2022-08-03 07:47:10 - [INFO] Step 2: Loading current Data from Mailcow
mailcowcustomized_linuxmuster-mailcow  | 2022-08-03 07:47:10 - [INFO]     * Loading current domains from Mailcow
mailcowcustomized_linuxmuster-mailcow  | 2022-08-03 07:47:10 - [ERROR] HTTPSConnectionPool(host='nginx-mailcow', port=443): Max retries exceeded with url: /api/v1/get/domain/all (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fcfffe89a00>: Failed to establish a new connection: [Errno 111] Connection refused'))
mailcowcustomized_linuxmuster-mailcow  | 2022-08-03 07:47:10 - [CRITICAL] !!! A connection error occured, is mailcow still starting up? !!!
mailcowcustomized_linuxmuster-mailcow  | 2022-08-03 07:47:10 - [CRITICAL] !!! The sync failed, see above errors !!!
mailcowcustomized_linuxmuster-mailcow  | 2022-08-03 07:47:10 - [INFO] sleeping 30 seconds before next cycle

Weiß mir jemand einen Rat, wo ich weiter suchen kann? Irgendwie scheint der Zugriff über Port 443 nicht zu klappen. Zertifikate habe ich noch keine eingerichtet. Wo und wie kann ich das machen?

Edit:
nun bin ich um eine Erkenntnis reicher.
Der Zugriff über https://ip:8443/api/v1/get/domain/all listet mir die angelegte Domain auf.
Es sieht so aus, als ob am falschen Port nachgefragt wird.

Edit2:
nachdem ich in docker-compose.override.yml die Zeile

- LINUXMUSTER_MAILCOW_API_URI=https://172.16.69.1:8443

ergänzt habe, wird die mailcow wohl erreicht, allerdings kommt jetzt ein Authentifizierungsfehler:

 2022-08-03 09:37:30 - [INFO]     * Loading current domains from Mailcow
mailcowcustomized_linuxmuster-mailcow  | 2022-08-03 09:37:30 - [CRITICAL] !!! Error getting domains from Mailcow: authentication failed !!!
mailcowcustomized_linuxmuster-mailcow  | 2022-08-03 09:37:30 - [CRITICAL] !!! The sync failed, see above errors !!!

In den logs von nginx-mailcow steht:

2022/08/03 09:38:00 [error] 20#20: *545 FastCGI sent in stderr: "PHP message: mailcow UI: Invalid password for  by 172.22.1.1" while reading response header from upstream, client: 172.22.1.1, server: nnn.mein.server.nnn, request: "GET /api/v1/get/domain/all HTTP/1.1", upstream: "fastcgi://[fd4d:6169:6c63:6f77::a]:9002", host: "172.16.69.1:8443"

Ich dachte, das läuft über den API Key? Den muss ich nochmal überprüfen. Mist, den hatte ich bei einer Neuinstallation des ganzen Paketes vergessen. Aber nachdem er in der UI neu angelegt wurde und im der Konfiguration hinterlegt wurde, läuft es … uuuuh, die API muss noch per Haken aktiviert werden.

VG
Christian

1 „Gefällt mir“

Kann ich erst in der Antwort auf „gelöst“ klicken?
Also die ersten Schritte sind getan.
Jetzt kommen natürlich noch weitere Fragen.

Die wichtigste Frage:

Wie binde ich das Mail Relay von Ionos an?
Das war in linuxmuster.net 6.2 in zwei Stellen erledigt: fetchmail und postfix

Aber ich lese mich dazu erst noch weiter ein.

VG
Christian

Hallo zusammen,

da Selbstgespräche offensichtlich erfolgreich sind, schreibe ich hier weiter meine Fortschritte und Gedanken auf;-)

Also: um Mails über ein SMTP Relay rauszuschicken richtet man in Mailcow Konfiguration → Server-Konfiguration → Routing eines senderabhängige Transport Map ein [smtp.ionos.de]:587 und dann die entsprechenden Zugangsdaten des Catchall-Postfachs *@domain auf dem Ionos-Server.

Umgekehrt will ich von dort alle E-Mails an die Domäne abholen - außer den fest bei Ionos eingerichteten - und dann an die Mailboxen in der Mailcow verteilen. Das klappt noch nicht. Ich kann natürlich mit einem auf der Mailcow eingerichteten Konto z.B. catchall@domain und der Synchronisierungsoption, jede Minute Mails von Ionos holen. Nur hängen diese dann in diesem Postfach fest und werden nicht weiter verteilt.
Hat jemand eine Idee, wo ich beim Abruf per IMAP eines Catchall-Kontos bei Ionos ansetzen muss?

Viele Grüße
Christian

Danke für’s Mitlesen.

Das Problem war folgendes: die Synchronisierungsoption in der Mailcow UI ist ein simples IMAPsync, ohne dass danach irgendwelche Filterregeln (sieve) ausgeführt werden. Ich habe nun auf dem Dockerhost selbst fetchmail installiert und lasse die E-Mails vom Catchallkonto bei Ionos abholen (IMAP idle reagiert praktisch in einer Sekunde) und per smtp an die Mailcow ausliefern.
Jetzt läuft es, wie es soll.
Insgesamt ist dieses Linuxmuster-Mailcow docker-container Konstrukt sehr mächtig und liefert insgesamt eine tolle Komplettlösung für schulische E-Mails. Danke dafür.

VG
Christian

2 „Gefällt mir“

Hallo Christian,

Danke für’s Mitlesen.

ich habe sehr interessiert mitgelesen.
… leider konnte ich nichts Sinnvolles beitragen: zu Glück hast du es
herausgefunden und dann auch iher für uns dokumentiert :slight_smile:

LG

Holger

Hallo Christian,
auch ich habe gerne mitgelesen.
Jetzt noch die Zeit finden und dies implementieren.
Danke Ralf

Huhu Christian,

hier solltest du vielleicht besser …=https://nginx-mailcow:8443 reinschreiben. Die IP könnte sich beim Container-Neustart ändern befürchte ich.

LG Jesko

1 „Gefällt mir“

Ich hatte das gleiche bzw ein Ähnliches Problem:

mailcowcustomized_linuxmuster-mailcow  | 2023-07-31 10:21:08 - [INFO] === Starting sync ===
mailcowcustomized_linuxmuster-mailcow  | 2023-07-31 10:21:08 - [INFO] Step 1: Loading current Data from AD
mailcowcustomized_linuxmuster-mailcow  | 2023-07-31 10:21:08 - [INFO]     * Binding to ldap
mailcowcustomized_linuxmuster-mailcow  | 2023-07-31 10:21:08 - [INFO]     * Loading users from AD
mailcowcustomized_linuxmuster-mailcow  | 2023-07-31 10:21:08 - [INFO]     * Loading groups from AD
mailcowcustomized_linuxmuster-mailcow  | 2023-07-31 10:21:08 - [INFO] Step 2: Loading current Data from Mailcow
mailcowcustomized_linuxmuster-mailcow  | 2023-07-31 10:21:08 - [INFO]     * Loading current domains from Mailcow
mailcowcustomized_linuxmuster-mailcow  | 2023-07-31 10:21:08 - [ERROR] HTTPSConnectionPool(host='nginx-mailcow', port=8443): Max retries exceeded with url: /api/v1/get/domain/all (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fc8454d1750>: Failed to establish a new connection: [Errno 111] Connection refused'))
mailcowcustomized_linuxmuster-mailcow  | 2023-07-31 10:21:08 - [CRITICAL] !!! A connection error occured, is mailcow still starting up? !!!
mailcowcustomized_linuxmuster-mailcow  | 2023-07-31 10:21:08 - [CRITICAL] !!! The sync failed, see above errors !!!

Der Tipp

half mir einen Schritt weiter.