courier-imap(-ssl) STARTTLS funktioniert nicht

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

courier-imap(-ssl) STARTTLS funktioniert nicht

Beitrag von dmant » 12.10.2017 10:53:43

Hallo,

ich habe auf meinem Server einen Postfix mit MySQL backend und courier am laufen. Dies funktioniert einwandfrei. Nun bin ich dabei den IMAP Server auf STARTTLS einzurichten. Leider bekomme ich einen Error und es findet kein Log statt wodurch ich weitere Informationen erlangen könnte.

Die Authentifizierung erfolgt mittles SASL-Auth ebenfalls mit MySQL backend. Die Authentifizierung und das abrufen über den IMAP Server ohne STARTTLS/SSL funktioniert einwandfrei. Auch IMAP-IDLE funktioniert tadellos. Nun sollte noch STARTTLS/SSL hinzu kommen.

courier-imap-ssl installiert und das Zertifikat konfiguert, hier die config

https://nopaste.linux-dev.org/?1162392

Ein Test ob die SSL verbindung auch funktioniert,

Code: Alles auswählen

root@ns3067246:~# openssl s_client -connect localhost:993 -ssl3
CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : SSLv3
    Cipher    : 0000
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1507797525
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
---
root@ns3067246:~# 
Ok, also die SSL verbindung klappt schon einmal. Ein Test ob STARTTLS funktioniert scheitert jedoch,

Code: Alles auswählen

root@ns3067246:~# openssl s_client -connect localhost:143 -starttls imap
CONNECTED(00000003)
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify return:1
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority
verify return:1
depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA
verify return:1
depth=0 OU = Domain Control Validated, CN = *.dmant.ovh
verify return:1
---
Certificate chain
 0 s:/OU=Domain Control Validated/CN=*.dmant.ovh
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
 1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
 2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
 3 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
---
.........
subject=/OU=Domain Control Validated/CN=*.dmant.ovh
issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
---
No client certificate CA names sent
---
SSL handshake has read 6114 bytes and written 633 bytes
---
.......
    TLS session ticket:
.......

    Start Time: 1507797654
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
. OK CAPABILITY completed
140012305852048:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:348:
Komplett hier: http://termbin.com/fi7u

Beim connect auf dem imap wird allerdings nur ein connect und disconnect geloggt. kein error, kein warning, nichts. Weder in der mail.log noch mail.warn noch mail.err noch mail.info noch auth.log

Weiss jemand rat? Die Verbindung mittels SSL/TLS funktioniert im Client ohne Probleme und das Zertifikat wird als gültig anerkannt. Nur STARTTLS will nicht.

So wie ich das sehe und verstehe nimmt der IMAP für STARTTLS und SSL/TLS das selbe Zertifikat. Daher verstehe ich nicht warum der das nicht akzeptiert.

Ich habe dann mal zum Test den imap-ssl gestoppt und nur dem imap laufen gelassen. Eine Verbindung auf Port 993 ist also nicht mehr möglich. Obwohl ich den imap-ssl gestoppt habe habt der imap auf Port 443 über STARTTLS ein ungültiges Zertifikat. Es scheint als ob sich der imap Server noch irgendwo ein Zertifikat her holt.

Bei der SSL/TLS verbindung erhalte ich jedoch, obwohl alles ohne Probleme funktioniert, also Clientmässig, einen Fehler

Code: Alles auswählen

Oct 12 10:52:47 ns3067246 imapd-ssl: couriertls: /etc/ssl-certs/dmant/imapd.pem: error:0906D06C:PEM routines:PEM_read_bio:no start line
Oct 12 10:52:47 ns3067246 imapd-ssl: couriertls: connect: error:14076102:SSL routines:SSL23_GET_CLIENT_HELLO:unsupported protocol
So wie ich in erfahrung bringen konnte soll dies an den dhparams liegen. Wenn ich diese jedoch erzeuge oder ins Zertifikat schreibe dann funktioniert die SSL/TLS verbindung garnicht mehr.

Ich hoffe mir kann jemand weiter helfen.

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: courier-imap(-ssl) STARTTLS funktioniert nicht

Beitrag von hec_tech » 12.10.2017 15:32:04

Die DH gehört in folgendes File:

#TLS_DHPARAMS=/etc/courier/dhparams.pem

Das ist in der Konfiguration jedoch auskommentiert.

lg
Gregor

dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

Re: courier-imap(-ssl) STARTTLS funktioniert nicht

Beitrag von dmant » 13.10.2017 11:24:38

Hallo,

ja, ich hatte das schon aktiviert. Dann funktionierte es garnicht. Ohne die hdparams funktioniert es. Der Fehler ist auch nun weg, es lag an MAXPERIP, ich habe den Wert höher gesetzt und der Fehler ist verschwunden. Bei google fand ich mehrere die das gleiche hatten.

Nunja, jedoch spricht der courier-imap immernoch kein STARTTLS. SSL/TLS hingegen funktionieren tadellos. Auch der SMTP über Port 465 funktioniert mit STARTTLS sowie SSL/TLS.

Hier mal meine main.cf

http://termbin.com/yhdk

Das postfix.crt sieht wie folgt aus

http://termbin.com/3zxb

Das CAFile für Postfix

http://termbin.com/tbct

Der smtp spricht auf STARTTLS mit mir:

http://termbin.com/ulp9

Dann habe ich den imapd-ssl configuriert. Das Zertifikat mit dem Schlüssel gebaut so wie courier das möchte, erst den key, dann das zertifikat. hier das courier zertifikat:


http://termbin.com/1y5y

Das CA File sieht wie folgt aus:

http://termbin.com/88mq

und hier die courier-imap-ssl

http://termbin.com/uevt

Wenn ich die DHPARAMS aktiviere funktioniert keine SSL/TLS oder STARTTLS Verbindung. So wie die config jetzt ist funktioniert allerdings nur die SSL/TLS verbindung.


Obwohl er mir hier sagt, das STARTTLS "angeblich" funktioniert

http://termbin.com/o5tg

Sagt mir der Mail-Client
Herstellen der Verbindung zum Server verweigert. Root-Zertifikat ist ungültig, Identität kann nicht bestätigt werden.
Dies sagt er jedoch auch wenn ich STARTTLS (Alle Zertifikate akzept.) mache. Ein Log ausser ein Connect und sofort wieder ein Disconnect erfolgt nicht. Da keine Fehler geloggt werden stehe ich nun da.

SSL/TLS hingegen funktioniert anstandslos

http://termbin.com/f2ij

Auch im Client funktioniert alles. Ob ich nun SSL/TLS aktiviere oder SSL/TLS (Alle Zertifikate akzept.). Die Verbindung funktionert. Auch IMAP IDLE klappt.

Ich kriege einfach kein STARTTLS auf dem courier zum laufen.

Hoffentlich kann mir jemand weiter helfen.

dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

Re: courier-imap(-ssl) STARTTLS funktioniert nicht

Beitrag von dmant » 13.10.2017 11:36:26

ich habe jetzt nochmal eine neue DHPARAM erstellt.

Code: Alles auswählen

openssl dhparam 1024 > dh.pem
Diese habe ich dann configuriert und siehe da,

Code: Alles auswählen

root@ns3067246:~# openssl s_client -connect localhost:143 -starttls imap
CONNECTED(00000003)
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify return:1
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority
verify return:1
depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA
verify return:1
depth=0 OU = Domain Control Validated, CN = *.dmant.ovh
verify return:1
---
Certificate chain
 0 s:/OU=Domain Control Validated/CN=*.dmant.ovh
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
 1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
 2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
 3 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFKTCCBBGgAwIBAgIQa9wGFzVSetc5o8nWXP8ZvzANBgkqhkiG9w0BAQsFADCB
kDELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxNjA0BgNV
BAMTLUNPTU9ETyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD
QTAeFw0xNzEwMDkwMDAwMDBaFw0xOTAxMDcyMzU5NTlaMDkxITAfBgNVBAsTGERv
bWFpbiBDb250cm9sIFZhbGlkYXRlZDEUMBIGA1UEAwwLKi5kbWFudC5vdmgwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDn0t24yH6JDOgmLtpD5oC3DfOn
WktQtaKvLuUd0xa2gCmasOJW3cNJQpuE0twEpTxTFbVfT1ze7cT9DVErZ/Shjh69
9jOmQ3l9m1JW7PRgrV6KXDa+dUf02H0LObgHEl7fW6+4v6Phuhf70mZxsPy1Nokw
/nrWNucbIQcwAPp2K5MXr78a3g2VKd8zhxRNuLgitpHrJmdOSy2CyG31mTP519fW
OJU61whpERTw8l4c7dhFwS1D3V4wu4DWJmNiE7eANlnjQrg6cT1xsoLb12mfT2Lo
PsIhagi/rY8KdIGL/pVwHZX5WX3EPvigaKthgA1XEmRXNWM/2nclqwwmDJLfAgMB
AAGjggHTMIIBzzAfBgNVHSMEGDAWgBSQr2o6lFoL2JDqElZz30O0Oija5zAdBgNV
HQ4EFgQU9tXMdbcn1lqpILDemm71q9Ct88kwDgYDVR0PAQH/BAQDAgWgMAwGA1Ud
EwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCME8GA1UdIARI
MEYwOgYLKwYBBAGyMQECAgcwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUu
Y29tb2RvLmNvbS9DUFMwCAYGZ4EMAQIBMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6
Ly9jcmwuY29tb2RvY2EuY29tL0NPTU9ET1JTQURvbWFpblZhbGlkYXRpb25TZWN1
cmVTZXJ2ZXJDQS5jcmwwgYUGCCsGAQUFBwEBBHkwdzBPBggrBgEFBQcwAoZDaHR0
cDovL2NydC5jb21vZG9jYS5jb20vQ09NT0RPUlNBRG9tYWluVmFsaWRhdGlvblNl
Y3VyZVNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2Rv
Y2EuY29tMCEGA1UdEQQaMBiCCyouZG1hbnQub3ZogglkbWFudC5vdmgwDQYJKoZI
hvcNAQELBQADggEBAHs0PvEPJnNo+7tpW8jiNDdrkc4Se14K6CabrLDXuiphVF9H
Hrvhpr67TrBPqblMFcK1ChFRA/25uWWZ1+nc1iMuCNBVQSeuh0pKYPb6EKJlo9ul
4Cx2C6HlUhK5iS1qfv8n6EesOuZowP9Duln7nsTr7BwQY2rEcxVs/GTDOKXpiXEn
Xlg6pZ3Ibjotf6lJOf2cUSbXo3vXQ8PAfJWrBJYrfo4s4hpkai2DQpRoX9FJVSD7
Q0PTRLtF6Zu0eteNaqyO8B7OgQ/ZuOCbVnoaYVhrQlu6nSzMxYuaV30oNbEOmMR5
cEoDh6UCzhzoNqSCy0sC19PHsq5PC25K/sn6aJE=
-----END CERTIFICATE-----
subject=/OU=Domain Control Validated/CN=*.dmant.ovh
issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
---
No client certificate CA names sent
---
SSL handshake has read 6646 bytes and written 505 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : DHE-RSA-AES256-GCM-SHA384
    Session-ID: F20AE43C322BBD11F91F4215EC97ACAD7F938C5E9B4CA6CC5B1C260751B0E3AD
    Session-ID-ctx: 
    Master-Key: 4EF2C7F9D9383604A2D9296E73273E53132EB34ED0B06ABAADB57F85629171E5A1B89C2ECDEEE2B0E5B021F4B5108FE1
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    0000 - 10 a1 30 5e ea 4b 22 60-94 64 db da 94 3b b5 f2   ..0^.K"`.d...;..
    0010 - 1f e5 2d 92 6e a1 a2 53-c1 1c 9a 7e 6b ab ef 78   ..-.n..S...~k..x
    0020 - e0 90 99 15 55 d5 30 8c-33 cd 6e 32 7e 38 d9 bc   ....U.0.3.n2~8..
    0030 - b3 24 9a 57 e4 3c 4e ff-e4 44 93 a7 fe 74 eb f6   .$.W.<N..D...t..
    0040 - 48 ac 8c cd 54 50 4c e4-48 4a 07 b4 cd d6 12 e1   H...TPL.HJ......
    0050 - 4b 55 92 c4 c3 56 0e 1e-7b 02 03 bf 9f 26 3b ff   KU...V..{....&;.
    0060 - d0 27 b8 9c b3 f3 67 31-10 0b 11 d2 db 98 ed 7e   .'....g1.......~
    0070 - 7b 5a 6f 91 2c 79 63 5b-12 d0 9a b8 08 09 82 e2   {Zo.,yc[........
    0080 - 16 8a da 50 4b 7d 8c 87-01 24 b0 30 1a b8 ee 9f   ...PK}...$.0....
    0090 - 99 33 97 b9 3d 25 1f f3-90 fb 29 da a1 e9 9e fa   .3..=%....).....

    Start Time: 1507887203
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
. OK CAPABILITY completed
^C
root@ns3067246:~# 
Er spricht mit mir SSL/TLS und STARTTLS :)

Aber jetzt habe ich noch ein anliegen. Der courier aktualisiert ja die dhparam alle 24 date und überschreibt diese wieder mit 768 statt 1024. Darin lag mein Fehler. Mit einer 1024 DPHARAM klappt es dann.

Weiss jemand wo courier den "Befehl" hat diese neu zu erzeugen? Dann könnte man die 768 ja gegen 1024 ersetzen.

Danke vielmals

Antworten