Puncte:0

Releul personal OpenSMTPd eșuează când se folosește „tls-require”, funcționează bine doar cu „tls”

drapel cn

În prezent, configurez un server de e-mail personal oarecum unic folosind OpenSMTPd. Am un server local (Raspberry Pi) și un server la distanță (VPS). E-mailurile trimise către mine sunt trimise la serverul de la distanță și apoi sunt transmise serverului meu local.Când trimit un e-mail, acesta trece de la serverul meu local la serverul de la distanță și apoi este transmis către destinatarul său. În prezent, testez doar poșta primită și funcționează în mare parte, cu o singură problemă, tls.

Dacă am „tls-require” setat pe serverul meu local, serverele mele de la distanță par să se poată conecta, dar apoi se deconectează și încearcă să treacă la standard (smtp+notls), ceea ce desigur eșuează. Dacă folosesc doar „tls” în loc de „tls-require”, se întâmplă același lucru, dar încercarea smtp+notls funcționează.

Mesajele de eroare nu par atât de utile. Pe serverul de la distanță primesc doar „TLS oportunist eșuat, retrogradarea la simplu”. După cum am spus mai devreme, pe serverul local se pare că conexiunea A REUSIT (cel puțin eu cred), dar apoi se deconectează:

adresa smtp conectată=redacted.remote.ip.address gazdă=mx1.mydomain.tld
smtp tls ciphers=TLSv1.3:TLS_AES_256_GCM_SHA384:256
smtp deconectat motiv=deconectare

Primesc un mesaj de eroare ceva mai informativ dacă încerc să trimit e-mailul folosind openssl (de la serverul de la distanță).

openssl s_client -debug -starttls smtp -crlf -connect redacted.local.ip.address:25

Pe serverul de la distanță totul merge bine până când introduc un destinatar, moment în care primesc o eroare SSL:

RCPT TO:<[email protected]>
RENEGOCIARE
17412933263728:error:1404C042:Rutine SSL:ST_OK:a apelat o funcție pe care nu ar trebui să o apelați:/usr/src/lib/libssl/ssl_lib.c:2529:

Acea eroare pare să-mi spună mai multe, dar nu găsesc nimic relevant despre ea. Serverul local afișează exact aceeași eroare ca înainte.


Știu că mulți oameni nu folosesc TLS forțat cu e-mail, dar pentru acest caz de utilizare aș dori foarte mult să funcționeze.

Serverul meu local rulează „Raspberry Pi OS 11 bullseye 64-bit” și OpenSMTPD 6.8.0p2 (cea mai recentă versiune pe apt).

Serverul meu la distanță rulează „OpenBSD 7.0 GENERIC#224 amd64” și OpenSMTPD 7.0.0.

Orice sfat ar fi foarte apreciat. Vă rog să-mi spuneți dacă aveți nevoie de mai multe informații.


Iată configurațiile mele:

SERVER LOCAL smtpd.conf:

aliasuri de tabel „/etc/smtpd/aliases”
domenii de tabel „/etc/smtpd/domains”
tabel passwds "/etc/smtpd/passwds"
tabel servere la distanță „/etc/smtpd/servere-la distanță”

pki „mydomain.tld” cert „/etc/letsencrypt/live/mydomain.tld/fullchain.pem”
cheia pki „mydomain.tld” „/etc/letsencrypt/live/mydomain.tld/privkey.pem”

# Vreau srs aici, pe telecomandă sau ambele?
cheie srs „cheie redacționată”

filtrul „rdns” fază conectare se potrivește !rdns deconectare „550 DNS error”
filtru „fcrdns” fază conectare potrivire !fcrdns deconectare „550 DNS error”
filtru „rspamd” proc-exec „/etc/smtpd/filter-rspamd”

# Intrare
ascultați pe portul 25 eth0 tls-require pki "mydomain.tld" filtru { "rdns", "fcrdns" "rspamd" }
#ascultă pe portul eth0 25 tls pki filtrul „mydomain.tld” { „rdns”, „fcrdns” „rspamd” }
acțiunea „RECV” lmtp „/var/run/dovecot/lmtp” rcpt-to virtual <aliases>
potrivire de la src <remote-server> pentru domeniul <domains> acțiunea „RECV”
potriviți !de la src <servere-la distanță> pentru domeniul <domenii> respingere

# Outbound
ascultați pe portul eth0 465 smtps pki "mydomain.tld" auth <passwds> filtru "rspamd" mask-src
ascultați pe portul eth0 587 tls-require pki „mydomain.tld” auth <passwds> filtru „rspamd” mask-src
acțiunea „TRIMITERE” gazdă releu mx1.mydomain.tld:465
potrivire de la orice autentificare pentru orice acțiune „TRIMITERE”

SERVER LA DISTANȚĂ smtpd.conf:

aliasuri de tabel „/etc/smtpd/aliases”
domenii de tabel „/etc/smtpd/domains”

pki „mydomain.tld” cert „/etc/letsencrypt/live/mydomain.tld/fullchain.pem”
cheia pki „mydomain.tld” „/etc/letsencrypt/live/mydomain.tld/privkey.pem”

# Vreau srs aici, pe telecomandă sau ambele?
cheie srs „aceeași cheie redactată”

filtrul „rdns” fază conectare se potrivește !rdns deconectare „550 DNS error”
filtru „fcrdns” fază conectare potrivire !fcrdns deconectare „550 DNS error”

# Intrare
ascultați pe eth0 portul 25 tls pki "mydomain.tld" filtru { "rdns", "fcrdns" }
acțiunea „RECV” gazdă releu redacted.local.ip.address:25
potrivire de la orice acțiune pentru domeniul <domains> „RECV”

# Outbound
ascultați pe portul eth0 465 smtps pki „mydomain.tld” mask-src
actiune "TRIMITERE" releu srs
potrivire din src redacted.local.ip.address pentru orice acțiune „TRIMITERE”
potriviți !din src redacted.local.ip.address pentru orice respingere

Aici sunt jurnalele de corespondență dacă am "tls-require" a stabilit:

Jurnal de corespondență SERVER LOCAL:

Apr 3 11:57:26 LocalHostname smtpd[3614276]: 3c3d3943d2bc7134 smtp connected address=redacted.remote.ip.address host=mx1.mydomain.tld
Apr 3 11:57:26 LocalHostname smtpd[3614276]: 3c3d3943d2bc7134 smtp tls ciphers=TLSv1.3:TLS_AES_256_GCM_SHA384:256
3 aprilie 11:57:26 LocalHostname smtpd[3614276]: 3c3d3943d2bc7134 smtp deconectat motiv=deconectare
Apr 3 11:57:26 LocalHostname smtpd[3614276]: 3c3d39441db05cc1 smtp adresă conectată=redacted.remote.ip.address host=mx1.mydomain.tld
Apr 3 11:57:26 LocalHostname smtpd[3614276]: 3c3d39441db05cc1 smtp failed-command command="MAIL FROM:<[email protected]>" result="530 5.5.1 O comandă START nevalidă: TLS trebuie să emită comanda mai intai"
3 aprilie 11:57:43 LocalHostname smtpd[3614276]: 3c3d39441db05cc1 smtp deconectat motiv=închidere

Jurnal de corespondență REMOTE SERVER:

Apr 3 11:57:19 RemoteHostname smtpd[94758]: 7349563019b45aeb smtp connected address=209.85.128.178 host=mail-yw1-f178.google.com
Apr 3 11:57:19 RemoteHostname smtpd[94758]: 7349563019b45aeb smtp tls ciphers=TLSv1.3:AEAD-AES256-GCM-SHA384:256
Apr 3 11:57:20 RemoteHostname smtpd[94758]: 7349563019b45aeb smtp message msgid=f8226363 size=2682 nrcpt=1 proto=ESMTP
3 apr. 11:57:20 RemoteHostname smtpd[94758]: 7349563019b45aeb smtp envelope evpid=f822636342a8821f from=<[email protected]@my>domain
Apr 3 11:57:20 RemoteHostname smtpd[94758]: 734956336de69e03 mta adresa de conectare=smtp://redacted.local.ip.address:25 host=redacted-local-ip-address.isp.tld
Apr 3 11:57:20 RemoteHostname smtpd[94758]: 734956336de69e03 mta conectat
3 aprilie 11:57:20 RemoteHostname smtpd[94758]: 7349563019b45aeb smtp deconectat motiv=închidere
3 aprilie 11:57:20 RemoteHostname smtpd[94758]: smtp-out: Eroare la sesiunea 734956336de69e03: TLS oportunist eșuat, retrogradarea la simplu
Apr 3 11:57:20 RemoteHostname smtpd[94758]: 734956336de69e03 mta adresa de conectare=smtp+notls://redacted.local.ip.address:25 host=redacted-local-ip-address.isp.tld
Apr 3 11:57:20 RemoteHostname smtpd[94758]: 734956336de69e03 mta conectat
Apr 3 11:57:20 RemoteHostname smtpd[94758]: 734956336de69e03 mta delivery evpid=f822636342a8821f from=<[email protected]> to=<test=mydo="source2.pt@mydo>rc" .remote.ip.address" relay="redacted.local.ip.address (redacted-local-ip-address.isp.tld)" delay=1s result="PermFail" stat="530 5.5.1 Comanda nevalidă: trebuie lansați mai întâi o comandă STARTTLS"
Apr 3 11:57:22 RemoteHostname smtpd[94758]: 73495634e55adfe9 smtp adresa conectată=gazdă locală=mx1.mydomain.tld
Apr 3 11:57:22 RemoteHostname smtpd[94758]: 73495634e55adfe9 smtp failed-command command="RCPT TO: <[email protected]>" result="550 Destinatar nevalid: <redacted.email.address@ googlemail.com>"
Apr 3 11:57:22 RemoteHostname smtpd[11238]: warn: PermFail injectarea raportului de eșec în mesajul f8226363 către <[email protected]> pentru 1 plic: 550 Destinatar invalid: <redacted.email.address@googlemail .com>
3 aprilie 11:57:22 RemoteHostname smtpd[94758]: 73495634e55adfe9 smtp deconectat motiv=închidere
Apr 3 11:57:37 RemoteHostname smtpd[94758]: 734956336de69e03 mta deconectat motiv=închidere mesaje=0

Și acestea sunt jurnalele de corespondență, dacă am "tls" a stabilit:

Jurnal de corespondență SERVER LOCAL:

Apr 3 12:07:09 LocalHostname smtpd[3849290]: b981307e92d2eeac smtp connected address=redacted.remote.ip.address host=mx1.mydomain.tld
3 aprilie 12:07:09 LocalHostname smtpd[3849290]: b981307e92d2eeac smtp tls ciphers=TLSv1.3:TLS_AES_256_GCM_SHA384:256
3 aprilie 12:07:09 LocalHostname smtpd[3849290]: b981307e92d2eeac smtp deconectat motiv=deconectare
Apr 3 12:07:09 LocalHostname smtpd[3849290]: b981307ff6e18ae3 smtp connected address=redacted.remote.ip.address host=mx1.mydomain.tld
Apr 3 12:07:10 LocalHostname smtpd[3849290]: b981307ff6e18ae3 smtp message msgid=082c7a5e size=2850 nrcpt=1 proto=ESMTP
Apr 3 12:07:10 LocalHostname smtpd[3849290]: b981307ff6e18ae3 smtp envelope evpid=082c7a5e9dec905f from=<[email protected]> to=2.tld@mydomain
Apr 3 12:07:11 LocalHostname dovecot: lmtp(3967460): Conectați-vă de la local
Apr 3 12:07:11 LocalHostname dovecot: lmtp([email protected])<3967460><hmVpIN9/SWLkiTwAmV7YnQ>: msgid=<CACEbY1Hm4jdhjFKoZ2374zbEqEq1MZQXV-y.
Apr 3 12:07:11 LocalHostname dovecot: lmtp(3967460): Deconectați-vă de la local: Clientul a părăsit conexiunea (state=READY)
Apr 3 12:07:11 LocalHostname smtpd[3849290]: b981308066da2115 mda delivery evpid=082c7a5e9dec905f from=<[email protected]> to=<[email protected]>domaine2. user=vmail delay=2s rezultat=Ok stat=Livrat
3 aprilie 12:07:27 LocalHostname smtpd[3849290]: b981307ff6e18ae3 smtp deconectat motiv=închidere

Jurnal de corespondență REMOTE SERVER:

Apr 3 12:06:59 RemoteHostname smtpd[94758]: 73495635c8c7456b smtp connected address=209.85.219.174 host=mail-yb1-f174.google.com
3 aprilie 12:06:59 RemoteHostname smtpd[94758]: 73495635c8c7456b smtp tls ciphers=TLSv1.3:AEAD-AES256-GCM-SHA384:256
Apr 3 12:07:00 RemoteHostname smtpd[94758]: 73495635c8c7456b smtp message msgid=b912e335 size=2670 nrcpt=1 proto=ESMTP
3 aprilie 12:07:00 RemoteHostname smtpd[94758]: 73495635c8c7456b smtp envelope evpid=b912e33501250790 from=<[email protected]@mydo> to=2.tld@mydomain
Apr 3 12:07:00 RemoteHostname smtpd[94758]: 7349563834c66e1a mta adresa de conectare=smtp://redacted.local.ip.address:25 host=redacted-local-ip-address.isp.tld
3 aprilie 12:07:00 RemoteHostname smtpd[94758]: 7349563834c66e1a mta conectat
3 aprilie 12:07:00 RemoteHostname smtpd[94758]: 73495635c8c7456b smtp deconectat motiv=închidere
3 aprilie 12:07:00 RemoteHostname smtpd[94758]: smtp-out: Eroare la sesiunea 7349563834c66e1a: TLS oportunist eșuat, retrogradarea la simplu
Apr 3 12:07:00 RemoteHostname smtpd[94758]: 7349563834c66e1a mta adresa de conectare=smtp+notls://redacted.local.ip.address:25 host=redacted-local-ip-address.isp.tld
3 aprilie 12:07:00 RemoteHostname smtpd[94758]: 7349563834c66e1a mta conectat
3 apr 12:07:02 RemoteHostname smtpd[94758]: 7349563834c66e1a mta delivery evpid=b912e33501250790 from=<[email protected]> to=<pt=tld-domain="source"=<tested@mydo>sursa .remote.ip.address" relay="redacted.local.ip.address (redacted-local-ip-address.isp.tld)" delay=2s result="Ok" stat="250 2.0.0 082c7a5e Mesaj acceptat pentru livrare"
3 aprilie 12:07:19 RemoteHostname smtpd[94758]: 7349563834c66e1a mta deconectat motiv=închidere mesaje=1

SERVER DE LA DISTANȚĂ pf.conf:

# $OpenBSD: pf.conf,v 1.55 2017/12/03 20:40:04 apoi Exp $
#
# Vezi pf.conf(5) și /etc/examples/pf.conf

set skip pe lo

block return # blocați traficul apatrid
trece # stabilește starea de păstrare

# În mod implicit, nu permiteți conexiuni la distanță la X11
blocați revenirea la ! lo0 proto tcp la portul 6000:6010

# Utilizatorul de porturi nu are nevoie de rețea
blocare return out log proto {tcp udp} utilizator _pbuild
Paul avatar
drapel cn
Vă rugăm să furnizați sistemul de operare și versiunile.
Josey avatar
drapel cn
@Paul - Am actualizat întrebarea cu sistemul de operare și versiunile OpenSMTPD. Serverul meu local rulează „Raspberry Pi OS 11 bullseye 64-bit” și OpenSMTPD 6.8.0p2 (cea mai recentă versiune pe apt). Serverul meu la distanță rulează „OpenBSD 7.0 GENERIC#224 amd64” și OpenSMTPD 7.0.0.
Paul avatar
drapel cn
Care sunt configurațiile tale de porturi în `pf.conf`? - postați configurația completă, dacă este posibil.
Paul avatar
drapel cn
Serverul de la distanță folosește un certificat LE - vă conectați la acest server pe o adresă IP accesibilă la nivel global?
Josey avatar
drapel cn
@Paul Serverul local nu are ps.conf. Serverul de la distanță face, dar nu am făcut nicio modificare. Am adăugat configurația la întrebare. Atât serverul local, cât și serverul la distanță folosesc același certificat LE (copiat de pe serverul local pe serverul de la distanță folosind scp). Da, este o adresă IP accesibilă la nivel global.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.