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

Le soucis c'est que lorsque j'essaye de me connecter dessus, un message m'indique que le domaine n'est pas autorisé.
Tu utilises Rainloop ? Si oui, c'est là que se situe ton problème. Il faut ajouter le domaine avec l'interface d'administration et les comptes autorisés à s'y connecter dans une whitelist.
Wonderfall wrote:
Le soucis c'est que lorsque j'essaye de me connecter dessus, un message m'indique que le domaine n'est pas autorisé.
Tu utilises Rainloop ? Si oui, c'est là que se situe ton problème. Il faut ajouter le domaine avec l'interface d'administration et les comptes autorisés à s'y connecter dans une whitelist.
Yep, c'était ça, merci. Je n'avais juste pas compris comment ajouter mon 2e domaine sur postfix, j'ai simplement mis le domaine et les parametres imap/smtp sur l'autre ou est postfix et ça a marché sans problème.

9/10 sur mail-tester.com ça m'a pris des heures pour config les derniers trucs.. mais c'est bon par contre je suis blacklist sur un truc... à cause de l'ip
J'ai une question concernant "la liste des dossiers système"


Quand, je configure un compte de messagerie dans thunderbird, il n'y a pas pas cette liste de dossiers. Je peux uniquement créer des dossiers locaux.

Quand, je passe par le webmail de rainloop, que je choisis la liste des dossiers système, se créer alors les dossiers "classique" brouillons, corbeille...

Quand, je me reconnecte alors avec thunderbird, il synchronise cette liste et j'ai bien tous les dossiers.

Est-il possible, de créer cette liste de dossier directement, sans passer par rainloop?

Sur mon raspberry Pi à la maison la version de dovecot est : 2.1.7
Du coup j'ai commenté les lignes suivantes dans le fichier 10-ssl.conf pour que le service redémarre sans erreurs.
#ssl_prefer_server_ciphers = yes # Dovecot > 2.2.x
"ssl_dh_parameters_length = 2048
Je ne sais pas, l'incidence que cela à.
The autocreated mailboxes are created lazily to disk only when accessed for the first time.
Ha oki, suffit juste de relancer le logiciel de messagerie et du coup il synchronise avec le serveur.

Je regarde la conf de sontag, super intéressant. Ce serait bien de mettre le lien en début du tuto. Je suis tombé dessus par hasard en cherchant dans le fil de discussion, si quelqu'un avait pas déjà eu le problème.

Merci pour l'info
8 jours plus tard
Hello,

great how to, congrats.
Just to notify a couple of things:

a) on Debian Jessie you don't need anymore to run "freshclam" from crontab, otherwise you will get an error:
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).
ERROR: /var/log/clamav/freshclam.log is locked by another process
The reason of that is because the freshclam deamon already does the updating work from itself
You can try with :
/etc/init.d/clamav-freshclam stop
run the
freshclam -v
and at this time should works

and start again the daemon
/etc/init.d/clamav-freshclam start
b) about opendmarc: it should be useful to send the Forensic report to other admins who want.

Copy the DMARC database schema SQL script to your database server(if that is not the same as your mail server). You can find the SQL script under following path:
/usr/share/doc/opendmarc/schema.mysql
Edit the script to fit your needs. The default is mostly fine. But if you do not wish to create your database users by hand, you should uncomment and edit these two lines in the script (to uncomment them remove the leading –):
-- CREATE USER 'opendmarc'@'localhost' IDENTIFIED BY 'changeme';
-- GRANT ALL ON opendmarc.* to 'opendmarc'@'localhost';
With this part you create a database user and allow him access to the database. The following parts of this statement may need to be modified:

‘opendmarc’@: This is the username, you can choose whatever you like as username. But make sure that you put it into quotes. (The @ is not part of the username, but simply here to differentiate the username from the database name)

‘localhost’: this the host from which the database user is allowed to connect. If the MySQL database runs on your mail server, you can leave localhost here. If your MySQL database runs on a different server, put the IP of your mail server here.

‘changeme’: This is the user password. I suggest a nice strong randomly generated password here.

opendmarc.*: This is the database name. if you did not change anything in the upper part of the script, leave this alone.
connect to the database with an account with sufficient privileges to create a new database and run the script. One of the simpler ways of doing this would be the following commands on the database server:
cd /path/to/schema.mysql/
mysql -u root -p < schema.sql
You can replace the root user with any user, that has the right to create new databases and users. The command will prompt you for the user password and then execute the script.

Once the database exists go back to your mail server and create a new script to read the history file into the database and send out the reports.
/etc/opendmarc/report_script
I used following script for this:
#!/bin/bash

DB_SERVER='database.example.com'
DB_USER='opendmarc'
DB_PASS='password
DB_NAME='opendmarc'
WORK_DIR='/var/run/opendmarc'
REPORT_EMAIL='dmarc [at] example [dot] com'
REPORT_ORG=example.com'

mv ${WORK_DIR}/opendmarc.dat ${WORK_DIR}/opendmarc_import.dat -f
cat /dev/null > ${WORK_DIR}/opendmarc.dat

/usr/sbin/opendmarc-import --dbhost=${DB_SERVER} --dbuser=${DB_USER} --dbpasswd=${DB_PASS} --dbname=${DB_NAME} --verbose < ${WORK_DIR}/opendmarc_import.dat
/usr/sbin/opendmarc-reports --dbhost=${DB_SERVER} --dbuser=${DB_USER} --dbpasswd=${DB_PASS} --dbname=${DB_NAME} --verbose --interval=86400 --report-email $REPORT_EMAIL --report-org $REPORT_ORG
/usr/sbin/opendmarc-expire --dbhost=${DB_SERVER} --dbuser=${DB_USER} --dbpasswd=${DB_PASS} --dbname=${DB_NAME} --verbose
You will need to fill in the database details of your previously created database here.

Make the script executable:
chmod +x /etc/opendmarc/report_script
And run it under the opendmarc user as a test:
su -c "/etc/opendmarc/report_script" -s /bin/bash opendmarc
When the script worked as expected you can add it to your cron jobs:
nano /etc/crontab
Add following line:
1 0 * * * opendmarc /etc/opendmarc/report-script
This example will execute the script every day at 00:01 under the user opendmarc.

c) Also, the new opendmarc 1.3.0 release seems to have the ability to do its own SPF checks. I haven’t tried this myself, but the SPFIgnoreResults and SPFSelfValidate options seem to control this behavior. Should be interesting to add to this howto so people uses it, can remove SPF milter like smf-spf.
Thank you so much for sharing your knowledge, it's very useful for me. I will take an in-depth look of forensic report with OpenDMARC, it's a great idea. Thx !
Bonjour,

pour commencer merci Hardware pour cet excellent tuto que j'ai suivi et adapter pour fonctionner avec docker.

je suis pour l'instant hébergé @home donc obligé de passer par un le relay smtp de mon fai mais ca marche du feu de dieu!

Du fait de cette contrainte j'ai configuré des redirections mails chez mon registar afin que mes mails soient routés sur une boite mail tampon si jamais mon serveur est Down ou inaccessible.
J'ai vu que dans postfixAdmin il est possible de configurer une récupération de mail via des boites externe mais lorsque j'essaye de configurer un compte ça plante .

Avez vous déjà testé cette fonctionnalité?

avez vous déjà testé ViMbAdmin? est il mieux que postfixadmin?

@++
Jericho63
jericho63 wrote:Bonjour,
J'ai vu que dans postfixAdmin il est possible de configurer une récupération de mail via des boites externe mais lorsque j'essaye de configurer un compte ça plante .
C'est normal, je n'ai pas intégré cette fonctionnalité dans le tuto, il faut que tu configures les directives relay_domains et smtpd_relay_restrictions dans le fichier de config de Postfix. Regarde la documentation de postfixadmin, ils expliquent comment configurer ça.
jericho63 wrote:Bonjour,
avez vous déjà testé ViMbAdmin? est il mieux que postfixadmin?
Je connais depuis quelques années ViMbAdmin mais j'ai jamais pris la peine de le tester parce que Postfixadmin me suffit amplement. La doc sur github est plutôt complète et bien foutue, y a pas mal de détails.
merci pour ton retour, je vais jeter un œil a la doc de postfixadmin mais pour l'instant leur site semble inaccessible...
Bonjour !!

Super tuto, merci.
J'ai utilisé le script mais ce que je suggère est valable pour le script et pour le tuto.

J'ai rencontré le soucis suivant et je pense qu'il faudrait le précisé dans le tuto et/ou le proposer lors de l'éxécution du script :
Mon registrar ne me permettait pas de mettre une clé publique pour DKIM de plus de 1024. Oui c'est aberrant mais c'est comme ça...
Pour précision, je suis chez Namecheap.

donc il faut proposer :
 opendkim-genkey -s mail -d domain.tld -b 1024
au lieu de :
opendkim-genkey -s mail -d domain.tld -b 4096
Sinon je ne peux pas mettre la clé dans les Records ^^
Voilà

(Durant mes recherches j'ai trouvé un post de qqn chez freenom, je pense que c'est le même genre de restriction)
Oui tu as raison, je vais ajouter une note par rapport à ça.

Je comprends pas pourquoi certains registrars mettent en place ce genre de restriction, aujourd'hui c'est 2048bits minimum, en plus techniquement rien n'empêche cette taille de clé.

EDIT :

Voila l'extrait de la RFC :
RFC6376 wrote: Selecting appropriate key sizes is a trade-off between cost,
performance, and risk. Since short RSA keys more easily succumb to
off-line attacks, Signers MUST use RSA keys of at least 1024 bits for
long-lived keys. Verifiers MUST be able to validate signatures with
keys ranging from 512 bits to 2048 bits, and they MAY be able to
validate signatures with larger keys. Verifier policies may use the
length of the signing key as one metric for determining whether a
signature is acceptable.

Factors that should influence the key size choice include the
following:

o The practical constraint that large (e.g., 4096-bit) keys might
not fit within a 512-byte DNS UDP response packet

o The security constraint that keys smaller than 1024 bits are
subject to off-line attacks

o Larger keys impose higher CPU costs to verify and sign email

o Keys can be replaced on a regular basis; thus, their lifetime can
be relatively short

o The security goals of this specification are modest compared to
typical goals of other systems that employ digital signatures
- Je passe le tuto principal à 2048bits en précisant qu'avec certains registrars, il faudra utiliser une clé plus petite.

- Je passe le script à 1024 bits pour éviter les soucis de compatibilité et j'ajouterai une note pour prévenir qu'il est possible de régénérer cette clé avec taille supérieur.

EDIT 2 :

Voila c'est fait pour les deux :

https://github.com/hardware/mondedie-changelog/commit/64bf64b746b6fd2146ba3c58ffb98725121baa45
https://github.com/hardware/mailserver-autoinstall/commit/4e784fc7deefe57c19dfe610cf69764bdcde589f
Bonjour,

Tout d'abord merci pour ce tuto, j'ai fais les premières étapes et lors de ma connexion (via thunderbird) j’obtiens ce message d'erreur
dovecot: auth-worker(9780): Error: mysql(127.0.0.1): Connect failed to database (postfix): Access denied for user 'postfix'@'localhost' (using password: YES) - waiting for 5 seconds before retry
J'arrive bien à me connecter à mysql en ligne de commande avec les identifiants que j'ai utilisé dans les différents fichier de configuration, j'ai testé localhost et 127.0.0.1 (comme l'avais préconisé un précédent message) sans succès.

J'imagine bien qu'il y a un problème avec les identifiants mais je ne sais pas ou chercher a part les 3 fichiers.
ça vient du mot de passe de connexion à la bdd, vérifie que tu as bien renseigné ce mot de passe la où c'est nécessaire.
C'est bien ce que j'ai fais dans les fichiers :
-/etc/postfix/mysql-virtual-mailbox-maps.cf
-/etc/postfix/mysql-virtual-alias-maps.cf
-/etc/postfix/mysql-virtual-mailbox-domains.cf
-/etc/dovecot/dovecot-sql.conf.ext

j'ai même testé les confs comme ça

postmap -q example.com mysql:/etc/postfix/mysql-virtual-alias-maps.cf

et ça fonctionne

J'ai un # dans mon mot de passe ça pourrais poser un problème pour la connexion dans /etc/dovecot/dovecot-sql.conf.ext peut être?
Bonsoir, est ce que c'est normal que j'ai cette ligne pour le port 993?
tcp6       0      0 :::993                  :::*                    LISTEN      25187/dovecot
En effet, j'ai l'impression qu'il n'écoute pas 0.0.0.0
Il écoute sur une interface IPv6, c'est pour ça que tu ne vois pas 0.0.0.0 mais une autre notation ::
J'ai presque envie de chialer ! Ca fait deux jour que j'essaye et recommence des tuto tout ça a cause de ce diese ! merci infiniment ! Ca marche parfaitement !