Ceci est une ancienne révision du document !


Installation d'une solution mail complète.


Installation d'une solution mail complète : Postfix, Dovecot, MySQL, Postfixadmin

Cette page propose un pas-à-pas pour mettre en place rapidement un serveur de messagerie en faisant appel à l'ensemble:

  • Une solution LAMP fonctionnelle.
  • Un certificat SSL (auto-signé ou autre) valide.
Rappel simple :
sudo apt-get install ssl-cert
sudo make-ssl-cert generate-default-snakeoil --force-overwrite

Installation des paquets

  1. Installez la première série de paquets utiles à savoir:
  2. On relance service apache
    sudo service apache2 restart
  3. On installe la seconde série de paquets utiles à savoir :

Création de l'administrateur mail dans MySQL

sudo mysql -u root -p

On créé la base de données (postfixadmin) et l'utilisateur (postfixadmin)

create database postfixadmin;
grant all on postfixadmin.* to 'mail'@'localhost' identified by 'mot_de_passe_administrateur_mail';

Postfixadmin permet de gérer graphiquement les domaines et les boites e-mail rattachées. Il permet de créer des administrateurs par domaine qui peuvent eux-mêmes créer des boites ainsi que des alias. Le tout se pilotant au travers d'un navigateur web.
Un paquet tout prêt est disponible et évite plusieurs étapes de configuration/mise en place. On va donc le télécharger et l'installer.

wget http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.3.5/postfixadmin_2.3.5-1_all.deb
sudo dpkg -i postfixadmin_2.3.5-1_all.deb

Configuration

Dans le fichier /etc/postfixadmin/config.inc.php, modifier/vérifier les variables comme suit :

$CONF['configured'] = true;
$CONF['postfix_admin_url'] = '/postfixadmin'; # à laisser tel quel pour le multi-domaine
$CONF['admin_email'] = 'me@example.com'; # l'adresse mail de l'administrateur général
$CONF['smtp_server'] = 'localhost';
$CONF['smtp_port'] = '25';
$CONF['encrypt'] = 'md5crypt';
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';

Dans le fichier /etc/postfixadmin/dbconfig.inc.php, insérer les accès MySQL précédemment créé (1.2).

$dbuser='postfixadmin';
$dbpass='mot_de_passe_administrateur_mail';
$basepath='';
$dbname='postfixadmin';
$dbserver=''; # utilisera la valeur par défaut : localhost
$dbport=''; # utilisera le port MySQL par défaut
$dbtype='mysql';

Lancer la configuration via : http://localhost/postfixadmin/setup.php
Créer un administrateur Postfixadmin (conseil : différenciez-le de l'administrateur mail (nom/mot de passe))

Attention un fois cet administarteur créé, le script vous retourne votre mot de passe "hasé". NOTEZ LE BIEN !!
Il sera utilisé dans votre configuration finale.

Insertion du mot de passe "hashé", éditer /etc/postfixadmin/config.inc.php et modifier la variable :

$CONF['setup_password'] = '… votre mot de passe hashé …';

Il faut ensuite protéger cette page (vous pourrez créer d'autres administrateurs via l'interface de postfixadmin).
Éditer /etc/apache2/conf.d/postfixadmin, et ajouter :

<Files "setup.php">
deny from all
</Files>

Se rendre sur la page http://localhost/postfixadmin, et créer le premier domaine. Ajouter une boite mail à ce domaine.
À ce stade, Postfixadmin est opérationnel.

Ici les utilisateurs sont virtuels, et donc indépendant de la création/gestion classique Unix. Un seul utilisateur (Unix) aura les droits sur ce dossiers et permettra de gérer les liaisons entre Dovecot et Postfix.
J'utilise personnellement l'utilisateur vmail et le groupe mail. Et mon répertoire se situe dans /home/vmail (ces valeurs sont à votre convenance).

Création du groupe mail et de l'utilisateur vmail

sudo groupadd mail
sudo useradd -r -u 150 -g mail -d /home/vmail -s /sbin/nologin -c "Propriétaire des répertoires e-mail virtuel" vmail

Création du répertoire

sudo mkdir /home/vmail
sudo chmod 770 /home/vmail

Application des droits.

sudo chown vmail:mail /home/vmail

Dovecot gère les connexions POP3 et IMAP, permet de gérer les mails locaux et récupère les courriers en provenance de Postfix.
Il gère également l'authentification SMTP.

Configuration

On attaque la partie la plus "fatiguante".
Éditer ou créer le fichier /etc/dovecot/conf.d/auth-sql.conf.ext avec le contenu suivant :

# Look up user passwords from a SQL database as
# defined in /etc/dovecot/dovecot-sql.conf.ext
passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}
# Look up user information from a SQL database as
# defined in /etc/dovecot/dovecot-sql.conf.ext
userdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}

Éditer le fichier /etc/dovecot/dovecot-sql.conf.ext et modifier comme suit :

# Database driver: mysql, pgsql, sqlite
driver = mysql

Ici remplacer mot_de_passe_postfixadmin par celui entrée à la section 1.2

# Examples:
#   connect = host=192.168.1.1 dbname=users
#   connect = host=sql.example.com dbname=virtual user=virtual password=blarg
#   connect = /etc/dovecot/authdb.sqlite
#
connect = host=localhost dbname=postfixadmin user=postfixadmin password=mot_de_passe_postfixadmin
# Default password scheme.
#
# List of supported schemes is in
# http://wiki2.dovecot.org/Authentication/PasswordSchemes
#
default_pass_scheme = MD5-CRYPT

Attention à l'UID et le GUID. Pour vérifier ces informations :

grep vmail /etc/passwd
vmail:x:150:1001:Virtual maildir handler:/home/vmail:/sbin/nologin
# Define the query to obtain a user password.
password_query = \
  SELECT username as user, password, '/home/vmail/%d/%n' as userdb_home, \
  'maildir:/home/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 1001 as userdb_gid \
  FROM mailbox WHERE username = '%u' AND active = '1'
# Define the query to obtain user information.
user_query = \
  SELECT '/home/vmail/%d/%n' as home, 'maildir:/home/vmail/%d/%n' as mail, \
  150 AS uid, 1001 AS gid, concat('dirsize:storage=', quota) AS quota \
  FROM mailbox WHERE username = '%u' AND active = '1'

Éditer le fichier /etc/dovecot/conf.d/10-auth.conf et modifier comme suit :

Configuration Amavis

Configuration ClamAV

Configuration SpamAssassin

Configuration

Configuration

Configuration

Configuration

http://sourceforge.net/projects/postfixadmin/ (projet de PostfixAdmin - eng)

  • utilisateurs/mcpeter/postfix_dovecot_mysql_postfixadmin.1349927863.txt.gz
  • Dernière modification: Le 11/10/2012, 05:57
  • par McPeter