valenrom97
-
12 févr. 2020 à 20:28
zipe31
Messages postés36402Date d'inscriptiondimanche 7 novembre 2010StatutContributeurDernière intervention27 janvier 2021
-
13 févr. 2020 à 13:33
Bonjour,
Il y a quelques temps j’ai installé un serveur mail en suivant ce tutoriel https://www.youtube.com/watch?v=pe7x2o0Ys6s .
J’ai configuré une authentification avec courier-authdaemon qui me permet de m’identifier en TLS si je ne dis pas de bêtises.
Toute cette configuration a très bien fonctionné pendant plusieurs mois. Par ailleurs j’avais déjà une installation de serveur mail inspirée du même tutoriel mais sans le courier-authdaemon en TLS et ça a fonctionné pendant plusieurs années.
Depuis une coupure d’électricité ou depuis une mise à jour (je ne saurai vous dire) mon serveur mail ne veut plus démarrer. J’obtiens le message d’erreur suivant :
postconf: fatal: file /etc/postfix/master.cf: line 19: bad field count
postfix.service: Control process exited, code=exited status=1
Failed to start LSB: Postfix Mail Transport Agent.
postfix.service: Unit entered failed state.
postfix.service: Failed with result 'exit-code'.
J’ai regardé quelques questions qui traitent des erreurs similaires mais elles ne semblent pas réellement être identiques.
Lorsque je commente la ligne 19 du master.cf j’ai d’autres lignes qui bloquent plus bas. Bref, je finis par commenter toutes les lignes qui bloquent (toutes liées à l’authentification), je redémarre postfix et là ça fonctionne ! (Sauf que ma boite mail n’est plus du tout sécurisée) Alors je « décommente » les lignes préalablement commentées et je redémarre postfix, et là attention, ça fonctionne ! Mais si je redémarre complètement mon serveur (la machine) alors je retombe sur la même erreur, et il faut à nouveau jouer avec les lignes à commenter…
Auriez-vous quelques pistes à me donner afin de résoudre ce problème ?
Je glisse mon fichier de configuration master.cf, n’hésitez pas à me demander d’autres fichiers de configuration si cela peut vous aider à comprendre :)
Les lignes précédées par « ### -> » sont les fameuses lignes qui bloquent.
Merci beaucoup pour votre aide !
#
# Postfix master process configuration file. For details on the format
# of the file, see the master(5) manual page (command: "man 5 master" or
# on-line: http://www.postfix.org/master.5.html).
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (no) (never) (100)
# ==========================================================================
smtp inet n - - - - smtpd
#smtp inet n - y - 1 postscreen
#smtpd pass - - y - - smtpd
#dnsblog unix - - y - 0 dnsblog
#tlsproxy unix - - y - 0 tlsproxy
#submission inet n - y - - smtpd
# -o syslog_name=postfix/submission
### -> -o smtpd_tls_security_level=encrypt
### -> -o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o milter_macro_daemon_name=ORIGINATING
# -o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
#-o smtpd_client_restrictions=permit_sasl_authenticated,reject
### -> -o smtpd_helo_restrictions=permit_mynetworks,permit
### -> -o smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination # --- Block relay if not logged
### -> -o smtpd_sender_restrictions = reject_unknown_sender_domain # --- Block rellay if not logged
smtps inet n - y - - smtpd
# -o syslog_name=postfix/smtps
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
### -> -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
#628 inet n - y - - qmqpd
pickup unix n - y 60 1 pickup
cleanup unix n - y - 0 cleanup
qmgr unix n - n 300 1 qmgr
#qmgr unix n - n 300 1 oqmgr
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 smtp_helo_timeout=5 -o smtp_connect_timeout=5
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
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent. See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# ====================================================================
#
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
#
# Specify in cyrus.conf:
# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
#
# Specify in main.cf one or more of the following:
# mailbox_transport = lmtp:inet:localhost
# virtual_transport = lmtp:inet:localhost
#
# ====================================================================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
#
#cyrus unix - n n - - pipe
# user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# ====================================================================
# Old example of delivery via Cyrus.
#
#old-cyrus unix - n n - - pipe
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# ====================================================================
#
# See the Postfix UUCP_README file for configuration details.
#
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
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}
zipe31
Messages postés36402Date d'inscriptiondimanche 7 novembre 2010StatutContributeurDernière intervention27 janvier 20216 419 13 févr. 2020 à 08:14
Salut,
Alors je « décommente » les lignes préalablement commentées et je redémarre postfix, et là attention, ça fonctionne ! Mais si je redémarre complètement mon serveur (la machine) alors je retombe sur la même erreur, et il faut à nouveau jouer avec les lignes à commenter…
Si ton problème se situe au démarrage, commence par jeter un œil aux journaux correspondants :
sudo less -Rr /var/log/boot.log sudo less -Rr /var/log/syslog dmesg
/var/log/boot.log est vide
/var/log/syslog contient 6 lignes concernant postfix (les même que celles présentes dans ma question initiale) :
Feb 13 12:40:32 blackout postfix[1708]: * Starting Postfix Mail Transport Agent postfix Feb 13 12:40:34 blackout postfix[1708]: postconf: fatal: file /etc/postfix/master.cf: line 19: bad field count Feb 13 12:40:35 blackout postfix[1708]: postconf: fatal: file /etc/postfix/master.cf: line 19: bad field count Feb 13 12:40:36 blackout systemd[1]: postfix.service: Control process exited, code=exited status=1 Feb 13 12:40:36 blackout systemd[1]: postfix.service: Unit entered failed state. Feb 13 12:40:36 blackout systemd[1]: postfix.service: Failed with result 'exit-code'.
dmesg | grep postfix ne renvoie rien.
dmesg | grep lsb ne renvoie rien non plus.
Je me demande si le problème est réellement lié au redémarrage du serveur. A mon avis il s’agit plutôt d’un déblocage qui à lieu au moment ou je fais le jeu de commenter décommenter. Comme si cela permettait à un service dont postfix dépend de démarrer correctement, et une fois qu’il est démarré (le service), je peux à nouveau demander à postfix de reprendre en considération les lignes qui appellent ce service.
zipe31
Messages postés36402Date d'inscriptiondimanche 7 novembre 2010StatutContributeurDernière intervention27 janvier 20216 419
>
valenrom97
13 févr. 2020 à 13:15
valenrom97
>
zipe31
Messages postés36402Date d'inscriptiondimanche 7 novembre 2010StatutContributeurDernière intervention27 janvier 2021 13 févr. 2020 à 13:28
Oui ! Je viens de voir ce même post ! C'est exactement ça le problème :)
Au cas où le lien meurt, le dernier message dans ce post indique:
"Yes, looks like at least 2 spaces are needed for the indentation. Once space didn't work for me. "
Il fallait rajouter deux espaces devant ces lignes. Pourquoi ils n'y étaient pas.. mystère.
Merci beaucoup pour votre aide Zipe31 , mon problème est résolu, excellente journée !
zipe31
Messages postés36402Date d'inscriptiondimanche 7 novembre 2010StatutContributeurDernière intervention27 janvier 20216 419
>
valenrom97
13 févr. 2020 à 13:33
13 févr. 2020 à 12:58
/var/log/boot.log est vide
/var/log/syslog contient 6 lignes concernant postfix (les même que celles présentes dans ma question initiale) :
dmesg | grep postfix ne renvoie rien.
dmesg | grep lsb ne renvoie rien non plus.
Je me demande si le problème est réellement lié au redémarrage du serveur. A mon avis il s’agit plutôt d’un déblocage qui à lieu au moment ou je fais le jeu de commenter décommenter. Comme si cela permettait à un service dont postfix dépend de démarrer correctement, et une fois qu’il est démarré (le service), je peux à nouveau demander à postfix de reprendre en considération les lignes qui appellent ce service.
13 févr. 2020 à 13:15
13 févr. 2020 à 13:28
Au cas où le lien meurt, le dernier message dans ce post indique:
"Yes, looks like at least 2 spaces are needed for the indentation. Once space didn't work for me. "
Il fallait rajouter deux espaces devant ces lignes. Pourquoi ils n'y étaient pas.. mystère.
Merci beaucoup pour votre aide Zipe31 , mon problème est résolu, excellente journée !
13 févr. 2020 à 13:33