Re: Postfix comme MX2 d'un Sendmail
On Mon, Jun 20, 2022 at 05:25:39PM +0200, BERTRAND Joël wrote: > Je viens de couper le MX1 durant une petite demi-heure. Le MX2 récupère > tous les mails en synchronisant les listes grises entre MX1 et 2 et > renvoie le tout au MX1 dès qu'il réapparaît. > > Je finasserai la configuration plus tard. > > Une question résiduelle que je viens de me poser. Lorsqu'un utilisateur > envoie un mail, il utilise le SMTP (sur le MX1) sur le port 587. > sendmail demande une authentification. Si pas d'authentification, le > mail est refusé. Mais sur le port 25, quel est le mécanisme qui fait > qu'un utilisateur ne peut pas envoyer directement un mail (que ce soit > avec Postfix ou sendmail) ? > Peut-être ajouter "reject_unauth_destination" au paramètre smtpd_recipient_restrictions ? https://wiki.auf.org/wikiteki/Postfix/Authentification Salut, -Roberto -- Roberto C. Sánchez
Re: Postfix comme MX2 d'un Sendmail
Je viens de couper le MX1 durant une petite demi-heure. Le MX2 récupère tous les mails en synchronisant les listes grises entre MX1 et 2 et renvoie le tout au MX1 dès qu'il réapparaît. Je finasserai la configuration plus tard. Une question résiduelle que je viens de me poser. Lorsqu'un utilisateur envoie un mail, il utilise le SMTP (sur le MX1) sur le port 587. sendmail demande une authentification. Si pas d'authentification, le mail est refusé. Mais sur le port 25, quel est le mécanisme qui fait qu'un utilisateur ne peut pas envoyer directement un mail (que ce soit avec Postfix ou sendmail) ? Bien cordialement, JKB
Re: Postfix comme MX2 d'un Sendmail
Roberto C. Sánchez a écrit : > Bonjour Joël, Bonjour Roberto. > On Mon, Jun 20, 2022 at 02:14:11PM +0200, BERTRAND Joël wrote: >> >> Pour l'instant, j'ai écrit dans /etc/mail/main.cf la chose suivante : >> >> command_directory = /usr/sbin >> daemon_directory = /usr/libexec/postfix >> data_directory = /var/db/postfix >> debug_peer_level = 2 >> debugger_command = >> disable_vrfy_command = yes >> html_directory = /usr/share/doc/html/postfix >> inet_interfaces = all >> inet_protocols = all >> mail_owner = postfix >> mailq_path = /usr/bin/mailq >> manpage_directory = /usr/share/man >> maximal_queue_lifetime = 10d >> milter_default_action = accept >> mynetworks = 192.168.10.0/24, 192.168.12.0/24, 192.168.15.14/32, 127.0.0.1/8 >> newaliases_path = /usr/bin/newaliases >> non_smtpd_milters = unix:/var/clamav/clamav-milter.sock >> postscreen_access_list = permit_mynetworks >> proxy_interfaces = 192.168.15.14 >> queue_directory = /var/spool/postfix >> readme_directory = /usr/share/examples/postfix >> relay_domains = $mydestination, systella.fr >> relay_recipient_maps = >> sample_directory = /usr/share/examples/postfix >> sendmail_path = /usr/sbin/sendmail >> setgid_group = maildrop >> smtpd_milters = unix:/var/milter-greylist/milter-greylist.sock >> smtpd_recipient_restrictions = permit_sasl_authenticated, >> permit_mynetworks, check_relay_domains, reject_unauth_destination >> unknown_local_recipient_reject_code = 550 >> > J'utilise Postfix comme primaire et comme secondaire, alors je ne sais > rien concernant Sendmail. Mais, ma configuration Postfix comprend les > adresses IP des autres serveurs Postfix dans le paramètre mynetworks et > le secondaire aussi le paramètre relayhost de cette manière: > > relayhost = [mx1.example.com] > > Je pense que parce que relayhost manque de ta configuration, ton Postfix > ne sait pas qu'il doive envoyer le message au MX1 sans essayer résoudre > l'adresse se c'est du domaine @systella.fr en ce cas. Il y a effectivement du mieux : Root rayleigh:[/etc/mail] > telnet 62.212.98.88 25 Trying 62.212.98.88... Connected to 62.212.98.88. Escape character is '^]'. 220 legendre.systella.fr ESMTP Postfix EHLO rayleigh 250-legendre.systella.fr 250-PIPELINING 250-SIZE 1024 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN MAIL FROM: 250 2.1.0 Ok RCPT TO: 554 5.5.4 SPF test failed Je ne me prends plus le même coup de pied aux fesses ;-) Dans les logs de postfix, je trouve : Jun 20 15:32:21 legendre postfix/smtpd[16414]: warning: support for restriction "check_relay_domains" will be removed from Postfix; use "reject_unauth_destination" instead Jun 20 15:32:21 legendre postfix/smtpd[16414]: warning: restriction `reject_unauth_destination' after `check_relay_domains' is ignored Jun 20 15:32:21 legendre milter-greylist: (unknown id): addr 213.41.150.218 flushed, removed 0 grey and autowhite (ACL 90) Jun 20 15:32:21 legendre milter-greylist: (unknown id): addr [213.41.150.218][213.41.150.218] from to blacklisted (ACL 90) Jun 20 15:32:21 legendre postfix/smtpd[16414]: NOQUEUE: milter-reject: RCPT from unknown[213.41.150.218]: 554 5.5.4 SPF test failed; from= to= proto=ESMTP helo= J'ai donc changé la configuration pour la suivante (avec le même résultat final, à savoir un échec du test SPF) : command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/db/postfix debug_peer_level = 2 debugger_command = disable_vrfy_command = yes html_directory = /usr/share/doc/html/postfix inet_interfaces = all inet_protocols = all mail_owner = postfix mailq_path = /usr/bin/mailq manpage_directory = /usr/share/man maximal_queue_lifetime = 10d milter_default_action = accept mynetworks = 192.168.10.0/24, 192.168.12.0/24, 192.168.15.14/32, 127.0.0.0/8 newaliases_path = /usr/bin/newaliases non_smtpd_milters = unix:/var/clamav/clamav-milter.sock postscreen_access_list = permit_mynetworks proxy_interfaces = 192.168.15.14 queue_directory = /var/spool/postfix readme_directory = /usr/share/examples/postfix relay_domains = $mydestination, systella.fr relay_recipient_maps = relayhost = [rayleigh.systella.fr] sample_directory = /usr/share/examples/postfix sendmail_path = /usr/sbin/sendmail setgid_group = maildrop smtpd_milters = unix:/var/milter-greylist/milter-greylist.sock smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination unknown_local_recipient_reject_code = 550 (j'ai trié le fichier de conf en retirant les commentaires, ça n'apparaît peut-être pas dans un ordre logique). Et là, j'ai un gros doute concernant le DNS. Le champ SPFv1 est le suivant (récupéré depuis le serveur faisant tourner PostFix) : legendre# host -t TXT systella.fr systella.fr descriptive text "v=spf1 a:rayleigh.systella.fr a:newton.systella.fr a:newton-ipv6.systella.fr ip6:2001:7a8:a8ed:253::1/64 -all" legendre# host 213.41.150.218 218.150.41.213.in-addr.ARPA domain name pointer
Re: Postfix comme MX2 d'un Sendmail
Bonjour Joël, On Mon, Jun 20, 2022 at 02:14:11PM +0200, BERTRAND Joël wrote: > > Pour l'instant, j'ai écrit dans /etc/mail/main.cf la chose suivante : > > command_directory = /usr/sbin > daemon_directory = /usr/libexec/postfix > data_directory = /var/db/postfix > debug_peer_level = 2 > debugger_command = > disable_vrfy_command = yes > html_directory = /usr/share/doc/html/postfix > inet_interfaces = all > inet_protocols = all > mail_owner = postfix > mailq_path = /usr/bin/mailq > manpage_directory = /usr/share/man > maximal_queue_lifetime = 10d > milter_default_action = accept > mynetworks = 192.168.10.0/24, 192.168.12.0/24, 192.168.15.14/32, 127.0.0.1/8 > newaliases_path = /usr/bin/newaliases > non_smtpd_milters = unix:/var/clamav/clamav-milter.sock > postscreen_access_list = permit_mynetworks > proxy_interfaces = 192.168.15.14 > queue_directory = /var/spool/postfix > readme_directory = /usr/share/examples/postfix > relay_domains = $mydestination, systella.fr > relay_recipient_maps = > sample_directory = /usr/share/examples/postfix > sendmail_path = /usr/sbin/sendmail > setgid_group = maildrop > smtpd_milters = unix:/var/milter-greylist/milter-greylist.sock > smtpd_recipient_restrictions = permit_sasl_authenticated, > permit_mynetworks, check_relay_domains, reject_unauth_destination > unknown_local_recipient_reject_code = 550 > J'utilise Postfix comme primaire et comme secondaire, alors je ne sais rien concernant Sendmail. Mais, ma configuration Postfix comprend les adresses IP des autres serveurs Postfix dans le paramètre mynetworks et le secondaire aussi le paramètre relayhost de cette manière: relayhost = [mx1.example.com] Je pense que parce que relayhost manque de ta configuration, ton Postfix ne sait pas qu'il doive envoyer le message au MX1 sans essayer résoudre l'adresse se c'est du domaine @systella.fr en ce cas. > Mais à chaque fois que je tente un envoi, postfix me renvoie la chose > suivante : > > Root rayleigh:[/etc/mail] > telnet 62.212.98.88 25 > Trying 62.212.98.88... > Connected to 62.212.98.88. > Escape character is '^]'. > 220 legendre.systella.fr ESMTP Postfix > EHLO rayleigh > 250-legendre.systella.fr > 250-PIPELINING > 250-SIZE 1024 > 250-ETRN > 250-ENHANCEDSTATUSCODES > 250-8BITMIME > 250 DSN > MAIL FROM: > 250 2.1.0 Ok > RCPT TO: > 451 4.3.0 : Temporary lookup failure > quit > 221 2.0.0 Bye > Connection closed by foreign host. > Root rayleigh:[/etc/mail] > > > Un RCPT TO: renvoie la même erreur alors > que ce compte existe sur le serveur en question. > > Et là, je ne comprends plus... Tous les howto que l'on trouve sur > internet proposent d'autres solutions qui ne donnent pas de meilleurs > résultats. > > Une idée ? > Il m'intéressera savoir si c'est le même après avoir ajouté relayhost à la configuration. Salut, -Roberto -- Roberto C. Sánchez
Postfix comme MX2 d'un Sendmail
Bonjour à tous, Je tente la configuration d'un serveur de mail postfix comme backup d'un sendmail des familles et le moins qu'on puisse dire, c'est que si la configuration de sendmail est complexe, on voit assez rapidement ce qui cloche contrairement à postfix ;-) Je _sais_ configurer un MX2 avec sendmail. J'ai déjà configuré le DNS : ;; ADDITIONAL SECTION: rayleigh.systella.fr. 86400 IN A 213.41.150.218 newton-ipv6.systella.fr. 86400 IN 2001:7a8:a8ed:253::1 newton.systella.fr. 86400 IN A 213.41.149.211 legendre.systella.fr. 86400 IN A 62.212.98.88 noemie.nerim.net. 86400 IN A 178.132.17.109 Le firewall est réglé correctement sur le MX2, je peux l'attaquer avec un telnet sur le port 25. J'ai un serveur de mail principal qui récupère avec sendmail tout un tas de domaines. Ce serveur fait office de ESMTP et de MX1, a accès à deux WAN et fonctionne en IPv4 et v6. Il fait exactement ce que je lui demande. Je dois utiliser un serveur distant qui utilise Postfix. Et là, c'est un désastre. Je n'arrive pas à avoir la configuration que je désire. Tous les mails envoyés à localhost ou à legendre.systella.fr (le serveur en question) sur le port submission doivent être traités par le MX local, lequel relaye vers le MX1 grâce à /etc/mail.aliases qui contient des choses comme ça : MAILER-DAEMON: postmaster postmaster: root toor: root daemon: root bin:root games: root postfix:postmaster named: root ntpd: root sshd: root nobody: root root: joel.bertr...@systella.fr operator: joel.bertr...@systella.fr ... Je ne veux pas que les utilisateurs puissent utiliser ce MX2 comme un ESMTP (ça casserait DKIM, SPFv1...). Je veux donc que tout ce qui n'est pas à destination de legendre.systella.fr et qui passe par le ESMTP et non le MX soit rejeté. Mais je veux aussi que tout ce qui est à destination de systella.fr soit relayé vers le MX1. Pour l'instant, j'ai écrit dans /etc/mail/main.cf la chose suivante : command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/db/postfix debug_peer_level = 2 debugger_command = disable_vrfy_command = yes html_directory = /usr/share/doc/html/postfix inet_interfaces = all inet_protocols = all mail_owner = postfix mailq_path = /usr/bin/mailq manpage_directory = /usr/share/man maximal_queue_lifetime = 10d milter_default_action = accept mynetworks = 192.168.10.0/24, 192.168.12.0/24, 192.168.15.14/32, 127.0.0.1/8 newaliases_path = /usr/bin/newaliases non_smtpd_milters = unix:/var/clamav/clamav-milter.sock postscreen_access_list = permit_mynetworks proxy_interfaces = 192.168.15.14 queue_directory = /var/spool/postfix readme_directory = /usr/share/examples/postfix relay_domains = $mydestination, systella.fr relay_recipient_maps = sample_directory = /usr/share/examples/postfix sendmail_path = /usr/sbin/sendmail setgid_group = maildrop smtpd_milters = unix:/var/milter-greylist/milter-greylist.sock smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, check_relay_domains, reject_unauth_destination unknown_local_recipient_reject_code = 550 Mais à chaque fois que je tente un envoi, postfix me renvoie la chose suivante : Root rayleigh:[/etc/mail] > telnet 62.212.98.88 25 Trying 62.212.98.88... Connected to 62.212.98.88. Escape character is '^]'. 220 legendre.systella.fr ESMTP Postfix EHLO rayleigh 250-legendre.systella.fr 250-PIPELINING 250-SIZE 1024 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN MAIL FROM: 250 2.1.0 Ok RCPT TO: 451 4.3.0 : Temporary lookup failure quit 221 2.0.0 Bye Connection closed by foreign host. Root rayleigh:[/etc/mail] > Un RCPT TO: renvoie la même erreur alors que ce compte existe sur le serveur en question. Et là, je ne comprends plus... Tous les howto que l'on trouve sur internet proposent d'autres solutions qui ne donnent pas de meilleurs résultats. Une idée ? Bien cordialement, JKB