Puncte:1

Postfix încearcă să caute adresa externă local

drapel ge

În prezent, încerc să configurez un server de e-mail folosind postfix, dovecot, amavis, sqlite etc.

Sa zicem ca am: mydomain.com și mail.mydomain.com (puncte de înregistrare MX aici)

Când trimiteți un e-mail la o adresă de e-mail externă (să spunem [email protected]), postfix încearcă să găsească acel e-mail în baza de date virtuală a cutiei poștale. (Înainte de a configura sistemul de poștă virtuală, puteam trimite e-mail prin comanda de e-mail.)

/var/log/mail.log:

12 septembrie 12:34:11 mail postfix/submission/smtpd[7695]: inițializarea motorului TLS de pe partea serverului
12 septembrie 12:34:11 mail postfix/submission/smtpd[7695]: conectează-te de la necunoscut[myhomeip]
12 septembrie 12:34:12 mail postfix/submission/smtpd[7695]: configurarea conexiunii TLS de la necunoscut[myhomeip]
12 septembrie 12:34:12 mail postfix/submission/smtpd[7695]: necunoscut[myhomeip]: listă de criptare TLS „aNULL:-aNULL:HIGH:MEDIUM:+RC4:@STRENGTH:!aNULL:!LOW:!EXP: !MEDIUM:!ADH:!AECDH:!MD5:!DSS:!ECDSA:!3DES:!DES:!eNULL:!RC4:!CBC3-SHA:!PSK"
12 septembrie 12:34:12 mail postfix/submission/smtpd[7695]: SSL_accept:înainte de inițializarea SSL
12 septembrie 12:34:12 mail postfix/submission/smtpd[7695]: SSL_accept:înainte de inițializarea SSL
12 septembrie 12:34:12 mail postfix/submission/smtpd[7695]: necunoscut[myhomeip]: Decriptare bilet de sesiune, expirare cheie: 1631442310
12 septembrie 12:34:12 mail postfix/submission/smtpd[7695]: SSL_accept:SSLv3/TLS citiți client salut
12 septembrie 12:34:12 mail postfix/submission/smtpd[7695]: SSL_accept:SSLv3/TLS write server salut
12 septembrie 12:34:12 e-mail postfix/submission/smtpd[7695]: SSL_accept:SSLv3/TLS scriere modificare cipher spec.
12 septembrie 12:34:12 mail postfix/submission/smtpd[7695]: SSL_accept:TLSv1.3 scrie extensii criptate
12 septembrie 12:34:12 e-mail postfix/submission/smtpd[7695]: SSL_accept:SSLv3/TLS scriere terminată
12 septembrie 12:34:12 mail postfix/submission/smtpd[7695]: SSL_accept:TLSv1.3 date timpurii
12 septembrie 12:34:12 mail postfix/submission/smtpd[7695]: SSL_accept:TLSv1.3 date timpurii
12 septembrie 12:34:12 e-mail postfix/submission/smtpd[7695]: SSL_accept:SSLv3/TLS citit terminat
12 septembrie 12:34:12 mail postfix/submission/smtpd[7695]: necunoscut[myhomeip]: Reutilizarea sesiunii vechi (bilet sesiune RFC 5077)
Sep 12 12:34:12 mail postfix/submission/smtpd[7695]: Conexiune TLS anonimă stabilită de la unknown[myhomeip]: TLSv1.3 cu cifru TLS_AES_256_GCM_SHA384 (256/256 biți) server de schimb de chei X25519-S-S (semnătură RSA-S) 2048 biți)
Sep 12 12:34:12 mail postfix/submission/smtpd[7695]: 502B781E4E: client=unknown[myhomeip], sasl_method=PLAIN, [email protected]
12 septembrie 12:34:12 e-mail postfix/cleanup[7700]: 502B781E4E: message-id=<[email protected]>
Sep 12 12:34:12 mail postfix/qmgr[6826]: 502B781E4E: from=<[email protected]>, size=330, nrcpt=1 (coada activă)
Sep 12 12:34:12 mail postfix/submission/smtpd[7695]: deconectare de la unknown[myhomeip] ehlo=2 starttls=1 auth=1 mail=1 rcpt=1 data=1 commands=7
12 septembrie 12:34:12 mail dovecot: imap([email protected])<7250><x83QYcnLPEhehlnC>: Conexiune închisă (noop terminată acum 0,207 secunde) in=1695 out=5945 deleted=0 expunged=0 trasshed=0 hdr_count =1 hdr_bytes=241 body_count=0 body_bytes=0
12 septembrie 12:34:12 mail postfix/smtpd[7704]: inițializarea motorului TLS de pe partea serverului
12 septembrie 12:34:12 mail postfix/smtpd[7704]: conectați-vă de la localhost[127.0.0.1]
12 septembrie 12:34:12 mail postfix/smtpd[7704]: B4A9F81E73: client=localhost[127.0.0.1]
12 septembrie 12:34:12 e-mail postfix/cleanup[7700]: B4A9F81E73: message-id=<[email protected]>
Sep 12 12:34:12 mail postfix/qmgr[6826]: B4A9F81E73: from=<[email protected]>, size=780, nrcpt=1 (coada activă)
Sep 12 12:34:12 mail postfix/smtpd[7704]: deconectați-vă de la localhost[127.0.0.1] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
Sep 12 12:34:12 mail amavis[847]: (00847-08) Trecut CLEAN {RelayedOpenRelay}, [myhomeip]:18412 [myhomeip] <[email protected]> -> <[email protected]>, Queue -ID: 502B781E4E, ID-ul mesajului: <[email protected]>, mail_id: thEgZdv5F-0T, Hits: 0.688, size: 34Aued_as: 338, B: 338, B: 338, 338
Sep 12 12:34:12 mail postfix/lmtp[7701]: 502B781E4E: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.5, delays=0.0.1/4 0.01/0.34, dsn=2.0.0, stare=trimis (250 2.0.0 de la MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: în coadă ca B4A9F81E73)
12 septembrie 12:34:12 mail postfix/qmgr[6826]: 502B781E4E: eliminat
Sep 12 12:34:12 mail postfix/virtual[7705]: B4A9F81E73: to=<[email protected]>, relay=virtual, delay=0.06, delays=0/0.03/0/0.02, dsn=5.1.1 , status=bounced (utilizator necunoscut: „[email protected]”)
Sep 12 12:34:12 mail postfix/cleanup[7700]: C2D3C81E74: message-id=<[email protected]>
Sep 12 12:34:12 mail postfix/qmgr[6826]: C2D3C81E74: from=<>, size=2692, nrcpt=1 (coada activă)
Sep 12 12:34:12 mail postfix/bounce[7706]: B4A9F81E73: notificarea expeditorului de nelivrare: C2D3C81E74
12 septembrie 12:34:12 mail postfix/qmgr[6826]: B4A9F81E73: eliminat
Sep 12 12:34:12 mail postfix/virtual[7705]: C2D3C81E74: to=<[email protected]>, relay=virtual, delay=0.01, delays=0/0/0/0, dsn=2.0.0 , status=trimis (livrat la maildir)
12 septembrie 12:34:12 mail postfix/qmgr[6826]: C2D3C81E74: eliminat
12 septembrie 12:34:19 mail dovecot: imap-login: Login: user=<[email protected]>, method=PLAIN, rip=myhomeip, lip=myserverip, mpid=7712, TLS, session=<B00g5MnL7kdehlnC>

Observați statutul = utilizator necunoscut respins în linia 33. Primesc și asta de la mailer-daemon: Diagnostic-Code: X-Postfix; utilizator necunoscut: „[email protected]

Pot primi e-mail extern și pot primi/trimite e-mail dacă trimit de pe domeniul meu în domeniul meu.

Numele meu de gazdă este mail.mydomain.com

Fișierul meu hosts:

127.0.0.1 localhost
127.0.1.1 mail.mydomain.com

# Următoarele linii sunt de dorit pentru gazdele capabile IPv6
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
myserverip mydomain.com

Conținut de transport SQL:

sqlite> SELECT * FROM transporturi;
mydomain.com|1001|virtual:

Ieșire de la postconf -n:

append_dot_mydomain = nr
biff = nu
compatibility_level = 2
content_filter = lmtp-amavis:[127.0.0.1]:10024
inet_interfaces = all
inet_protocols = ipv4
local_recipient_maps =
cutie_poștală_size_limit = 1024
masquerade_domains = $domeniul meu
mydestination = $mydomain, $myhostname, localhost.mydomain.com, localhost
myhostname = mail.mydomain.com
rețelele mele = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = nr
destinatar_delimiter = +
relayhost =
smtp_tls_exclude_ciphers = LOW, EXP
smtp_tls_loglevel = 2
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_security_level = mai
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = reject_unknown_client_hostname
smtpd_relay_restrictions = permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination
smtpd_tls_auth_only = da
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.mydomain.com/fullchain.pem
smtpd_tls_dh1024_param_file = /etc/letsencrypt/dhparams.pem
smtpd_tls_exclude_ciphers = aNULL, LOW, EXP, MEDIUM, ADH, AECDH, MD5, DSS, ECDSA, 3DES, DES, eNULL, RC4, CBC3-SHA, PSK
smtpd_tls_key_file = /etc/letsencrypt/live/mail.mydomain.com/privkey.pem
smtpd_tls_loglevel = 2
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_received_header = da
smtpd_tls_security_level = mai
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
tls_preempt_cipherlist = da
tls_ssl_options = NO_RENEGOCIARE
transport_maps = sqlite:/etc/postfix/sqlite_transports_maps.cf
virtual_alias_maps = sqlite:/etc/postfix/sqlite_virtual_alias_maps.cf
virtual_gid_maps = static:1001
virtual_mailbox_base = /home/mail/
virtual_mailbox_maps = sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf
virtual_uid_maps = static:1001

/etc/mailname conține mydomain.com

Conținutul master.cf:

smtp inet n - y - - smtpd
depunerea inet n - y - - smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_wrappermode=nu
  -o smtpd_tls_security_level=criptare
  -o smtpd_sasl_auth_enable=da
  -o smtpd_tls_auth_only=da
  -o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_recipient_restrictions=
smtps inet n - y - - smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_sasl_auth_enable=da
  -o smtpd_tls_auth_only=da
  -o smtpd_tls_wrappermode=da
lmtp-amavis unix - - - - 2 lmtp
  -o lmtp_data_done_timeout=1200
  -o lmtp_send_xforward_command=da
  -o max_use=20
127.0.0.1:10025 inet n - n - - smtpd
  -o content_filter=
  -o mynetworks=127.0.0.0/8
  -o smtpd_client_restrictions=permit_mynetworks,reject
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o smtpd_delay_reject=nu
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_data_restrictions=reject_unauth_pipelining
  -o smtpd_end_of_data_restrictions=
  -o smtpd_restriction_classes=
  -o smtpd_error_sleep_time=0
  -o smtpd_soft_error_limit=1001
  -o smtpd_hard_error_limit=1000
  -o smtpd_client_connection_count_limit=0
  -o smtpd_client_connection_rate_limit=0
  -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters,no_address_mappings
  -o local_header_rewrite_clients=
  -o smtpd_milters=
  -o local_recipient_maps=
  -o hărți_releu_destinatar=
pickup unix n - y 60 1 pickup
curatare unix n - y - 0 curatare
  -o header_checks=regexp:/etc/postfix/header_checks
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - y 1000? 1 tlsmgr
rescrie unix - - y - - trivial-rescriere
bounce unix - - y - 0 bounce
defer unix - - y - 0 bounce
trace unix - - y - 0 săritură
verifica unix - - y - 1 verifica
spălați Unix n - y 1000? 0 culoare
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - y - - smtp
releu unix - - y - - smtp
        -o syslog_name=postfix/$service_name
showq unix n - y - - showq
eroare unix - - y - - eroare
reîncercați Unix - - y - - eroare
arunca unix - - y - - arunca
unix local - n n - - local
unix virtual - n n - - virtual
lmtp unix - - y - - lmtp
nicovală unix - - y - 1 nicovală
scache unix - - y - 1 scache
postlog unix-dgram n - n - 1 postlogd
maildrop unix - n n - - pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp unix - n n - - conductă
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($destinatar)
ifmail unix - n n - - pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($destinatar)
bsmtp unix - n n - - conductă
  steaguri=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $destinatar
scalemail-backend unix - n n - 2 conducte
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

Am încercat deja diverse setări de destinație.

Multumesc pentru ajutor !

Nikita Kipriyanov avatar
drapel za
Deci, care este conținutul `sqlite_virtual_mailbox_maps.cf` și `sqlite_virtual_alias_maps.cf`? Spuneți-ne cel puțin șirurile de interogare. // Mă tem că problema este că interogarea `virtual_mailbox_domains` sau `virtual_alias_domains` are ca rezultat faptul că gmail.com este un domeniu virtual local. Așa că aș verifica această ipoteză.
babulb avatar
drapel ge
# cat /etc/postfix/sqlite_virtual_mailbox_maps.cf `dbpath = /etc/postfix/postfix.sqlite interogare = SELECTează maildir FROM utilizatorii WHERE email='%s'` # cat /etc/postfix/sqlite_virtual_alias_maps.cf `dbpath = /etc/postfix/postfix.sqlite interogare = SELECTAȚI e-mailul FROM aliasuri WHERE alias='%s'`
babulb avatar
drapel ge
și baza de date în sine: `# sqlite3 /etc/postfix/postfix.sqlite sqlite> .schema utilizatori CREATE TABLE utilizatori (e-mail TEXT PRIMARY KEY, parola TEXT NOT NULL, realname TEXT, maildir TEXT NOT NULL, creat DATETIME DEFAULT CURRENT_TIMESTAMP); sqlite> SELECT * FROM utilizatori; [email protected]|{BLF-CRYPT}pwhash|JG Caesar|caesar/|2021-09-11 19:03:58 [email protected]|{BLF-CRYPT}pwhash|admin|admin/|2021-09-11 19:51:11`
babulb avatar
drapel ge
Nu am `virtual_mailbox_domains` și `virtual_alias_domains`
babulb avatar
drapel ge
`postmap -q [email protected] sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf` returnează admin/ ; deci se pare ca functioneaza
anx avatar
drapel fr
anx
Nu văd nimic în neregulă cu interogarea, totuși verificarea pe care o sugeram ar fi să testăm dacă căutarea returnează rezultate false pozitive pentru domeniile *nu* gestionate de serverul tău. Știai deja că funcționează pentru domeniul *dvs.* (ați primit notificarea de non-livrare!) - teoria mea a fost că o anumită interogare de căutare (printr-o interogare SQL greșită sau altfel) returnează rezultate nedorite pentru *alte* domenii.
Nikita Kipriyanov avatar
drapel za
De asemenea, puteți configura un nivel mai ridicat de depanare, cel mai bine este să adăugați peer-ul de testare (probabil, localhost) în debug_peer_list din main.cf. Apoi, postfix adaugă înregistrarea cu 2 și va înregistra *mult* mai mult, spunându-ți, practic, despre fiecare interogare pe care o face, fiecare rezultat returnat și fiecare test pe care îl face, astfel încât să poți înțelege ce se întâmplă. Nu-l lăsa cu această setare pentru o lungă perioadă de timp, jurnalul cu nivelul de depanare +2 este foarte pronunțat.
babulb avatar
drapel ge
@anx `postmap -q [email protected] sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf` nu returnează nimic; există doar doi utilizatori în acest moment (vezi comentariul meu despre baza de date), așa că nu este surprinzător. @Nikita Kipriyanov O sa incerc asta
anx avatar
drapel fr
anx
@babulb S-ar fi putut întâmpla un lucru similar cu domeniile căutate în `transport_maps`, verificați-o și pe aceea.
babulb avatar
drapel ge
@anx Sfinte... ai rezolvat-o; multumesc mult, deja cautam o zi intreaga...totul functioneaza acum. Știam că e ceva cu adevărat stupid. practic, am codificat propriul meu domeniu în tabel în loc de %s (rezultatul poate fi văzut mai jos). `# sqlite3 /etc/postfix/postfix.sqlite sqlite> SELECT * FROM transporturi; mydomain.com|1001|virtual: # cat /etc/postfix/sqlite_transports_maps.cf dbpath = /etc/postfix/postfix.sqlite interogare = SELECT transport FROM transporturi WHERE domain = 'mydomain.com' # postmap -q [email protected] sqlite:/etc/postfix/sqlite_transports_maps.cf virtual:`
anx avatar
drapel fr
anx
Apropo, `master.cf` a denumit 2 din 4 instanțe smtpd folosind `syslog_name` - probabil că vă puteți salva o bătaie de cap dacă puneți o linie potrivită `-o syslog_name=..` în portul dvs. `10025` de asemenea, pentru a face mai evident în jurnale dacă problemele apar înainte sau după procesarea *amavis*.
Puncte:1
drapel fr
anx

Postfix ar putea selecta virtual pentru domenii nu ar trebui să se ocupe de fapt când una dintre căutările dvs. returnează un (orice) rezultat când nu ar trebui: a fals pozitiv.

Este probabil hărți_transport sau virtuale_mailbox_domains (implicit la amânarea la virtuale_mailbox_maps). Ai dovedit această teorie dacă ambii domeniul dvs. și unul care ar trebui de fapt să fie retransmis produc rezultate dintr-una dintre căutările dvs. configurate, de ex. incearca asta:

postmap -q [email protected] sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf
postmap -q [email protected] sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf
postmap -q @other.example sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf

postmap -q mydomain.example sqlite:/etc/postfix/sqlite_transports_maps.cf
postmap -q other.example sqlite:/etc/postfix/sqlite_transports_maps.cf

Dacă ați obținut rezultate pentru ambele, aruncați o privire severă la interogare, în special la UNDE clauză cu substituent (începând cu %) și determinați de ce returnează mai multe rezultate pentru domeniile pe care nu le-ați introdus în mod explicit în baza de date. Returnarea cheii în sine sau rezultate statice este comun în Postfix, așa că nu declanșează un avertisment.. pur și simplu nu este util pentru cazul tău.


nu am folosit Amavis în acest fel, dar eu cred că prevalează transporturi în Postfix nu este necesar pentru cazuri de utilizare standard precum acesta.În schimb, folosiți faptul că Postfix va verifica respectivul transportCăutări _mailbox_domains pentru a determina ce domenii și cutii poștale sunt transportate cum.

Este posibil să nu aveți nevoie de transport suprascris pentru aceasta și, probabil, veți obține o configurare mai flexibilă și mai puțin predispusă la erori dacă vă enumerați domeniile virtuale în virtuale_mailbox_domains în loc de hărți_transport și utilizați-l pe acesta din urmă numai pentru suprascrieri specifice.

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.