Puncte:0

Serverul de e-mail nu va primi e-mailuri - Postfix / Dovecot / Raspberry Pi

drapel in

fundal

Am lucrat la configurarea unui server de e-mail folosind un Raspberry Pi ca gazdă. Am folosit în primul rând acest ghid ca ajutor, dar par să fiu blocat. Am un serviciu rezidențial, dar am un cont la dynu.com cu serviciile „SMTP Outbound Relay” și „Email Store/Forward” pentru a ocoli acest lucru. Ei găzduiesc și numele meu de domeniu.

Problemă

Pot trimite e-mailuri fără probleme, ceea ce am o problemă este să le primesc. Voi posta o mulțime de detalii, deoarece am încercat multe lucruri și am impresia că ceva va apărea un indiciu.

Porturi

Folosind un scanner de porturi pot determina următoarele:

  • Port 25 = Blocat
  • Port 2525 = Deblocat
  • Port 143 = Deblocat
  • Port 465 = Deblocat
  • Port 993 = Deblocat

Toate porturile sunt redirecționate prin router cu succes către gazda mea de e-mail.

Testare OpenSSL (funcționează)

Folosind comanda openssl s_client -connect mail.xxx.com:993 -quiet (unde xxx este domeniul meu real) Mă pot autentifica folosind o parolă de utilizator de conectare , `b select inbox', 'c logout' Folosind numele meu de domeniu actual, mai degrabă decât localhost, mă face să simt că acesta este configurat corect.

Monitorizarea mail.log la primirea unui e-mail

Singura intrare care apare: introduceți descrierea imaginii aici

Văd în serviciul meu Dyno Email Store/Forward că stau acolo și nu transferă niciodată:

introduceți descrierea imaginii aici

Am serviciul de redirecționare/stocare e-mail Dyno configurat după cum urmează:

introduceți descrierea imaginii aici

S-ar putea să nu am nevoie nici măcar de acest serviciu de redirecționare/magazin de e-mail, deoarece portul 993 nu este blocat de ISP-ul meu? Îl folosesc doar pentru că nici nu îl pot face să funcționeze fără el, așa că ar putea la fel de bine să încerc ceva diferit.

Fișierele de configurare relevante

Main.cfg

smtpd_banner = $myhostname ESMTP $mail_name (Raspbian)
biff = nu

append_dot_mydomain = nr

readme_directory = nr

# Consultați http://www.postfix.org/COMPATIBILITY_README.html -- implicit la 2 pe
# instalări noi.
compatibility_level = 2

# Parametri TLS
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=da
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated 
defer_unauth_destination
myhostname = xxx.com (am pe cel adevărat aici)
mydomain = xxx.com (am pe cel real aici)

myorigin = $mydomain

mydestination = localhost, localhost.localdomain

#adăugat
smtp_sasl_auth_enable = da
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

relayhost = [relay.dynu.com]:2525
smtp_sasl_use_tls = da
smtp_sasl_auth_enable = da
smtp_sasl_security_options = noanonymous
smtp_generic_maps = hash:/etc/postfix/generic

rețelele mele = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
cutie_poștală_size_limit = 0
destinatar_delimiter = +
inet_interfaces = all


smtpd_recipient_restrictions =
    permis_sasl_authenticated,
    permis_rețelele mele,
    reject_unauth_destinations

smtpd_helo_restrictions =
    permis_rețelele mele,
    permis_sasl_authenticated,
    reject_invalid_helo_hostname,
    reject_non_fqdn_helo_hostname,
    reject_unknown_helo_hostname,
    check_helo_access hash:/etc/postfix/helo_access

smtpd_sasl_type = porumbel
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = da
smtpd_tls_auth_only = da

Maestru.cf

#
# Fișierul de configurare a procesului principal Postfix. Pentru detalii despre format
# din fișier, consultați pagina de manual master(5) (comandă: „man 5 master” sau
# on-line: http://www.postfix.org/master.5.html).
#
# Nu uitați să executați „postfix reload” după editarea acestui fișier.
#
# =================================================== ==========================
# tip de serviciu private unpriv chroot wakeup maxproc command + args
# (da) (da) (nu) (niciodată) (100)
# =================================================== ==========================
smtp inet n - y - - smtpd
2525 inet n - n - - smtpd
#smtp inet n - y - 1 postscreen
#smtpd trece - - y - - smtpd
#dnsblog unix - - y - 0 dnsblog
#tlsproxy unix - - y - 0 tlsproxy
#submission inet n - y - - smtpd
# -o syslog_name=postfix/submission
# -o smtpd_tls_security_level=criptare
# -o smtpd_sasl_auth_enable=da
# -o smtpd_tls_auth_only=da
# -o smtpd_reject_unlisted_recipient=nu
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINARE
smtps inet n - - - - smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=da
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o smtpd_sasl_auth_enable=da
# -o smtpd_sasl_auth_enable=da
# -o smtpd_reject_unlisted_recipient=nu
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINARE
#628 inet n - y - - qmqpd
pickup unix n - y 60 1 pickup
curatare unix n - y - 0 curatare
qmgr unix n - n 300 1 qmgr
#qmgr unix n - n 300 1 oqmgr
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
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
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
#
# =================================================== ====================
# Interfețe cu software non-Postfix. Asigurați-vă că examinați manualul
# de pagini ale software-ului non-Postfix pentru a afla ce opțiuni dorește.
#
# Multe dintre următoarele servicii utilizează livrarea Postfix pipe(8).
# agent. Consultați pagina de manual pipe(8) pentru informații despre ${recipient}
# și alte opțiuni pentru plicuri pentru mesaje.
# =================================================== ====================
#
# maildrop. Consultați fișierul Postfix MAILDROP_README pentru detalii.
# Specificați, de asemenea, în main.cf: maildrop_destination_recipient_limit=1
#
maildrop unix - n n - - pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
# 
# =================================================== ====================
#
# Versiunile recente de Cyrus pot folosi intrarea existentă „lmtp” master.cf.
#
# Specificați în cyrus.conf:
# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
#
# Specificați în main.cf una sau mai multe dintre următoarele:
# mailbox_transport = lmtp:inet:localhost
# virtual_transport = lmtp:inet:localhost
#
# =================================================== ====================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Specificați și în main.cf: cyrus_destination_recipient_limit=1 
#
#cyrus unix - n n - - pipe
# user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# =================================================== ====================
# Exemplu vechi de livrare prin Cyrus.
#
#old-cyrus unix - n n - - pipe
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# =================================================== ====================
#
# Consultați fișierul Postfix UUCP_README pentru detalii de configurare.
#
uucp unix - n n - - conductă
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($destinatar)
#
# Alte metode de livrare externă.
#
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}

Dovecot 10-master.conf

Cu siguranță ascultă pe portul 993, așa cum demonstrează datele de conectare de mai sus:

service imap-login {
  port = 143
}
inet_listener imagini {
  port = 993
  ssl = da
}

Dacă există alte fișiere de configurare care trebuie verificate / postate, anunțați-mă și vă pot arăta.

Serviciul de e-mail Dynu / configurația fetchmail

Configurație Dynu:

introduceți descrierea imaginii aici

Pot specifica un nume de utilizator și o parolă de conectare, de asemenea:

introduceți descrierea imaginii aici

Fetchmailrc:

# /etc/fetchmailrc pentru modul demon la nivel de sistem

# Acest fișier trebuie să fie chmod 0600, proprietarul fetchmail



setați demonul 300 # Pool la fiecare 5 minute

set syslog # log prin facilitatea syslog

setează postmaster root



nu setați un bouncemail # evitați pierderea erorilor 4xx

                            # pe de altă parte, apar erori 5xx

                            # Mai periculos...

# Gazde de găzduit


# Valori implicite ================================================= ================
# Setați antispam la -1, deoarece este mult mai sigur să îl utilizați împreună cu

# fără bouncemail

implicite:

timeout 300

antispam -1

limita lot 100

sondaj store1.dynu.com protocol POP3 nume de utilizator „eric” parolă „parolă”

Deci, în configurația de mai sus încă nu primesc e-mailuri.Numele de utilizator și parola din fetchmail ar trebui să se potrivească cu cele din autentificarea pentru dynu? Este sondaj store1.dynu.com protocol POP3 nume de utilizator „eric” parolă „parolă” partea corecta?

drapel fr
Încercați `poll store1.dynu.com protocol ETRN user `
drapel fr
Corecție, ar fi trebuit să fie `fetchdomains`, nu `user`: `poll store1.dynu.com protocol ETRN fetchdomains `.
Eric F avatar
drapel in
@Tomek Mulțumesc pentru sugestie! Am încercat asta, dar tot nu vor fi trimise e-mailuri. Am descoperit că îmi lipsesc `home_mailbox = Maildir/` și `mailbox_command = ` din main.cf. Adăugarea acestor linii acum îmi permite să îmi trimit un e-mail (intern în propria rețea), ceea ce este mai mult decât puteam face înainte. Totuși, nu se poate trimite din exterior
Eric F avatar
drapel in
@tomek am reușit în sfârșit să funcționeze! Cheia a fost să îmi setez portul ETRN pe dynu la 465 și să mă autentific folosind numele de utilizator și parola. Mulțumesc mult pentru ajutor Tomek!!
Puncte:2
drapel fr

Confundați diferite servicii. Serverul dvs. de stocare și redirecționare @ dynu este configurat pentru ETRN. Aceasta înseamnă că TREBUIE să declanșați transferul de e-mail folosind protocolul ETRN și, ca rezultat, dynu va contacta serverul dvs. SMTP, probabil @ portul ETRN (993) de mai sus. Nu ai nevoie porumbar ascult acolo, doar postfix.

Un client ETRN despre care cunosc este fetchmail. Pagina sa de manual are această notă:

Modul ETRN vă permite să întrebați un server ESMTP compatibil (cum ar fi BSD sendmail la versiunea 8.8.0 sau o versiune ulterioară) pentru a deschide imediat a conexiunea expeditor-SMTP la computerul dvs. client și începeți redirecționarea orice articole adresate mașinii dvs. client în coada serverului de corespondență nelivrată.

Deci, probabil configurarea și rularea acestuia este ultima piesă lipsă de care trebuie să aveți grijă.

DECLARAȚIUNEA DE RESPONSABILITATE: Nu am executat niciodată o astfel de configurare și nu pot garanta că va funcționa.

EDIT: Comanda fetchmail probabil este:

fetchmail store1.dynu.com -p etrn --fetchdomains <numele_domeniului_dvs.>

dând următoarea linie de sondaj:

sondajul store1.dynu.com protocol etrn fetchdomains <numele_domeniului_dvs.>
Eric F avatar
drapel in
Mulțumesc pentru răspuns. Cred că și „SquirrelMail” face același lucru? Întreb doar pentru că acesta este în articolul original pe care l-am folosit (https://samhobbs.co.uk/2013/12/raspberry-pi-email-server-part-3-squirrelmail) Încă am nevoie de această componentă, indiferent de partea clientului? Tot am nevoie de asta chiar dacă decid să nu folosesc serviciul de redirecționare/magazin de e-mail dynu?
drapel fr
`dovecot` este un server IMAP și POP3 - pentru a prezenta e-mailurile din stocarea locală către aplicații client precum `thundirbird` sau chiar `outlook`. `Squirrelmail`, din câte îmi amintesc este un client web și probabil poate (sau chiar trebuie) să folosească serverul IMAP sau POP3 ca backend. Așa că S-ar putea să aveți nevoie de el dacă doriți să aveți interfață web, dar este complet inutil pentru ETRN în sine.
Eric F avatar
drapel in
Multumesc mult! Voi încerca să instalez / configurez fetchmail și voi posta înapoi
drapel fr
BTW, portul tău ETRN probabil nu ar trebui să fie 993 (deoarece aveți porumbel acolo), ci 26 sau 2525. Și trebuie să configurați postfix pentru a asculta pe acel port. Sau router pentru a-l redirecționa corespunzător.
Eric F avatar
drapel in
Cum obțin postfix pentru a asculta pe acel port? Atât 2526, cât și 26 sunt deschise. Este asta în master.cf?
drapel fr
Aveți deja postfix de ascultare pe portul 2525, așa cum tocmai am observat în fișierul master.cf. Acesta ar trebui să fie portul dvs. ETRN.
Eric F avatar
drapel in
Tomek - Deja MULȚUMESC foarte mult pentru ajutor. În cele din urmă, am instalat fetchmail (manual), dar este în funcțiune. Vezi întrebarea mea actualizată, deoarece trebuie să-mi lipsească încă ceva mic...

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.