Gmail'den posta alamıyorum


15

Birkaç gün önce Gmail aniden posta sunucuma posta göndermeyi durdurmaya karar verdi. Postfix ve Dovecot'u, her şey güncellendiğinde Debian 7'de çalışan ücretli bir SSL Sertifikası ile kullanıyorum.

My mail.logaşağıdaki hatayı gösterir:

Dec 19 11:09:11 server postfix/smtpd[19878]: initializing the server-side TLS engine
Dec 19 11:09:11 server postfix/tlsmgr[19880]: open smtpd TLS cache btree:/var/lib/postfix/smtpd_scache
Dec 19 11:09:11 server postfix/tlsmgr[19880]: tlsmgr_cache_run_event: start TLS smtpd session cache cleanup
Dec 19 11:09:11 server postfix/smtpd[19878]: connect from mail-wi0-x230.google.com[2a00:1450:400c:c05::230]
Dec 19 11:09:11 server postfix/smtpd[19878]: setting up TLS connection from mail-wi0-x230.google.com[2a00:1450:400c:c05::230]
Dec 19 11:09:11 server postfix/smtpd[19878]: mail-wi0-x230.google.com[2a00:1450:400c:c05::230]: TLS cipher list "aNULL:-aNULL:ALL:+RC4:@STR                              ENGTH:!aNULL:!DES:!3DES:!MD5:!DES+MD5:!RC4:!RC4-MD5"
Dec 19 11:09:11 server postfix/smtpd[19878]: SSL_accept:before/accept initialization
Dec 19 11:09:11 server postfix/smtpd[19878]: SSL_accept:error in unknown state
Dec 19 11:09:11 server postfix/smtpd[19878]: SSL_accept error from mail-wi0-x230.google.com[2a00:1450:400c:c05::230]: -1
Dec 19 11:09:11 server postfix/smtpd[19878]: warning: TLS library problem: 19878:error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown                               protocol:s23_srvr.c:647:
Dec 19 11:09:11 server postfix/smtpd[19878]: lost connection after STARTTLS from mail-wi0-x230.google.com[2a00:1450:400c:c05::230]
Dec 19 11:09:11 server postfix/smtpd[19878]: disconnect from mail-wi0-x230.google.com[2a00:1450:400c:c05::230]

Postfix'imden alıntılar main.cf:

smtpd_use_tls=yes
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtpd_tls_CAfile = path to CA Bundle
smtpd_tls_cert_file= path to cert (pem)
smtpd_tls_key_file=path to key (pem)
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_exclude_ciphers = aNULL, DES, 3DES, MD5, DES+MD5, RC4, RC4-MD5
smtpd_tls_protocols=!SSLv2,!TLSv1,!TLSv1.1,!SSLv3
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_received_header = yes
tls_preempt_cipherlist = yes
tls_medium_cipherlist = AES256+EECDH:AES256+EDH

Sorunun nerede olduğunu bilmiyorum, çünkü düzenli olarak başkalarından posta alıyorum. Telnet üzerinden 25 numaralı bağlantı noktasına veya openssl üzerinden 465 numaralı bağlantı noktasına bağlanma hatası yok

Ek: Bu postayı Google'dan aldım:

Delivery to the following recipient failed permanently:

     <removed>

Technical details of permanent failure:
TLS Negotiation failed

----- Original message -----
[...]

Belki de şifreli listemde bir sorun var?

Masegaloeh sorusunun cevabı:

openssl s_client -connect localhost:25 -starttls smtp
CONNECTED(00000003)
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
[...]
---
Server certificate
-----BEGIN CERTIFICATE-----
[...]
---
No client certificate CA names sent
---
SSL handshake has read 6267 bytes and written 477 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: zlib compression
Expansion: zlib compression
SSL-Session:
Protocol  : TLSv1.2
Cipher    : ECDHE-RSA-AES256-GCM-SHA384
Session-ID: [...]
Session-ID-ctx:
Master-Key: [...]
Key-Arg   : None
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 3600 (seconds)
TLS session ticket: [...]

Compression: 1 (zlib compression)
Start Time: 1418986680
Timeout   : 300 (sec)
Verify return code: 19 (self signed certificate in certificate chain)

---
250 DSN

Güncelleme 1: SSL sertifikamı yeniden yayınladı. Her şeyi aşağıdaki gibi oluşturdu:
openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out server.csr -sha256

Daha sonra oluşan yeni bir dosya oluşturdum crtve keybundan sonra CA paketini oluşturdum:
cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > bundle.crt

Dovecot ve postfix config'ime her şeyi ekledim ve her iki hizmeti de yeniden başlattım.
Google, sunucum için posta göndermede hala başarısız oluyorTLS Negotiation failed

Başka bir posta sağlayıcısı (web.de) denedim ve posta gönderiliyor.
web.de günlüğü:

Dec 19 17:33:15 server postfix/smtpd[14105]: connect from mout.web.de[212.227.15.3]
Dec 19 17:33:15 server postfix/smtpd[14105]: setting up TLS connection from mout.web.de[212.227.15.3]
Dec 19 17:33:15 server postfix/smtpd[14105]: mout.web.de[212.227.15.3]: TLS cipher list "aNULL:-aNULL:ALL:+RC4:@STRENGTH"
Dec 19 17:33:15 server postfix/smtpd[14105]: mout.web.de[212.227.15.3]: save session EA1635ED786AFC2D9C7AB43EF43620A1D9092DC640FDE21C01E7BA25981D2445&s=smtp&l=268439647 to smtpd cache
Dec 19 17:33:15 server postfix/tlsmgr[14107]: put smtpd session id=EA1635ED786AFC2D9C7AB43EF43620A1D9092DC640FDE21C01E7BA25981D2445&s=smtp&l=268439647 [data 127 bytes]
Dec 19 17:33:15 server postfix/tlsmgr[14107]: write smtpd TLS cache entry EA1635ED786AFC2D9C7AB43EF43620A1D9092DC640FDE21C01E7BA25981D2445&s=smtp&l=268439647: time=1419006795 [data 127 bytes]
Dec 19 17:33:15 server postfix/smtpd[14105]: Anonymous TLS connection established from mout.web.de[212.227.15.3]: TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)

Soultion:
etkinleştirdikten sonra TLSv1ve TLSv1.1içinde smtpd_(mandatory)_protocolsbölüm her şey çalışıyor cezası. Teşekkürler masegaloeh !

Dec 20 11:44:46 server postfix/smtpd[31966]: initializing the server-side TLS engine
Dec 20 11:44:46 server postfix/tlsmgr[31968]: open smtpd TLS cache btree:/var/lib/postfix/smtpd_scache
Dec 20 11:44:46 server postfix/tlsmgr[31968]: tlsmgr_cache_run_event: start TLS smtpd session cache cleanup
Dec 20 11:44:46 server postfix/smtpd[31966]: connect from mail-wi0-x235.google.com[2a00:1450:400c:c05::235]
Dec 20 11:44:46 server postfix/smtpd[31966]: setting up TLS connection from mail-wi0-x235.google.com[2a00:1450:400c:c05::235]
Dec 20 11:44:46 server postfix/smtpd[31966]: mail-wi0-x235.google.com[2a00:1450:400c:c05::235]: TLS cipher list "aNULL:-aNULL:ALL:+RC4:@STRENGTH"
Dec 20 11:44:46 server postfix/smtpd[31966]: Anonymous TLS connection established from mail-wi0-x235.google.com[2a00:1450:400c:c05::235]: TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)

Komutun çıktısı nedir openssl s_client -connect localhost:25 -starttls smtp?
masegaloeh

Benim soru eklendi @masegaloeh
Octfx

Bu da beni exim ile etkiliyor; harika bir soru.
Boyd Stephen Smith Jr.

Bu beni etkilemeye başladı, main.cf dosyamda tls_protocol satırları yoktu ve belgelenen varsayılan yalnızca SSL2 / 3'ü devre dışı bırakmaktır. Ancak aşağıdaki cevap sorunumu çözdü.
Bwooce

Yanıtlar:


21

TLDR : TLS protokolleriniz çok katı çünkü yalnızca TLSv1.2 bağlantısına izin veriyorsunuz.

smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_protocols=!SSLv2,!TLSv1,!TLSv1.1,!SSLv3

GMAIL , TLSv1 protokolü ile sunucunuza e-posta gönderir . Bu yüzden TLS görüşmesi başarısız oluyor.

Açık çözüm, TLSv1 ve TLSv1.1 protokollerine izin vermek ve yine de SSLv2 ve SSLv3 protokollerini devre dışı bırakmak (güvensiz).


açıklama

STARTTLS üzerinden GMAIL ve FACEBOOK'tan e-posta alamadığınızda davanızı onaylayabilirim .

Neden yalnızca sunucuma e-posta gönderemeyen GMAIL

Bu, GMAIL e-posta gönderdiğinde posta günlüğü snippetidir

Dec 19 23:37:47 tls postfix/smtpd[3876]: initializing the server-side TLS engine
Dec 19 23:37:47 tls postfix/smtpd[3876]: connect from mail-wg0-f47.google.com[74.125.82.47]
Dec 19 23:37:48 tls postfix/smtpd[3876]: setting up TLS connection from mail-wg0-f47.google.com[74.125.82.47]
Dec 19 23:37:48 tls postfix/smtpd[3876]: mail-wg0-f47.google.com[74.125.82.47]: TLS cipher list "aNULL:-aNULL:ALL:+RC4:@STRENGTH:!aNULL:!DES:!3DES:!MD5:!DES+MD5:!RC4:!RC4-MD5"
Dec 19 23:37:48 tls postfix/smtpd[3876]: SSL_accept:before/accept initialization
Dec 19 23:37:48 tls postfix/smtpd[3876]: SSL_accept:error in unknown state
Dec 19 23:37:48 tls postfix/smtpd[3876]: SSL_accept error from mail-wg0-f47.google.com[74.125.82.47]: -1
Dec 19 23:37:48 tls postfix/smtpd[3876]: warning: TLS library problem: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol:s23_srvr.c:647:
Dec 19 23:37:48 tls postfix/smtpd[3876]: lost connection after STARTTLS from mail-wg0-f47.google.com[74.125.82.47]
Dec 19 23:37:48 tls postfix/smtpd[3876]: disconnect from mail-wg0-f47.google.com[74.125.82.47]

Ve bu, FACEBOOK e-posta gönderdiğinde posta günlüğü snippet'i

Dec 19 23:11:14 tls postfix/smtpd[3844]: initializing the server-side TLS engine
Dec 19 23:11:14 tls postfix/tlsmgr[3846]: open smtpd TLS cache btree:/var/lib/postfix/smtpd_scache
Dec 19 23:11:14 tls postfix/tlsmgr[3846]: tlsmgr_cache_run_event: start TLS smtpd session cache cleanup
Dec 19 23:11:14 tls postfix/smtpd[3844]: connect from outcampmail003.ash2.facebook.com[66.220.155.162]
Dec 19 23:11:14 tls postfix/smtpd[3844]: setting up TLS connection from outcampmail003.ash2.facebook.com[66.220.155.162]
Dec 19 23:11:14 tls postfix/smtpd[3844]: outcampmail003.ash2.facebook.com[66.220.155.162]: TLS cipher list "aNULL:-aNULL:ALL:+RC4:@STRENGTH:!aNULL:!DES:!3DES:!MD5:!DES+MD5:!RC4:!RC4-MD5"
Dec 19 23:11:14 tls postfix/smtpd[3844]: SSL_accept:before/accept initialization
Dec 19 23:11:15 tls postfix/smtpd[3844]: SSL_accept:error in unknown state
Dec 19 23:11:15 tls postfix/smtpd[3844]: SSL_accept error from outcampmail003.ash2.facebook.com[66.220.155.162]: -1
Dec 19 23:11:15 tls postfix/smtpd[3844]: warning: TLS library problem: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol:s23_srvr.c:647:
Dec 19 23:11:15 tls postfix/smtpd[3844]: lost connection after STARTTLS from outcampmail003.ash2.facebook.com[66.220.155.162]
Dec 19 23:11:15 tls postfix/smtpd[3844]: disconnect from outcampmail003.ash2.facebook.com[66.220.155.162]
Dec 19 23:11:16 tls postfix/smtpd[3844]: connect from outcampmail004.ash2.facebook.com[66.220.155.163]
Dec 19 23:11:17 tls postfix/smtpd[3844]: 962C281443: client=outcampmail004.ash2.facebook.com[66.220.155.163]
Dec 19 23:11:18 tls postfix/cleanup[3849]: 962C281443: message-id=<722b2b198d163c43d3bf013bdd396817@www.facebook.com>
Dec 19 23:11:18 tls postfix/qmgr[3843]: 962C281443: from=<notification+zj4zc0zzjfac@facebookmail.com>, size=18002, nrcpt=1 (queue active)
Dec 19 23:11:18 tls postfix/local[3850]: 962C281443: to=<root@tls.example.net>, orig_to=<zera@tls.example.net>, relay=local, delay=1.6, delays=1.5/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Dec 19 23:11:18 tls postfix/qmgr[3843]: 962C281443: removed
Dec 19 23:11:24 tls postfix/smtpd[3844]: disconnect from outcampmail004.ash2.facebook.com[66.220.155.163]

Bazı analizler

  • İlk snippet'te, GMAIL STARTTLS üzerinden e-posta göndermeye çalışacak. TLS anlaşması olduğunda, bazı hatalar oluşur, bu nedenle GMAIL sunucusunun bağlantısını kesin. Hatanın neden aşağıda oluştuğunu tartışacağız.
  • İkinci snippet'te FACEBOOK, STARTTLS üzerinden e-posta gönderemedi. Yedekleme sürecinde, FACEBOOK e-postayı düz metin moduyla yeniden gönderir. Bu durumda sunucumuz memnuniyetle kabul eder.

Bu nedenle, neden yalnızca GMAIL'in sunucunuza e-posta gönderemediği açıklanmaktadır. TLS anlaşması başarısız olursa GMAIL'in geri dönüş mekanizması yoktur . Diğer posta sunucuları, e-posta dağıtımının başarılı olmasını sağlamak için yedek mekanizmayı kullanabilir.

TLS Müzakere hatası neden oluşur?

Web.de maillog'undan ilginç bir çizgi tespit ediyorum

Dec 19 17:33:15 foxdev postfix/smtpd[14105]: Anonymous TLS connection established from mout.web.de[212.227.15.3]: TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)

Ve bu yapılandırmayı şurada belirttiğinizi öğrenin: main.cf

smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_protocols=!SSLv2,!TLSv1,!TLSv1.1,!SSLv3

Bu, sunucunuzun yalnızca TLSv1.2 kullanıldığında TLS bağlantısını kabul ettiği anlamına gelir . TLSv1.2 dışında, sunucunuz TLS anlaşması hatasından şikayet edecektir.

Şunu değiştirirsem smtpd_tls_(mandatory_)protocolsiçin !SSLv2,!SSLv3,!TLSv1hata oluşmaya devam eder. Bu, GMAIL ve FACEBOOK'un posta sunucunuza TLSv1.1 ve TLSv1.2 dışındaki protokollerle iletişim kurmaya çalışacağı anlamına gelir.

Şunu değiştirirsem smtpd_tls_(mandatory_)protocolsiçin !SSLv2,!SSLv3TLS müzakere irade başarı. GMAIL ve FACEBOOK'un sunucunuzla TLSv1 protokolü ile iletişim kuracağını doğruladı

Dec 20 00:21:46 tls postfix/smtpd[4261]: Anonymous TLS connection established from outmail038.prn2.facebook.com[66.220.144.165]: TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)
Dec 20 00:23:00 tls postfix/smtpd[4261]: Anonymous TLS connection established from mail-wi0-f174.google.com[209.85.212.174]: TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)

FreeBSD forumundaki diğer kişiler de bu davranışı onaylar.

Çözüm

Açık çözüm, postfix'inizde TLSv1 ve TLSv1.1'i etkinleştirmektir. Bu, GMAIL gibi yedek mekanizmaya sahip olmayan bazı posta sunucularının yine de sunucunuzla iletişim kurabilmesini sağlar.

TLSv1 ve TLSv1.1 desteğini devre dışı bırakma nedeninizi bilmiyorum, sadece TLSv1.2 protokolü bırakılıyor. Bir web sunucusu ise ve kullanıcınız yalnızca modern tarayıcıyı kullanacaksa, sunucunuzda TLSv1'i devre dışı bırakabilirsiniz. Bu kabul edilebilir çünkü sadece TLSv1 protokolünü desteklemeyen eski tarayıcılar .


0

Görebildiğim bir potansiyel sorun, OpenSSL tarafından bildirildiği gibi kendinden imzalı bir sertifikanın görünür kullanımı:

Verify return code: 19 (self signed certificate in certificate chain)

Ücretli bir SSL sertifikası kullanıyorsanız, kendinden imzalı bir sertifika kullanmamalısınız.

PEM dosyanızın ücretli sertifikanızı içerdiğini kontrol eder ve ayrıca tam sertifika zincirini içerdiğini doğrularım.


Kendinden imzalı sertifika, CA tarafından imzalanan CA'dan gelen kök sertifikadır.
Octfx

CA'nız kim? Zincirlerinde kendinden imzalı sertifikalar kullanıyorlarsa, .pem dosyanızdaki tüm zinciri sağlamanız gerekir.
Craig Watson

Comodo'dan alınan bir sertifikadır. İmzaladığım sertifikaları kullanmıyorum. Dediğim gibi Comodo kök sertifikalarını kendileri tarafından imzalar ki bu durumda sonuçlanırcode: 19 (self signed certificate)
Octfx

1
code 19Tam zinciriniz sunuluyorsa bir mesaj almamalısınız . Komutun üst kısmında aynı hatayı veren StartSSL'den bir sertifika kullanıyorum, ancak smtpd_tls_cert_filePEM dosyasında tam zinciri (kök CA dahil) sağladığım için , istemci tam zinciri doğrulamak için gerekli tüm sertifikalara sahip .
Craig Watson

Sadece test etmek için sertifikamı yeniden düzenleyeceğim. Sorun şu ki, hiçbir şeyi değiştirmedim, google artık bana posta
gönderemiyor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.