Table des matières
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.
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é enMD5-CRYPT
;maildir
contient le chemin relatif du répertoireMaildir
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.