web-dev-qa-db-fra.com

Ubuntu 16.04 / Postfix ne peut pas recevoir d'e-mails

Notre VPS était déjà configuré, mais mon collègue a accidentellement installé sendmail. Postfix est devenu fou et de nombreuses erreurs sont apparues, postfix a refusé de courir. J'ai désinstallé sendmail, reconfiguré/réinstallé postfix, mais maintenant notre serveur peut envoyer des mails, mais pas en recevoir.

Utiliser roundcube en tant que client. Les courriers ne sont pas renvoyés à l'expéditeur pour une raison quelconque, vous ne savez pas quoi faire. On dirait que les mails arrivent mais ne sont affichés nulle part, je ne peux pas non plus les trouver dans/var/mail nulle part. Où se trouvent les journaux?

Merci pour tout conseil.

Voici le fichier main.cf:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/server.crt
smtpd_tls_key_file = /etc/ssl/private/server.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.mpt.sk
virtual_alias_maps = hash:/etc/postfix/virtual
alias_database = hash:/etc/aliases
myorigin = localhost
mydestination = $myhostname, localhost.$mydomain, mpt.sk, mail.mpt.sk, localhost.mpt.sk, localhost
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
home_mailbox = Maildir/
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes

mail.log lorsque j'essaie d'envoyer un mail:

Jan 17 10:32:03 mail postfix/smtpd[5798]: connect from unknown[103.207.38.154]
Jan 17 10:32:03 mail dovecot: auth: Warning: auth client 0 disconnected with 1 pending requests: Connection reset by peer
Jan 17 10:32:06 mail dovecot: imap-login: Login: user=<mpt>, method=PLAIN, rip=::1, lip=::1, mpid=5810, secured, session=<jf5OhfViwQAAAAAAAAAAAAAAAAAAAAAB>
Jan 17 10:32:06 mail dovecot: imap(mpt): Disconnected: Logged out in=376 out=3001
Jan 17 10:32:12 mail postfix/smtpd[5798]: warning: unknown[103.207.38.154]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
Jan 17 10:32:12 mail postfix/smtpd[5798]: lost connection after AUTH from unknown[103.207.38.154]
Jan 17 10:32:12 mail postfix/smtpd[5798]: disconnect from unknown[103.207.38.154]
Jan 17 10:32:12 mail postfix/smtpd[5792]: connect from unknown[103.207.38.154]

mail.err a un ancien message:

Jan 17 09:47:34 mail dovecot: imap-login: Error: read(anvil) failed: EOF

mail.warn n'est présent nulle part.

Sortie de ss -tnl

root@mail:~# ss -tnl
State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port
LISTEN     0      100                       *:110                      *:*
LISTEN     0      100                       *:143                      *:*
LISTEN     0      100                       *:465                      *:*
LISTEN     0      32                        *:21                       *:*
LISTEN     0      128                       *:22                       *:*
LISTEN     0      100                       *:25                       *:*
LISTEN     0      100                       *:993                      *:*
LISTEN     0      100                       *:995                      *:*
LISTEN     0      50                127.0.0.1:3306                     *:*
LISTEN     0      100                       *:587                      *:*
LISTEN     0      100                      :::110                     :::*
LISTEN     0      100                      :::143                     :::*
LISTEN     0      128                      :::80                      :::*
LISTEN     0      100                      :::465                     :::*
LISTEN     0      128                      :::22                      :::*
LISTEN     0      100                      :::25                      :::*
LISTEN     0      128                      :::443                     :::*
LISTEN     0      100                      :::993                     :::*
LISTEN     0      100                      :::995                     :::*
LISTEN     0      100                      :::587                     :::*
2
LubWn

Pas même sûr de ce que fait cette ligne, mais commenter mailbox_command dans le fichier main.cf a fait l'affaire.

Donc fondamentalement remplacer:

mailbox_command = procmail -a "$EXTENSION"

avec:

# mailbox_command = procmail -a "$EXTENSION"
mail_command =

Notez que cela n’a pas fonctionné avant d’ajouter la deuxième ligne avec une variable vide.

Pourquoi ça n'a pas marché? Personne ne le sait, ce problème est résolu pour l'instant mais m'a pris énormément de temps.

1
LubWn

Je pense que vous devriez remplacer cette ligne:

smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

pour que:

smtpd_recipient_restrictions =
        permit_mynetworks
        reject_unauth_destination
        reject_non_fqdn_recipient
        reject_unknown_recipient_domain

Dans votre cas, permit_sasl_authenticated a vérifié votre paramètre AUTH pour un destinataire, mais devrait le faire pour un expéditeur (vous l'avez déjà fait dans smtpd_relay_restrictions).

Vous pouvez également ajouter cela si vous souhaitez filtrer les expéditeurs incorrects: smtpd_sender_restrictions = permit_mynetworksject_non_fqdn_senderject_unknown_sender_domain

0
Evgeniy Yanuk