web-dev-qa-db-fra.com

Comment corriger Postfix '' Accès relais refusé ''?

Ce matin, afin de corriger un problème avec une incompatibilité de nom dans le certificat de sécurité, j'ai suivi les étapes recommandées de Comment réparer SSL du serveur de messagerie?, mais maintenant, lorsque j'essaie d'envoyer un e-mail à partir d'un client (dans ce cas, le client est Windows Mail), je reçois l'erreur suivante.

L'adresse e-mail rejetée était "[email protected]". Sujet 'Ceci est un test. ', Compte:' mail.domain.com ', Serveur:' mail.domain.com ', Protocole: SMTP, Réponse du serveur:' 554 5.7.1: Accès relais refusé ', Port: 25, Sécurisé (SSL): Non , Erreur serveur: 554, Numéro d'erreur: 0x800CCC79

Éditer: Je peux toujours récupérer les e-mails de ce compte et j'envoie des e-mails à d'autres comptes du même domaine. Je ne peux tout simplement pas envoyer d'e-mails à des destinataires en dehors de notre domaine.

J'ai essayé de désactiver complètement TLS mais pas de dés, j'obtiens toujours la même erreur.

Lorsque je vérifie le fichier mail.log, Je vois ce qui suit.

Jul 18 08:24:41 company imapd: LOGIN, [email protected], ip=[::ffff:111.111.11.11], protocol=IMAP
Jul 18 08:24:42 company imapd: DISCONNECTED, [email protected], ip=[::ffff:111.111.11.11], headers=0, body=0, rcvd=83, sent=409, time=1
Jul 18 08:25:19 company postfix/smtpd[29282]: connect from company.university.edu[111.111.11.11]
Jul 18 08:25:19 company postfix/smtpd[29282]: NOQUEUE: reject: RCPT from company.university.edu[111.111.11.11]: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<UserPC>
Jul 18 08:25:19 company postfix/smtpd[29282]: disconnect from company.university.edu[111.111.11.11]
Jul 18 08:25:22 company imapd: DISCONNECTED, [email protected], ip=[::ffff:111.111.11.11], headers=13, body=142579, rcvd=3289, sent=215892, time=79

Fichier main.cf ressemble à ça:

#
# Postfix MTA Manager Main Configuration File;
#
# Please do NOT edit this file manually;
#

#
# Postfix directory settings; These are critical for normal Postfix MTA functionallity;
#

command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix

#
# Some common configuration parameters;
#

inet_interfaces = all
mynetworks = 127.0.0.0/8
mynetworks_style = Host

myhostname = mail.domain.com
mydomain = domain.com
myorigin = $mydomain

smtpd_banner = $myhostname ESMTP 2.4.7.1 (Debian/GNU)
setgid_group = postdrop

#
# Receiving messages parameters;
#

mydestination = localhost, company 
append_dot_mydomain = no
append_at_myorigin = yes
transport_maps = mysql:/etc/postfix/transport.cf

#
# Delivering local messages parameters;
#

mail_spool_directory = /var/spool/mail
mailbox_size_limit = 0
mailbox_command = procmail -a "$EXTENSION"

biff = no

alias_database = hash:/etc/aliases

local_recipient_maps =

#
# Delivering virtual messages parameters;
#
virtual_mailbox_maps=mysql:/etc/postfix/mysql_virt.cf
virtual_uid_maps=mysql:/etc/postfix/uids.cf
virtual_gid_maps=mysql:/etc/postfix/gids.cf
virtual_mailbox_base=/usr/local/virtual
virtual_maps=mysql:/etc/postfix/virtual.cf
virtual_mailbox_domains=mysql:/etc/postfix/virtual_domains.cf


#
# SASL paramters;
#
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s

smtp_tls_CAfile = /etc/postfix/ssl/smptd.pem
smtp_tls_cert_file = /etc/postfix/ssl/smptd.crt
smtp_tls_key_file = /etc/postfix/ssl/smptd.key

smtpd_tls_CAfile = /etc/postfix/ssl/smptd.pem
smtpd_tls_cert_file = /etc/postfix/ssl/smptd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smptd.key

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

smtpd_sasl_local_domain =

broken_sasl_auth_clients = yes

smtpd_sender_restrictions =
        permit_sasl_authenticated
        permit_mynetworks

smtpd_recipient_restrictions =
        permit_sasl_authenticated
        check_recipient_access hash:/etc/postfix/filtered_domains
        permit_mynetworks
        reject_unauth_destination

Par ailleurs, mon employeur souhaite pouvoir envoyer des e-mails de clients (Thunderbird et Outlook) à la fois depuis notre réseau local et hors de celui-ci.

59
Noah Goodrich

TLS active simplement le cryptage sur la session smtp et n'affecte pas directement si Postfix sera autorisé ou non à relayer un message.

Le message de relais refusé se produit car les règles smtpd_recipient_restrictions ne correspondent pas. L'une de ces conditions doit être remplie pour permettre au message de passer:

smtpd_recipient_restrictions =
    permit_sasl_authenticated
    check_recipient_access hash:/etc/postfix/filtered_domains
    permit_mynetworks
    reject_unauth_destination

Pour expliquer ces règles:

permit_sasl_authenticated

autorise les expéditeurs authentifiés via SASL. Cela sera nécessaire pour authentifier les utilisateurs en dehors de votre réseau qui sont normalement bloqués.

check_recipient_access

Ainsi, postfix recherchera dans/etc/postfix/filters_domains des règles basées sur l'adresse du destinataire. (À en juger par le nom du fichier sur le nom du fichier, il ne fait probablement que bloquer des domaines spécifiques ... Vérifiez si gmail.com y figure?)

permit_mynetworks

Cela permettra aux hôtes par adresse IP qui correspondent aux plages IP spécifiées dans $ mynetworks. Dans le fichier main.cf que vous avez publié, $ mynetworks a été défini sur 127.0.0.1, il ne relaiera donc que les e-mails générés par le serveur lui-même.

En fonction de cette configuration, votre client de messagerie devra utiliser l'authentification SMTP avant d'être autorisé à relayer des messages. Je ne sais pas quelle base de données SASL utilise. Cela est spécifié dans /usr/lib/sasl2/smtpd.conf Vraisemblablement, il utilise également la même base de données que vos boîtes aux lettres virtuelles, vous devriez donc être en mesure d'activer l'authentification SMTP dans votre client de messagerie et être tout défini.

60
Brandon
smtpd_use_tls = no

Vous avez désactivé TLS, vous devez donc maintenant autoriser votre réseau local en l'ajoutant à mynetworks. Par exemple,

mynetworks = 192.168.1.0/24 127.0.0.0/8

Cela corrigera l'envoi depuis votre réseau local uniquement. Pour envoyer des e-mails depuis l'extérieur de votre réseau local, vous devrez faire fonctionner l'authentification TLS.

15
pgs

Je pense que vous manquez domain.com dans ma destination, car la valeur par défaut relay_domains=$mydestination, vous pouvez donc ajouter votre configuration à la ligne:

mydestinations = $mydomain, $myhostname, localhost, localhost.localdomain

ou:

relay_domains = $mydomain

N'oubliez pas de redémarrer le serveur postfix (service postfix restart) à chaque fois que vous modifiez le fichier conf de postfix.

6
Dzung Nguyen

J'ai eu le même problème dans Outlook (avec le pigeonnier et le backend postfix) et j'ai passé deux jours à chercher une solution et à peaufiner mes fichiers de configuration. Tout ce que je devais faire était de vérifier "Le serveur nécessite une authentification" dans l'onglet Sortant dans les paramètres de messagerie dans Outlook et mes messages sont maintenant envoyés à gmail. Voir les instructions détaillées sur la façon de trouver le paramètre ici http://support.bluetie.com/node/44 .

2
Dee

Ce problème me dérangeait depuis un moment. J'essayais de me connecter de server1.domain.com à server2.domain.com.

Voici comment j'ai corrigé cela -

#/etc/postfix/main.cf
mydomain = server1.domain.com
myhostname = $mydomain
virtual_alias_maps = hash:/etc/postfix/virtual
alias_database = hash:/etc/postfix/virtual
myorigin = /etc/mailname
mydestination = localhost.localdomain localhost $mydomain
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Vous devez également vous assurer que vous avez correctement défini/etc/hosts et/etc/hostname et assurez-vous que vous exécutez les éléments suivants après les modifications de mise en réseau -

Sudo service networking restart

et ce qui suit après les changements de configuration de postfix

Sudo service postfix reload
2
A23

Pour moi: j'ai dû ajouter localhost à mynetworks indépendamment du fait 127.0.0.0/8 était déjà là. Alors maintenant, ça ressemble:

mynetworks = 1.1.1.1/32, 127.0.0.0/8, localhost

0
Putnik