[gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

[gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von scientific » 06.11.2017 22:30:22

Hi Leute!

Angeregt durch die diversen Diskussionen rund um den Betrieb eines CAL/CARDDAV-Servers auf Basis von radicale widmete ich mich dem Thema etwas eingehender. Auch im Hinblick auf mein demnächst hoffentlich eintreffendes Einplatinen-Rechnerchen, auf dem dann mein neuer Mailserver laufen soll.

Ich beschäftige mich dazu mit der Container-Technologie Docker. Einfach weil es mich interessiert, und die Container denke ich, noch schlanker sind als systemd-nspawn-Container. Außerdem las ich mal, dass systemd-nspawn-Container eher nur für Entwicklungsumgebungen und eher weniger für Produktiv-Systeme geeignet sind. (Stimmt das so überhaupt noch?)

Jedenfalls habe ich auf der Github-Projektseite von radicale ein Docker-File entdeckt. https://github.com/Kozea/Radicale. Und auch hier eine Variante mit Anleitung. Der Author hat das Dockerfile von Kozea geforked und entwickelt daran selber weiter. https://hub.docker.com/r/tomsquest/docker-radicale/

Ich hab es an meine Bedürfnisse angepasst und gleich noch infcloud und radicale_imap mit reingepackt, da ich mich mit meinem noch bare-metal laufenden Dovecot authentifiziere:

Code: Alles auswählen

# cat radicale.docker 
FROM alpine:latest

# Version of Radicale (e.g. 2.0.0)
ARG VERSION=master

# Install dependencies
RUN apk add --no-cache \
      python3 \
      python3-dev \
      build-base \
      libffi-dev \
      ca-certificates \
      openssl && \
    python3 -m pip install passlib bcrypt && \
    apk del \
      python3-dev \
      build-base \
      libffi-dev 

# Install Radicale
RUN wget --quiet https://github.com/Kozea/Radicale/archive/${VERSION}.tar.gz --output-document=radicale.tar.gz && \
    tar xzf radicale.tar.gz && \
    python3 -m pip install ./Radicale-${VERSION} && \
    rm -r radicale.tar.gz Radicale-${VERSION}

# Install IMAP-Authentication
RUN wget --quiet https://github.com/Unrud/RadicaleIMAP/archive/${VERSION}.tar.gz --output-document=radicaleIMAP.tar.gz && \
    tar xzf radicaleIMAP.tar.gz && \
    python3 -m pip install ./RadicaleIMAP-${VERSION} && \
    rm -r radicaleIMAP.tar.gz RadicaleIMAP-${VERSION}

# Install Web-Frontend InfCloud
RUN wget --quiet https://github.com/Unrud/RadicaleInfCloud/archive/${VERSION}.tar.gz --output-document=radicaleInfCloud.tar.gz && \
    tar xzf radicaleInfCloud.tar.gz && \
    python3 -m pip install ./RadicaleInfCloud-${VERSION} && \
    rm -r radicaleInfCloud.tar.gz RadicaleInfCloud-${VERSION}

# Persistent storage for data (Mount it somewhere on the host!)
VOLUME /var/lib/radicale
# Configuration data (Put the "config" file here!)
VOLUME /etc/radicale

VOLUME /etc/ssl/certs
# TCP port of Radicale (Publish it on a host interface!)
EXPOSE 5232
# Run Radicale (Configure it here or provide a "config" file!)
CMD ["radicale", "-C", "/etc/radicale/xe-docker-config", "--hosts", "0.0.0.0:5232"]
Ich muss dazu sagen, dass ich noch bare-metal ebenfalls einen funktionierenden radicale laufen habe, den ich dann abdrehe, wenn ich mich dem Docker-Container spiele.

Ich erstelle mit obigem Docker-File also ein erstes Image:

Code: Alles auswählen

docker build -t radicale - < radicale.docker
Das dauert ein wenig und läuft schön durch.

Dann wird aus diesem Image ein Container erzeugt:

Code: Alles auswählen

# docker run --name radicale -p 5232:5232 -v /etc/ssl/certs:/etc/ssl/certs -v /etc/radicale:/etc/radicale -v /var/lib/radicale:/var/lib/radicale --network=host radicale
Das liefert dann das:

Code: Alles auswählen

Starting Radicale
Authentication type is 'radicale_imap'
Storage type is 'multifilesystem'
Rights type is 'owner_only'
Web type is 'radicale_infcloud'
Listening to 'radicale.localhost' on port 5232 using SSL
Radicale server ready
Und in der Tat, ich kann im Browser die Adresse https://radicale.localhost:5232 aufrufen, und ich bekomme die Loginmaske von Radicale zu Gesicht mit dem InfCloud-Link ganz oben. So auch wie vom Bare-Metal-Radicale-Server.
Jedoch dann geht es nicht mehr weiter.
Manchmal lässt sich das Webfrontend gar nicht mehr aufrufen, dann ist in der Ausgabe am Terminal von Docker das hier:

Code: Alles auswählen

GET request for '/' received from 127.0.0.1 using 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0'
Request headers:
{'CONTENT_LENGTH': '',
 'CONTENT_TYPE': 'text/plain',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br',
 'HTTP_ACCEPT_LANGUAGE': 'de,en-US;q=0.7,en;q=0.3',
 'HTTP_AUTHORIZATION': 'Basic **masked**',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DNT': '1',
 'HTTP_HOST': 'radicale.localhost:5232',
 'HTTP_UPGRADE_INSECURE_REQUESTS': '1',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 '
                    'Firefox/56.0',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_CERTIFICATE': None,
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'GET',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'radicale.localhost',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.StringIO object at 0x7f7cd124cd38>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=6>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized script name: ''
Sanitized path: '/'
Gefolgt von

Code: Alles auswählen

A server error occurred.  Please contact the administrator.
im Browser

Oder das Webfrontend kommt, aber wenn ich meine Logindaten eingebe und auf Enter drücke, rührt sich das Webfrontend nicht mehr und im Terminal steht:

Code: Alles auswählen

An exception occurred during request: [SSL: SSLV3_ALERT_BAD_CERTIFICATE] sslv3 alert bad certificate (_ssl.c:2178)
GET request for '/' received from 127.0.0.1 using 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0'
Request headers:
{'CONTENT_LENGTH': '',
 'CONTENT_TYPE': 'text/plain',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br',
 'HTTP_ACCEPT_LANGUAGE': 'de,en-US;q=0.7,en;q=0.3',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DNT': '1',
 'HTTP_HOST': 'radicale.localhost:5232',
 'HTTP_UPGRADE_INSECURE_REQUESTS': '1',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 '
                    'Firefox/56.0',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_CERTIFICATE': None,
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'GET',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'radicale.localhost',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.StringIO object at 0x7f1fdd41ed38>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=6>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized script name: ''
Sanitized path: '/'
Response content:
Redirected to .web
GET response status for '/' in 0.002 seconds: 302 Found
An exception occurred during request: SSL handshake failed: EOF occurred in violation of protocol (_ssl.c:749)
GET request for '/.web' received from 127.0.0.1 using 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0'
Request headers:
{'CONTENT_LENGTH': '',
 'CONTENT_TYPE': 'text/plain',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br',
 'HTTP_ACCEPT_LANGUAGE': 'de,en-US;q=0.7,en;q=0.3',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DNT': '1',
 'HTTP_HOST': 'radicale.localhost:5232',
 'HTTP_UPGRADE_INSECURE_REQUESTS': '1',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 '
                    'Firefox/56.0',
 'PATH_INFO': '/.web',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_CERTIFICATE': None,
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'GET',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'radicale.localhost',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.StringIO object at 0x7f1fdd41ed38>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=6>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized script name: ''
Sanitized path: '/.web'
Response content:
Redirected to .web/
GET response status for '/.web' in 0.003 seconds: 302 Found
GET request for '/.web/' received from 127.0.0.1 using 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0'
Request headers:
{'CONTENT_LENGTH': '',
 'CONTENT_TYPE': 'text/plain',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br',
 'HTTP_ACCEPT_LANGUAGE': 'de,en-US;q=0.7,en;q=0.3',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DNT': '1',
 'HTTP_HOST': 'radicale.localhost:5232',
 'HTTP_UPGRADE_INSECURE_REQUESTS': '1',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 '
                    'Firefox/56.0',
 'PATH_INFO': '/.web/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_CERTIFICATE': None,
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'GET',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'radicale.localhost',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.StringIO object at 0x7f1fdd41ed38>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=6>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized script name: ''
Sanitized path: '/.web/'
GET response status for '/.web/' in 0.003 seconds: 200 OK
GET request for '/.web/fn.js' received from 127.0.0.1 using 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0'
Request headers:
{'CONTENT_LENGTH': '',
 'CONTENT_TYPE': 'text/plain',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br',
 'HTTP_ACCEPT_LANGUAGE': 'de,en-US;q=0.7,en;q=0.3',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DNT': '1',
 'HTTP_HOST': 'radicale.localhost:5232',
 'HTTP_REFERER': 'https://radicale.localhost:5232/.web/',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 '
                    'Firefox/56.0',
 'PATH_INFO': '/.web/fn.js',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_CERTIFICATE': None,
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'GET',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'radicale.localhost',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.StringIO object at 0x7f1fdd41ed38>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=6>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized script name: ''
Sanitized path: '/.web/fn.js'
GET request for '/.web/css/main.css' received from 127.0.0.1 using 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0'
Request headers:
{'CONTENT_LENGTH': '',
 'CONTENT_TYPE': 'text/plain',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': 'text/css,*/*;q=0.1',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br',
 'HTTP_ACCEPT_LANGUAGE': 'de,en-US;q=0.7,en;q=0.3',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DNT': '1',
 'HTTP_HOST': 'radicale.localhost:5232',
 'HTTP_REFERER': 'https://radicale.localhost:5232/.web/',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 '
                    'Firefox/56.0',
 'PATH_INFO': '/.web/css/main.css',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_CERTIFICATE': None,
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'GET',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'radicale.localhost',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.StringIO object at 0x7f1fdd3ad438>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=7>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized script name: ''
GET response status for '/.web/fn.js' in 0.006 seconds: 200 OK
Sanitized path: '/.web/css/main.css'
GET response status for '/.web/css/main.css' in 0.005 seconds: 200 OK
GET request for '/.web/css/icon.png' received from 127.0.0.1 using 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0'
Request headers:
{'CONTENT_LENGTH': '',
 'CONTENT_TYPE': 'text/plain',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br',
 'HTTP_ACCEPT_LANGUAGE': 'de,en-US;q=0.7,en;q=0.3',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DNT': '1',
 'HTTP_HOST': 'radicale.localhost:5232',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 '
                    'Firefox/56.0',
 'PATH_INFO': '/.web/css/icon.png',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_CERTIFICATE': None,
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'GET',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'radicale.localhost',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.StringIO object at 0x7f1fdd41ed38>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=6>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized script name: ''
Sanitized path: '/.web/css/icon.png'
GET response status for '/.web/css/icon.png' in 0.002 seconds: 200 OK
PROPFIND request for '/' received from 127.0.0.1 using 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0'
Request headers:
{'CONTENT_LENGTH': '127',
 'CONTENT_TYPE': 'text/plain;charset=UTF-8',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br',
 'HTTP_ACCEPT_LANGUAGE': 'de,en-US;q=0.7,en;q=0.3',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DNT': '1',
 'HTTP_HOST': 'radicale.localhost:5232',
 'HTTP_REFERER': 'https://radicale.localhost:5232/.web/',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 '
                    'Firefox/56.0',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_CERTIFICATE': None,
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'radicale.localhost',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.StringIO object at 0x7f1fdd41ed38>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=6>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized script name: ''
Sanitized path: '/'
Access to '/' denied for anonymous user
Asking client for authentication
Response content:
Access to the requested resource forbidden.
PROPFIND response status for '/' in 0.002 seconds: 401 Unauthorized
PROPFIND request for '/' received from 127.0.0.1 using 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0'
Request headers:
{'CONTENT_LENGTH': '127',
 'CONTENT_TYPE': 'text/plain;charset=UTF-8',
 'GATEWAY_INTERFACE': 'CGI/1.1',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br',
 'HTTP_ACCEPT_LANGUAGE': 'de,en-US;q=0.7,en;q=0.3',
 'HTTP_AUTHORIZATION': 'Basic **masked**',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_DNT': '1',
 'HTTP_HOST': 'radicale.localhost:5232',
 'HTTP_REFERER': 'https://radicale.localhost:5232/.web/',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 '
                    'Firefox/56.0',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_CERTIFICATE': None,
 'REMOTE_HOST': '',
 'REQUEST_METHOD': 'PROPFIND',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'radicale.localhost',
 'SERVER_PORT': '5232',
 'SERVER_PROTOCOL': 'HTTP/1.1',
 'SERVER_SOFTWARE': 'WSGIServer/0.2',
 'wsgi.errors': <_io.StringIO object at 0x7f1fdd41ed38>,
 'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
 'wsgi.input': <_io.BufferedReader name=6>,
 'wsgi.multiprocess': False,
 'wsgi.multithread': True,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Sanitized script name: ''
Sanitized path: '/'
^CStopping Radicale
^C^CAn exception occurred during PROPFIND request on '/': Failed to communicate with IMAP server '172.18.0.1:993': [Errno 110] Operation timed out
Wie man sieht, hab ich mit Ctrl+C den Container bzw. radicale darin wieder gestoppt. Beim Stoppen hängt der Server in dem Moment auch über eine Minute ohne zu reagieren.

Gleichzeitig ist im Log von dovecot, das mit hochgedrehtem Logging läuft:

Code: Alles auswählen

Nov 06 22:23:17 aldebaran dovecot[10497]: imap-login: Login: user=<jakob>, method=PLAIN, rip=::1, lip=::1, mpid=3133, TLS, session=<I7EXEFdd1skAAAAAAAAAAAAAAAAAAAAB>
Nov 06 22:23:17 aldebaran dovecot[10497]: imap(jakob): Logged out in=96 out=1005
Nov 06 22:23:17 aldebaran dovecot[10497]: imap-login: Debug: SSL alert: close notify [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: elliptic curve secp384r1 will be used for ECDH and ECDHE key exchanges
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: elliptic curve secp384r1 will be used for ECDH and ECDHE key exchanges
Nov 06 22:23:19 aldebaran dovecot[10497]: auth: Debug: auth client connected (pid=3138)
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x10, ret=1: before SSL initialization [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: before SSL initialization [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: before SSL initialization [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS read client hello [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write server hello [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write certificate [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write key exchange [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write server done [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2002, ret=-1: SSLv3/TLS write server done [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write server done [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS read client key exchange [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS read change cipher spec [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS read finished [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write session ticket [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write change cipher spec [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2001, ret=1: SSLv3/TLS write finished [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x20, ret=1: SSL negotiation finished successfully [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL: where=0x2002, ret=1: SSL negotiation finished successfully [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: auth: Debug: client in: AUTH        1        PLAIN        service=imap        secured        session=zMk6EFdd2skAAAAAAAAAAAAAAAAAAAAB        lip=::1        rip=::1        lport=993        rport=51674        local_name=localhost
Nov 06 22:23:19 aldebaran dovecot[10497]: auth: Debug: client passdb out: CONT        1
Nov 06 22:23:19 aldebaran dovecot[10497]: auth: Debug: client in: CONT<hidden>
Nov 06 22:23:19 aldebaran dovecot[10497]: auth: Debug: passwd-file(jakob,::1,<zMk6EFdd2skAAAAAAAAAAAAAAAAAAAAB>): lookup: user=jakob file=/etc/dovecot/users
Nov 06 22:23:19 aldebaran dovecot[10497]: auth: Debug: client passdb out: OK        1        user=jakob        acl_groups=rg,
Nov 06 22:23:19 aldebaran dovecot[10497]: auth: Debug: master in: REQUEST        4063100929        3138        1        5d68dfffb88e5d7fef145f117751db63        session_pid=3139        request_auth_token
Nov 06 22:23:19 aldebaran dovecot[10497]: auth: Debug: passwd-file(jakob,::1,<zMk6EFdd2skAAAAAAAAAAAAAAAAAAAAB>): lookup: user=jakob file=/etc/dovecot/users
Nov 06 22:23:19 aldebaran dovecot[10497]: auth: Debug: master userdb out: USER        4063100929        jakob        home=/var/mail/jakob        auth_token=9b6d659c41f0e3ca2a9f7457a1aa6080a92ab98d
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Login: user=<jakob>, method=PLAIN, rip=::1, lip=::1, mpid=3139, TLS, session=<zMk6EFdd2skAAAAAAAAAAAAAAAAAAAAB>
Nov 06 22:23:19 aldebaran dovecot[10497]: imap(jakob): Logged out in=89 out=994
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL alert: close notify [::1]
Nov 06 22:23:19 aldebaran dovecot[10497]: imap-login: Debug: SSL alert: close notify [::1]
Oder es erscheint noch diese Meldung als Ausgabe von docker im Terminal:

Code: Alles auswählen

An exception occurred during GET request on '/favicon.ico': Failed to communicate with IMAP server '172.18.0.1:993': [Errno 110] Operation timed out
An exception occurred during request: 'NoneType' object has no attribute 'split'
Irgendwie spricht radicale aus dem Docker-Container nicht richtig mit dem lokalen dovecot.
Mit der selben Konfiguration (außer den Imap-Host auf die IP-Adresse aus dem host-Network von Docker gesetzt, also 172.17.0.1:993) funktioniert lokal alles wunderbar zusammen.

Ich versteh das nicht. Kann das an der IPv6 ::1 für localhost liegen, wie im Dovecot-Log aufscheint? Aber warum wird da die ::1 statt 127.0.0.1 genommen?

Hat irgendjemand Ideen oder Erfahrungen mit so einem Setup?

lg scientific

PS: Es soll auch exim4 und dovecot in weitere Container gepackt werden, wenn ich das ordentlich zum Laufen bekomme.
Zuletzt geändert von scientific am 08.11.2017 02:52:39, insgesamt 2-mal geändert.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Docker, radicale und IMAP-Authentifikation

Beitrag von scientific » 06.11.2017 22:44:51

Bzw. dies steht im Journal während eines Versuches, eine Verbindung mit dem radicale-Server herzustellen

Code: Alles auswählen

Nov 06 22:41:38 aldebaran dovecot[4973]: imap-login: Debug: SSL: elliptic curve secp384r1 will be used for ECDH and ECDHE key exchanges
Nov 06 22:41:38 aldebaran dovecot[4973]: imap-login: Debug: SSL: elliptic curve secp384r1 will be used for ECDH and ECDHE key exchanges
Nov 06 22:41:38 aldebaran dovecot[4973]: auth: Debug: auth client connected (pid=5828)
Nov 06 22:41:38 aldebaran dovecot[4973]: imap-login: Debug: SSL: where=0x10, ret=1: before SSL initialization [192.168.0.14]
Nov 06 22:41:38 aldebaran dovecot[4973]: imap-login: Debug: SSL: where=0x2001, ret=1: before SSL initialization [192.168.0.14]
Nov 06 22:41:38 aldebaran dovecot[4973]: imap-login: Debug: SSL: where=0x2002, ret=-1: before SSL initialization [192.168.0.14]
Nov 06 22:41:43 aldebaran dovecot[4973]: imap-login: Disconnected: Inactivity (no auth attempts in 180 secs): user=<>, rip=192.168.0.14, lip=172.17.0.1, TLS handshaking, session=<AMUPUlddEKbAqAAO>
Das schaut mir danach aus, als ob radicale dovecot erreichen würde. Die IP des Browsers ist 192.168.0.14, dovecot läuft auf 172.17.0.1. Die Server erreichen sich, aber dann ist Schluss mit der Kommunikation. Und ich finde nicht raus, wo es hakt.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Docker, radicale und IMAP-Authentifikation

Beitrag von scientific » 07.11.2017 10:08:17

Habe jetzt noch eine weitere Netzwerkkonfiguration vorgenommen, so wie der das hier beschreibt https://forums.docker.com/t/accessing-h ... er/14248/5

Ich bin leider in Sachen Netzwerk offenbar noch nicht fit genug...

Mein LAN/WLAN ist das Subnet 192.168.0.0/24.
Also richte ich ein weiteres Subnet ein:

Code: Alles auswählen

docker network create -d bridge --subnet 192.168.1.0/24 --gateway 192.168.1.1 dockernet
Dann erstelle ich einen neuen Container aus dem Image "radicale" mit

Code: Alles auswählen

docker run --rm -d --read-only -p 5232:5232 --name radicale -v /etc/ssl/certs:/etc/ssl/certs -v /etc/radicale:/etc/radicale --network="dockernet" radicale
der im neu eingerichteten "dockernet" hängt.

Docker richtet dann automatisch diese iptables ein:

Code: Alles auswählen

 # iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy DROP)
target     prot opt source               destination
DOCKER-ISOLATION  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain DOCKER (2 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             192.168.1.2          tcp dpt:5232

Chain DOCKER-ISOLATION (1 references)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere
Ich erreiche nun den Container auf https://localhost:5232 aber auch auf https://192.168.1.1:5232

Im Browser öffnet sich die Loginmaske von radicale. Ich gebe meinen Usernamen und das Passwort an und melde mich an.
Die Loginmaske verschwindet und es erscheint im Broser ein "Please wait..."

Dovecot loggt folgendes:

Code: Alles auswählen

Nov 07 09:53:20 aldebaran dovecot[1368]: imap-login: Debug: SSL: where=0x10, ret=1: before SSL initialization [192.168.1.2]
Nov 07 09:53:20 aldebaran dovecot[1368]: imap-login: Debug: SSL: where=0x2001, ret=1: before SSL initialization [192.168.1.2]
Nov 07 09:53:20 aldebaran dovecot[1368]: imap-login: Debug: SSL: where=0x2002, ret=-1: before SSL initialization [192.168.1.2]
Nov 07 09:53:20 aldebaran dovecot[1368]: imap-login: Debug: SSL: elliptic curve secp384r1 will be used for ECDH and ECDHE key exchanges
Nov 07 09:53:20 aldebaran dovecot[1368]: imap-login: Debug: SSL: elliptic curve secp384r1 will be used for ECDH and ECDHE key exchanges
Nov 07 09:53:20 aldebaran dovecot[1368]: auth: Debug: auth client connected (pid=4762)
Nach einer Pause von 2,5 Minuten kommt dann das im Log:

Code: Alles auswählen

Nov 07 09:55:52 aldebaran dovecot[1368]: imap-login: Disconnected: Inactivity (no auth attempts in 181 secs): user=<>, rip=192.168.1.2, lip=172.17.0.1, TLS handshaking, session=<UyH2vGBd3MXAqAEC>
Im Browser wird "Error 500 Internal Server Error"

Meine Dovecot-Config schaut so aus:

Code: Alles auswählen

# dovecot -n
# 2.2.27 (c0f36b0): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.16 (fed8554)
# OS: Linux 4.13.0-trunk-amd64 x86_64 Debian 9.1 btrfs
auth_debug = yes
auth_mechanisms = plain login cram-md5 digest-md5
auth_socket_path = /var/run/dovecot/auth-userdb
auth_verbose = yes
auth_verbose_passwords = yes
first_valid_uid = 1000
imap_capability = +XDOVECOT
imap_client_workarounds = tb-extra-mailbox-sep
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
mail_gid = vmail
mail_home =  /var/mail/%u
mail_location = maildir:/var/mail/%u/Maildir:LAYOUT=fs:INDEX=/var/lib/dovecot/db/indexes/%u:CONTROL=/var/lib/dovecot/db/control/%u
mail_plugins = zlib quota acl listescape mail_log notify virtual
mail_privileged_group = vmail
mail_server_admin = mailto:jakob@xundeenergie.at
mail_uid = vmail
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext
namespace {
  hidden = no
  ignore_on_failure = no
  inbox = no
  list = children
  location = maildir:/var/mail/%%u/Maildir:LAYOUT=fs:INDEX=/var/lib/dovecot/db/indexes/%u/shared/%%u:INDEXPVT=/var/mail/%u/shared:CONTROL=/var/lib/dovecot/db/control/%u/shared
  prefix = shared$%%u$
  separator = $
  subscriptions = no
  type = shared
}
namespace {
  hidden = no
  inbox = no
  list = children
  location = maildir:/var/mail/mailarchiv/%u/:LAYOUT=fs:INDEX=/var/lib/dovecot/db/indexes/mailarchiv/%u:INDEXPVT=/var/mail/%u/mailarchiv
  mailbox incoming {
    auto = create
  }
  mailbox outgoing {
    auto = create
  }
  prefix = Mailarchiv$
  separator = $
  subscriptions = no
  type = public
}
namespace {
  list = children
  location = maildir:/var/mail/public/:LAYOUT=fs:INDEXPVT=/var/mail/%u/public
  prefix = Roseggergasse$
  separator = $
  subscriptions = no
  type = public
}
namespace Virtual {
  hidden = no
  list = children
  location = virtual:/var/mail/virtual:INDEX=/var/lib/dovecot/db/indexes/virtual/%u
  mailbox Alle {
    comment = All my messages
    special_use = \All
  }
  mailbox "Virtual$Deleted Messages" {
    auto = no
    special_use = \Trash
  }
  mailbox Virtual$Drafts {
    auto = no
    special_use = \Drafts
  }
  mailbox Virtual$Entwürfe {
    auto = no
    special_use = \Drafts
  }
  mailbox "Virtual$Gelöschte Elemente" {
    auto = no
    special_use = \Trash
  }
  mailbox "Virtual$Gelöschte Objekte" {
    auto = no
    special_use = \Trash
  }
  mailbox Virtual$Gesendet {
    auto = no
    special_use = \Sent
  }
  mailbox "Virtual$Gesendete Elemente" {
    auto = no
    special_use = \Sent
  }
  mailbox "Virtual$Gesendete Objekte" {
    auto = no
    special_use = \Sent
  }
  mailbox Virtual$Markierte {
    comment = All my unread messages
  }
  mailbox Virtual$Mistkübel {
    auto = no
    special_use = \Trash
  }
  mailbox "Virtual$Neue Mails" {
    comment = All my unread messages
  }
  mailbox Virtual$Papierkorb {
    auto = no
    special_use = \Trash
  }
  mailbox Virtual$Sent {
    auto = no
    special_use = \Sent
  }
  mailbox "Virtual$Sent Messages" {
    auto = no
    special_use = \Sent
  }
  mailbox Virtual$Trash {
    auto = no
    special_use = \Trash
  }
  mailbox "Virtual$Ungelesene Mails" {
    comment = All my unread messages
  }
  prefix = Virtual$
  separator = $
  subscriptions = no
}
namespace inbox {
  hidden = no
  inbox = yes
  location =
  mailbox Archiv {
    auto = no
    special_use = \Archive
  }
  mailbox Archive {
    auto = no
    special_use = \Archive
  }
  mailbox Archives {
    auto = no
    special_use = \Archive
  }
  mailbox "Deleted Messages" {
    auto = no
    special_use = \Trash
  }
  mailbox Drafts {
    auto = no
    special_use = \Drafts
  }
  mailbox Entwürfe {
    auto = no
    special_use = \Drafts
  }
  mailbox "Gelöschte Elemente" {
    auto = no
    special_use = \Trash
  }
  mailbox "Gelöschte Objekte" {
    auto = no
    special_use = \Trash
  }
  mailbox Gesendet {
    auto = no
    special_use = \Sent
  }
  mailbox "Gesendete Elemente" {
    auto = no
    special_use = \Sent
  }
  mailbox "Gesendete Objekte" {
    auto = no
    special_use = \Sent
  }
  mailbox Important {
    auto = no
  }
  mailbox Junk {
    auto = subscribe
    autoexpunge = 30 days
    special_use = \Junk
  }
  mailbox Mistkübel {
    auto = no
    special_use = \Trash
  }
  mailbox Papierkorb {
    auto = no
    special_use = \Trash
  }
  mailbox Sent {
    auto = no
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    auto = no
    special_use = \Sent
  }
  mailbox Spam {
    auto = no
    special_use = \Junk
  }
  mailbox Trash {
    auto = no
    special_use = \Trash
  }
  mailbox Wichtig {
    auto = create
  }
  prefix = INBOX$
  separator = $
  subscriptions = no
}
namespace subscriptions {
  hidden = yes
  list = no
  location =
  prefix =
  subscriptions = yes
}
passdb {
  args = scheme=CRYPT username_format=%u /etc/dovecot/users
  driver = passwd-file
}
plugin {
  acl = vfile:/etc/dovecot/dovecot-acl:cache_secs=300
  acl_anyone = allow
  acl_shared_dict = file:/var/lib/dovecot/db/shared-mailboxes.db
  fts =  lucene
  fts_autoindex =  yes
  fts_autoindex_max_recent_msgs =  80
  fts_decoder =  decode2text.sh
  fts_index_timeout =  90
  fts_lucene =  whitespace_chars=@. normalize no_snowball
  mail_home =  /var/mail/%u
  setting_name = sieve, managedsieve
  sieve = file:/var/spool/dovecot/sieve/%n;active=/var/spool/dovecot/sieve/%n/%n.sieve
}
postmaster_address = postmaster@localhost
protocols = " imap lmtp sieve sieve"
service auth {
  unix_listener auth-client {
    group = vmail
    mode = 0666
    user = vmail
  }
  unix_listener auth-userdb {
    group = vmail
    mode = 0666
    user = vmail
  }
}
service imap-login {
  inet_listener imaps {
    port = 993
    ssl = yes
  }
  process_min_avail = 1
}
service imap {
  process_limit = 1024
}
ssl = required
ssl_cert = </etc/dovecot/dovecot.crt
ssl_cipher_list = ALL:!ADH:!LOW:!SSLv2:!SSLv3:!EXP:!aNULL:+HIGH:+MEDIUM
ssl_key =  # hidden, use -P to show it
userdb {
  args = username_format=%u /etc/dovecot/users
  default_fields = home=/var/mail/%u
  driver = passwd-file
}
verbose_proctitle = yes
verbose_ssl = yes
protocol lmtp {
  mail_plugins = zlib quota acl listescape mail_log notify virtual quota sieve acl
}
protocol lda {
  mail_plugins = zlib quota acl listescape mail_log notify virtual quota sieve acl
}
protocol imap {
  mail_max_userip_connections = 10
  mail_plugins = zlib quota acl listescape mail_log notify virtual imap_quota imap_acl
}
Die Config für radicale im Container sieht so aus:

Code: Alles auswählen

$ grep -v "^#" /etc/radicale/xe-docker-config |sed -e '/^$/d'
[server]
hosts = 0.0.0.0:5232
ssl = True
certificate = /etc/radicale/ssl/certs/radicale.crt
key = /etc/radicale/ssl/certs/private/radicale.key
realm = Radicale - Password Required
[encoding]
request = utf-8
stock = utf-8
[auth]
type = radicale_imap
imap_host = 192.168.1.1:993
imap_secure = True
[rights]
type = None
[storage]
filesystem_folder = /var/lib/radicale/collections
[logging]
config = /etc/radicale/xe-logging
[headers]
Es muss irgendwo an der Netzwerkkonfiguration scheitern, da die selbe Konfiguration für radicale mit radicale_imap tadellos funktioniert, wenn radicale auch auf localhost direkt läuft, wie auch dovecot.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von MartinV » 07.11.2017 11:49:22

Hallo scientific,

von Netzwerk-Setup habe ich praktisch keine Ahnung, aber ich habe zumindest etwas Erfahrung mit docker.

Ein paar Gedankenansätze:
- Möglicherweise funkt iptables auf dem host irgendwo dazwischen. Vllt. mal testweise deaktivieren.

- Derzeit ist Dein Container-User root. Ist das gewollt/richtig/erstmal unschädlich?? Du kannst das ändern mit --user=UID:GID. Zusätzliche Gruppen kannst Du mit --group-add GRUPPE zum User hinzufügen.

- Mit der Option --read-only kann der Container keine Dateien schreiben, nicht mal in /tmp. Diese Option besser erst einmal weglassen. (--volume ist von --read-only nicht betroffen).

- Diese Schreibweise kann problematisch sein (Du willst Ordner vom host teilen, richtig?):

Code: Alles auswählen

-v /etc/ssl/certs:/etc/ssl/certs
Besser:

Code: Alles auswählen

-v /etc/ssl/certs:/etc/ssl/certs:rw
Oder read-only:

Code: Alles auswählen

-v /etc/ssl/certs:/etc/ssl/certs:ro
- In Deinem ersten Beispiel hast Du noch --network=host gesetzt. Möglicherweise relevant ist hier auch die Option --uts: https://docs.docker.com/engine/referenc ... ttings-uts
The UTS namespace is for setting the hostname and the domain that is visible to running processes in that namespace. By default, all containers, including those with --network=host, have their own UTS namespace.
- Für Dauernutzung nicht zu empfehlen, aber zum Problem Eingrenzen hilfreich: Container-Isolierung reduzieren:
--privileged erlaubt Zugriff auf alles in /dev
--cap-add=ALL erlaubt alle linux capabilities https://docs.docker.com/engine/referenc ... pabilities
--ipc=host IPC namespacing deaktivieren
--network=host network namespacing deaktivieren
--uts=host UTS namespacing deaktivieren
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von scientific » 07.11.2017 12:45:16

Hi vielen Dank!

Ich hab meinen docker run-Befehl nun nach deinen Hinweisen so aufgebaut:

Code: Alles auswählen

docker run --rm -p 5232:5232 --name radicale -v /etc/ssl/certs:/etc/ssl/certs:ro -v /etc/radicale:/etc/radicale:ro -v /var/lib/radicale/collections:/var/lib/radicale/collections:rw --uts='host' --network="host" --user=138:149 --group-add=10000 --privileged --cap-add=ALL --ipc=host radicale
Es stimm, mit den -v-Befehlen möchte ich die lokalen Zertifikate, die lokale Konfiguration und die lokalen collections im Container nutzen (zumindest solange, bis das Ding richtig läuft).
UID:GID=138:149 ist jeweils radicale. GID 10000 ist vmail, der auf die Emails und die Authentifikations-Sockets Zugriff hat.

Die iptables hab ich mit

Code: Alles auswählen

iptables -F
gelöscht.

Das Verhalten hat sich leider nicht geändert... :evil:

Eventuell doch eine Konfigurationsgeschichte in dovecot?
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von ThorstenS » 07.11.2017 13:39:31

wg. der Verzögerung - wahrscheinlich bremst dich dovecot auch aus:
https://wiki2.dovecot.org/Authentication/Penalty

installiere in dem container auch dovecot, sodaß dir doveadm-auth zur Verfügung steht - das isoliert dir das auth-Problem:
https://wiki2.dovecot.org/Tools/Doveadm/Auth
(danach loggst du dich interaktiv in den container ein und testest die Authentifizierung)

Das war Blödsinn, das nutzt den auth_socket_path (/var/run/dovecot/auth-userdb) und geht nicht übers Netz

Wenn das nicht hilft, zieh eine alpine VM hoch und teste von dort. Damit schließt du die Netzwerkproblematik aus. vllt. fehlt dir auch eine lib/python modul?!

Finde deinen Thread hier höchst interessant - bin auf die Lösung gespannt :THX:

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von MartinV » 07.11.2017 15:52:36

scientific hat geschrieben: ↑ zum Beitrag ↑
07.11.2017 12:45:16
GID 10000 ist vmail, der auf die Emails und die Authentifikations-Sockets Zugriff hat.
ThorstenS hat geschrieben: ↑ zum Beitrag ↑
07.11.2017 13:39:31
das nutzt den auth_socket_path (/var/run/dovecot/auth-userdb) und geht nicht übers Netz
Vielleicht ist das der Knackpunkt, wo es hängt? Vielleicht den socket teilen?

Code: Alles auswählen

-v /var/run/dovecot/auth-userdb:/var/run/dovecot/auth-userdb:rw
Edit: Oder ist das der socket?

Code: Alles auswählen

-v /var/run/dovecot/auth-client:/var/run/dovecot/auth-client:rw
Edit: Einen hab ich noch!
--pid=host deaktiviert namespacing für Prozesse
Vergleiche: The most pointless docker command ever
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von scientific » 07.11.2017 22:07:32

Hat leider auch nichts gebracht.
Aber andererseits... radicale_imap greift ja nur auf host+port des Imap-Servers zu. Nicht auf ein Auth-Socket... Zumindest muss/kann ich kein Socket angeben (anders als bei exim4, wo ich explizit das dovecot-Socket zur Authentifizierung angeben muss)...

Seltsam das Ganze.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von MartinV » 07.11.2017 22:20:07

scientific hat geschrieben: ↑ zum Beitrag ↑
07.11.2017 22:07:32
Seltsam das Ganze.
Mit diesen Optionen ist die Containerisolierung fast null, unterschiedlich ist (afaik) nur noch das Dateisystem (Edit: Und die Benutzer und Gruppen, s. u.):

Code: Alles auswählen

--privileged --network=host --uts=host --ipc=host --pid=host --cap-add=ALL
Du könntest größere Bestandteile des Dateisystems teilen:
-v /var/run/dovecot:/var/run/dovecot:rw
-v /etc:/etc:rw
-v /var/lib:/var/lib:rw
Statt auf ein alpine image könntest Du auf dem debian:stretch image aufbauen, um sicher zu sein, daß die Systeme angesichts geteilter Systemverzeichnisse nicht zu unterschiedlich sind.

Edit:
Um die gleich Benutzer- und Gruppenkonfiguration im Container zu haben, kann man /etc/passwd und /etc/group als volumes einbinden. Den gewünschten User wie gehabt mit --user uid:gid benennen. --group-add dürfte dann nicht mehr nötig sein, steht ja schon in /etc/group.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von scientific » 08.11.2017 00:33:30

Ich hab grad die Vermutung, dass das so wie ich mir das Wünsche, nicht ganz funktionieren wird.

Code: Alles auswählen

https://wiki2.dovecot.org/WhyDoesItNotWork
Aber ganz aufgeben will ich noch nicht. Denn der IMAP-Authentikator "radicale_imap" von Unrud scheint anders zu funktionieren, als über so ein Unix-Socket.

Ich hab mal das Github-Repo geforked um damit herumspielen zu können.
https://github.com/xundeenergie/Radical ... _init__.py

Wenn jemand von euch Python versteht, möge er/sie mir meine Vermutung bestätigen - bitte!

Der Authenticator parst einmal die Config, dann wird entschieden ob Verschlüsselt oder unverschlüsselt eine Verbindung hergestellt werden soll und dann gibts einen Login-Versuch mit dem Usernamen und dem Passwort aus dem Web-Formular.
Wenn der Login-Versuch (also so wie wenn sich ein MUA/Client oder openssl s_client beim Imap-Server einloggt) erfolgreich ist, wird wieder ausgeloggt und ein "True" zurückgegeben.
Ist der Loginversuch nicht erfolgreich wird ein "False" zurückgegeben.

Das wars auch schon. Also kein Websocket, kein Unix-Socket... Es muss nur mit der imaplib und der ssl-Lib von python ein erfolgreicher Login stattfinden können, dann erlaubt radicale den Zugriff für diesen User auf Kalender und Adressbuch...

Dann scheint es also doch ein Konfigurationsproblem von dovecot oder ein Netzwerkproblem zu sein...

Ich werde auf jeden Fall weiterforschen (auch wenn ich mich parallel dazu mit systemd-nspawn beschäftigen werde... )

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von scientific » 08.11.2017 02:52:23

Um meine Vermutung zu Verifizieren habe ich nun einen Weg gefunden, wie ich diesen Container interaktiv bedienen kann:

Code: Alles auswählen

docker run --rm -it --entrypoint /bin/ash -p 5232:5232 --name radicale -v /etc/ssl/certs:/etc/ssl/certs:ro -v /etc/radicale:/etc/radicale:ro -v /var/lib/radicale/collections:/var/lib/radicale/collections:rw --pid="host" --uts='host' --network="host" --user=138:149 --group-add=10000  --privileged --cap-add=ALL --ipc=host radicale1
Damit kann ich mich mit

Code: Alles auswählen

openssl s_client -crlf -connect 172.17.0.1:993
auf dem Imap-Server vom Container aus erfolgreich einloggen (und auch wieder ausloggen). Also genau das, was radicale_imap auch machen sollte - wie ich im Quelltext zuvor rausgefunden habe.

Aufgrund dieses Testes gehe ich davon aus, dass auch das Netzwerk und dovecot korrekt funktionieren und konfiguriert sind. Es muss also an etwas anderem liegen, dass die Anmeldung nicht klappt und radicale bis zum timeout auf eine Antwort von dovecot wartet...


Und nach LANGEM Hin und Her konnte ich den Fehler immer weiter eingrenzen.
Zum einen fehlte mir das Zertifikat meiner eigenen CA. Dieses habe ich über ein Paket installiert und liegt in /usr/share/ca-certificates. Im Container verwies der Link in /etc/ssl/certs dann natürlich ins Leere. Also noch

Code: Alles auswählen

-v /usr/share/ca-certificates:/usr/share/ca-certificates:ro
in der docker run-Zeile angehängt.

Radicale manuell gestartet (über obige Befehlszeile kann man den Container schön debuggen und dann das gewünschte Programm starten) zeigte dann endlich genauere Fehlermeldungen aus Python an.
Ich kam dann so auf die Lösung, dass mir im Zertifikat für Dovecot und radicale die IP-Adressen des Containers bzw. der Docker-Network-Bridge fehlten. Die erzwungene SSL-verschlüsselte Verbindung zwischen radicale und Dovecot klappte damit nicht. Und damit blieb die Anmeldung noch vor dem Login hängen, da gar keine SSL-Verbindung zustande kam.

Hab die IP-Adressen noch ergänzt im Cert, und siehe da, jetzt kann ich radicale im Container laufen lassen und bekomme endlich Zugriff auf meine Kontakte und Kalender.

Sogar die Synchronisation mit meinem Smartphone funktioniert.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
MartinV
Beiträge: 788
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: [gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von MartinV » 08.11.2017 14:53:59

Ich gratuliere! :THX:

Wenn Du jetzt noch die Un-Isolierungen entfernst, machst Du den Container sicherer:

Code: Alles auswählen

--privileged --network=host --uts=host --ipc=host --pid=host --cap-add=ALL
Die Entfernung von --uts=host --ipc=host --pid=host und --privileged wird wahrscheinlich keinen Unterschied machen.

--cap-add=ALL brauchst du wahrscheinlich auch nicht; meine eigenen Anwendungen laufen im Gegenteil sogar mit --cap-drop=ALL. Das erhöht die Containersicherheit um einiges, insbesondere, wenn die Container nicht als root laufen. (root im Container ist eine verbreitete Unsitte).

--network=host zu ersetzen wird wahrscheinlich etwas aufwendiger, aber einen Anfang dazu hast Du ja im 2. oder 3. Beitrag schon gemacht. Vllt. kommt dann auch --uts nochmal ins Spiel.

--read-only kannst du noch probieren, macht aber imho keinen so großen Unterschied in der Sicherheit. Für Anwendungen, die /tmp brauchen, erzeuge ich ein /tmp volume, das von --read-only nicht betroffen ist und das beim Löschen des Containers ganz vom System verschwindet:

Code: Alles auswählen

--read-only -v /tmp
--rm zum automatischen Löschen der Container hast Du schon in Deinem Aufruf, Ich benutze es grundsätzlich, ich erzeuge lieber jedesmal neue Container als mit alten Containern weiterzuarbeiten.

--security-opt=no-new-privileges setze ich pauschal als zusätzliche Absicherung.

Wenn Du das Image noch weiter absichern und zusätzlich noch verschlanken willst, kannst Du alles entfernen, was nicht ausdrücklich für das gewünschte Programm benötigt wird. Es gibt dafür auch Tools,die ich aber noch nicht näher ausgetestet habe:
https://github.com/docker-slim/docker-slim
https://github.com/jwilder/docker-squash
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: [gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von weshalb » 08.11.2017 23:06:14

Na dann schreiben wir mal hier weiter, um nicht noch ein Thread zu eröffnen.


Bei mir gehen, trotz richtiger Config in Infcloud, dauerhaft deutsch als Sprache und der Refresh-Button nicht. Zudem ist Infcloud recht lahm. Produktiv so def. nicht einsetzbar.

Hast du da bessere Erfahrungen gemacht?

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von scientific » 08.11.2017 23:42:08

Lahm ist es hier auch...

Aber die Defaultsprache geht.
Poste mal deine config.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: [gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von weshalb » 09.11.2017 11:55:09

scientific hat geschrieben: ↑ zum Beitrag ↑
08.11.2017 23:42:08
Lahm ist es hier auch...

Aber die Defaultsprache geht.
Poste mal deine config.
Wie gesagt, meine Erfahrungen waren damals auch schon nicht so prall. Auf meinem neuen Server wird es Horde.Da spare ich mir Radicale, Infcloud und Roundcube zusammen, zumal die Administration super ist und es vernünftig weiterentwickelt wird. Imapanbindung klappt sofort und das Sharing von Kalendern: easy.

Ich weiß auch gar nicht, warum man immer noch so viel rumfrickelt....vielleicht aus sportlichen Gründen? :wink:

Code: Alles auswählen

// globalEnableRefresh
// This option enables or disables the manual synchronization button in
// the interface. If this option is enabled then users can perform server
// synchronization manually. Enabling this option may cause high server
// load (even DDOS) if users will try to manually synchronize data too
// often (instead of waiting for the automatic synchronization).
// If undefined or false, the synchronization button is disabled.
// NOTE: enable this option only if you really know what are you doing!
// Example:
var globalEnableRefresh=true;

// globalInterfaceLanguage
// Default interface language (note: this option is case sensitive):
//   cs_CZ (Čeština [Czech])
//   da_DK (Dansk [Danish]; thanks Niels Bo Andersen)
//   de_DE (Deutsch [German]; thanks Marten Gajda and Thomas Scheel)
//   en_US (English [English/US])
//   es_ES (Español [Spanish]; thanks Damián Vila)
//   fr_FR (Français [French]; thanks John Fischer)
//   it_IT (Italiano [Italian]; thanks Luca Ferrario)
//   ja_JP (日本語 [Japan]; thanks Muimu Nakayama)
//   hu_HU (Magyar [Hungarian])
//   nl_NL (Nederlands [Dutch]; thanks Johan Vromans)
//   sk_SK (Slovenčina [Slovak])
//   tr_TR (Türkçe [Turkish]; thanks Selcuk Pultar)
//   ru_RU (Русский [Russian]; thanks Александр Симонов)
//   uk_UA (Українська [Ukrainian]; thanks Serge Yakimchuck)
//   zh_CN (中国 [Chinese]; thanks Fandy)
// Example:
var globalInterfaceLanguage='de_DE';


// globalInterfaceCustomLanguages
// If defined and not empty then only languages listed here are shown
// at the login screen, otherwise (default) all languages are shown
// NOTE: values in the array must refer to an existing localization
// (see the option above)
// Example:
//   globalInterfaceCustomLanguages=['en_US', 'sk_SK'];
//var globalInterfaceCustomLanguages=[];
var globalInterfaceCustomLanguages='de_DE';

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von scientific » 09.11.2017 13:11:31

Schaut gut aus.
Hast du im Verzeichnis das Skript

Code: Alles auswählen

 ./cache_update.sh
ausgeführt?
Das ist für HTML5 notwendig, sonst werden die Config-Änderungen nicht übernommen.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: [gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von weshalb » 09.11.2017 13:44:39

scientific hat geschrieben: ↑ zum Beitrag ↑
09.11.2017 13:11:31
Schaut gut aus.
Hast du im Verzeichnis das Skript

Code: Alles auswählen

 ./cache_update.sh
ausgeführt?
Das ist für HTML5 notwendig, sonst werden die Config-Änderungen nicht übernommen.

lg scientific
Gefühlte 100 mal. Dachte auch erst an den Cache des Browers, Pustekuchen.

Konnte aber den Fehler noch weiter eingrenzen:

https://urldesservers:5232/.web/infcloud (geöffnet aus Radicale) : voreingestellte Sprache Englisch, Anmeldung funktioniert

https://urldesservers/infcloud (direkter Zungang zu Infcloud):voreingestellte Sprache Deutsch, Anmeldung funktioniert nicht

https://urldesservers:5232/infcloud/ (mal irgendwas dazwischen):voreingestellte Sprache Deutsch, gefolgt von typischer htpasswd Anmeldung, nach Eingabe des Zugangs >Access to the requested resource forbidden.

Wenn ich heute noch Zeit finde, werde ich mal radicale ohne radicale-infcloud-plugin installieren und Infcloud dann extra. Aber auch nur noch interessehalber, denn wie gesagt: produktiv gesehen einfach viel zu lahm.

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: [gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von weshalb » 09.11.2017 22:29:04

Probe ist durch, mit Infcloud ohne radicale-plugin installiert und er kann sich nicht mit verbinden. Von Logseite her sieht man nix.

Brech das dann auch mal ab. Infcloud....erstmal nicht mehr.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von scientific » 12.11.2017 20:58:41

Hab mir jetzt auch mal horde installiert.
Ja, das schaut echt gut aus. Hatte damit zum letzten Mal vor 10 Jahren auf der Uni zu tun...

Scheint ein Rundumsorglospaket zu sein.

Hat aber auch Macken.

Ich hab ein Setup mit dovecot, wo ich das Plugin Virtual in verwendung habe, um "smarte" Ordner zu bekommen.
Im eigenen namespace "virtual" gibts eine n Folder, der z. B. alle Emails im Account auflistet.
Und einen, der mir nur die ungesehenen anzeigt.

Das klappt mit Thunderbird, Outlook und k9mail einwandfrei.
Dort gibt es einen eigenen Namespace, worin diese Mailboxen angezeigt werden. Die Emails lassen sich alle öffnen.

In Horde werden die Mailboxes aus den Namespaces alle in INBOX integriert. Dort kann ich manche Mails einfach nicht anzeigen. Im Log von dovecot finde ich dazu folgende Fehlermeldung

Code: Alles auswählen

Nov 12 20:44:44 aldebaran dovecot[1468]: imap(jakob): Panic: file index-mail-binary.c: line 586 (index_mail_get_binary_stream): assertion failed: (mail->data.stream != NULL)
Nov 12 20:44:44 aldebaran dovecot[1468]: imap(jakob): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x95272) [0x7f49ea0b6272] -> /usr/lib/dovecot/libdovecot.so.0(+0x9536d) [0x7f49ea0b636d] -> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f49ea04c951] -> /usr/lib/dovecot/libdovecot-storage.so.0(index_mail_get_binary_stream+0x238) [0x7f49ea3ebde8] -> /usr/lib/dovecot/libdovecot-storage.so.0(mail_get_binary_stream+0x60) [0x7f49ea378fa0] -> /usr/lib/dovecot/libdovecot-storage.so.0(imap_msgpart_open+0x139) [0x7f49ea42c0f9] -> dovecot/imap [jakob ::1 UID FETCH](+0x1ebbc) [0x5563def2abbc] -> dovecot/imap [jakob ::1 UID FETCH](+0x1cfb6) [0x5563def28fb6] -> dovecot/imap [jakob ::1 UID FETCH](imap_fetch_more+0x39) [0x5563def2a0e9] -> dovecot/imap [jakob ::1 UID FETCH](cmd_fetch+0x33b) [0x5563def1bd9b] -> dovecot/imap [jakob ::1 UID FETCH](command_exec+0xa5) [0x5563def27735] -> dovecot/imap [jakob ::1 UID FETCH](+0x199c2) [0x5563def259c2] -> dovecot/imap [jakob ::1 UID FETCH](+0x19a4c) [0x5563def25a4c] -> dovecot/imap [jakob ::1 UID FETCH](client_handle_input+0x1b5) [0x5563def25e55] -> dovecot/imap [jakob ::1 UID FETCH](client_input+0x86) [0x5563def263c6] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x52) [0x7f49ea0cadd2] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x109) [0x7f49ea0cc409] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x3c) [0x7f49ea0cae6c] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x38) [0x7f49ea0cb018] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f49ea052e93] -> dovecot/imap [jakob ::1 UID FETCH](main+0x328) [0x5563def18e68] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1) [0x7f49e9ca22b1] -> dovecot/imap [jakob ::1 UID FETCH](_start+0x2a) [0x5563def18fea]
Nov 12 20:44:44 aldebaran dovecot[1468]: imap(jakob): Fatal: master: service(imap): child 14081 killed with signal 6 (core dumps disabled)
Leider kann ich damit überhaupt nix anfangen.
Das Email wird im originalen Ordner in Horde übrigens anstandslos angezeigt. Nur der virtuelle Ordner macht Probleme. Und das auch nur mit manchen Emails.

Schaut irgendwie aus, als ob Horde eine seltsame Fetchanfrage an dovecot stell, was dieser mit einem leeren Mail beantwortet...
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: [gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von weshalb » 14.11.2017 10:51:37

http://thread.gmane.org/gmane.mail.imap.dovecot/82999^

Vielleicht da mal schauen, gibt wohl einen Fix.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von scientific » 14.11.2017 11:41:44

Oh ja, das sieht mir ganz danach aus.

Ich hab nur ein Problem, dass die Seite http://hg.dovecot.org/dovecot-2.2/rev/865405fce42e (wie auch alle anderen Links, die ich bei meiner Recherche dazu schon gefunden habe, die auf http://hg.dovecot.org verweisen) nicht funktionieren.

Code: Alles auswählen

Dovecot HG repository is no longer available

Please use https://github.com/dovecot for accessing our open source code.

    Dovecot antispam plugin (deprecated)
    Dovecot metadata plugin (deprecated)
Nur weiß ich nicht, wo ich auf Github den entsprechenden Fix finden könnte... und warum der aus dem Jahr 2015 noch nicht in debians dovecot eingepflegt ist...

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
weshalb
Beiträge: 1265
Registriert: 16.05.2012 14:19:49

Re: [gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von weshalb » 14.11.2017 12:41:23

Ich habe noch das gefunden:

https://www.dovecot.org/list/dovecot-cv ... 26410.html

Code: Alles auswählen

details:   http://hg.dovecot.org/dovecot-2.2/rev/fae5feef70af
changeset: 19113:fae5feef70af
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Sep 07 22:14:18 2015 +0300
description:
imap: Fixed assert-crash in NOTIFY when using multiple namespaces.
I'm not sure why the original code was trying to add it to multiple
namespaces. A single mailbox name should be matching only a single
namespace (visible one at least). In any case we can't use
mail_namespace_find() with only partial namespaces-list, because it'll
assert-crash if it can't find a namespace for the mailbox.

diffstat:

 src/imap/cmd-notify.c |  7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

diffs (17 lines):

diff -r 865405fce42e -r fae5feef70af src/imap/cmd-notify.c
--- a/src/imap/cmd-notify.c	Mon Sep 07 22:06:16 2015 +0300
+++ b/src/imap/cmd-notify.c	Mon Sep 07 22:14:18 2015 +0300
@@ -225,11 +225,8 @@
 {
 	struct mail_namespace *ns;
 
-	/* add to all matching namespaces */
-	for (ns = ctx->client->user->namespaces; ns != NULL; ns = ns->next) {
-		if (mail_namespace_find(ns, name) == ns)
-			cmd_notify_add_mailbox(ctx, ns, name, type, events);
-	}
+	ns = mail_namespace_find(ctx->client->user->namespaces, name);
+	cmd_notify_add_mailbox(ctx, ns, name, type, events);
 }
 
 static int
Gibt es bei dir eine cmd-notify.c und wenn ja, wie sieht die an der Stelle aus?

Edit: Glaube ist das Falsche.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: [gelöst] Docker Netzwerkproblem mit radicale und IMAP-Authentifikation

Beitrag von scientific » 14.11.2017 15:18:01

Ich hab das Problem in einem eigenen Thread schon angefangen zu behandeln. Und auch schon zusätzliche Infos gefunden. Bitte den Teil mit dem nicht zu öffnenden Emails hier weiterbehandeln.
viewtopic.php?f=8&t=167484&p=1152737#p1152737

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Antworten