Outils pour utilisateurs

Outils du site


Postfix Admin

Postfix Admin est une interface en PHP qui permet principalement de gérer une base de données qui contiendra toutes les informations nécessaires à la maintenance de comptes virtuels. Postfix Admin n'impose pas de serveur POP/IMAP spécifique. Dovecot ou Courier-imap Pourront être utilisés, nous continuerons avec Dovecot.

La version utilisée ici est la 2.3.7 présente dans la distributions Debian Jessie.

Installation

Suivant les règles Debian, le logiciel s'installe dans /usr/share/postfixadmin, installe dans /etc/apache2/conf-avalable un fichier nommé postfixadmin réduit à sa plus simple expression :

# BEGIN FOR POSTFIXADMIN
Alias /postfixadmin /usr/share/postfixadmin
# END FOR POSTFIXADMIN

Et dans /etc/postfixadmin les fichiers config.inc.php et dbconfig.inc.php. Il y a également de la documentation à lire dans /usr/share/doc/postfixadmin/

Création de la base

Il y a un script php qui permet de faire ça simplement en allant sur

http://notre.serveur/postfixadmin/setup.php

Les informations concertant la connexion à cette base se trouveront dans /etc/postfixadmin/dbconfig.inc.php.

Configuration

Le fichier /etc/postfixadmin/config.inc.php est assez long, bien documenté et il faut le lire jusqu'au bout…

Il y a quelques lignes remarquables dans ce fichier, mais celles-ci principalement:

...
// If you want to keep most settings at default values and/or want to ensure 
// that future updates work without problems, you can use a separate config 
// file (config.local.php) instead of editing this file and override some
// settings there.

if (file_exists(dirname(__FILE__) . '/config.local.php')) {
    include(dirname(__FILE__) . '/config.local.php');
}

Autrement dit, s'il existe un fichier config.local.php, il sera inclus à la suite. Ceci pour dire qu'il vaut beaucoup mieux créer ce fichier pour surcharger certains paramètres plutôt que de les modifier directement dans le config.inc.php!

Et il y aura effectivement pas mal de lignes à surcharger. Certaines de celles-ci au moins:

// Set the location of your Postfix Admin installation here.
// YOU MUST ENTER THE COMPLETE URL e.g. http://domain.tld/postfixadmin
$CONF['postfix_admin_url'] = '/postfixadmin';

$CONF['default_language'] = 'en';

$CONF['encrypt'] = 'md5crypt';

// Minimum length required for passwords. Postfixadmin will not
// allow users to set passwords which are shorter than this value.
$CONF['min_password_length'] = 5;

// Default Aliases
// The default aliases that need to be created for all domains.
$CONF['default_aliases'] = array (
    'abuse' => 'abuse@change-this-to-your.domain.tld',
    'hostmaster' => 'hostmaster@change-this-to-your.domain.tld',
    'postmaster' => 'postmaster@change-this-to-your.domain.tld',
    'webmaster' => 'webmaster@change-this-to-your.domain.tld'
);

// Mailboxes
// If you want to store the mailboxes per domain set this to 'YES'.
// Examples:
//   YES: /usr/local/virtual/domain.tld/username@domain.tld
//   NO:  /usr/local/virtual/username@domain.tld
$CONF['domain_path'] = 'NO';
// If you don't want to have the domain in your mailbox set this to 'NO'.
// Examples: 
//   YES: /usr/local/virtual/domain.tld/username@domain.tld
//   NO:  /usr/local/virtual/domain.tld/username
// Note: If $CONF['domain_path'] is set to NO, this setting will be forced to YES.
$CONF['domain_in_mailbox'] = 'YES';

// Transport options
// If you want to define additional transport options put them in array below.
$CONF['transport_options'] = array (
    'virtual',  // for virtual accounts
    'local',    // for system accounts
    'relay'     // for backup mx
);


Mise à feu

Il faut maintenant, après avoir demandé à l'Apache de relire sa configuration, ce que le script « postinstall » du paquet postfixadmin n'a pas fait, d'aller sur l'URL de votre installation. Ici :

http://cyrus.nain-t.net/postfixadmin/setup.php

De corriger les éventuels erreurs constatées, de créer le compte du « super administrateur » et enfin de renommer ou détruire le fichier /usr/share/postfixadmin/setup.php.

Postfixadmin devrait être en état de fonctionner, hormis l'envoi de messages puisque nous n'avons pas encore configuré Postfix en fonction.

Accueil Postfix Admin

Base de données

La base de données a été construite lors du « setup ». Elle contient les tables admin, alias, config, domain, domain_admins, fetchmail, log, mailbox, vacation et vacation_notification.

Créons le domaine nain-t.net et le compte sysop@nain-t.net et regardons un peu :

mysql> select * from alias;
+-----------------------+------------------+------------+---------------------+---------------------+--------+
| address               | goto             | domain     | created             | modified            | active |
+-----------------------+------------------+------------+---------------------+---------------------+--------+
| abuse@nain-t.net      | sysop@nain-t.net | nain-t.net | 2008-07-15 16:15:31 | 2008-07-15 16:15:31 |      1 | 
| hostmaster@nain-t.net | sysop@nain-t.net | nain-t.net | 2008-07-15 16:15:31 | 2008-07-15 16:15:31 |      1 | 
| postmaster@nain-t.net | sysop@nain-t.net | nain-t.net | 2008-07-15 16:15:31 | 2008-07-15 16:15:31 |      1 | 
| webmaster@nain-t.net  | sysop@nain-t.net | nain-t.net | 2008-07-15 16:15:31 | 2008-07-15 16:15:31 |      1 | 
| sysop@nain-t.net      | sysop@nain-t.net | nain-t.net | 2008-07-15 16:16:01 | 2008-07-15 16:16:01 |      1 | 
+-----------------------+------------------+------------+---------------------+---------------------+--------+

Dans la table alias nous retrouvons les alias définis dans la configuration, et sysop@nain-t.net qui pointe sur lui-même.

mysql> select * from mailbox;
+------------------+------------------------------------+------------------+-------------------+-------+------------+---------------------+---------------------+--------+
| username         | password                           | name             | maildir           | quota | domain     | created             | modified            | active |
+------------------+------------------------------------+------------------+-------------------+-------+------------+---------------------+---------------------+--------+
| sysop@nain-t.net | $1$b05611fa$K.98vXKRWNG5Xr97dlkcp1 | sysop            | nain-t.net/sysop/ |     0 | nain-t.net | 2008-07-15 16:16:01 | 2008-07-15 16:16:01 |      1 | 
+------------------+------------------------------------+------------------+-------------------+-------+------------+---------------------+---------------------+--------+

Dans la table mailbox nous trouvons pas mal de choses :

  • username contient l'adresse du compte ;
  • name contient la partie gauche de l'adresse ;
  • domain contient le nom du domaine virtuel (partie droite de l'adresse) ;
  • password contient le mot de passe chiffré en MD5-CRYPT ;
  • maildir contient le chemin relatif du répertoire Maildir de l'utilisateur.
mysql> select * from domain;
+------------+----------------+---------+-----------+----------+-------+-----------+----------+---------------------+---------------------+--------+
| domain     | description    | aliases | mailboxes | maxquota | quota | transport | backupmx | created             | modified            | active |
+------------+----------------+---------+-----------+----------+-------+-----------+----------+---------------------+---------------------+--------+
| ALL        |                |       0 |         0 |        0 |     0 | NULL      |        0 | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 |      1 | 
| nain-t.net | Domaine public |       0 |         0 |        0 |     0 | virtual   |        0 | 2008-07-15 16:15:31 | 2008-07-15 16:15:31 |      1 | 
+------------+----------------+---------+-----------+----------+-------+-----------+----------+---------------------+---------------------+--------+
La table ''domain'' contient essentiellement la liste des domaines virtuels créés.
Postfix Admin: Dernière modification le: 30/05/2025 à 09:10 par prof