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

Bonjour,

/etc/nginx/nginx.conf
user www-data;
worker_processes auto;

pid /var/run/nginx.pid;
events { worker_connections 1024; }

http {
        include /etc/nginx/mime.types;
        default_type  application/octet-stream;

        access_log /var/log/nginx/access.log combined;
        error_log /var/log/nginx/error.log error;

        sendfile on;
        keepalive_timeout 20;
        keepalive_disable msie6;
        keepalive_requests 100;
        tcp_nopush on;
        tcp_nodelay off;
        server_tokens off;

        gzip on;
        gzip_buffers 16 8k;
        gzip_comp_level 5;
        gzip_disable "msie6";
        gzip_min_length 20;
        gzip_proxied any;
        gzip_types text/plain text/css application/json  application/x-javascript text/xml application/xml application/xml+rss  text/javascript;
        gzip_vary on;

        include /etc/nginx/sites-enabled/*.conf;
        client_max_body_size 100m;
}
/etc/nginx/sites-enable/postfixadmin.conf
server {
   listen 80;
   server_name     postfixadmin.monnomdedomain.tdl;
   root            /var/www/postfixadmin;
   index           index.php;
   charset         utf-8;

   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;
   }
}

/etc/nginx/fastcgi_params
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;
Dans /etc/nginx/conf.d/

je possede : cache default.conf exemple_ssl.conf php php-manager

Quand j'essaye d'aller sur le lien setup je passe de suite en https pas moyen autrement
Tes fichiers de configuration sont bons pour moi, vérifie les permissions des fichiers sous /var/www/postfixadmin, le soucis peut aussi venir de la configuration de php-fpm (/etc/php5/fpm/...)
Les droits des fichier /var/www/postfixadmin appartiennent www-data.

A quoi pense-tu pour php5/php-fpm ?
Dans le fichier /etc/php5/fpm/pool.d/www.conf, vérifie que tu ai bien ces lignes :
user = www-data
group = www-data

listen = /var/run/php5-fpm.sock

listen.owner = www-data
listen.group = www-data
listen.mode  = 0660
Redémarre php-fpm :
service php5-fpm restart
Puis check les permissions du socket /var/run/php5-fpm.sock ( www-data:www-data / 660 )
J'ai bien tous ça dans php5-fpm

J'ai même essayer ton script, je me retrouve bloquer au setup sauf que la j'ai une erreur 500.
Je viens d'essayer un truc qui fonctionne chez moi. Au niveau du réglage des hosts chez ton registrar, j'ai mis postfixadmin | hostname.domain.tld | CNAME au lieu de postfixadmin | hostname | CNAME . J'ai attendu que ça se propage et ensuite bingo, la page s'affichait. Mais ça ne marche que si hostname.domain.tld n'est pas déjà assigné à autre chose.
Aliochka: moi j'ai fais mon propre serveur dns en ayant suivis le tuto de hard ou j'ai mis postfixadmin CNAME hostname
8 jours plus tard
Bonjour,
tout d'abord chapeau pour ce tuto il est très explicite, je l'ai suivi du début jusqu'à la fin et tout marche quoiqu'au départ j'ai eu quelques soucis mais cela à éviter vite régler. Je me suis posé la question de savoir si ton client de messagerie rainloop peut intégrer le LDAP afin de récupérer différents utilisateur? si oui quelle est la procédure à suivre?
Merci.
Je viens de mettre à jour le tutoriel, avec notamment :

- DMARC ( Domain-based Message Authentication, Reporting & Conformance ), que je vous recommande bien évidemment
- Sieve, pour faire du filtrage côté serveur (au lieu de le faire sur tous vos clients mail)
- Amélioration de la configuration de SpamAssassin avec l'auto-learning et le filtrage bayésien

Je vais mettre à jour le script un peu plus tard et comme d'habitude, si vous avez des remarques ou que vous trouvez un coquille, n'hésitez pas à poster sur ce fil de discussion.

Pour ceux qui sont vraiment intéressés par le monde du mail, je vous recommande vraiment, vraiment, mais vraiment de regarder la conférence de Benjamin Sonntag, co-fondateur de la Quadrature du net. Il reprend TOUT ce qu'il y a dans ce tutoriel et même un peu plus Elle dure 2h30, à voir en plusieurs fois si vous voulez mais c'est vraiment très intéressant. Si ça tenait qu'à moi, j'obligerai les personnes voulant monter un serveur de mail un minimum sérieux, à regarder cette conférence

http://www.iletaitunefoisinternet.fr/lemail-par-benjamin-sonntag/

Edit : Plusieurs personnes m'ont signalé que Hotmail considérait toujours les mails comme du SPAM avec la configuration décrite dans ce tutoriel. Je suis en train de rechercher la cause, en tout cas c'est le seul "gros" fournisseur de mail qui applique ça, pas de soucis avec les autres (Google, Orange, LaPoste, Free, SFR...etc).
Je me demande comment Microsoft applique sa politique de sécurité contre le spam, c'est vraiment très étrange, je me demande si il faudrait pas consulter leur feedback-loop.

Je vous tiens au courant.
8 jours plus tard
Bonjour et merci pour ta réponse j'ai pu fouiller dans ce sens et j'avoue que j'ai découvert pas mal de truc mais il y a toujours une question qui me vient à l'esprit à savoir est ce que rainloop permet la gestion des utilisateurs via LDAP et la prise en charge des protocoles CalDAV/CardDAV/WebDAV et ActiveSync pour synchronisation mobile et bureau.
Merci.
Pour la gestion des utilisateurs via LDAP c'est pas Rainloop qui gère ça mais Dovecot : http://wiki2.dovecot.org/AuthDatabase/LDAP
A ma connaissance, rainloop ne prend pas en charge CalDAV/CardDAV/WebDAV nativement, regarde peut-être au niveau des plugins.

Pour ce qui est d'ActiveSync, vu que c'est un protocole propriétaire lié à Exchange, c'est très improbable qu'il soit intégré. Pour la synchronisation entre ton bureau et ton mobile, le protocole IMAP reste parfaitement adapté, vu que c'est un standard depuis très longtemps, il est compatible avec à peu près tout.
encore merci pour tes éclaircissements, j'ai suivi attentivement comment il faut gérer les utilisateurs avec LDAP. Je reviens une fois de plus vers toi pur t'informer que j'ai mis en place un annuaire ldap qui marche, j'ai crée un utilisateur dans mon annuaire afin que ce dernier puisse se connecter à rainloop mais celui-ci ne se connecte pas par ailleurs j'ai installer roundcube juste pour voir ça marche et ce qui est bizarre cet utilisateur arrive à se connecter avec roundcube.J'aimerai savoir si tu peux m'éclairer sur ça!!
Merci.
Bonjour,

Merci pour ce tuto.
J'ai testé la connexion imap c'est ok.
Je suis en train de tester la connexion smtp.
Dans les logs j'ai le message
Jan 8 11:12:43 hostname postfix/submission/smtpd[3003]: connect from ip-.numericable.fr[81.xx.xx.xx]
Jan 8 11:12:44 hostname postfix/submission/smtpd[3003]: SSL_accept error from ip-36.numericable.fr[81.xx.xx.xx]: 0
Jan 8 11:12:44 hostname postfix/submission/smtpd[3003]: warning: TLS library problem: 3003:error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown:s3_pkt.c:1258:SSL alert number 46:
Jan 8 11:12:44 hostname postfix/submission/smtpd[3003]: lost connection after STARTTLS from ip-36.numericable.fr[81.xx.xx.xx]
Jan 8 11:12:44 hostname postfix/submission/smtpd[3003]: disconnect from ip-36..numericable.fr[81.xx.xx.xx]

Si qq'un a une piste je suis preneur car je n'ai rien trouvé sur le net.

merci

Arnaud
warning: TLS library problem: 3003:error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown:s3_pkt.c:1258:SSL alert number 46
Cette erreur veut dire que le client n'a pas réussi à vérifier le certificat SSL côté serveur, donc le handshake TLS et l'authentification ne peut pas être fait correctement. Vérifie la configuration de Postfix et les certificats SSL.
Bonjour,

Tout dabbord je tenais à vous féliciter pour ce magnifique tuto si bien détaillé et précis. Après avoir parcouru tout le web sur la configuration d'un serveur mail sur une debian je dois dire que votre tuto est PARFAIT !!!

Donc pour résumer, j'ai paramétrer mes Serveurs de Mail tout comme il faut, je peux envoyer / recevoir des emails sans problèmes via Rainloop ou depuis un client mail comme Thunderbird.

Concernant le score avec mail-tester j'obtiens un 10/10, donc correctement configuré tous les DNS, Reverse, DKIM, ..., par contre lorsque j'envoie un message avec juste comme contenu "TEST" sur une adresse de type "hotmail" ou "outlook", j'attéris systématiquement dans les SPAMS.

Est ce que vous auriez une idée ? Merci
J'ai ce problème depuis quelques semaines déjà, j'ai vraiment tout tenté... mon serveur de mail est même inscrit sur DNSWL qui est réputée être une des meilleurs whitelist au monde mais malgré ça le soucis persiste encore. Je suis certain qu'il n'y a aucun problème au niveau du tutoriel, je connais suffisamment les mécanismes autour du mail pour affirmer ça.

C'est le seul fournisseur qui réagit comme ça, donc pour moi il n'y a qu'une raison possible :

Microsoft a blacklisté les plages d'adresses IP correspondants aux Kimsufi, peut-être qu'ils recevaient énormément de SPAM de ces serveurs. Après ça reste une supposition, mais vu que j'ai pas de soucis avec un serveur de mail chez SoYouStart.

Donc il y a que 3 solutions :

1. Soit il faut changer d'hébergeur.

2. Soit il faut contacter la feedback-loop de microsoft. Bon courage, parce que tu vas tomber sur un robot qui va te dire qu'il n'y a aucun problème avec ton serveur, mais tu peux quand même tenter : Feedback-Loop

3. Dernière solution : Inscrire son serveur de mail dans une whitelist suffisamment réputée pour qu'elle soit pris en compte par Microsoft.
Les 3 principaux acteurs dans ce domaine sont DNSWL, SpamHaus et ReturnPath
Ok merci pour ta réponse rapide. Je suis en train de me préparer un script php pour testé tout ça avec un template de mail pour pouvoir faire du mailing je vais essayer de rajouté les liens de désinscriptions (List-Unsubscribe), contenu texte et contenu html et je vais voir si y a du mieux.
Sinon, il doit forcément y avoir quelque chose qui bloque genre une nouvelle règle que Microsoft a ajouté sur ses serveurs et que l'on ne connait peut être pas encore. Si j'arrive à aboutir à du mieux je te tiendrais au courant.
12 jours plus tard
Salut Hard,

Dis-moi, j'ai un souci depuis ce matin, et j'ai ça dans mes logs :
Jan 20 09:50:42 postfix/postdrop[4340]: warning: mail_queue_enter: create file maildrop/544308.4340: Permission denied
Si je lance :
#postfix check
postfix/postfix-script: warning: not set-gid or not owner+group+world executable: /usr/sbin/postqueue
postfix/postfix-script: warning: not set-gid or not owner+group+world executable: /usr/sbin/postdrop
Pourtant, si je regarde les droits, ça semble être le bon propriétaire :
-rwxr-xr-x  1 root postdrop    18488 mars   6  2013 postdrop
-rwxr-xr-x  1 root postdrop    18440 mars   6  2013 postqueue
/usr/sbin# stat -c "%a %n" postqueue 
755 postqueue
(de même pour postdrop)

Des permissions/droits qui auraient changées ?