Primero, el puerto 25 está abierto, pero no acepta ninguna conexión externa.

Primero, el puerto 25 está abierto, pero no acepta ninguna conexión externa.

Supongo que estos son dos problemas típicos, al menos el primero lo es. Estoy intentando configurar postfix dovecot en CentOS 7.

Primero, el puerto 25 está abierto, pero no acepta ninguna conexión externa.

La conexión interna en el puerto 25 está funcionando. Hice:

[root@myhost ~]# telnet localhost smtp
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 xxxx.com ESMTP Postfix (CentOS)
helo xxxx
250 xxxx.com
mail from:<[email protected]>
250 2.1.0 Ok
rcpt to:<[email protected]>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
from:[email protected]
to:[email protected]
subject:Testing email
test test
.
250 2.0.0 Ok: queued as CBE5F6039
quit
221 2.0.0 Bye
Connection closed by foreign host.

Luego verifiqué mi servidor Dovecot en /var/mail/vhosts/xxxx.com/user1:

./new
./new/1693231789.M572537P2155.xxxx,S=495,W=510

Entonces, para SMTP típico (puerto 25), mi configuración es totalmente correcta. Pero el problema es que cuando intento enviarlo o hacer telnet, no responde nada. El documento de registro está vacío. Lo intenté tcpdump -i any port smtpy me dice que el puerto 25 no se abre en absoluto.

Así que supongo que esto es sólo un error típico de Linux, algo que bloquea la escucha del puerto 25. Por favor díganme si alguien sabe qué es.

En segundo lugar, el puerto 465 no funciona.

Parece que Postfix no lo escucha debido a alguna mala configuración o algo dentro de mi Linux lo bloqueó desde el puerto 465. (O tal vez SSL sea incorrecto)

Lo intenté tcpdump -i any port smtpsy lo hice telnet mail.xxxx.com smtpsen mi propia PC.

El servidor me muestra que el puerto 465 recibió el paquete. Sin embargo, el postfix no responde nada.

Entonces miré el registro de correo en /var/log/maillogy muestra que postfix no reconoció ni respondió a mi conexión de telnet en absoluto. Aquí está el registro:

Aug 28 13:42:37 xxxx postfix/postfix-script[1692]: starting the Postfix mail system
Aug 28 13:42:37 xxxx postfix/master[1694]: daemon started -- version 2.10.1, configuration /etc/postfix

Simplemente nada. Entonces, supongo que hay algunas configuraciones o firewalls en Linux que están bloqueando que los servicios "realmente" escuchen el puerto smtp. ¿Alguien sabe esto?

Luego intenté hacer telnet desde localhost en el puerto 465, pero parece que incluso la conexión interna en el puerto 465 tampoco funciona.

En mi servidor, hice:

[root@myhost ~]# telnet localhost smtps
Trying ::1...
Connected to localhost.
Escape character is '^]'.
helo xxxx
Connection closed by foreign host.

Simplemente se cerró después de 'helo'. Luego fui /var/log/maillognuevamente y se muestra lo siguiente:

Aug 28 13:45:57 xxxx postfix/smtps/smtpd[1974]: connect from unknown[::1]
Aug 28 13:46:01 xxxx postfix/smtps/smtpd[1974]: SSL_accept error from unknown[::1]: -1
Aug 28 13:46:01 xxxx postfix/smtps/smtpd[1974]: warning: TLS library problem: 1974:error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol:s23_srvr.c:640:
Aug 28 13:46:01 xxxx postfix/smtps/smtpd[1974]: lost connection after CONNECT from unknown[::1]
Aug 28 13:46:01 xxxx postfix/smtps/smtpd[1974]: disconnect from unknown[::1]

Aquí están mis archivos de configuración.

sudo postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = localhost
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = localhost, localhost.$mydomain
mydomain = xxxx.com
myhostname = xxxx.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
recipient_delimiter = +
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_tls_security_level = may
smtpd_banner = $myhostname ESMTP $mail_name (CentOS)
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/letsencrypt/live/xxxx.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/xxxx.com/privkey.pem
smtpd_tls_security_level = may
smtpd_use_tls = yes
unknown_local_recipient_reject_code = 550
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp

parte de/etc/postfix/main.cf

mail_owner = postfix
myhostname = xxxx.com
mydomain = xxxx.com

# TLS parameters
smtpd_tls_cert_file=/etc/letsencrypt/live/xxxx,com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/xxxx.com/privkey.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous

inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost
# Enable IPv4, and IPv6 if supported
inet_protocols = all

mydestination = localhost, localhost.$mydomain

virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
recipient_delimiter = +
virtual_transport = lmtp:unix:private/dovecot-lmtp

Parte de/etc/postfix/master.cf

smtp      inet  n       -       n       -       1       postscreen
#smtpd     pass  -       -       n       -       -       smtpd
#dnsblog   unix  -       -       n       -       0       dnsblog
#tlsproxy  unix  -       -       n       -       0       tlsproxy
submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_reject_unlisted_recipient=no
  #-o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
465     inet  n       -       -       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  #-o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

Respuesta1

Gracias a los comentarios de @HBruijn anteriores, resolví este problema. El problema es que configuré dos inet_interfaces.

Una cosa valiosa es que parece que en el archivo de configuración de postfix actual, inet_interfaces = localhostes un valor predeterminado y no está comentado como predeterminado. Sin embargo, inet_interfaces = allse comenta. Por lo tanto, debe comentar inet_interfaces = localhostcuando descomente el archivo inet_interfaces = all.

El archivo es: /etc/postfix/master.cf.

información relacionada