• Serveurs
  • [Discussion] Installer un serveur de mail avec Postfix et Dovecot

@Wonderfall,
root@kimsufi:/var# ls -l | grep mail
drwxrws---  4 vmail vmail  4096 Oct 12 18:18 mail
En effet c'est la première chose que j'ai vérifié mais comme tu peux le voir vmail est bien le owner de /var/mail .

@Hardware, non aucun autre MTA autre que postfix..

Je ne comprend pas pourquoi il ne prend pas en compte le maildir de /etc/dovecot/conf.d/10-mail.conf ..
Est ce qu'il ne faudrait pas indiquer un home_maildir dans postfix ? ou paramétrer procmail ?

Merci encore de votre aide
Le home maildir est déclaré seulement dans dovecot, postfix ne fait pas de stockage, il réceptionne les mails et les envoie par LMTP à Dovecot.

Pourquoi avoir mis le chemin du fichier dans les arguments pour l'authentification ?
userdb {
  driver = static
  args = uid=vmail gid=vmail /etc/dovecot/dovecot-sql.conf.ext
  # Tuto : args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
J'ai remarqué la même incohérence dans ce fichier ( à force de manipuler j'ai du essayer ce paramètre, je ne vois vraiment pas de raison logique)
Pour résumer mon action j'ai remis le paramètre
userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
puis un restart des services cependant toujours le même problème le mail arrive dans le fichier /var/mail/remi ( je précise que je le supprime à chaque fois)..
Rien d'anormal pour moi dans ta conf, essaye de reprendre un par un les fichiers de conf, j'ai peut-être pas vu quelque chose.

Quel est l'arborescence du répertoire remi ? pour voir si de part sa nature, on peut retrouver l'origine du problème.
je sèche également sur le coup et vu que j'ai aucun warning..
dans /var/mail/, remi est un fichier rassemblant les mails entrant.
Il y a un autre programme qui s'occupe du stockage de tes mails au format mbox (/vail/mail/username), faudrait que tu trouves lequel, c'est pas dovecot en tout cas, vu ta configuration.
Merci pour ton aide en tout cas, je vais refaire une config a neuf, je vois pas d'autres solutions.
Bonjour,

Le tuto originel m'ayant fait peur par sa longueur, je me suis tourné vers le script d'autoinstall de Postfix.

L'installation en elle-même ne semble pas avoir posée de problème, aucun message d'erreur.
Je semble pourtant oublier une chose ou deux étant donné que ça ne fonctionne pas chez moi.
En toute logique je dirait que je chie ici :
Ajoutez la ligne ci-dessous dans le fichier Hosts de votre pc
si votre nom de domaine n'est pas encore configuré pour
le sous-domaine xxxx

 - Windows : c:\windows\system32\driverc\hosts
 - Linux/MAC : /etc/hosts

Pour finaliser l'installation de PostfixAdmin, allez à l'adresse suivante :
J'ai donc modifié le fichier hosts dans /etc mais une fois le serveur reboot, je n'ai accès à plus rien. Il semble donc que ma configuration ne soit pas correcte. Je ne sais en plus pas si ça "craint" de vous mettre ici l'ip et / ou le reverse. Dans tous les cas, je suis censé accéder à un http://postfixadmin.ip/setup.php et je n'y arrive pas.

En l'état, tout fonctionne sur le serveur sauf ça

Une idée ?

Merci d'avance pour votre aide.
Le debug complet :
### Rapport pour Mail généré le 13-10-2015 à 14:17

Kernel : 3.14.32-xxxx-grs-ipv6-64

...................................
## Check Ports                  ##
...................................
25 :

110 :

143 :

587 :

993 :

995 :

4190 :


...................................
## Check Softs                   ##
...................................
Le programme postfix est installé
Le programme postfix-mysql est installé
Le programme dovecot-core n'est pas installé
Le programme dovecot-imapd n'est pas installé
Le programme dovecot-lmtpd n'est pas installé
Le programme dovecot-mysql n'est pas installé
Le programme dovecot-sieve n'est pas installé
Le programme dovecot-managesieved n'est pas installé
Le programme opendkim n'est pas installé
Le programme opendkim-tools n'est pas installé
Le programme opendmarc n'est pas installé
Le programme spamassassin n'est pas installé
Le programme spamc n'est pas installé

...................................
## OpenDKIM Confs               ##
...................................

##### ----------- File : /etc/opendkim.conf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/opendkim/TrustedHosts -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/opendkim/KeyTable -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/opendkim/SigningTable -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/opendmarc.conf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

...................................
## DoveCot Confs                ##
...................................

##### ----------- File : /etc/dovecot/dovecot.conf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/dovecot/dovecot-sql.conf.ext -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/dovecot/conf.d/auth-sql.conf.ext -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/dovecot/conf.d/10-auth.conf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/dovecot/conf.d/10-mail.conf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/dovecot/conf.d/10-master.conf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/dovecot/conf.d/10-ssl.conf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/dovecot/conf.d/20-lmtp.conf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/dovecot/conf.d/90-sieve.conf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

...................................
## PostFix Confs                ##
...................................

##### ----------- File : /etc/postfix/main.cf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/postfix/master.cf -----------------------------------------------------------------------------------------------------------------------------

#
# 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)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd
#smtp      inet  n       -       -       -       1       postscreen
#smtpd     pass  -       -       -       -       -       smtpd
#dnsblog   unix  -       -       -       -       0       dnsblog
#tlsproxy  unix  -       -       -       -       0       tlsproxy
#submission inet n       -       -       -       -       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 smtpd_relay_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#smtps     inet  n       -       -       -       -       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       -       -       -       -       qmqpd
pickup    unix  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
#qmgr     unix  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
relay     unix  -       -       -       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       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}

##### ----------- File : /etc/postfix/mysql-virtual-mailbox-domains.cf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/postfix/mysql-virtual-mailbox-maps.cf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/postfix/mysql-virtual-alias-maps.cf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

...................................
## ClamAV Confs                ##
...................................

##### ----------- File : /etc/clamav/freshclam.conf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/clamav/clamd.conf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

...................................
## Spamassassin Confs            ##
...................................

##### ----------- File : /etc/spamassassin/local.cf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/default/spamassassin -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

...................................
## Logs                          ##
...................................

##### ----------- File : /var/log/mail.warn -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /var/log/mail.err -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

...................................
## Vhost Confs                   ##
...................................

##### ----------- File : /etc/nginx/sites-enabled/rainloop.conf -----------------------------------------------------------------------------------------------------------------------------

--> Fichier Invalide

##### ----------- File : /etc/nginx/sites-enabled/postfixadmin.conf -----------------------------------------------------------------------------------------------------------------------------

server {
    listen          80;
    server_name     postfixadmin.ip-188-165-211.eu;
    return 301      https://$server_name$request_uri; # enforce https
}

server {
    listen          443 ssl;
    server_name     postfixadmin.ip-188-165-211.eu;
    root            /var/www/postfixadmin;
    index           index.php;
    charset         utf-8;

    ## SSL settings
    ssl_certificate           /etc/ssl/certs/mailserver_nginx.crt;
    ssl_certificate_key       /etc/ssl/private/mailserver_nginx.key;
    ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers               "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK";
    ssl_prefer_server_ciphers on;
    ssl_session_cache         shared:SSL:10m;
    ssl_session_timeout       10m;
    ssl_ecdh_curve            secp384r1;

    add_header Strict-Transport-Security max-age=31536000;

    auth_basic "PostfixAdmin - Connexion";
    auth_basic_user_file /etc/nginx/passwdfile;

    location / {
        try_files $uri $uri/ index.php;
    }

    location ~* \.php$ {
        include       /etc/nginx/fastcgi_params;
        fastcgi_pass  unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

...................................
## DNS                           ##
...................................

- MX       : ip-188-165-211.eu.	86400	IN	MX	1 redirect.ovh.net.
- SPF      : 
- DKIM     : 
- DMARC    : 
- PFA      : 
- RAINLOOP : 
- REVERSE  : ns312216.ip-188-165-211.eu.


...................................
## DOVEADM                       ##
...................................

- User Info --------------------

--------------------------------

- Dovecot errors ---------------

--------------------------------

Dans mon fichier hosts :
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
188.165.211.33       	ns312216.ip-188-165-211.eu	ns312216
2001:41D0:2:9E21::	ns312216.ip-188-165-211.eu	ns312216

# The following lines are desirable for IPv6 capable hosts
#(added automatically by netbase upgrade)

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Comment ça, "postfixadmin.ip" ? Tu ne peux pas faire ça. Change le server_name du vhost correspondant avec postfixadmin.domaine.tld (puisque tu dois avoir un nom de domaine, donc tu crées un enregistrement pour ce sous-domaine comme tu sais faire).
Tu m'a totalement perdu. Dans le script, une ligne stipulait que "postfixadmin" était "par défaut"; j'ai donc laissé ça pensant pouvoir ensuite rediriger vers postfixadmin.mondomaine chez mon fournisseur de NDD.

Edit : Si d'aventure je me lance dans un truc ultra complexe, la manip pour supprimer proprement les modif effectuées par le script peut être intéressante aussi
Euh quand je parle du fichier host c'est celui du pc et pas celui du serveur. J'ai indiqué le chemin pour Windows et OSX/Linux.
Ajoutez la ligne ci-dessous dans le fichier Hosts de votre PC
si votre nom de domaine n'est pas encore configuré pour
le sous-domaine xxxx

- Windows : c:\windows\system32\driverc\hosts
- Linux/MAC : /etc/hosts
Ah ! Je m'étais mis en tête de modifier le host du serveur, ce n'était pas clair.

J'ai donc modifié le host windows et effectivement, ça a fonctionné.
J'ai donc choisit un nouveau mot de passe, l'ai confirmé et ai tenté de générer le hash.
Or, je me suis mangé un bon gros "délai d'attente dépassé" et depuis, impossible d'accéder de nouveau à l'url en question.
Ca mouline dans le vide et plus rien.
Bonjour à tous,
j'ai utilisé le script d'installation fourni par Hardware à cet adresse : http://mondedie.fr/d/5793/1
L'installation a l'air de se passer correctement, j'arrive à me connecter à mon panneau d'administration postfixadmin, je crée un nouvel compte mail, etc.
Puis l'installation de rainloop se fait, mais quand j'essaye de me connecter sur le pannel d'administration de rainloop avec les identifiants par défaut (admin/12345) celà ne marche pas. j'essaye d'aller modifier les identifiants dans configuration.ini qui se trouve dans /var/www/rainloop/data/... mais il n'existe pas (peut être parce que je ne me suis jamais connecté sur rainloop encore ?). Bref J'ai lancé le script de debugging dont voici le contenu : http://pastebin.com/nStCWxyT
On voit tout de suite qu'il y a un souci car /etc/postfixadmin n'existe pas.
Ma question est donc, celà a t il un rapport avec le fait que je ne puisse pas me connecter sur le panel admin de rainloop ? Et également, comment est ce possible que /etc/postfix n'existe pas mais que j'aie quand même réussi à me connecter au panel d'admin de postfix et créer des comptes mail et des alias ?
Merci d'avance !
EDIT : Des gens ont le même problème sur ce post : https://bugs.launchpad.net/ubuntu/+source/postfix/+bug/42947
Ils conseillent de purger l'install de postfix, de reboot et de réinstaller, est ce que je ne vais pas casser toute la config faite sur mon serveur si je fais ça ?
EDIT 2 : Mon serveur est sous debian wheezy
Je te conseille d'exécuter le script de désinstallation puis de recommencer l'installation.
Salut,

Avant de raconter mon problème mineur (à mon avis), merci pour ce tuto en fr et détaillé qui m'a enfin donné la motivation d'installer mon propre serveur mail .

J'en suis pour l'instant à l'envoi/réception de mail « 9 - Tests de fonctionnement ».
Je reçois et envois bien les mails (google me les envoie dans les spams, mais normal).
Par contre, dans mon mail.log, je n'ai aucune référence au auth-worker, et ça, bah ça m'inquiète, et ne voudrais pas continuer le tuto si la base est bancale .
On s'en fout, ou ça cache quelque chose de bizarre ?

Je suis sur une Debian 8, fraichement installé, donc avec tous les paquets à jour.
Au besoin, voici le rapport de debug.
Bien le bonjour

Je reviens sur ce sujet, j'ai une petite erreur:
You have more than one DKIM signature in your message.
que j'utilise Rainloop depuis le serveur, ou Thunderbird depuis mon debian desktop via le smtp du server web, j'ai la même erreur.
D'où peux venir le soucis ?
Ce n'est pas thunderbird qui signe car j'ai essaiyé via une machine virtuelle sans DKIM et là l'erreur est que le mail n'est pas signé par DKIM.

J'ai vérifié un peu tout, mais certainement loupé un truc.

Si quelqu'un à une idée je suis preneur
@kouinkouin : rien d'inquiétant, tu peux continuer sans problème je pense.

@evart : Ta clé publique DKIM n'est pas correctement déclarée dans le DNS, reprend le tuto, j'ai expliqué en détail comment faire selon la taille de la clé.
Salut merci pour ton temps, en fait j'ai testé les trois méthodes, sur trois jours, celle d'aujourd'hui étant la clef en une seule ligne.
(j'ai abrégé la clef avec ... et remplacé le domaine par domain.tld, ce qui n'est évidemment pas le cas dans le fichier de zone du domaine )
mail._domainkey IN      TXT     ( "v=DKIM1; k=rsa; p=MIGfMA0GC...3AOp2K0/Uy+FcpruQIDAQAB" )  ; ----- DKIM key mail for domain.tld
c'est ce que me sort le fichier mail.txt

Peut être faut il que je reprenne tout le processus de signature ? (l'install à été faite avec le script auto à la base)
Requête le serveur DNS de ton domaine pour voir si l'enregistrement est bon et qu'il est pas tronqué quelque part.
dig +short TXT mail._domainkey.domain.tld
etrangement ce n'est pas la même clef que dans le fichier mail.txt

la clef du fichier mail et du fichier de zone sont les mêmes, celle retournée par le dig non.
Peut-être que la propagation n'est pas encore effective, si tu veux être sur du contenu de la zone, requête directement le NS principal de ton domaine :
dig +short TXT mail._domainkey.domain.tld @adresse_du_ns
Les NS peuvent être obtenus comme ceci avec dig ou bien avec un whois :
dig +short NS domain.tld