Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/02/2018, à 22:22

Nathaly01

Postfix-impossible d'envoyer des mails hors réseau

Bonjour, je viens vous demander votre aide car là, je bug complet !!
Je désire installer un serveur de messagerie Postfix. Cela fonctionne très bien en interne à mon réseau mais je ne peux pas envoyer un mail à une adresse externe ni d’ailleurs en recevoir.
ci joint ma config /etc/postfix/main.cf,  et comme je pense que c'est un problème de DNS, mon fichier db.mondomaine.fr et une copie de l'enregistrement DNS chez 1&1.
Franchement, je comprend rien et je ne sais absolument pas ou est l'erreur, merci de votre aide ...

main.cf

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/dovecot/dovecot.pem
smtpd_tls_key_file = /etc/dovecot/private/dovecot.pem
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.

myhostname = monserveur.mondomaine.fr
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.mondomaine.fr, localhost
relayhost = $mydomain
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
relay_domains = $mydestination
home_mailbox = Maildir/
mydomain = mondomaine.fr
mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/dovecot.conf -m "${EXTENSION}"


smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-auth
smtpd_sasl_authenticated_header = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtp_use_tls = yes
smtpd_tls_received_header = yes
#smtpd_tls_mandatory_protocols = SSLv3, TLSv1
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_auth_only = yes
tls_random_source = dev:/dev/urandom
compatibility_level = 2
# Postfix/TLS does not use the OpenSSL default of 300s, but a longer time of 3600sec 
# (=1 hour). RFC 2246 recommends a maximum of 24 hours. 
smtpd_tls_session_cache_timeout = 3600s

# We will let the client end use STARTTLS if they want, i.e they _may_ use it.
smtpd_tls_security_level = may

virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-virtual-alias-maps-self.cf
content_filter = amavisfeed:[127.0.0.1]:10024
receive_override_options = no_address_mappings

smtpd_delay_reject = yes
disable_vrfy_command = yes
smtpd_helo_required = yes

smtpd_client_restrictions =
   permit_mynetworks
   reject_rbl_client dnsbl.sorbs.net
   reject_unknown_client_hostname
   check_client_access    hash:/etc/postfix/client_access

smtpd_helo_restrictions =
   reject_unknown_helo_hostname
   reject_non_fqdn_helo_hostname
   reject_invalid_helo_hostname
   check_helo_access      hash:/etc/postfix/helo_access

smtpd_sender_restrictions =
   permit_mynetworks
   reject_unknown_sender_domain
   reject_non_fqdn_sender
   check_sender_access    hash:/etc/postfix/sender_access

smtpd_relay_restrictions =
   permit_mynetworks
   permit_sasl_authenticated
   reject_unauth_destination

smtpd_recipient_restrictions =
   reject_unauth_pipelining
   reject_non_fqdn_recipient
   reject_unknown_recipient_domain
   check_recipient_access hash:/etc/postfix/recipient_access
   check_policy_service inet:127.0.0.1:10023

mon db.mondomaine.fr

$ORIGIN .
$TTL 259200     ; 3 days
mondomaine.fr                 IN SOA  monserveur.mondomaine.fr. nathaly.mondomaine.fr. (
                                102        ; serial
                                28800      ; refresh (8 hours)
                                7200       ; retry (2 hours)
                                2419200    ; expire (4 weeks)
                                86400      ; minimum (1 day)
                                )
                        NS      monserveur.mondomaine.fr.
                        MX      10 monserveur.mondomaine.fr.
$ORIGIN mondomaine.fr.
$TTL 259200     ; 3 days
mondomaine.fr                 CNAME   monserveur
$ORIGIN mondomaine.fr.mondomaine.fr.                              # Lorsque j'ai créé ce fichier, il n'y avait pas cette ligne. En plus, elle me semble fausse et inutile sauf erreur de ma part.
sousdomaine                 CNAME   monserveur.mondomaine.fr.
$ORIGIN mondomaine.fr.
monserveur                  A       192.168.0.100
$TTL 1800       ; 30 minutes
unordinateur                 A       192.168.0.57
                        TXT     "00a7e53e34e1a24975b0a0d12d88477379"
$TTL 259200     ; 3 days
localhost               A       127.0.0.1
mail                    CNAME   monserveur
pop                     CNAME   monserveur
www                     CNAME  monserveur

Mon enregistrement DNS chez 1&1
enregistrement DNS 1&1

Naturellement, si il vous faut autre chose, pas de problème, demander moi !

PS: Sur un "Undelivered Mail Returned to Sender" de l'adresse mail moi@mondomaine.fr

Action: failed
Status: 5.4.6
Diagnostic-Code: X-Postfix; mail for mondomaine.fr loops back to myself

Sur un "Undelivered Mail Returned to Sender" de mon adresse mail moi@FAI.fr

Action: failed
Status: 5.4.4
Diagnostic-Code: X-SMTP-Server; Host or domain name not found. Name service
    error for name=monserveur.mondomaine.fr type=A: Host not found

Dernière modification par Nathaly01 (Le 07/02/2018, à 00:11)

Hors ligne

#2 Le 06/02/2018, à 22:32

Nathaly01

Re : Postfix-impossible d'envoyer des mails hors réseau

J'avais oublié de vous dire que mon serveur est chez moi et que ma box numéricable est en mode bridge.
J'ai également rajouté ces règles à Iptables :

# Mail SMTP:25
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT

# Mail POP3S:995
iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT

Hors ligne

#3 Le 07/02/2018, à 08:24

bruno

Re : Postfix-impossible d'envoyer des mails hors réseau

Bonjour,

Il faut regarder le contenu des logs quand tu essaies d'envoyer un courriel (/var/log/mail.log et mail.err). Tu t'es lancée dans une configuration trop complexe : postfix+dovecot+mysql …

Pour ceci :

Diagnostic-Code: X-Postfix; mail for mondomaine.fr loops back to myself

cela signifie qu'il y a une erreur dans les DNS (boucle) ou que le serveur de courriel tente de se renvoyer à lui même le courriel.

Pour les DNS, je ne comprends pas pourquoi tu as un résolveur en local. Cela risque de provoquer des erreurs.
Pour la configuration de postfix interroge-toi sur cette directive :

relayhost = $mydomain

Dernière modification par bruno (Le 07/02/2018, à 08:30)

Hors ligne

#4 Le 07/02/2018, à 11:35

Nathaly01

Re : Postfix-impossible d'envoyer des mails hors réseau

Bonjour,
Merci beaucoup pour cette réponse. En effet, la valeur de la directive "relayhost" était stupide et il m'a suffit de supprimer la valeur et de redémarrer postfix pour que je puisse enfin envoyer un mail vers mon adresse chez mon FAI.
Par contre, à ma grande surprise, je découvre via un autre test que sur monNom@live.fr, j'ai été rejeté avec cette erreur (Il me prend pour un spammeur):

Action: failed
Status: 5.7.1
Remote-MTA: dns; eur.olc.protection.outlook.com
Diagnostic-Code: smtp; 550 5.7.1 Service unavailable, Client host [81.xx.xx.xx]
    blocked using Spamhaus. To request removal from this list see
    http://www.spamhaus.org/lookup.lasso (AS3130).
    [VE1EUR02FT030.eop-EUR02.prod.protection.outlook.com]

Par contre, je ne peux toujours pas recevoir des mail depuis l'extérieur (test effectuer via mon adresse chez mon FAI) avec toujours le même code d'erreur et là forcement, il n'y a rien dans mes fichiers de log.

Il y a deux autres erreurs dans le fichier de log.
La première avec clamAV donc il faut que je revoie la config pour : (mais il me semble que ce n'est pas grave et que sa fonctionne qu'en même d'après les tests)

Feb  7 10:42:05 monserveur amavis[15084]: (15084-02) run_av Using (ClamAV-clamd): (code) CONTSCAN /var/lib/amavis/tmp/amavis-20180207T102305-15084-VQaNX0Mi/parts\n
Feb  7 10:42:05 monserveur amavis[15084]: (15084-02) ClamAV-clamd: Connecting to socket  /var/run/clamav/clamd.ctl
Feb  7 10:42:05 monserveur amavis[15084]: (15084-02) new socket by IO::Socket::UNIX to /var/run/clamav/clamd.ctl, timeout set to 10
Feb  7 10:42:05 monserveur amavis[15084]: (15084-02) ClamAV-clamd: Sending CONTSCAN /var/lib/amavis/tmp/amavis-20180207T102305-15084-VQaNX0Mi/parts\n to socket /var/run/clamav/clamd.ctl
Feb  7 10:42:05 monserveur amavis[15084]: (15084-02) rw_loop read: got eof

Feb  7 10:42:05 monserveur amavis[15084]: (15084-02) (!)run_av (ClamAV-clamd) FAILED - unexpected , output="/var/lib/amavis/tmp/amavis-20180207T102305-15084-VQaNX0Mi/parts: lstat() failed: Permission denied. ERROR\n"
Feb  7 10:42:05 monserveur amavis[15084]: (15084-02) (!)ClamAV-clamd av-scanner FAILED: CODE(0x40b36b8) unexpected , output="/var/lib/amavis/tmp/amavis-20180207T102305-15084-VQaNX0Mi/parts: lstat() failed: Permission denied. ERROR\n" at (eval 103) line 905.
Feb  7 10:42:05 monserveur amavis[15084]: (15084-02) (!)WARN: all primary virus scanners failed, considering backups

Feb  7 10:42:05 monserveur amavis[15084]: (15084-02) run_av Using (ClamAV-clamscan): /usr/bin/clamscan --stdout --no-summary -r --tempdir=/var/lib/amavis/tmp /var/lib/amavis/tmp/amavis-20180207T102305-15084-VQaNX0Mi/parts
Feb  7 10:42:21 monserveur amavis[15084]: (15084-02) run_av: /usr/bin/clamscan exit 0, /var/lib/amavis/tmp/amavis-20180207T102305-15084-VQaNX0Mi/parts/p001: OK
Feb  7 10:42:21 monserveur amavis[15084]: (15084-02) run_av (ClamAV-clamscan): CLEAN
Feb  7 10:42:21 monserveur amavis[15084]: (15084-02) run_av (ClamAV-clamscan) result: clean

et la seconde que je vois pour la première fois et dont je n'ai aucune idée à quoi cela fait référence :

Feb  7 10:42:21 monserveur amavis[15084]: (15084-02) smtp cmd> NOOP
Feb  7 10:42:21 monserveur amavis[15084]: (15084-02) smtp resp to NOOP (idle 1139.8 s): 421 4.4.2 monserveur.mondomaine.fr Error: timeout exceeded

Ce serveur sert de passerelle pour tous les appareils connectés. Le DNS fait aussi office de cache et il résout toutes les adresses de mon réseau. Pratique quand un copain vient avec son ordi et qu'il dois avoir accès à un de mes partages.

Dernière modification par Nathaly01 (Le 07/02/2018, à 12:38)

Hors ligne

#5 Le 07/02/2018, à 12:58

bruno

Re : Postfix-impossible d'envoyer des mails hors réseau

Le blocage par live/outlook/etc. n'a rien de surprenant. Il faut commencer par essayer de te faire dé-lister par Spamhaus et éventuellement d'autres listes noires. À tester sur http://mxtoolbox.com/ par exemple.

Je rappelle que pour avoir un serveur de courriel pleinement fonctionnel hébergé chez soi il faut :
- une adresse IP fixe ;
- des enregistrement DNS A, MX et SPF au minimum et si possible DKIM ;
- avoir un reverse DNS qui fait correspondre l'adresse IP du serveur (celle fournie par ton FAI) avec le nom annoncé par le serveur (généralement $myhostname sur Postfix) ;

Pour tes logs, tu devrais tester en désactivant amavis.
- ne pas avoir son IP enregistré chez les fournisseurs de liste noires, et si c'est le cas avoir la capacité de se faire dé-lister (ce qui exige la plupart du temps que les points précédents soit vérifiés : IP fixe, A, MX et PTR)

Hors ligne

#6 Le 07/02/2018, à 14:41

Nathaly01

Re : Postfix-impossible d'envoyer des mails hors réseau

A priori, d'après ce que j'ai trouvé dans un forum amavis, la second erreur est un effet secondaire tout à fait normal du au fonctionnalité de mise en cache de session smtp.

Il faut que j'installe postfix-policyd-spf-python d'après une autre source. Sinon, j'ai bien une adresse IP public fixe et je suppose qu'il y a bien des reverses DNS puisque mes sites sont accessible via le nom de domaine comme via l'IP.
Je pense aussi que j'installerais DKim mais je ne me suis pas encore penché sur le problème, c'est le premier serveur de mail que je monte, je découvre et prends des notes pour une futur re-installation bien propre.
Ce n'est que lorsque j'aurai bien tout fini et que tout fonctionnera correctement pour recevoir des mails de compte Free, SFR et autre FAI que je verrai à régler le problème de Spamhaus.

Existe t-il des commandes pour voir avec précision comment est mon enregistrement DNS chez 1&1 ? Et pour en tester la conformité ?

Merci de ton aide

Hors ligne

#7 Le 07/02/2018, à 15:33

bruno

Re : Postfix-impossible d'envoyer des mails hors réseau

Le reverse DNS ne peut être proposé que par le « propriétaire » de l'adresse IP publique, c'est à dire ton FAI (à ma connaissance seul Free le permet, et encore pas pour tout le monde…). Cet enregistrement est vérifié par de nombreux serveurs mail et c'est parfois un critère de blocage ou de classement en spam.

Pour vérifier différentes choses : http://mxtoolbox.com/ (enregistrement DNS, listes noires etc.)

Pour vérifier tes enregistrement DNS directs :

dig any monserveur.mondomaine.fr

Pour vérifier l'enregistrement inverse (PTR), 82.*.*.* à remplacer par ton IP publique :

dig -x 82.*.*.*

Hors ligne

#8 Le 07/02/2018, à 15:43

Nathaly01

Re : Postfix-impossible d'envoyer des mails hors réseau

Mon enregistrement TXT était "v = spf1 mx -all"
Si j'ai bien compris, cela veux dire que c'est un enregistrement SPF et qu'il autorise les courriels provenant de mon domaine uniquement s'ils ont été livré depuis l'un de mes serveurs MX, et interdit tous les autres.
Je l'ai donc modifié ainsi : "v = spf1 mx +all"
Je verrai bien si il y a un changement mais il faut que j'attende entre 1h et 72h pour que la mise à jour soit effective sur tout les serveurs DNS.

Hors ligne

#9 Le 07/02/2018, à 15:55

Nathaly01

Re : Postfix-impossible d'envoyer des mails hors réseau

Il y a bien un enregistrement inverse

root@monserveur# dig -x 81.xx.xx.xx

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -x 81.xx.xx.xx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6922
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xx.xx.xx.81.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
xx.xx.xx.81.in-addr.arpa. 21599	IN	PTR	81-xx-xx-xx.rev.numericable.fr.

;; AUTHORITY SECTION:
.			15443	IN	NS	a.root-servers.net.
.			15443	IN	NS	d.root-servers.net.
.			15443	IN	NS	k.root-servers.net.
.			15443	IN	NS	j.root-servers.net.
.			15443	IN	NS	c.root-servers.net.
.			15443	IN	NS	e.root-servers.net.
.			15443	IN	NS	l.root-servers.net.
.			15443	IN	NS	f.root-servers.net.
.			15443	IN	NS	b.root-servers.net.
.			15443	IN	NS	m.root-servers.net.
.			15443	IN	NS	g.root-servers.net.
.			15443	IN	NS	i.root-servers.net.
.			15443	IN	NS	h.root-servers.net.

Pour mon info, c'est quoi ces root-servers.net ?

Dernière modification par Nathaly01 (Le 07/02/2018, à 15:57)

Hors ligne

#10 Le 07/02/2018, à 16:00

bruno

Re : Postfix-impossible d'envoyer des mails hors réseau

Ce sont les serveurs racine, https://fr.wikipedia.org/wiki/Domain_Name_System
Ce type de PTR ne sert à rien dans le cas d'un serveur mail. Idéalement il faudrait que l'IP soit résolue en monserveur.mondomaine.fr mais en principe ce n'est pas bloquant (sauf pour se faire dé-lister de certaines listes noires).

Dernière modification par bruno (Le 07/02/2018, à 16:01)

Hors ligne

#11 Le 07/02/2018, à 18:13

Nathaly01

Re : Postfix-impossible d'envoyer des mails hors réseau

Merci !
En effet, le PTR est la raison de mon blacklistage chez Spamhaus. Je le suis également chez SORBS DUHL d'après mxtoolbox.com  mais sur le site de SORBS, ça me dit que je suis inconnue dans leur liste donc je ne sais pas pourquoi.

Hors ligne

#12 Le 07/02/2018, à 23:59

Nathaly01

Re : Postfix-impossible d'envoyer des mails hors réseau

Bonsoir,
J'ai apporté quelques modifications à mon enregistrement MX dans le DNS de 1&1

Pour MX1, j'ai modifié en mettant uniquement  mondomaine.fr
Pour l'enregistrement TXT, j'ai rajouté quelques "options" :     v=spf1 a ip4:81.xx.xx.xx/24 mx include:_spf.google.com +all

Et miracle, quelques minute après, je recevais des mails que je m'étais envoyé depuis une adresse moi@live.fr et j'ai confirmé le test depuis une adresse que j'ai chez Free et ...

ENJOY !!! Tout fonctionne dans les deux sens !
Il ne me reste plus qu'à installer DKIM et je pense que mon serveur de mail sera pas trop mal monté. Et mettre au propre toute les étapes d'installation et de configuration pour l'avenir

PS: J'attends de voir que tout aille bien avec DKIM pour mettre en résolu

Hors ligne

#13 Le 12/02/2018, à 11:56

LeoMajor

Re : Postfix-impossible d'envoyer des mails hors réseau

bonjour,

ton spf encourage les spammeurs (+all) ; normalement, il devrait avoir ?all ou ~all ou -all
?all : il n'y a pas de consigne donnée au MTA qui réceptionne(IGNORER). Phase de test. Equivalent en théorie à ne pas avoir d'enregistrement SPF.
~all:  softfail. La  consigne est de livrer le message au destinataire final, mais avec le flag spam.
-all: hardfail. Le message est considéré comme spam, mais n'est pas livré. Equivalent conceptuellement à un discard smtp postfix (suppression).
Les consignes, vues comme des conseils, sont plus ou moins, suivies par le MTA qui réceptionne. (exemple; un hardfail peut être déclassé en softfail)   

il faut interpréter le all, comme le dernier else d'une condition. Le spf valide pour tels cas (a ip4:81.xx.xx.xx/24 mx include:_spf.google.com), pour tout le reste (all), appliquer la consigne suivante (? ~ -)

relais:
Si tu utilises un relais, pour sous-traiter l'envoi, il faut déclarer ce dernier dans le spf. 
Si le relais dispose de nombreuses machines dans la ferme, en sélectionner un seul seulement, arbitrairement,
Si IPv4 + IPv6, laisser la résolution dns se faire chez le MTA qui réceptionne, et utiliser la fome +a:relais
Si seulement IPv4 ou IPv6;   la forme  ip4:204.200.197.197

par exemple;

host -t txt domain.tld
domain.tld descriptive text "v=spf1 mx a +a:smtp3-g21.free.fr ~all"

adapter postfix pour utiliser untel relais.

Hors ligne

#14 Le 12/02/2018, à 16:08

bruno

Re : Postfix-impossible d'envoyer des mails hors réseau

+1 pour le SPF. Je ne savais me pas que +all était possible…

Hors ligne

#15 Le 15/02/2018, à 19:00

Nathaly01

Re : Postfix-impossible d'envoyer des mails hors réseau

Je te remercie LeoMajor d'être venu apporter ces explications que je découvre que maintenant.
Entre temps, j'avais été un peu plus loin dans mes recherches et j'avais compris que +all était trop permissif et j'avais opté pour ~all à la place.
Actuellement, je cherche à savoir si pour l'envoi de courrier, je peux passer par le MTA de mon FAI (numéricable) afin de ne plus avoir les blocages sur les adresse Gmail et Microsoft (Live.fr, outlook.fr, etc...) mais soit les doc sont rares soit je ne cherche pas ou il faut ...
Ce qui est bizarre avec Gmail, c'est que l'envoi fonctionne depuis monadresse@mondomaine.fr mais ne fonctionne pas depuis l'adresse que j'ai fais pour mon fils.
Pour celles des domaines de Microsoft, je suis bloqué à cause du PTR qui pointe sur numéricable mais j'ai vu qu'il est possible de leur faire une demande pour être partiellement déblacklister. Je verrais ceci plus tard

Hors ligne