73 votes

Comment corriger le message 'Relay Access Denied' de Postfix ?

Ce matin, afin de corriger un problème de non-concordance des noms dans le certificat de sécurité, j'ai suivi les étapes recommandées dans le document suivant Comment réparer le SSL du serveur de messagerie ? Mais maintenant, lorsque je tente d'envoyer un courriel à 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@gmail.com. Sujet 'Ceci est un test. ', Account : 'mail.domain.com', Server : 'mail.domain.com', Protocole : SMTP, Réponse du serveur : '554 5.7.1 : Accès au relais denied', Port : 25, Secure(SSL) : Non, Erreur de serveur : 554, Numéro d'erreur : 0x800CCC79

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

J'ai essayé de désactiver complètement TLS mais rien à faire, j'ai 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, user=user_name@domain.com, ip=[::ffff:111.111.11.11], protocol=IMAP
Jul 18 08:24:42 company imapd: DISCONNECTED, user=user_name@domain.com, 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@gmail.com>: Relay access denied; from=<user_name@domain.com> to=<email@gmail.com> 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, user=user_name@domain.com, 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 courriels à partir de clients (Thunderbird et Outlook) à l'intérieur et à l'extérieur de notre réseau local.

80voto

Scott Bussinger Points 802

TLS permet simplement le cryptage de la session smtp et n'affecte pas directement le fait que Postfix soit autorisé ou non à relayer un message.

Le message relaying denied survient parce que les règles smtpd_recipient_restrictions n'ont pas été respectées. 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 extérieurs à votre réseau qui sont normalement bloqués.

check_recipient_access

Ceci fera que postfix cherchera dans /etc/postfix/filtered_domains des règles basées sur l'adresse du destinataire. (A en juger par le nom du fichier, il ne fait probablement que bloquer des domaines spécifiques...) Vérifiez si gmail.com est listé là-dedans...)

permit_mynetworks

Ceci autorisera les hôtes par adresse IP qui correspondent aux plages IP spécifiées dans $mynetworks. Dans le fichier main.cf que vous avez posté, $mynetworks a été défini à 127.0.0.1, de sorte qu'il ne relaiera que les e-mails générés par le serveur lui-même.

Sur la base de cette configuration, votre client de messagerie devra utiliser l'authentification SMTP avant d'être autorisé à relayer les messages. Je ne suis pas sûr de la base de données utilisée par SASL. Elle est spécifiée dans le fichier /usr/lib/sasl2/smtpd.conf. Il est probable qu'elle utilise également la même base de données que vos boîtes aux lettres virtuelles, de sorte que vous devriez pouvoir activer l'authentification SMTP dans votre client de messagerie et être prêt.

19voto

pgs Points 3441
smtpd_use_tls = no

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

mynetworks = 192.168.1.0/24 127.0.0.0/8

Cela fixera 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.

9voto

Je pense qu'il vous manque domain.com dans mydestination, car le défaut relay_domains=$mydestination afin que vous puissiez 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 de conf de postfix.

3voto

A23 Points 121

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

Voici comment je l'ai réparé -

#/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 configuré /etc/hosts et /etc/hostname et vous assurer que vous exécutez ce qui suit après les changements de réseaux -

sudo service networking restart

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

sudo service postfix reload

2voto

Dee Points 121

J'ai eu le même problème dans Outlook (avec dovecote et postfix backend) et j'ai passé deux jours à chercher une solution et à modifier mes fichiers de configuration. Tout ce que j'avais à faire était de cocher "Server requires authentication" dans l'onglet Outgoing des paramètres de messagerie d'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/440 .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X