Forum Linux.général Relai postfix

Posté par  . Licence CC By‑SA.
Étiquettes :
0
25
fév.
2014

Bonjour,

Description de la situation

Sur mon serveur de messagerie (autohébergement avec un raspberry), j'ai le couple postfix + dovecot.

Je m'en sers pour envoyer mes courriels à partir de mon ordinateur : pas de problème.

Description du problème

En utilisant sur mon téléphone portable le client de messagerie k9-mail, je ne peux envoyer aucun courriel sur des adresses extérieures à mon nom de domaine. Les traces de postfix sont claires :

postfix/smtpd[30266]: NOQUEUE: reject: RCPT from unknown[xx.xx.xx.xx]: 454 4.7.1 <xxxxx@free.fr>: Relay access denied; from=<utilisateur@mondomaine.fr> to=<xxxx@free.fr> proto=ESMTP helo=<[xx.xx.xx.xx]>

Question

Quelle partie de la configuration dois-je modifier (tout en ne souhaitant pas être un relai trop ouvert) ?

Merci

  • # Sauf erreur de ma part

    Posté par  . Évalué à 0. Dernière modification le 25 février 2014 à 21:52.

    En mettant ce qu'il faut dans la variable mynetworks par exemple mynetworks = 127.0.0.0/8 ip_du_telephone

    Please do not feed the trolls

    • [^] # Re: Sauf erreur de ma part

      Posté par  . Évalué à 3.

      ajout : Comment est connecté le téléphone ? Ce truc ne marche bien que si le téléphone a sa propre adresse ou est sur le réseau local. Si c'est sur le net il faut mettre en place une authentification.

      (personnellement j'ai réglé le problème avec un tunnel ssh)

      Please do not feed the trolls

  • # Explication

    Posté par  (site web personnel) . Évalué à 5.

    Il est normal que le serveur mail ne renvoie pas ton message : il ne peut pas faire la différence entre un mail valide écrit par tes soins et un spam envoyé par un bot sur pc vérolé. Quand tu es sur le réseau local, tout va bien on considère que tu es un utilisateur légitime.

    Une autre solution que de rajouter des IPs à la chaîne est d'autoriser les utilisateurs authentifiés. À ce moment là, dès que tu es sur le réseau extérieur, tu dois montrer patte blanche pour envoyer un mail.

    Tu peux ajouter la ligne permit_sasl_authenticated dans la liste des autorisations postfix :

    smtpd_recipient_restrictions = 
            permit_mynetworks, 
            permit_sasl_authenticated,
            reject_unauth_destination, 
            check_policy_service 
            inet:127.0.0.1:10023

    Ensuite pour l'authentification, je ne vais pas répéter le wiki ki va bien, je te laisse suivre la documentation (ou la compléter au besoin).

    Une fois que tu auras configuré tout ça, je t'encourage très fortement à regarder du côté de fail2ban pour sécuriser ton serveur et bloquer les tentatives d'intrusions (mais c'est une autre histoire)…

    • [^] # Re: Explication

      Posté par  . Évalué à 3.

      Quel est l'intérêt d'avoir permit_mynetworks et inet:127.0.0.1:10023 ? À moins de ne pas avoir localhost dans my_networks.

      « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

  • # Authentification SMTP

    Posté par  . Évalué à 2.

    Afin que ton postfix accepte de relayer tes mails, il faut que ton client (smartphone) s'identifie auprès du serveur SMTP (il me semble que c'est la configuration par défaut sous Debian).
    Comme tu as un serveur IMAP dovecot, tu peux l'utiliser pour cela : cherche un peu et tu trouveras pleins de tutos t'expliquant le paramétrage. Au final, dans le fichier main.cf tu devrais avoir quelque chose dans ce genre :

    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = yes
    smtpd_recipient_restrictions = permit_mynetworks   permit_sasl_authenticated   reject_unauth_destination
    

    Comme ça postfix va utiliser une socket publiée par dovecot (/var/spool/postfix/private/auth) pour vérifier le mot de passe. Dans la conf de dovecot, il faudra déclarer cette socket :

    unix_listener /var/spool/postfix/private/auth {
        mode = 0666
      }
    

    Et bien évidemment, comme tu va devoir envoyer un mot de passe, pense à faire du TSL pour que ce mot de passe ne transite pas en clair (mais tu dois déjà avoir un certificat pour chiffrer la connexion IMAP)

  • # Merci de vos réponses

    Posté par  . Évalué à 2.

    Bonsoir à tous,

    Merci pour vos commentaires.

    L'adresse IP du téléphone n'étant pas prévisible, la solution que j'ai retenue est celle basée sur une authentification smtp.

    Grâce au wiki j'ai réussi à finaliser ma configuration.

    Bonne soirée à vous,

    Librement vôtre.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.