Problème avec postfix et dovecot pour les envoies et reception de mails

Tags: #<Tag:0x00007f63f3d90b80> #<Tag:0x00007f63f3d90ab8> #<Tag:0x00007f63f3d909c8>

Bonjour,

Je gère plusieurs domaines.
J’ai tout configuré postfixadmin, MySql, postfix et dovecot.

Voici le message d’erreur quand j’envoie un mail depuis ma messagerie du domaine vers la perso. Mais aussi je ne reçois rien sur cette boîte mail.

J’ai fait un tail pendant mon envoie de mail

 tail -f /var/log/dovecot.log
Oct 03 18:08:06 pop3(alain@mondomain.uk)<173880><UfgaEtIGquAAAAAAAAAAAAAAAAAAAAAB>: Fatal: master: service(pop3): child 173880 killed with signal 6 (core dumps disabled - https://dovecot.org/bugreport.html#coredumps).

Par contre quand je fais echo ça fonctionne bien.

echo test de message | mail -s Test envoie de messagerie alain@mondomain.uk

Mais quand je reçois un mail du root sur ma messagerie perso, voici ce que je reçois :

root@mail.mondomain.uk
Et je voudrais recevoir sous la forme

root@mondomain.uk

Je vous mets ma configuration

Voici la configuration de postfix main.cf :

postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
compatibility_level = 3.6
config_directory = /etc/postfix
debug_peer_list = 127.0.0.1
dovecot_destination_recipient_limit = 1
home_mailbox = Maildir/
html_directory = /usr/share/doc/postfix/html
inet_interfaces = all
inet_protocols = all
mailbox_size_limit = 0
maillog_file = /var/log/postfix.log
message_size_limit = 4194304
mydestination = $myhostname, localhost.mondomain.uk, localhost
myhostname = mail.mondomain.uk
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = $myhostname
readme_directory = /usr/share/doc/postfix
recipient_delimiter = +
relayhost =
smtp_tls_CApath = /etc/ssl/certs
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_recipient_restrictions = permit_mynetworks
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.mondomain.uk/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.mondomain.uk/privkey.pem
smtpd_tls_security_level = may
smtpd_use_tls = yes

Je donne aussi mon fichier master. cf

root@mail:/etc/dovecot# grep -E -v '(^#|^$)' /etc/postfix/master.cf
smtp      inet  n       -       y       -       -       smtpd
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
submissions     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/submissions
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
pickup    unix  n       -       y       60      1       pickup
cleanup   unix  n       -       y       -       0       cleanup
qmgr      unix  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
        -o syslog_name=postfix/$service_name
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
postlog   unix-dgram n  -       n       -       1       postlogd
maildrop  unix  -       n       n       -       -       pipe
  flags=DRXhu 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=FRX user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
dovecot   unix  -       n       n       -       -       pipe
    flags=DRhu user=mail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}

Et mon fichier local.conf

root@mail:/etc/dovecot# grep -E -v '(^#|^$)' /etc/dovecot/local.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot-info.log
debug_log_path = /var/log/dovecot-debug.log
auth_verbose = yes
auth_debug = yes
mail_debug = yes
verbose_ssl = yes
 mail_location = maildir:/var/mail/%d/%n/Maildir/
 namespace inbox {
  inbox = yes
}
# c'est utilisateurs et groupe qui accede aux mails
mail_uid=mail
mail_gid=vmail

#Identifiant utisateur linux valides pour se connecter
first_valid_uid = 8
last_valid_uid = 8

first_valid_gid = 5000
last_valid_gid = 5000

mail_privileged_group = vmail

service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}
service submission-login {
  inet_listener submission {
    #port = 587
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
   mode = 0600
   user = postfix
   group = postfix
  }
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
  unix_listener auth-userdb {
   mode = 0600
   user = mail
  }
  user = dovecot
}
service auth-worker {
  user = mail
}
service dict {
  unix_listener dict {
  }
}
service stats {
    unix_listener stats-reader {
        user = mail
        group = vmail
        mode = 0660
    }
    unix_listener stats-writer {
        user = mail
        group = vmail
        mode = 0660
    }
}
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.mondomain.uk/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.mondomain.uk/privkey.pem
ssl_min_protocol = TLSv1.2
ssl_cipher_list = ECDHE-ECDSA-AES128-G..........
ssl_prefer_server_ciphers = no
passdb {
  driver = sql
  args = /etc/dovecot/local-sql.conf.ext
}
userdb {
  driver = static     ## Don't forget to change this
  args = uid=mail gid=vmail home=/var/mail/%d/%n/Maildir
}

Voici mon fichier de configuration de ma base sql local.sql.conf.

root@mail:/etc/dovecot# grep -E -v '(^#|^$)' /etc/dovecot/local-sql.conf.ext
driver = mysql
connect = host=ipfailover dbname=PostfiX user=postfix password=postfix
password_query = \
  SELECT username as user, password \
  FROM mailbox WHERE username = '%u' AND active = 1;

Pouvez-vous m’éclaircir pourquoi je ne reçois pas et je ne peux pas envoyer de message depuis mon domaine ?

Merci

Alain

Où sont-ils gérés ? Je ne vois rien dans la configuration de postfix, à part ceci :

mydestination = $myhostname, localhost.mondomain.uk, localhost
myhostname = mail.mondomain.uk

Ce qui signifie que ton serveur est la destination finale uniquement pour ces trois domaines.

À lire : Postfix Virtual Domain Hosting Howto

Visiblement, non…

Attention la configuration d’un serveur de courriels complet (MTA+MDA+…) est une tâche délicate. Et là c’est le cas le plus complexe avec des utilisateurs et des domaines multiples gérés par une base de données MySQL !
Tu n’y arriveras probablement pas en suivant des « tutos » plus ou moins bien faits sans comprendre chaque directive dans chaque fichier de configuration et en étant capable de l’adapter.

1 J'aime

Je ne peux que confirmer tous ça, c’est véritablement complexe à mettre ne place et maintenir.

Ne vaudrait-il pas mieux que tu utilise une surcouche à tous ça comme Modoboa, Mailcow, Ireadmail par exemple, ce sont des solutions packagés, lourdes mais qui te faciliterons la prise ne main.
Tu pourras commencer à apprendre en analysant les fichiers de configurations.

Bonjour Bruno1,

Je gère les domaines via Postfix Admin. Car mes différents registrar, à partir de mantenant il demande de payer les adresses mails qui étaient gratuites. J’ai une date limite au 20 octobre.

Je ne savais pas qu’il faut aussi les mettre dans mydestination.

J’ai lu la documentation de Postfix et Dovecot sur le site officiel.

J’ai suivi les conseils des documentations.

Les ports sont bien ouverts 993 587 465. Et j’ai bien mis pour le SSL le certificat.

Chaque ligne du fichier main.conf, elles sont commentées pour leurs utilisations.

Dans Dovecot j’ai fait pareil.

Pouvez-vous m’aider ? si possible ?

Merci

Alain

Bonjour,

oui, c’est complexe mais faisable.

Merci des conseils. J’ai déjà mis en place Postfix il y a 10 ans mais ça changé depuis.
J’ai aussi mi en place Zimbra.

Je me remet dans le bain.

Gandi a poussé pas mal de monde dans les bras de postfix :grin:

Tu as des utilisateurs d’emails (beaucoup ?) sur ces domaines ?

Si oui, très franchement je te conseillerais de faire comme suggère Clochette et d’utiliser une solution packagée qui s’occupera de la configuration des éléments principaux (iRedMail est très bien, je ne connais pas les autres mentionnés par Clochette), car le 20 octobre c’est bientôt, et si tu dois configurer l’émission / réception d’emails, PLUS les migrations d’emails existants PLUS les configs DNS (SPF, DKIM, DMARC) des domaines PLUS les indispensables filtres anti-spam en entrée et en sortie (si tu ne veux pas que tes utilisateurs plombent la réputation de ton domaine en envoyant des pourriels), ça va être un peu juste, niveau timing.

1 J'aime

Bonjour Spunik93,

Oui j’ai une centaine d’utilisateurs car j’ai une soixantaine de domaines.
Je sais que ça fait beaucoup.

Donc tu me conseilles iReMail.
Je ne connais pas. Et je peux gérer plus domaines ?
Merci

J’ai parlé d’iRedMail car c’est celui que je connais et utilise (on peut en effet administrer plusieurs domaines avec, oui). Tu peux aussi jeter un œil aux autres solutions du même acabit, il y en a peut-être une qui sera plus adaptée à ton besoin.

Principalement (dans le cas d’iRedMail), il s’agit de scripts shell qui vont s’occuper de la configuration postfix, dovecot, éventuellement lien avec un annuaire ldap et/ou une base de données mysql ou postgresql, en plus d’installer et configurer facultativement un serveur web avec un webmail (roundcube, mais il est sans doute aisé d’utiliser zimbra à la place) et une petite interface admin, pour la gestion des domaines, des comptes, aliases, etc.

A savoir aussi qu’iRed est en 2 versions: la version gratuite (qui suffit pour mes usages) et une version pro (pour le nombre de domaines, c’est illimité y compris en version gratos).
https://www.iredmail.org/admin_panel.html

Postfixadmin n’est qu’un interface web pour gérer les adresses et les domaines enregistrées dans une bas MySQL.

Parfois il vaut mieux payer pour un service qui fonctionne que de bricoler un truc qui va tomber en rade ou pire servir de relai aux spammeurs.
Et on ne devient pas administrateur système en 15 jours (enfin si, mais pas comme ça…)

Non, non et non.
Si c’était le cas tu aurais vu immédiatement qu’il manque les directives virtual_mailbox_domains, virtual_mailbox_maps, etc. dans ton fichier main.cf et qu’il ne faut surtout pas qu’un domaine pour le quel ton MTA est la destination finale soit à la fois dans mydestination et virtual_mailbox_domains.

Alors oui il y a des solutions « clé en main » comme celle citées dans d’autre réponses. Mais si elle masquent (un peu) la complexité de l’installation et de la configuration, ce n’est pas forcément plus simple à l’usage (maintenance, évolution) et surtout cela empêche de comprendre les détails du fonctionnement de cet ensemble de services.

Il faut bien comprendre que le MTA (postfix) et le MDA (dovecot) c’est juste une base. Après il faut au minimum implémenter et configurer SPF, DKIM, DMARC, un Postgrey ou Postscreen, un anti-spam (rspamd), une politique de mot de passe très rigoureuse.

Si tu as beaucoup d’utilisateurs il faudra aussi limiter leur capacité d’envoi (en fréquence et en volume) et leur espace de stockage (quota) et surveiller qu’il n’utilisent pas le service à des fins malveillantes (spam, phishing). J’oublie sûrement plein de choses…

Avec un tel nombre d’utilisateurs et de domaines c’est un service professionnel. Il faut donc faire appel à un professionnel, soit pour configurer ton serveur, soit pour te fournir le service clé en main.

Oui en refaisant mon serveur j’ai oublié de remettre les virtuals

virtual_mailbox_base = /var/mail/
virtual_uid_maps = static:5000
virtual_gid_maps = static:8

virtual_mailbox_maps = mysql:/etc/postfix/mysql/mysql_virtual_mailbox_maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql/mysql_virtual_domain_maps.cf

De plus le serveur DNS est bien configuré.

Merci pour tout

1 J'aime

Ok et cela fonctionne maintenait ?

Oui merci beaucoup et de ta patience.

Comme je suis tête en l’air.
En plus c’était dans mes notes.
Je vais faire plus attention à avenir.

Merci merci
Alain