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 07/10/2019, à 12:02

helistor

[RESOLU] Postfix docker - connexion reject sur local network

Bonjour à tous

Je rencontre un problème à m'en arracher les cheveux.

J'ai un serveur postfix en docker (serveur docker 192.168.0.1 port 11587, ip container docker 10.0.3.4 port 587).
Lorsque je suis en extérieur (en 4g sur smartphone par exemple), j'arrive à m'authentifier sur le serveur SMTP sans problème.
Par contre, lorsque je suis sur mon réseau local (192.168.0.61), je n'arrive pas à passer l’authentification.

Conf main.cf :

smtpd_banner = $myhostname ESMTP 
disable_vrfy_command = yes
biff = no
append_dot_mydomain = no

myhostname = toto.fr
myorigin = $myhostname
mydestination = localhost, $myhostname
alias_maps=regexp:/etc/postfix/aliases
alias_database=regexp:/etc/postfix/aliases

mynetworks = 127.0.0.0/8, 192.168.0.0/24, 10.0.3.0/24
mailbox_size_limit = 0
message_size_limit = 20240000
inet_interfaces = all
inet_protocols = ipv4
home_mailbox = Maildir/
mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/dovecot.conf -m "${EXTENSION}"

smtpd_sasl_auth_enable = yes 
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-auth
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, reject_unauth_destination, check_recipient_access hash:/etc/postfix/blackl
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_relay_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_sasl_authenticated, reject_unauth_destination
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_sender_domain


# TLS parameters
tls_random_source = dev:/dev/urandom
smtpd_tls_cert_file = /etc/certificats/ssl/mail.toto.fr.crt
smtpd_tls_key_file = /etc/certificats/ssl/mail.toto.fr.key
smtpd_tls_CAfile = /etc/certificats/ssl/mail.toto.fr.pem
smtpd_use_tls = yes
smtpd_tls_security_level = may 
smtpd_tls_received_header = yes
smtpd_tls_mandatory_protocols = SSLv3, TLSv1
smtpd_tls_mandatory_ciphers = medium
smtpd_enforce_tls = yes
smtpd_tls_auth_only = no
smtpd_tls_ask_ccert=yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $myhostname

smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
smtp_tls_key_file = /etc/certificats/ssl/mail.toto.fr.key
smtp_tls_cert_file = /etc/certificats/ssl/mail.toto.fr.crt
smtp_tls_CAfile = /etc/certificats/ssl/mail.toto.fr.pem
smtp_tls_note_starttls_offer = yes
smtp_tls_enforce_peername = no
smtp_enforce_tls = yes
smtp_use_tls = yes


#DKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:12345
non_smtpd_milters = inet:localhost:12345
compatibility_level = 2

Mon master.cf :

587        inet  n       -       y       -       -       smtpd 
smtp       inet  n       -       y       -       -       smtpd
submission inet  n       -       y       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o tls_preempt_cipherlist=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
pickup     fifo  n       -       y       60      1       pickup
cleanup    unix  n       -       y       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
tlsmgr     unix  -       -       y       1000?   1       tlsmgr
rewrite    unix  -       -       y       -       -       trivial-rewrite
bounce     unix  -       -       y       -       0       bounce
defer      unix  -       -       y       -       0       bounce
trace      unix  -       -       y       -       0       bounce
verify     unix  -       -       y       -       1       verify
flush      unix  n       -       y       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp       unix  -       -       y       -       -       smtp
relay      unix  -       -       y       -       -       smtp
showq      unix  n       -       y       -       -       showq
error      unix  -       -       y       -       -       error
retry      unix  -       -       y       -       -       error
discard    unix  -       -       y       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp       unix  -       -       y       -       -       lmtp
anvil      unix  -       -       y       -       1       anvil
scache     unix  -       -       y       -       1       scache
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix	-	n	n	-	2	pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

Je pensais que le problème pouvait venir de "smtpd_recipient_restrictions", j'ai essayé pleins de truc mais rien n'y fait.

Lorsque j'appelle "mail.toto.fr" à partir d'un pc du localnetwork, celui ci attaque mon ip publique, je me demande si ça ne viendrait pas ça.
Je n'ai pas moyen sur le smartphone de forcer le /etc/hosts avec "mail.toto.fr  10.0.3.4" donc je ne peux pas vérifier ça.

Quelqu'un a t'il une idée pour faire en sorte que je puisse utiliser mon serveur SMTP en interne ?

Précision complémentaire :
Lorsque je tente de m'authentifier, je recois ce message dans la log :

connect from unknown[192.168.0.253]
lost connection after EHLO from unknown[192.168.0.253]
disconnect from unknown[192.168.0.253] ehlo=2 starttls=1 commands=3

192.168.0.253 étant l'ip de ma box.

Dernière modification par helistor (Le 07/10/2019, à 19:24)

Hors ligne

#2 Le 07/10/2019, à 16:14

bruno

Re : [RESOLU] Postfix docker - connexion reject sur local network

Bonjour,

Pourquoi faire tourner Postfix dans un conteneur docker ? Cela ne simplifie pas la tâche et encore moins le débogage des problèmes…
Il faut que ton serveur soit accessible de l'extérieur et du réseau local sur les ports 25 et 587 au minimum et pas sur des ports non privilégiés comme le 11587.

Il faut expliquer la première ligne de ton fichier master.cf. et tu devrais désactiver la partie TLS côté client : ce n'est pas nécessaire et cela peut même t'empêcher de communiquer avec d'autres serveurs SMTP.

Hors ligne

#3 Le 07/10/2019, à 16:24

helistor

Re : [RESOLU] Postfix docker - connexion reject sur local network

Merci Bruno pour ta réponse.

En fait à la base mon serveur était sur raspberry, mais ayant un NAS compatible docker j'ai pris le choix de migrer le serveur sur docker pour me délester d'un raspberry.
J'avais choisi des ports autres car à un moment donné j'avais les 2 et ça me permattait de switcher plus facilement pour mes tests sur le routeur.
N'ayant plus besoin de mettre de ports exotiques, je vais remettre les ports traditionnels.

Pour la ligne sur le master, je pensais au départ que c'était nécessaire pour forcer le tls en communication sortante, mais si je comprends ce que tu me dis, je me trompe.
Je vais corriger ça ce soir.

Merci en tout cas pour y avoir jeter un oeil, je donnerai mes résultats après avoir testé.

Hors ligne

#4 Le 07/10/2019, à 16:39

bruno

Re : [RESOLU] Postfix docker - connexion reject sur local network

Non ta ligne ne sert à rien puisque cette configuration est remplacée plus loin par submission (port 587).
Ce qui force l'usage de TLS c'est la directive smtp_tls_security_level=encrypt

Hors ligne

#5 Le 07/10/2019, à 19:23

helistor

Re : [RESOLU] Postfix docker - connexion reject sur local network

J'ai finalement trouvé et le problème venait du client du téléphone.
Il ne permettait pas de choisir le type d'authentification et ne prenait pas le bon en compte.
Avec un autre client qui permet de choisir : pas de souci !

Cependant grace à toi bruno, je ne regrette pas d'avoir posté ici car ça m'a permis d'en apprendre un peu plus et corriger des erreurs.
Merci.

Dernière modification par helistor (Le 07/10/2019, à 20:24)

Hors ligne