Am un server Debian cu postfix, fail2ban, roundcube, webmin și dovecot instalat pe el. Am reușit să trimit mail-uri din portul 25, dar indiferent de ce încerc, nu pot să-l fac să funcționeze de la 465 și/sau 587 indiferent de metoda pe care o încerc. Acest lucru se întâmplă în roundcube și un client de e-mail, deși bănuiesc că ambele erori pot diferi. Am încercat diverse lucruri în ultimele zile și am citit și câteva soluții posibile, dar niciuna dintre ele nu a funcționat pentru mine, așa că, până la urmă, iată ce am:
Roundcube config/config.inc.php:
<?php
$config['debug_level'] = 4;
$config['smtp_debug'] = adevărat;
$config = [];
// Șir de conexiune la baza de date (DSN) pentru operațiuni de citire+scriere
// Format (compatibil cu PEAR MDB2): db_provider://user:password@host/database
// db_providers acceptați în prezent: mysql, pgsql, sqlite, mssql, sqlsrv, oracle
// Pentru exemple, consultați http://pear.php.net/manual/en/package.database.mdb2.intro-dsn.php
// NOTĂ: pentru SQLite utilizați calea absolută (Linux): 'sqlite:////full/path/to/sqlite.db?mode=0646'
// sau (Windows): „sqlite:///C:/full/path/to/sqlite.db”
$config['db_dsnw'] = 'mysql://user:pass@localhost/db';
// Gazda IMAP aleasă pentru a efectua conectarea.
// Lăsați necompletat pentru a afișa o casetă de text la conectare, oferiți o listă de gazde
// pentru a afișa un meniu derulant sau pentru a seta o gazdă ca șir.
// Introduceți numele de gazdă cu prefixul ssl:// pentru a utiliza TLS implicit sau utilizați
// prefixul tls:// pentru a utiliza STARTTLS.
// Variabile de înlocuire acceptate:
// %n - nume de gazdă ($_SERVER['SERVER_NAME'])
// %t - nume de gazdă fără prima parte
// %d - domeniu (http numele de gazdă $_SERVER['HTTP_HOST'] fără prima parte)
// %s - numele domeniului după „@” de la adresa de e-mail furnizată pe ecranul de conectare
// De exemplu %n = mail.domain.tld, %t = domain.tld
$config['default_host'] = 'mail.domain.tld';
// Gazdă server SMTP (pentru trimiterea de e-mailuri).
// Introduceți numele de gazdă cu prefixul ssl:// pentru a utiliza TLS implicit sau utilizați
// prefixul tls:// pentru a utiliza STARTTLS.
// Variabile de înlocuire acceptate:
// %h - numele de gazdă IMAP al utilizatorului
// %n - nume de gazdă ($_SERVER['SERVER_NAME'])
// %t - nume de gazdă fără prima parte
// %d - domeniu (http numele de gazdă $_SERVER['HTTP_HOST'] fără prima parte)
// %z - domeniu IMAP (numele de gazdă IMAP fără prima parte)
// De exemplu %n = mail.domain.tld, %t = domain.tld
// Pentru a specifica diferite servere SMTP pentru diferite gazde IMAP, furnizați o matrice
// a gazdei IMAP (fără prefix sau port) și server SMTP, de ex. ['imap.example.com' => 'smtp.example.net']
$config['smtp_server'] = 'tls://mail.domain.tld';
// Port SMTP. Utilizați 25 pentru text clar, 465 pentru TLS implicit sau 587 pentru STARTTLS (implicit)
$config['smtp_port'] = 587;
// Nume de utilizator SMTP (dacă este necesar) dacă utilizați %u ca nume de utilizator Roundcube
// va folosi numele de utilizator curent pentru autentificare
$config['smtp_user'] = '';
// Parolă SMTP (dacă este necesar) dacă utilizați %p ca parolă Roundcube
// va folosi parola utilizatorului curent pentru autentificare
$config['smtp_pass'] = '%p';
// furnizați o adresă URL de unde un utilizator poate obține suport pentru această instalare Roundcube
// VA RUGAM SA NU LEGATI LA SITE-UL ROUNDCUBE.NET AICI!
$config['support_url'] = '';
// Denumiți-vă serviciul. Acesta este afișat pe ecranul de conectare și în titlul ferestrei
$config['product_name'] = 'Webmail';
// Această cheie este folosită pentru a cripta parola imap a utilizatorilor care este stocată
// în înregistrarea sesiunii. Pentru metoda de cifrare implicită trebuie să fie
// exact 24 de caractere.
// CHEIA DVS. TREBUIE SĂ FIE ALTA DE VALOAREA EȘANȚULUI DIN MOTIVE DE SECURITATE
$config['des_key'] = 'rcmail-random_key_here';
// Lista de pluginuri active (în directorul pluginuri/)
$config['plugins'] = [
'Arhiva',
'zipdownload',
];
// nume skin: folder din skin-uri/
$config['skin'] = 'elastic';
$config['imap_conn_options'] = matrice(
'ssl' => array('verify_peer' => true, 'verfify_peer_name' => false),
'tls' => array('verify_peer' => true, 'verfify_peer_name' => false),
);
$config['default_host'] = 'ssl://mail.domain.tld';
$config['default_port'] = '993';
$config['smtp_server'] = 'tls://mail.domain.tld';
$config['smtp_port'] = '587';
$config['smtp_debug'] = adevărat;
În prezent, pot primi e-mailuri în roundcube la portul 143 și 993, dar pot trimite doar de la portul 25. Iată eroarea pe care o primesc când încerc să trimit un e-mail de la 587:
Eroare SMTP (554): Nu s-a putut adăuga destinatarul „[email protected]” (5.7.1 <[email protected]>: adresa destinatarului respinsă: acces refuzat).
Iată ce arată roundcube logs/smtp.log:
[10-Mar-2022 00:08:05 +0200]: <gqnft6kr> Se conectează la tls://mail.hlebarkite.bg:587...
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 220 mail.domain.ltd ESMTP Postfix
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Trimiteți: EHLO webmail.domain.ltd
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 250-mail.domain.ltd
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 250-PIPELINING
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 250-SIZE 10240000
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 250-VRFY
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 250-ETRN
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 250-STARTTLS
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 250-ENHANCEDSTATUSCODES
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 250-8BITMIME
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 250-DSN
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 250-SMTPUTF8
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 250 CHUNKING
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Trimiteți: MAIL FROM:<[email protected]>
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 250 2.1.0 Ok
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Trimiteți: RCPT către:<[email protected]>
[10-Mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 554 5.7.1 <[email protected]>: Adresa destinatarului respinsă: Acces refuzat
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Trimiteți: RSET
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 250 2.0.0 Ok
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Trimiteți: RENUNȚĂ
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Recv: 221 2.0.0 Pa
Iată ce arată logs/error.log:
[10-mar-2022 00:08:05 +0200]: <gqnft6kr> Eroare SMTP: Nu s-a putut adăuga destinatarul „[email protected]”. 5.7.1 <[email protected]>: Adresa destinatarului respinsă: Acces refuzat (Cod: 554) în /home/webmail/program/lib/Roundcube/rcube.php pe linia 1774 (POST /?_task=mail&_unlock=loading1646863684782&_framed=& 1&_action=trimite)
Dacă încerc să trimit un e-mail în felul acesta:
echo "corp mesaj de testare" | mail -s „test” [email protected]
Obțin următoarele în /var/log/mail.log
10 mar 00:12:11 lamp postfix/submission/smtpd[1126]: conectați-vă de la necunoscut[xx.xx.xx.xx - acesta este IP-ul serverului]
10 mar 00:12:11 lamp postfix/submission/smtpd[1126]: avertisment: SASL: Conectarea la privat/autentificare a eșuat: Nu există un astfel de fișier sau director
Mar 10 00:12:11 lamp postfix/submission/smtpd[1126]: fatal: nu există mecanisme de autentificare SASL
10 mar 00:12:12 lamp postfix/master[1300]: avertisment: proces /usr/lib/postfix/sbin/smtpd pid 1126 stare de ieșire 1
10 martie 00:12:12 lamp postfix/master[1300]: avertisment: /usr/lib/postfix/sbin/smtpd: pornire greșită a comenzii -- throttling
Mar 10 00:12:12 lamp postfix/smtp[1125]: C520F1300420: to=<[email protected]>, relay=mail.domain.ltd[xx.xxx.xx.xx server ip]:587, delay= 1.1, întârzieri=0.09/0.01/1/0, dsn=4.4.2, status=amânat (s-a pierdut conexiunea cu mail.domain.ltd[xx.xx.xx.xx IP server] în timpul efectuării strângerii de mână EHLO)
Dacă încerc să trimit un e-mail de la un client de e-mail, văd această eroare:
Eroare raportată a fost „Comandă HELO a eșuat: Eroare la primirea datelor: Resetarea conexiunii de către peer”.
Iată cum arată postconf -n:
postconf: avertisment: /etc/postfix/master.cf: parametru nedefinit: mua_sender_restrictions
postconf: avertisment: /etc/postfix/master.cf: parametru nedefinit: mua_client_restrictions
postconf: avertisment: /etc/postfix/master.cf: parametru nedefinit: mua_helo_restrictions
postconf: avertisment: /etc/postfix/master.cf: parametru nedefinit: mua_sender_restrictions
postconf: avertisment: /etc/postfix/master.cf: parametru nedefinit: mua_client_restrictions
postconf: avertisment: /etc/postfix/master.cf: parametru nedefinit: mua_helo_restrictions
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = nr
biff = nu
compatibility_level = 2
inet_protocols = all
cutie_poștală_size_limit = 0
mydestination = localhost.$mydomain, localhost, $myhostname
mydomain = mail.domain.ltd
myhostname = mail.domain.ltd
rețelele mele = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24
mynetworks_style = subrețea
readme_directory = nr
destinatar_delimiter = +
relayhost = [mail.domain.ltd]:587
smtp_sasl_auth_enable = da
smtp_sasl_password_maps = static:nume utilizator:pasare
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = mai
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = da
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination permit_inet_interfaces
smtpd_sasl_path = private/auth
smtpd_sasl_security_options =
smtpd_sasl_type = porumbel
smtpd_tls_CAfile = /var/lib/dehydrated/certs/mail.domain.ltd/fullchain.pem
smtpd_tls_cert_file = /var/lib/dehydrated/certs/mail.domain.ltd/cert.pem
smtpd_tls_key_file = /var/lib/dehydrated/certs/mail.domain.ltd/privkey.pem
smtpd_tls_security_level = mai
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = da
virtual_alias_maps = hash:/etc/postfix/virtual
Iată cum arată /etc/postfix/main.cf:
# Consultați /usr/share/postfix/main.cf.dist pentru o versiune comentată, mai completă
# Specific Debian: Specificarea unui nume de fișier va provoca primul
# rând din acel fișier care va fi folosit ca nume. Valoarea implicită Debian
# este /etc/mailname.
#myorigin = /etc/mailname
biff = nu
# atașarea domeniului .este treaba MUA.
append_dot_mydomain = nr
# Anulați comentariile următoarei rânduri pentru a genera avertismente „e-mail întârziat”.
#delay_warning_time = 4h
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 = /var/lib/dehydrated/certs/mail.domain.ltd/cert.pem
smtpd_tls_key_file = /var/lib/dehydrated/certs/mail.domain.ltd/privkey.pem
smtpd_use_tls=da
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_security_level = mai
# Consultați /usr/share/doc/postfix/TLS_README.gz în pachetul postfix-doc pentru
# informații despre activarea SSL în clientul smtp.
#smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination permit_inet_interfaces
myhostname = mail.domain.ltd
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#mydestination = $myhostname, mail.domain.ltd, localdomain, localhost, localhost.localdomain, localhost
# Test
mydestination = localhost.$mydomain, localhost, $myhostname
rețelele mele = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24
cutie_poștală_size_limit = 0
destinatar_delimiter = +
inet_protocols = all
virtual_alias_maps = hash:/etc/postfix/virtual
smtp_use_tls = da
smtpd_tls_CAfile = /var/lib/dehydrated/certs/mail.domain.ltd/fullchain.pem
#smtpd_recipient_restrictions = permit_mynetworks permit_inet_interfaces permit_sasl_authenticated
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination permit_inet_interfaces
smtpd_tls_security_level = mai
mynetworks_style = subrețea
#mydomain = domeniu local
# Test
mydomain = mail.domain.ltd
smtpd_sasl_security_options =
# Test
relayhost = [mail.domain.ltd]:587
smtp_sasl_auth_enable = da
smtp_sasl_password_maps = static:nume utilizator:pasare
smtp_sasl_security_options = noanonymous
smtpd_sasl_path = private/auth
smtpd_sasl_type = porumbel
Iată cum arată /etc/postfix/master.cf:
#
# Fișierul de configurare a procesului master 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
smtp inet n - y - 1 postscreen
smtpd trece - - y - - smtpd
#dnsblog unix - - y - 0 dnsblog
tlsproxy unix - - y - 0 tlsproxy
depunerea inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=mai
-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 - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=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-ul 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}
Orice ajutor ar fi foarte apreciat.