• Serveurs
  • Problème d'envoie de message postfix/dovecot via RainLoop

Bonjour à tous , j'espère que vous allez bien !
je suis nouveau sur le forum alors j'espère que j'ai rien oublié avant de demander de l'aide 😁 .
Alors voilà , j'ai un petit soucis de configuration avec postfix et dovecot que je n'arrive pas à résoudre,
dès que je me connecte sur un compte mail via Rainloop j'obtiens en log :

Jun 12 17:17:29 mx1 dovecot: imap-login: Login: user=<user@site>, method=PLAIN, rip=192.168.1.254, lip=192.168.1.5, mpid=2023, TLS, session=<Mztt6SGLGpzAqAH+>
Jun 12 17:17:29 mx1 dovecot: imap(user@site): Logged out in=11 out=422
Jun 12 17:17:30 mx1 dovecot: imap-login: Login: user=<user@site>, method=PLAIN, rip=192.168.1.254, lip=192.168.1.5, mpid=2024, TLS, session=<CBZ76SGLHJzAqAH+>
Jun 12 17:17:30 mx1 dovecot: imap(user@site): Logged out in=80 out=1676

Je reçois correctement les mails de l'extérieur mais il m'est impossible d'en envoyer ...
mon doveconf -n :

# 2.2.27 (c0f36b0): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.16 (fed8554)
# OS: Linux 4.9.0-9-686-pae i686 Debian 9.9 ext4
auth_mechanisms = plain login
disable_plaintext_auth = no
first_valid_uid = 2222
last_valid_uid = 2222
listen = *
mail_gid = 2222
mail_location = maildir:/var/vmail/%d/%n/mail
mail_privileged_group = vmail
mail_uid = 2222
maildir_stat_dirs = yes
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = scheme=SHA1 /etc/dovecot/passwd
  driver = passwd-file
}
protocols = imap lmtp
service auth-worker {
  user = vmail
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0666
    user = postfix
  }
  unix_listener auth-userdb {
    group = vmail
    mode = 0600
    user = vmail
  }
  user = dovecot
}
service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
  service_count = 0
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
ssl = required
ssl_cert = </etc/ssl/certs/mailserver.crt
ssl_cipher_list = ALL:!aNULL:!eNULL:!LOW:!MEDIUM:!EXP:!RC2:!RC4:!DES:!3DES:!MD5:!PSK:!SRP:!DSS:!AECDH:!ADH:@STRENGTH
ssl_dh_parameters_length = 2048
ssl_key =  # hidden, use -P to show it
ssl_prefer_server_ciphers = yes
userdb {
  args = uid=2222 gid=2222 home=/var/vmail/%d/%n allow_all_users=yes
  driver = static
}

et mon postconf -n :

alias_database = $alias_maps
alias_maps = hash:/etc/postfix/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
compatibility_level = 2
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
inet_protocols = ipv4
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mynetworks = 127.0.0.0/8
newaliases_path = /usr/bin/newaliases.postfix
proxy_interfaces = xx.xx.xx.xx
queue_directory = /var/spool/postfix
readme_directory = no
relay_domains = *
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname $mail_name (RisingCorp. Mail)
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_path = /var/spool/postfix/private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
smtpd_sasl_type = dovecot
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/vmail_aliases
virtual_gid_maps = static:2222
virtual_mailbox_base = /var/vmail
virtual_mailbox_domains = hash:/etc/postfix/vmail_domains
virtual_mailbox_maps = hash:/etc/postfix/vmail_mailbox
virtual_minimum_uid = 2222
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_uid_maps = static:2222

J'utilise des comptes virtuels pour gérer plusieurs domaines ...
Je vous remerci d'avance pour toute aide ou suggestion car j'ai le cerveau qui fume depuis 1 semaine XD!

Est-ce que tu peux poster le /var/log/mail.log (ou équivalent selon ta distrib) ? Cela devrait nous auguiller vers l'origine du problème.

    Merrick Bonjour Merrick et merci de ta réponse , je l'ai donné en premier, il n'y a rien d'autre que ça dans le /var/log/mail.log , j'ai que du login logout c'est pour ça que je ne comprend pas d'où vient l’erreur ... 🙁 la distribution est affiché dans le doveconf -n si ça peut aider ...
    si tu as besoin de plus de login et logout pour trouver d'où ça vient je te les donnes volontiers XD

    Euh pour moi, après je dit peut être une betise mais : Dovecot c'est le coté IMAP et POP3 donc la partie réception ?! donc je pense plutot qu'il faut chercher du coté de la config de Postfix pour l'envoi...

    Est ce que tu peut nous donner un peu plus de détails sur l'environnement ?
    parce que les ips affichés correspondent à un réseau domestique.
    Tu suit un tuto de quelque part ?

    Quand tu as configurer rainloop la partie SMTP est en vert ou en rouge ? si en rouge tu devrais avoir une étiquette avec l'erreur et surement un bon début de piste.

    Cordialement,

    Mathieu

      MattProd Bonjour et merci beaucoup pour ta réponse, je me suis basé sur plusieurs tutos et sur les docs car c'est une config un peu spécial, sinon j’héberge moi même les serveurs d'où le réseau local ... Merci pour l’éclaircissement, je me demandais justement si les sorties se faisait aussi par dovecot , mais ça parait effectivement logique après réflexion et lecture de plus de doc 😁 ... je n'ai aucun message d'erreur sur rainloop ou autre en dehors de quand j'essaye d'envoyer un message rainloop m'affiche : " serveur injoignable "... , je tiens à préciser que j'arrivais à envoyer les message il y a quelque jour mais pas à les recevoir et j'ai refais toute l’installation des services et maintenant c'est l'inverse XD , si je suis ton raisonnement ( qui à l'air juste ) , il faut que je regarde du côté de postfix .

      Re-bonjour , après plusieurs tentatives je n'arrive toujours pas à envoyer de mail, la seul chose que j'arrive à faire c'est de ne plu en recevoir 😂 , je vais essayé d'être plus clair sur mon réseau en simplifié :

      • un serveur DNS ( DMZ ) qui fait aussi office de serveur hosting pour des sites.
      • un serveur mail en local accessible en proxypass sur le quel sont enregistré les boites mail virtuels lié à chaque domaines hébergés. ( jusqu'ici tout va bien, j'arrive à me connecter depuis l'extérieur sur tous les serveurs et réceptionner des mails sur le serveur désiré )
        je ne peu plu envoyé de mail depuis que j'ai refais toute la config et j'en ai profité pour mettre en place les certificats en passant par les port 993 et 465 alors je me demande si il y a pas des ports à ouvrir quelque part ... ? par ce que en entré tout est redirigé vers le serveur mail mais en sortie ? il y a une box à l'entrée du réseau sur laquelle les ports sont redirigé comme il faut ... depuis que j'ai mis les certificats en place c'est peut être ça le problème ? bref je sais plus quoi inventer pour essayer de trouver une solution ~~ Merci encore pour votre aide et vos idées .

        MrRise et que donne la commande : systemctl status postfix ?

        Si tu as un peu de temps lit le vieux tuto (mais qui fait encore bien le café merci @Hardware au passage )
        https://mondedie.fr/d/5750-tuto-installer-un-serveur-de-mail-avec-postfix-dovecot-et-rainloop

        Techniquement si box domestique pas besoin de créer de route de sortie...

        Là tout de suite je voit pas autre chose... je vais relire tes logs déjà postés.

          Merci pour le lien 😁 je l'ai déjà regardé celui-là ,
          pour le status de postfix j’obtiens :

           postfix.service - Postfix Mail Transport Agent
             Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
             Active: active (exited) since Thu 2019-06-13 20:28:53 CEST; 19h ago
            Process: 651 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
           Main PID: 651 (code=exited, status=0/SUCCESS)
              Tasks: 0 (limit: 4915)
             CGroup: /system.slice/postfix.service
          
          juin 13 20:28:53 mx1.riseincompany.com systemd[1]: Starting Postfix Mail Transport Agent...
          juin 13 20:28:53 mx1.riseincompany.com systemd[1]: Started Postfix Mail Transport Agent.```

          @MrRise : la je sèche un peu sur le coup, je me suis jamais lancé sur un multidomaine avec postfix...

          (@ryrcass en as fait quelques un s'il a du temps libre il pourra peut être avoir une idée 😉.)
          est ce que le fait qu'un certificat autosigné ne soit pas la cause du probleme... j'ai encore du mal a comprendre comment postfix peut tourner en multidomaine avec plusieurs smtp vu qu'on peut lui indiquer un seul certificat ?
          Tu as essayé d'envoyer un mail depuis telnet ? ou meme un logiciel de messagerie ?
          Je suppose que domaine1.com = smtp.domaine1.com et imap.domaine1.com ? ainsi de suite ?
          comment il résout les noms de domaines ?

            MattProd
            Après de multiple test je viens de trouver un message d'erreur sur la connexion smtp ( merci MattProd ) 😀 :

            stream_socket_client(): unable to connect to ssl://XX.XX.XX.XX:465 (Connection refused)

            Donc est-ce que le problème vient de la route de sortie qui techniquement ne devrait pas être nécessaire ?
            Vue que l'ensemble du réseau est sécurisé de manière à ne rien laissé passer ( du moins j'essaye XD ) ...
            ou alors est que j'ai mal configuré postfix ? 😮
            Donc avant que j'ouvre la porte aux "midle men" 🤣 est que quelqu'un peut me confirmer que c'est sur le serveur DNS en DMZ que je dois ouvrir le port 465 ? 😀
            Merci encore à tous pour vous pour vos interventions je vois le bout du tunnel !
            Je pense que dès que j'ai compris comment tout cela fonctionne dans son intégralité je vous pond un tuto avec tous les cas de figures à la *** que j'ai croisé XD !

            MattProd
            Alors pour la gestion de multidomaine moi je m’occupe que de faire apparaitre les noms des boites comme il faut côté client mais en vrai c'est toujours le même serveur mail avec le nom du domaine master qui fait les envois si quelqu'un fouille ...

            Je continu mon auto analyse vue que j'ai pas trop de succès XD ...
            je constate en plus avec la commande nmap que le port 465 n'est pas ouvert sur la machine par la quelle passe toutes les transaction internet, vue que mon réseau est sécurisé, si je me suis pas trompé dans ma config, toute les communications sortantes et entrantes passe par cette machine en plus des services de sécurités précédent :
            PORT STATE SERVICE
            22/tcp open ssh
            25/tcp open smtp
            53/tcp open domain
            80/tcp open http
            143/tcp open imap
            993/tcp open imaps
            53/udp open domain
            67/udp open|filtered dhcps
            631/udp open|filtered ipp
            5353/udp open|filtered zeroconf
            donc j'en conclu que c'est le port 465 qui n'est pas ouvert sur la machine d'entrée et de sortie à l'internet sur mon réseau .
            je refais un tour de vérification aujourd'hui pour vérifier si j'ai rien oublié, ensuite je teste ça et je vous donne le résultat.

              MrRise tu peut effectivement tester... mais a ce moment la pourquoi sur le serveur mail dans le fichier host tu lui indique pas : 127.0.0.1 mx1.ndd.com ? ca pourrais t'eviter de l'ouvrir du monde exterieur vers le serveur ? eventuellement une route de sortie...

                MattProd
                Salut MattProd et merci pour ta réponse ...
                touts simplement parce-que je l'ai déjà fait 😅 .

                Bon et bien je n'ai toujours pas trouvé donc je pense refaire les certificats , il doit y avoir un problème a ce niveau parce-que là je vois plu rien d'autre.

                @MrRise désolé je suis pas mal pris par le travail, essaye de faire déja un seul smtp avant de basculer sur le multi histoire de voir si sa bloque pas avec la configuration reseau et les routes.

                PS : et si tu essaye d'envoyer un mail a la mano depuis le serveur en cli ?

                  MattProd
                  salut MattProd , vraiment aucun soucis c'est déjà sympathique à toi de répondre a mes questions XD !
                  du coup je fais un petit point sur mon avancement :

                  • Je n'ai plu de message d'erreur au niveau de Rainloop, les connections se font correctement en entrée et en sortie , il y avait effectivement un problème de certificat et de port qui est maintenant réglé , la configuration des ports 587 et 465 était mélangé dans ma config je risquai pas d'envoyer quoi que ce soit en sécurisé ! 😂 .
                  • maintenant je comprend beaucoup mieux la gestion des port qui ce passe dans le master.cf où "submission" fait référence au port 587 et "smtp" au 25 ! le 465 doit être déclaré puis vue que tout le monde dis qu'il va un jour disparaitre on va faire comme si il existait pas et s'occuper que du 587 qui m’intéresse pour les envois sécurisé par STARTTLS.
                    -J'arrive à envoyer des mails en local par le port 587 sans aucuns soucis !
                  • il me reste juste à comprendre pourquoi les mails sortant du réseau restent bloqué , je m'explique : " ils partent bien ils sont considéré comme envoyé mais ils ne sortent pas du réseau ...
                  • ma question : est ce que je suis obligé de passer par le relai smtp de mon FAI ? ( FREE pour l'instant car ce n'est pas le lieu de l’installation définitive des serveurs ) ce que je trouve bizarre quand même ...
                    Merci encore pour toutes vos réponses et je vais préparer un pavé de ma connaissance sur le sujet pour en faire profité la communauté après 1 mois d’apprentissage intensif sur postfix/dovecot XD !

                  ma question : est ce que je suis obligé de passer par le relai smtp de mon FAI ?

                  Je vais être très clair : ça dépend 🙂
                  Normalement, chez Free, tu n'as pas besoin de passer par leur relais smtp, tu devrais pouvoir "être" ton propre smtp. En revanche, d'autres providers (comme Orange) interdisent cette méthode...

                    Merrick
                    Merci Merrick pour cet éclaircissement, je vais contacter free voir si il y a pas une manip à faire sur la box que j'aurais pas trouvé ... parce-que pour l'instant je suis obligé de passer par leur relai smtp pour envoyer des mails ..
                    Sans ça, ils sont bloqué à la sortie ( à la box j'imagine ) .

                    Merrick et @MattProd
                    Me voici avec la réponse à cette dernière question chers amis codeur ! Les FAI ne nous permettent pas de passer outre leur relai ! Je me pencherais plus sur la question dès que j'aurais plus de temps car là il faut que je bombarde sur le reste du projet parce-que je viens de perdre pas mal de temps sur ce serveur, mais bon, au moins, je sais comment "ça marche !" et je peux vous garantir que c'est pas avec des jambes 😂 !
                    Bonne journée à tous et à très vite pour un récap. des points noir/importants de cette installation postfix/dovecot !

                    Répondre…