Réseau - Web - GNU/Linux

2018 14 février

Administration des utilisateurs, des alias et des domaines - Debian 9.0 Stretch

Rédigé par Marc GUILLAUME | 3 commentaires
Article précédent Mail façon FAI - Debian 9.0 Stretch Article suivant

Traduction de la page : https://workaround.org/ispmail/stretch/managing-users-aliases-domains

Peut-être savez-vous déjà ce que vous avez à faire pour créer des domaines de mail et des utilisateurs. Après-tout j'ai essayé d'expliquer le schéma de la base de données sur la page traitant de la préparation de la base de données. Mais si ce n'était pas assez clair, laissez-moi vous expliquer ce que vous avez à faire pour gérer vos comptes.

Interfaces Web

Si vous n'aimez pas utiliser des requêtes SQL pour gérer votre serveur mail vous pouvez installer une application web de gestion de votre serveur. Plusieurs développeurs ont créé des interfaces web pour des versions précédentes de ce guide et elles fonctionnent probablement toujours car le shéma de base de données n'a pas changé, elles vont simplement créer des hachage de mots de passe faibles. Avec un peu d'expérience dans le développement web vous devriez être capables de développer votre propre système de gestion. J'explique plus bas quelques requêtes SQL de base.

Ces interfaces web vous sont fournies par d'autres mains diligentes  :

ISPmail Admin

La page du projet : http://ima.jungclaussen.com/
Une page de démonstration : http://ima.jungclaussen.com/demo/

ima_screenshot

Gestionnaire de mails virtuels GRSoft

Peter Gutwein a mis à jour son interface web en Php pour ajouter les hachages de mots de passe forts recommandés dans ce guide. Elle est traduite en anglais, allemand, espagnol, français, italien, russe et suédois.

Page du projet -> http://www.grs-service.ch/pub/grs_mminstallation.html

Quelques copies d'écran de l'application en fonctinnement :

grsoft-vmm-screenshot1 grsoft-vmm-screenshot1 grsoft-vmm-screenshot1 grsoft-vmm-screenshot1 grsoft-vmm-screenshot1 grsoft-vmm-screenshot1 grsoft-vmm-screenshot1 grsoft-vmm-screenshot1 grsoft-vmm-screenshot1

Administrer directement dans la base de données

Les tâches courantes avec PHPMyAdmin

Ce tableau détaille les modifications devant être apportées à la base de données en utilisation quotidienne. Vous pouvez parcourir PhpMyAdmin en suivant les instructions de ce tableau :

Créer un domaine de courrier Insérer une nouvelle ligne dans la table virtual_domains en mettant le nom du nouveau domaine dans le champ name.
Effacer un domaine de courrier Effacer la ligne de la table virtual_domains qui correspond à ce nom de domaine. Toutes les redirections et les utilisateurs seront automatiquement effacés en cascade. Cependant les boîtes aux lettres vont rester sur le disque dans /var/vmail/… et vous devrez les effacer à la main.
Créer un compte mail Chercher l'identifiant du domaine dans la table virtual_domains. Insérez une ligne dans la table virtual_users. Mettez comme domain_id la valeur que vous venez de chercher dans la table virtual_domain. Mettez dans le champ email l'adresse mail complète du nouvel utilisateur. Créez un nouveau mot de passe dans une console terminal shell avec la commande « dovecot pw -s SHA256-CRYPT » et copiez le résultat dans le champ password.
Changer le mot de passe d'un utilisateur Trouvez la bonne ligne dans la table virtual_users en cherchant la bonne valeur dans le champ email. Créez un nouveau mot de passe dans une console terminal shell avec la commande « dovecot pw -s SHA256-CRYPT » et copiez le résultat dans le champ password.
Supprimer un utilisateur de mail Trouvez la bonne ligne dans la table virtual_users en cherchant la bonne valeur dans le champ email et effacez-la. La boîte mail reste sur le disque dans /var/vmail/… et il vous faudra l'effacer à la main.
Créer une redirection de mail Vous pouvez rediriger les mails depuis une adresse mail (la source) vers d'autres adresses mail (les destinations) et même vers des adresses extérieures à votre serveur de mail. Cherchez l'identifiant du bon domaine (la partie après l'arobase (@) de l'adresse source) dans la table virtual_domains. Créez une nouvelle ligne dans la table virtual_aliases pour chaque destination (si vous avez plusieurs adresses de destination). Placez dans le champ source l'adresse email source complète. Et dans le champ destination mettez l'adresse complète de destination.
Supprimer une redirection de mail Recherchez toutes les lignes dans la table virtual_aliases qui contiennent dans le champ source la bonne adresse mail. Supprimez toutes les lignes parmi celle-ci qui contiennent dans le champ destination une adresse à laquelle vous ne voulez plus transférer de mails.

Les requêtes SQL

Créer un domaine de mail
INSERT INTO virtual_domains (name) VALUES (“example.org”);
Supprimer un domaine de mail
DELETE FROM virtual_domains where name=’example.org’;
Créer un utilisateur de mail
INSERT INTO virtual_users (domain_id, email, password) 
    VALUES ( 
                (SELECT id FROM virtual_domains WHERE name=’example.org’), 
                ‘john@example.org’,
                CONCAT(‘{SHA256-CRYPT}’, 
                    ENCRYPT (‘new password’, 
                        CONCAT(‘$5$’, 
                        SUBSTRING(SHA(RAND()), -16))
                    )
                )
            );
Changer le mot de passe d'un utilisateur
UPDATE virtual_users SET 
        password=CONCAT(‘{SHA256-CRYPT}’, ENCRYPT (‘new password’, 
        CONCAT(‘$5$’, SUBSTRING(SHA(RAND()), -16)))) 
    WHERE email=’email@address’;
Supprimer un utilisateur
DELETE FROM virtual_users WHERE email=’john@example.org’;
Créer une redirection de mail
INSERT INTO virtual_aliases (
    domain_id, 
    source, 
    destination
    ) 
    VALUES ( 
        (SELECT id FROM virtual_domains WHERE name=’example.org’), 
        ‘melissa@example.org’, 
        ‘juila@example.net’
        );
Supprimer une redirection de mail
DELETE FROM virtual_aliases WHERE source=’melissa@example.org’;

3 commentaires

#1  - Grubshka a dit :

Je suis surpris de ne pas voir apparaître Postfixadmin, qui m'a toujours semblé être une référence en la matière.
Il supporte le SHA512-CRYPT, permet un accès utilisateur, les quotas, de gérer les messages d'absence... Il m'a par contre demandé un peu de configuration pour peaufiner tout ça.

Répondre
#2  - SanDooo a dit :

Pour ceux qui préfèreraient utiliser postfixadmin afin d'administrer leurs domaines et adresses mail, voici les modifications à apporter :

1) Postfixadmin
11) Installer postfixadmin en utilisant la base 'mailserver' créée précédemment dans le tutoriel. Postfixadmin utilisant ses propres tables, vous pouvez supprimer celles du tutoriel devenues obsolètes : 'virtual_domains', 'virtual_users' et 'virtual_aliases'.

12) Configuration postfixadmin (/etc/postfixadmin/config.local.php - à ajuster selon votre répertoire d'installation) :
<?php
$CONF['configured'] = true;
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'mailadmin';
$CONF['database_name'] = 'mailserver';
$CONF['database_password'] = 'ChangeMe'; <- utilisez ici votre propre mot de passe pour mailadmin
?>

2) Postfix - modifier les requêtes SQL dans les fichiers suivants afin de prendre en compte les tables de postfixadmin :
21) /etc/postfix/mysql-virtual-mailbox-domains.cf
query = SELECT 1 FROM domain WHERE domain='%s'

22) /etc/postfix/mysql-virtual-mailbox-maps.cf
query = SELECT 1 FROM mailbox WHERE username='%s'

23) /etc/postfix/mysql-virtual-alias-maps.cf
query = SELECT goto FROM alias WHERE address='%s'

24) /etc/postfix/mysql-email2email.cf
query = SELECT username FROM mailbox WHERE username='%s'

3) Dovecot : /etc/dovecot/dovecot-sql.conf.ext
password_query = SELECT username as user, password FROM mailbox WHERE username='%u';

4) N'oubliez pas de relancer tous les services modifiés (notamment postfix et dovecot).

Répondre
#3  - 2fr3.com a dit :

Bonjour a tous, merci a l'auteur pour ce tutoriel.
J'ajouterai au commentaire precedent qu'il est nécessaire de modifier l'encryptage du password dans la conf.local de postfixadmin qui est réglée de base en MD5 ou ne pas encrypté en SHA256 via le tuto.

$CONF['encrypt'] = 'dovecot:SHA256-CRYPT';
[...]
// If you use the dovecot encryption method: where is the dovecotpw binary located?
// for dovecot 1.x
// $CONF['dovecotpw'] = "/usr/sbin/dovecotpw";
// for dovecot 2.x (dovecot 2.0.0 - 2.0.7 is not supported!)
$CONF['dovecotpw'] = "/usr/bin/doveadm pw";

Attention au chemin indiqué de doveadm !

Répondre

Écrire un commentaire

Quelle est la première lettre du mot dmuuo ?

Fil RSS des commentaires de cet article

À propos

Yakati.info - Réseau - Web - GNU/Linux © 2017

Généré par PluXml en 0.033s  - Administration

Mes coordonnées

Marc Guillaume
contact[at]yakati.info
79150 ÉTUSSON

Crédits

Pour la gestion du contenu

Généré par PluXml, le Blog ou Cms sans base de données

Pour le contenu

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.

Pour le thème

Thème SOLID de blacktie.co adapté pour PluXml