Re: Postfix comme MX2 d'un Sendmail

2022-06-20 Par sujet Roberto C . Sánchez
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

2022-06-20 Par sujet BERTRAND Joël
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

2022-06-20 Par sujet BERTRAND Joël
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

2022-06-20 Par sujet Roberto C . Sánchez
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

2022-06-20 Par sujet BERTRAND Joël
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