Ceci est une ancienne révision du document !



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. Relancez le service apache
    sudo service apache2 restart
  3. Installez la seconde série de paquets utiles à savoir :

Création de l'administrateur mail dans MySQL

sudo mysql -u root -p

Créez la base de données (ici postfixadmin) et l'utilisateur (ici postfixadmin)

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

Plus d'informations sur la page MySQL

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.

Installation

Un paquet tout prêt est disponible et évite plusieurs étapes de configuration/mise en place. Il s'agit donc de

  1. le télécharger à cette adresse

Ceci se résume dans un terminal par:

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

Paramètres principaux

Ouvrez avec les droits d'administration le fichier /etc/postfixadmin/config.inc.php, pour 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';

Définition de la base de données

Ouvrez avec les droits d'administration le fichier /etc/postfixadmin/dbconfig.inc.php pour insérer les accès MySQL précédemment créés.

$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';

Mise en place

Lancez la configuration en saisissant dans votre navigateur l'adresse : http://localhost/postfixadmin/setup.php
Créez un administrateur Postfixadmin. Il est fortement conseillé de bien le différencier de l'administrateur mail quant à son ensemble nom/mot de passe.

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

Ouvrez avec les droits d'administration le fichier /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).
Ouvrez avec les droits d'administration le fichier /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.
Pour l'exemple, l'utilisateur sera vmail et le groupe mail. Le répertoire dédié sera dans /home/vmail (ces valeurs sont à votre convenance).

  • Création du groupe mail puis de l'utilisateur vmail associé à ce groupe
    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 dédié et les droits associés
    sudo mkdir /home/vmail
    sudo chmod 770 /home/vmail
  • Désignation du propriétaire:groupe du dossier
    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

Vous allez attaquer la partie la plus "fatiguante" .

Définition de la base de données ?

Éditez ou créez avec les droits d'administration 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
}

Définition des accès à la base de données ?

Vérifiez avant tout l'UID et le GUID FIXME c'est pas GID plutot ? :

grep vmail /etc/passwd

devrait répondre quelque chose comme

vmail:x:150:1001:Virtual maildir handler:/home/vmail:/sbin/nologin

Notez bien ces informations avant d' éditer avec les droits d'administration le fichier /etc/dovecot/dovecot-sql.conf.ext que vous modifierez comme suit :

  • Type de base de données:
    # Database driver: mysql, pgsql, sqlite
    driver = mysql
  • Ici remplacez mot_de_passe_postfixadmin par celui entrée à la section 1.2 FIXME 1.2 ou 2.1 ?
    # 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
  • Type d'authentification
    # Default password scheme.
    #
    # List of supported schemes is in
    # http://wiki2.dovecot.org/Authentication/PasswordSchemes
    #
    default_pass_scheme = MD5-CRYPT
  • Requète de mot de passe (adaptez avec les informations obtenues en début de ce chapitre)
    # 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'
  • Information utilisateur (adaptez avec les informations obtenues en début de ce chapitre)
    # 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'

FIXME

Éditez avec les droits d'administration le fichier /etc/dovecot/conf.d/10-auth.conf et modifier comme suit :

Configuration Amavis

Configuration ClamAV

Configuration SpamAssassin

Configuration

Configuration

Configuration

Configuration

* Projet de PostfixAdmin (en)


Contributeurs:McPeter

  • utilisateurs/mcpeter/postfix_dovecot_mysql_postfixadmin.1349971512.txt.gz
  • Dernière modification: Le 11/10/2012, 18:05
  • par fabux