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

Solinvictus wrote:Et autre chose en passant, mon instance rainloop est accessible en http et en https. Peut-on supprimer ou rediriger l'accès http vers https? (de même pour postfixadmin aussi)
Fait comme ça :
server {
   listen 80;
   server_name domain.tld;
   return 301 https://$server_name$request_uri;
}

server {
   listen          443 ssl;
   server_name     domain.tld;
   ...
}
Solinvictus wrote:Est-il possible de faire en sorte que postfixadmin.domain.tld ne soit joignable qu'en renseignant son url ? Par extension, tous les CNAME renseignés ramènent aussi vers postfixadmin, tant que je suppose, on n'a pas défini une vhost nginx en lien avec le CNAME.
Tu as juste à créer un vhost qui prend en charge les requêtes à destination de domain.tld.
C'est ce que j'ai dans mon fichier de rainloop.conf Hardware, mais j'ai toujours l'avertissement suivant :
nginx: [warn] conflicting server name "rainloop.domain.ltd" on 0.0.0.0:80, ignored
nginx
(C'est pas pour autant que ça ne marche pas.)

Quand tu écris :
server {
   listen 80;
   server_name domain.tld;
   return 301 https://$server_name$request_uri;
}

server {
   listen          443 ssl;
   server_name     domain.tld;
   ...
}
On doit lire rainloop.domain.ltd à la place de domain.ltd ?


edit :
Hardware wrote:Tu as juste à créer un vhost qui prend en charge les requêtes à destination de domain.tld.
Je t'avoue que je ne sais pas ce qu'il faudrait renseigner. Admettons :

Je créé une vhost "domain.conf" et je renseigne simplement :
server {
listen 80
server_name domain.ltld
}
Oui tu doit mettre rainloop.domain.tld
nginx: [warn] conflicting server name "rainloop.domain.ltd" on 0.0.0.0:80, ignored
ça veut tout simplement dire que tu as déjà un vhost qui prend en charge les requêtes à destination de rainloop.domain.ltd, donc forcement il y a un conflit.
Hardware wrote:Oui tu doit mettre rainloop.domain.tld
nginx: [warn] conflicting server name "rainloop.domain.ltd" on 0.0.0.0:80, ignored
ça veut tout simplement dire que tu as déjà un vhost qui prend en charge les requêtes à destination de rainloop.domain.ltd, donc forcement il y a un conflit.
Je comprends que l'avertissement m'indique qu'une vhost "rainloop" attend sur le 80 mais pourtant je n'ai que deux vhosts présentes et elles se trouvent dans "sites-enabled", à savoir :

* rainloop.conf
* postfixadmin.conf
Regarde mieux, je pense pas que nginx se trompe
La commande :
netstat -anp | grep nginx
me donne bien un nginx en écoute sur le 80.

Sinon, tu peux regarder "http://mondedie.fr/d/5751/182" (mon edit) Hardware s'il te plaît ?
Nan c'est pas suffisant, il faut aussi indiquer le dossier racine du vhost.

Comme ça pour les sous-domaines ?

Hardware wrote:Regarde mieux, je pense pas que nginx se trompe 😉
J'ai trouvé : lors de l'installation du LEMP, nous avons défini le fichier de conf suivant :
nano /etc/nginx/sites-available/default
et il comporte :
server {
listen 80;
server_name domain.ltd
...
}
On doit conserver ce fichier tel quel pour que le LEMP fonctionne correctement, non ?
C'est un vhost comme un autre, libre à toi de le modifier ou de le supprimer.
D'accord, je m'en suis donc séparé et par la même, soustrait à mon erreur. Merci de dispenser tes connaissances Hardware !
Salut,

Deux petits soucis après quelques semaines en prod.

-> Aucune trace de ClamAV dans mes logs, pourtant SpamAssassin oui.
-> Mes messages ne sont pas signés avec DKIM.

Je pense que les deux soucis sont liés. J'ai regardé dans mon main.cf
milter_protocol = 2
milter_default_action = accept
smtpd_milters = unix:/clamav/clamav-milter.ctl
non_smtpd_milters = inet:localhost:12301
smtpd_milters qui devrait être inet:localhost:12301 semble être écrasé à la fin du tuto par cette commande:
postconf -e 'smtpd_milters = unix:/clamav/clamav-milter.ctl'
Du coup comment faire pour faire fonctionner DKIM+ClamAV ?
Bonjour,

Tout d'abord je tiens à te remercier pour ce tuto d'une rare clarté.

Je l'ai suivi à la lettre et tout semble marcher pour le mieux.

Cependant j'ai une question : est-il possible (avec cette installation) avec Google d'importer un compte e-mail.
Théoriquement (et en ayant vu le schéma) oui.
Cependant je n'arrive ni avec Google ni avec l'application Mail de mon Mac à me connecter à mon compte.

J'arrive cependant à m'y connecter via Rainloop.

Qu'en penses-tu ?

De plus, ayant activé les logs pour voir les erreurs j'ai remarqué ceci :
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x10, ret=1: before/accept initialization [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2001, ret=1: before/accept initialization [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2001, ret=1: SSLv3 read client hello A [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2001, ret=1: SSLv3 write server hello A [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2001, ret=1: SSLv3 write certificate A [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2001, ret=1: SSLv3 write key exchange A [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2001, ret=1: SSLv3 write server done A [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2001, ret=1: SSLv3 flush data [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2002, ret=-1: SSLv3 read client certificate A [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2002, ret=-1: SSLv3 read client certificate A [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2001, ret=1: SSLv3 read client key exchange A [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2001, ret=1: SSLv3 read finished A [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2001, ret=1: SSLv3 write session ticket A [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2001, ret=1: SSLv3 write change cipher spec A [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2001, ret=1: SSLv3 write finished A [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2001, ret=1: SSLv3 flush data [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x20, ret=1: SSL negotiation finished successfully [XXX.XXX.XXX.XXX]
Nov  6 16:34:10 ns336071 dovecot: imap-login: Warning: SSL: where=0x2002, ret=1: SSL negotiation finished successfully [XXX.XXX.XXX.XXX]
Dois-je m'inquiéter de ces warnings ?
Le fait que le certificat soit auto-signé pose-t-il un problème à Google ?

Merci d'avance,

A bientôt
15 jours plus tard
Je rencontre un problème sous OS X : je ne parviens pas à envoyer de mail. L'application "Mail" n'a pas de protocole STARTTLS lorsqu'on configure le compte courriel. Je pense que ça vient de là ; Un de vous travaillerait-il sous OS X et serait-il parvenu à configurer correctement l'application ?

Merci !

edit : résolu en changeant de client mail. Celui par défaut ne semble pas authoriser le protocole STARTTLS.
6 jours plus tard
Solinvictus wrote:Malgré un 10/10, mon mail est considéré comme spam, par gmail notamment, ça arrive encore malgré ce score parfait ? 🆒
J'ai le même problème... As-tu pu le résoudre ? Avec le lien vers le formulaire d'aide de Google que donne Hardware ?
baldus wrote:
Solinvictus wrote:Malgré un 10/10, mon mail est considéré comme spam, par gmail notamment, ça arrive encore malgré ce score parfait ? 🆒
J'ai le même problème... As-tu pu le résoudre ? Avec le lien vers le formulaire d'aide de Google que donne Hardware ?
Oui ça semble résolu; Je n'ai rien fait de spécial, n'ai pas rempli le formulaire que me donnais Hardware. Attends quelques jours, comme je l'ai fait et constate, ou non, des progrès.
hello

je n'avais pas mis dans mon hosts le sous domaine postfixadmin je viens de le faire sur un 2eme terminal mais je pense que je dois relancer le serveur pour appliquer ?

comment faire pour retourner à la bonne partie de l'installation sans tout refaire

PS : j'en suis à
 Veuillez saisir le hash généré par le setup :
merki
Cognotte wrote:hello

je n'avais pas mis dans mon hosts le sous domaine postfixadmin je viens de le faire sur un 2eme terminal mais je pense que je dois relancer le serveur pour appliquer ?

comment faire pour retourner à la bonne partie de l'installation sans tout refaire

PS : j'en suis à
 Veuillez saisir le hash généré par le setup :
merki
Tu édites le fichier config.inc.php dans le dossier de postfixadmin et tu y colles ton hash. Ensuite tu peux relancer nginx, non ?
Tu es pas sur le bon topic cognotte, tu utilises le script d'installation ou tu fais l'installation à la main ?
script d'installation automatique
ouep c est tout bon je viens de poster dans l'autre

désolé
4 jours plus tard
Je suis entrain d'installer le serveur mail et l'url pour récupérer PostfixAdmin n'est plus valide.

Il faut utiliser celle-ci à la place:
wget http://sourceforge.net/projects/postfixadmin/files/postfixadmin/postfixadmin-2.92/postfixadmin-2.92.tar.gz
Je viens de vérifier le script, chez moi ça fonctionne bien avec cette url :
http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.92/postfixadmin-2.92.tar.gz
As-tu eu cette erreur :
/!\ ERREUR: L'URL de téléchargement de PostfixAdmin est invalide !
/!\ Merci de rapporter cette erreur ici :
-> https://github.com/hardware/mailserver-autoinstall/issues
Veuillez saisir une autre URL pour que le script puisse télécharger PostfixAdmin :
> ...
Je ne me souviens plus de l'erreur exacte mais ce n'était pas celle-ci.
En tout cas ça marche, maintenant il me faut juste régler mon problème de vhost afin d'avancer.

Il y a une erreur au niveau de la création de la base de donnée.

Il faut remplacer
mysql> GRANT ALL PRIVILEGES ON postfix.* TO 'rainloop'@'localhost';
Par
mysql> GRANT ALL PRIVILEGES ON `postfix`.* TO 'postfix'@'localhost';
Bonjour,

Tout d'abord merci pour votre tutoriel qui est bien réalisé, détaillé et agréable à lire !

J'ai tout de même DKIM qui déconne mais c'est pas grave, j'ai 9/10 avec mail tester.

Ma question est tout autre, je viens d'installer backup-manager pour mes sauvegardes et je souhaite sauvegarder tous les comptes et tous les mails mais sur google j'ai du mal à trouver ce qui doit être sauvegardé en vue d'une restauration éventuelle !

Pour l'instant je sauvegarde : /var/mail /var/spool/mail

Qu'en pensez vous ? Est ce suffisant ? Connaissez vous déjà un lien qui me montrerait comment restaurer ses mails et ses comptes ?

Merci par avance,

Los
Pierrick wrote: Il y a une erreur au niveau de la création de la base de donnée.

Il faut remplacer
mysql> GRANT ALL PRIVILEGES ON postfix.* TO 'rainloop'@'localhost';
Par
mysql> GRANT ALL PRIVILEGES ON `postfix`.* TO 'postfix'@'localhost';
Le caractère accent grave (backtick) n'est pas obligatoire dans ce cas là, il doit être surtout utilisé lors de l'utilisation de mots clé réservés par mysql ou des caractères un peu "exotiques", genre les espaces insécables...etc Je conseille d'utiliser plutôt les doubles quotes, vu que c'est conforme aux normes ANSI-SQL.

@lospepes72 :

- /var/mail
- La bdd de postfix
- Les fichiers de conf : /etc/postfix/... & /etc/dovecot/...

Regarde aussi du côté de mon script de sauvegarde, ça pourrait t'être utile : http://mondedie.fr/d/5884
Pierrick wrote:Je ne me souviens plus de l'erreur exacte mais ce n'était pas celle-ci.
En tout cas ça marche, maintenant il me faut juste régler mon problème de vhost afin d'avancer.

Il y a une erreur au niveau de la création de la base de donnée.

Il faut remplacer
mysql> GRANT ALL PRIVILEGES ON postfix.* TO 'rainloop'@'localhost';
Par
mysql> GRANT ALL PRIVILEGES ON `postfix`.* TO 'postfix'@'localhost';
Je rebondis là-dessus, pourquoi 'rainloop' est-il renseigné ici Hardware ? Tu l'as modifié récemment ?
Oh oui la bourde, j'avais pas vu, j'ai cru Pierrick faisait référence aux quotes... je sais pas pourquoi le terme 'rainloop' apparaît ici, surement une erreur de copier/coller je suppose. C'est corrigé en tout cas, merci à vous deux
Hardware wrote:
@lospepes72 :

- /var/mail
- La bdd de postfix
- Les fichiers de conf : /etc/postfix/... & /etc/dovecot/...

Regarde aussi du côté de mon script de sauvegarde, ça pourrait t'être utile : http://mondedie.fr/d/5884
Merci pour cette réponse, en faite j'ai pas précisé mais lors de la sauvegarde, je sauvegarde aussi tout /etc et toutes les bases de données de mon serveur donc normalement j'ai tout ! Juste /var/spool/mail semble inutile alors !

J'ai adapté le tutoriel d'ex_rat sur Backup-Manager à mes besoin

Je vais jeter un coup d’œil à votre script de sauvegarde !

Merci,

Los
Hardware wrote:Oh oui la bourde, j'avais pas vu, j'ai cru Pierrick faisait référence aux quotes... je sais pas pourquoi le terme 'rainloop' apparaît ici, surement une erreur de copier/coller je suppose. C'est corrigé en tout cas, merci à vous deux 😉
Ou c'est un mélange ? Parce que du coup, tu ne parles plus de la création de la database 'rainloop' alors qu'elle est nécessaire pour la gestion des contacts.
Je l'avais pas mis vu que c'était pas obligatoire pour le fonctionnement de rainloop, comme tu l'as dit, c'est nécessaire juste pour les gestions de contacts.
J'ai réussi à installer le serveur mail mais un problème persiste.
Je peux envoyer des mails et en recevoir via mon adresse root@hostname.domain.tld mais impossible de recevoir des mails à contact@domain.tld alors que je peux en envoyer...

Lorsque j'envoie un mail à cette adresse, le Mail Delivery Dubsystem m'indique:
The error that the other server returned was:
550 sorry, no mailbox here by that name (#5.1.1)

Je suppose que mon serveur n'accepte pas les mails à domain.tld mais je ne vois pas comment régler le problème...

Merci pour votre aide.

EDIT: À mon avis, c'est un problème de DNS mais je n'arrive pas à ajouter domain.tld à mes DNS Secondaires sur mon Kimsufi...

EDIT2: J'ai un peu touché aux DNS et désormais, je reçois bien les mails !

EDIT3: problème de retour, de nouveau impossible de recevoir les mails à l'adresse domain.tld
11 jours plus tard
Bonjour,

J'essaye de procéder a l'installation manuelle du serveur mail mais quand j'arrive a l'etape ou il faut aller a cette adresse ci : postfixadmin.domain.tld/setup.php
J'obtiens "File not found."

J'ai procéder a plusieurs installation mais toujours ce problème. et quand je fait avec le script auto je bloque aussi a cette etape ou il me dit erreur 500
Quel file not found ? L'erreur 404 de nginx ou l'erreur de php-fpm ?
Je sais pas quand j'essaye d'acceder la page de setup j'ai qu'un message file not found?
et l'erreur c'est nginx
Hello.

Ce message pour remercier l'auteur du tuto clair et précis. Grâce à toi, je peux enfin envoyer des mails sur hotmail, même s'ils tombent encore dans les spams malgré 10/10. Benis sois tu. Le changement des certificats auto-signés par des certificats "Comodo" n'a rien changé, donc je suppose qu'ils se basent sur autre chose mais ça reste un mystère.

Au sujet de l'erreur 500 de OsmOs, si cela se produit aussi bien avec le script qu'en installation mano, c'est probablement un problème au niveau du réglage de tes hosts.records dans bind ou chez ton registrar. J'ai remarqué que le réglage de rainloop, postfixadmin | hostname | CNAME fonctionnait pas chez moi. Je ne sais pas pourquoi, pas compris comment fonctionnent les alias encore. Pour savoir si c'est identique chez toi, essaye de configurer nginx normalement (sans passer par le CNAME) et vois si t'arrives à afficher la page.

Aliochk
@OsmOs :

Je pense que tu as un soucis de configuration, peux-tu me donner le contenu des fichiers de configuration suivants :
- /etc/nginx/nginx.conf
- /etc/nginx/sites-enabled/postfixadmin.conf
- /etc/nginx/fastcgi_params
- /etc/nginx/conf.d/...
@Aliochka :

Attends quelques jours, je pense que les enregistrements DNS sont pas encore totalement propagés, à ma connaissance Hotmail est assez pénible à ce niveau là. Mais bon si tu as 10/10 au test et que DKIM/SPF/Reverse...etc sont OK, normalement ça devrait être bon.