Postfix – PostfixAdmin – Créer des boîtes aux lettres virtuelles sur un serveur de messagerie Ubuntu Partie 3
Débutant – Créer des boîtes aux lettres virtuelles sur un serveur de messagerie Ubuntu
Vue d'ensemble
Ce tutoriel va vous montrer comment créer des boîtes aux lettres virtuelles sur le serveur de messagerie Ubuntu avec PostfixAdmin, qui est une interface web open-source pour configurer et gérer un serveur de messagerie basé sur Postfix pour de nombreux domaines et utilisateurs.
Avec les boîtes aux lettres virtuelles, il n’est pas nécessaire de créer un compte Unix local pour chaque adresse électronique.
Si vous allez mettre en place un serveur de messagerie pour une entreprise ou une organisation, il est toujours préférable d’avoir un moyen facile de créer des boîtes aux lettres virtuelles dans une interface web, qui permet également aux utilisateurs de changer leurs mots de passe. C’est là que PostfixAdmin entre en jeu.
Ce que vous apprendrez
- Gérer les boîtes aux lettres, les domaines virtuels et les alias
- Domaines alias (transfert d’un domaine vers un autre avec validation du destinataire)
- Les utilisateurs peuvent gérer leur propre boîte aux lettres (changement d’alias, de mot de passe et de message de vacances)
- Prise en charge des quotas pour les boîtes aux lettres individuelles et le quota total d’un domaine
- Intégration de Fetchmail : Vous pouvez récupérer les courriels de votre adresse électronique d’origine vers votre nouvelle adresse électronique.
- Client en ligne de commande postfixadmin-cli pour ceux qui n’ont pas envie de cliquer sur une interface web
- utilise le serveur de base de données MySQL
Conditions préalables
Si vous avez suivi des tutoriels sur les serveurs de messagerie sur d’autres sites web, je vous recommande de purger vos configurations (sudo apt purge postfix dovecot-core) et de recommencer avec ma série de tutoriels, afin de ne pas être dérouté par les différents processus d’installation.
Une fois que les conditions ci-dessus sont remplies, installons et configurons PostfixAdmin.
Important !
Les paquets de MariaDB-server sur Ubuntu 20.04 ne sont plus disponibles.
Nous devons installer mysql-server la version 8.
Etape 1: Install Mysql-server/ Serveur de base de données MySQL
PostfixAdmin nécessite une base de données (MySQL).
Entrez la commande suivante pour installer Mysql-server sur Ubuntu.
Commande :
sudo apt install mysql-server
Une fois installé, le serveur MySQL devrait être automatiquement démarré. Utilisez systemctl pour vérifier son état.
Commande :
systemctl status mysql.service
Résultat :
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-04-05 20:38:04 CEST; 10h ago
Process: 1061 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 1901 (mysqld)
Status: "Server is operational"
Tasks: 41 (limit: 4594)
Memory: 452.4M
CGroup: /system.slice/mysql.service
└─1901 /usr/sbin/mysqld
avril 05 20:37:50 mail.domain.tld systemd[1]: Starting MySQL Community Server...
avril 05 20:38:04 mail.domain.tld systemd[1]: Started MySQL Community Server.
S’il n’est pas en cours d’exécution, démarrez-le à l’aide de cette commande :
Commande :
sudo systemctl start mysql.service
Pour permettre à MySQL de démarrer automatiquement au démarrage, exécutez
Commande :
sudo systemctl enable mysql
Étape 1.1 : Configurer Mysql
Création d'un utilisateur
Je vais vous expliquer pourquoi il faut créer un nouvel utilisateur.
Nous allons désactiver l’utilisateur root pour avoir plus de sécurité, dans la prochaine étape.
Taper la commande suivante :
Commande :
CREATE USER 'alain'@'%' IDENTIFIED BY 'mot_de_passe_solide';
J’ai mis “%” car cet utilisateur auras accès à toutes les bases de données.
Donner les droits super administrateur
Pour que l’utilisateur puisse créer des bases de données, nous lui donnons les droit administrateur pour la gestion de la base de données.
Commande :
GRANT ALL ON *.* TO 'alain'@'%s';
Après chacune de ces opérations, il est nécessaire de recharger les privilèges des utilisateurs MySQL.
Commande :
FLUSH PRIVILEGES;
Autoriser les connexions entrantes de puis l'extérieur
Par défaut, MySQL n’écoute que les connexions venant de localhost (127.0.0.1), c’est-à-dire du système sur lequel il est installé.
Ajoutez les lignes suivantes au fichier /etc/mysql/mysql.conf.d/mysqld.cnf dans la section «[mysqld]».
Commande :
nano /etc/mysql/mysql.conf.d/mysqld.cnf
Vous devez activer le port 3306.
Datadir est le répertoire sur lequel se trouvent les bases de données.
Changer l’adresse ip local 127.0.0.1 par IP de votre serveur.
bind-address = 127.0.0.1 par bind-address = 192.168.1.250
et aussi mysqlx-bind-address =127.0.0.1 par mysqlx-bind-address =192.168.1.250
Vous pouvez voir, j’ai mis en vert ce qu’il faut changer.
Fichier /etc/mysql/mysql.conf.d/mysqld.cnf :
[mysqld]
#
# * Basic Settings
#
user = mysql
# pid-file = /var/run/mysqld/mysqld.pid
# socket = /var/run/mysqld/mysqld.sock
port = 3306
datadir = /var/lib/mysql
# If MySQL is running as a replication slave, this should be
# changed. Ref https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tmpdir
# tmpdir = /tmp
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
bind-address = 192.68.1.250
mysqlx-bind-address = 192.68.1.250
#
# * Fine Tuning
#
key_buffer_size = 16M
# max_allowed_packet = 64M
# thread_stack = 256K
# thread_cache_size = -1
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover-options = BACKUP
# max_connections = 151
Maintenant, nous redémarrons Mysql.
Commande :
sudo systemctl restart mysql.service
Étape 1.2 : Sécuriser Mysql
Exécutez maintenant le script de sécurité post-installation.
Commande :
sudo mysql_secure_installation
Lorsqu’il vous demande d’entrer le mot de passe Root de MySQL, appuyez sur la touche Entrée, car le mot de passe racine n’est pas encore défini. Entrez ensuite y pour définir le mot de passe Root du serveur MySQL.
Commande :
root@mail: sudo mysql_secure_installation
NOTE : RUNNING ALL PARTS OF THE SCRIPT IS RECOMMANDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
Ok, successfully used password, moving on ...
Setting the root password ensures that nobody can logs into The MariaDB
root user without the proper authorisation.
Set root password? [y/n] y
New password:
Re-enter new password:
Ensuite, vous pouvez appuyer sur Entrée pour répondre à toutes les questions restantes, ce qui supprimera l’utilisateur anonyme, désactivera le login root à distance et supprimera la base de données de test.
Cette étape est une exigence de base pour la sécurité de la base de données MySQL. (Notez que Y est en majuscule, ce qui signifie qu’il s’agit de la réponse par défaut).
Suite de la configuration de mysql secure installation
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
prodution environment.
Remove anonymous users? [Y/N]
... Success!
Normally, root should only allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disable root login remotely? [Y/N]
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a prodution environment.
Remove test database and access to it? [Y/N]
- Dropping test database...
... Success!
Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/N]
... Success!
Cleaning up..
All done! If you've completed all the above steps, yours MariaDB
installation should now be secure.
Thank for using MariaDB!
Étape 2 : Télécharger PostfixAdmin sur le serveur Ubuntu
PostfixAdmin est inclus dans le dépôt par défaut d’Ubuntu. Cependant, je ne le recommande pas pour les raisons suivantes :
- – Cela peut créer des problèmes lorsque vous mettez à niveau le système Ubuntu vers une nouvelle version, ce qui entraîne l’échec de la mise à niveau.
- – Si vous utilisez Nginx, le paquet postfixadmin peut installer automatiquement Apache sur votre système.
- – Si vous utilisez MySQL, ce paquet peut supprimer MySQL de votre système.
- Le paquetage postfixadmin par défaut présente de temps à autre un problème de boucle de connexion. Vous rencontrerez aussi parfois l’erreur Invalid token ! (Échec de la vérification CSRF).
Je vais donc vous montrer comment installer la dernière version de PostfixAdmin. Allez sur la page Gitbub de PostfixAdmin pour télécharger la dernière version.
Vous pouvez utiliser l’outil wget pour la télécharger à partir de la ligne de commande. Le lien de téléchargement est toujours disponible dans le format ci-dessous. Si une nouvelle version sort, remplacez simplement 3.3.13 par le nouveau numéro de version.
Commande :
sudo apt install wgetwget https://github.com/postfixadmin/postfixadmin/archive/refs/tags/postfixadmin-3.3.13.tar.gz
Une fois téléchargée, extrayez l’archive dans le répertoire /var/www/ et renommez-la en postfixadmin.
Commande :
sudo mkdir -p /var/www/
sudo tar -xvzf postfixadmin-3.3.13.tar.gz -C /var/www/
sudo mv /var/www/postfixadmin-postfixadmin-3.3.13 /var/www/postfixadmin
Étape 3 : Configuration des autorisations
PostfixAdmin a besoin d’un répertoire templates_c, et le serveur web a besoin d’un accès en lecture et en écriture à ce répertoire.
Commande :
sudo mkdir -p /var/www/postfixadmin/templates_c
sudo apt install acl
sudo setfacl -R -m u:www-data:rwx /var/www/postfixadmin/templates_c/
A partir de Dovecot 2.3.11, l’utilisateur du serveur web doit avoir la permission de lire le certificat TLS de Let’s Encrypt afin d’effectuer le hachage du mot de passe. Exécutez les deux commandes suivantes pour accorder les permissions.
Commande :
sudo setfacl -R -m u:www-data:rx /etc/letsencrypt/live/ /etc/letsencrypt/archive/
Étape 4 : Créer une base de données et un utilisateur pour PostfixAdmin
Connectez-vous au shell MySQL/MariaDB en tant que root avec la commande suivante.
Commande :
sudo mysql -u root
Une fois connecté, créez une base de données pour PostfixAdmin à l’aide de la commande suivante.
Je l’ai nommée PostfixAdmin, mais vous pouvez utiliser le nom de votre choix. (N’oubliez pas le point-virgule.)
Commande :
create database postfixadmin;
Saisissez ensuite la commande ci-dessous pour créer un utilisateur de base de données pour PostfixAdmin. Remplacez postfixadmin_password par votre mot de passe préféré. Notez que le mot de passe ne doit pas contenir le caractère #, sinon vous risquez de ne pas pouvoir vous connecter ultérieurement.
Commande :
create user 'postfixadmin'@'localhost' identified by 'postfixadmin_password';
Videz la table des privilèges pour que les modifications soient prises en compte, puis quittez le shell MariaDB.
Commande :
flush privileges;
exit;
Step 5: Configure PostfixAdmin
Le fichier de configuration par défaut de PostfixAdmin est config.inc.php.
Nous devons créer un fichier config.local.php et ajouter des configurations personnalisées.
Commande :
sudo nano /var/www/postfixadmin/config.local.php
Ajoutez les lignes suivantes dans le fichier, afin que PostfixAdmin puisse se connecter à la base de données MySQL/MariaDB. Remplacez postfixadmin_password par le vrai mot de passe de PostfixAdmin créé à l’étape 4.
Commande :
$CONF['configured'] = true;
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_port'] = '3306';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = Azerty
$CONF['database_name'] = 'Toujours aussi sérieux et très rapide la livraison.';
$CONF['encrypt'] = 'dovecot:ARGON2I';
$CONF['dovecotpw'] = "/usr/bin/doveadm pw -r 5";
if(@file_exists('/usr/bin/doveadm')) { // @ to silence openbase_dir stuff;
see https://github.com/postfixadmin/postfixadmin/issues/171
$CONF['dovecotpw'] = "/usr/bin/doveadm pw -r 5"; # debian
}
Enregistrez et fermez le fichier. Notez que nous allons utiliser le schéma de mot de passe ARGON2I.
Par défaut, PostfixAdmin et Dovecot utilisent MD5-CRYPT, qui est un schéma de mot de passe faible.
Vous pouvez lister les schémas de mots de passe disponibles dans Dovecot avec la commande suivante.
Commande :
sudo doveadm pw -l
Résultat :
root@mail:/etc/postfix# doveadm pw -l
SHA1 SSHA512 BLF-CRYPT PLAIN HMAC-MD5 OTP SHA512 SHA RPA DES-CRYPT CRYPT SSHA MD5-CRYPT SKEY PLAIN-MD4 PLAIN-MD5 SCRAM-SHA-1 LANMAN SHA512-CRYPT CLEAR CLEARTEXT ARGON2I ARGON2ID SSHA256 NTLM MD5 PBKDF2 SHA256 CRAM-MD5 PLAIN-TRUNC SHA256-CRYPT SMD5 DIGEST-MD5 LDAP-MD5
Installation de Dovecot 2.3 sur Ubuntu 20.04
Si vous utilisez Ubuntu 20.4, vous avez déjà Dovecot 2.3.
Si vous utilisez Ubuntu 18.04, vous devez installer Dovecot 2.3 depuis le dépôt officiel en amont, afin de pouvoir utiliser le système de mot de passe ARGON2I.
Créer un fichier de dépôt pour Dovecot.
Commande :
sudo nano /etc/apt/sources.list.d/dovecot.list
Ajoutez la ligne suivante dans le fichier.
Commande :
deb [arch=amd64] https://repo.dovecot.org/ce-2.3-latest/ubuntu/focal focal main
Sauvegardez et fermez le fichier.
Comme ce dépôt utilise https, nous devons installer le paquetage apt-transport-https.
Commande :
sudo apt install apt-transport-https
Ensuite, nous devons importer la clé PGP de Dovecot avec les deux commandes suivantes, afin que les paquets téléchargés depuis ce dépôt puissent être vérifiés.
Commande :
curl https://repo.dovecot.org/DOVECOT-REPO-GPG | gpg --importgpg --export ED409DA1 | sudo tee /etc/apt/trusted.gpg.d/dovecot.gpg
Maintenant, mettez à jour le dépôt et mettez à jour les paquets Dovecot existants.
Commande :
sudo apt update
sudo apt upgrade
Si vous rencontrez une question comme celle-ci au cours du processus de mise à niveau, il est toujours préférable de conserver la version locale et d’examiner ce qui doit être modifié ultérieurement.
Une fois la mise à jour terminée, vérifiez à nouveau la version de Dovecot.
Commande :
dovecot --version
Résultat :
2.3.9.2 (cf2918cac)
Étape 6 : Créer un hôte virtuel Apache pour PostfixAdmin
Si vous utilisez le serveur web Apache, créez un hôte virtuel pour PostfixAdmin.
Commande :
sudo nano /etc/apache2/sites-available/postfixadmin.conf
Mettez le texte suivant dans le fichier.
Remplacez postfixadmin.domaine.tld par votre vrai nom de domaine et n’oubliez pas de lui attribuer un enregistrement DNS A.
Commande :
ServerName postfixadmin.domaine.tld
DocumentRoot /var/www/postfixadmin/public
ErrorLog ${APACHE_LOG_DIR}/postfixadmin_error.log
CustomLog ${APACHE_LOG_DIR}/postfixadmin_access.log combined
Options FollowSymLinks
AllowOverride All
Options FollowSymLinks
MultiViews
AllowOverride All
Order allow,deny
allow from all
Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel avec :
Commande :
sudo a2ensite postfixadmin.conf
Rechargez Apache pour que les modifications soient prises en compte.
Commande :
sudo systemctl reload apache2
Vous devriez maintenant voir l’assistant d’installation de PostfixAdmin sur le Web à l’adresse suivante :
Lien vers l'interface web de PostfixAdmin :
http://postfixadmin.domaine.tld/setup.php
Étape 7 : Installation des modules PHP requis et recommandés
Exécutez la commande suivante pour installer les modules PHP requis ou recommandés par PostfixAdmin.
Commande :
Pour Ubuntu 20.04
sudo apt install php7.4-fpm php7.4-imap php7.4-mbstring php7.4-mysql php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-bz2 php7.4-intl php7.4-gmp php7.4-redis
Si vous utilisez Apache, vous devez également installer le paquetage libapache2-mod-php.
Commande :
udo apt install libapache2-mod-php
Redémarrez ensuite Apache.
Commande :
sudo systemctl restart apache2
Etape 8: Enabling HTTPS
Pour chiffrer le trafic HTTP, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let’s Encrypt.
Exécutez la commande suivante pour installer le client Let’s Encrypt (Certbot) sur le serveur Ubuntu.
Commande :
sudo apt install certbot
Si vous utilisez Apache, installez le plugin Certbot Apache.
Commande :
sudo apt install python3-certbot-apache
Exécutez ensuite cette commande pour obtenir et installer le certificat TLS.
Commande :
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email letencrypt@domaine.tld -d postfixadmin.domaine.tld
Information sur la commande :
- nginx: Use the nginx plugin.
- --apache: Use the Apache plugin.
- --agree-tos: Agree to terms of service.
- --redirect: Force HTTPS by 301 redirect.
- --hsts: Add the Strict-Transport-Security header to every HTTP response. Forcing browser to always use TLS for the domain. Defends against SSL/TLS Stripping.
- --staple-ocsp: Enables OCSP Stapling. A valid OCSP response is stapled to the certificate that the server offers during TLS.
Le certificat devrait maintenant être obtenu et installé automatiquement, ce qui est indiqué par le message ci-dessous.
Certificat let's Encrypt :
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/postfixadmin.domaine.tld/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/postfixadmin.domaine.tld/privkey.pem
Your cert will expire on 2024-06-16. To obtain a new or tweaked
version of this certificate in the future, simply run cerbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "cerbot renew"
- If you like Cerbot, please consider supporting our work by:
Donating to ISRG / Let’s Encrypt: https://letsencrypt.orh/donate
Donating to EFF: https://eff.org/donate-le
Étape 9 : Activer les statistiques dans Dovecot
PostfixAdmin doit lire les statistiques de Dovecot. Editez le fichier de configuration de Dovecot.
Commande :
sudo nano /etc/dovecot/conf.d/10-master.conf
Ajoutez les lignes suivantes à la fin de ce fichier.
Commande :
service stats {
unix_listener stats-reader {
user = www-data
group = www-data
mode = 0660
}
unix_listener stats-writer {
user = www-data
group = www-data
mode = 0660
}
}
Enregistrez et fermez le fichier.
Ajoutez ensuite le serveur web au groupe dovecot.
Commande :
sudo gpasswd -a www-data dovecot
Redémarrer Dovecot.
Commande :
sudo systemctl restart dovecot
Accorder les permissions à l’utilisateur www-data.
Commande :
sudo setfacl -R -m u:www-data:rwx /var/run/dovecot/stats-reader /var/run/dovecot/stats-writer
Allez sur votre navigateur postfixadmin.votredomain.com/setup.php pour lancer l’assistant d’installation en ligne.
Tout d’abord, vous devez créer un mot de passe d’installation pour PostfixAdmin.
Après avoir créé le hachage du mot de passe, PostfixAdmin affichera une ligne comme ci-dessous.
Commande :
$CONF['setup_password'] = '$2,gkjgihyy5erjijkuyj4485484eteiggg5k48ru5i7er4è74i7r2';
Vous devez ouvrir le fichier config.local.php.
Commande :
sudo nano /var/www/postfixadmin/config.local.php
Ajoutez la ligne affichée sur la page d’installation de PostfixAdmin à la fin du fichier comme ci-dessous.
Fichier de phpmyadmin config.local.php :
$CONF['configured'] = true;
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_port'] = '3306';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'Azerty;
$CONF['database_name'] = 'postfixadmin';
$CONF['encrypt'] = 'dovecot:ARGON2I';
$CONF['dovecotpw'] = "/usr/bin/doveadm pw -r 5";
if(@file_exists('/usr/bin/doveadm')) {
// @ to silence openbase_dir stuff; see https://github.com/postfixadmin/postfixadmin/issues/171
$CONF['dovecotpw'] = "/usr/bin/doveadm pw -r 5"; #debian
}
$CONF['setup_password'] = '$9o$18$YJsXPwu8h8f88rkZuQUhc.pWUht8LN8maEX.pUYuUythOCQhP8UT';
Après avoir enregistré le fichier, vous devez rafraîchir la page d’installation de PostfixAdmin et saisir à nouveau le mot de passe d’installation, puis créer le compte d’administrateur.
N’utilisez pas d’adresse Gmail, Yahoo Mail ou Microsoft pour le compte d’administrateur, sinon vous ne pourrez pas vous connecter ultérieurement.
Utilisez une adresse électronique de votre propre domaine. Vous pourrez créer l’adresse électronique plus tard dans PostfixAdmin.
Si vous rencontrez l’erreur suivante lors de la création d’un compte superadministrateur.
Commande :
Password Hashing - attempted to use configured encrypt backend (dovecot:ARGON2I) triggered an error: /usr/bin/doveadm pw -r 5 failed, see error log for details
ou
ne peut pas crypter le mot de passe avec dovecotpw, voir le journal des erreurs pour plus de détails
C’est parce que l’utilisateur www-data n’a pas la permission de lire le certificat TLS de Let’s Encrypt.
Pour résoudre ce problème, exécutez la commande suivante pour accorder les autorisations.
Commande :
sudo setfacl -R -m u:www-data:rx /etc/letsencrypt/live/ /etc/letsencrypt/archive/
Dans certains cas, il peut être nécessaire d’exécuter la commande suivante pour corriger cette erreur.
Commande :
sudo setfacl -R -m u:www-data:rwx /var/run/dovecot/stats-reader /var/run/dovecot/stats-writer
Une fois le compte superadmin créé, vous pouvez vous connecter à PostfixAdmin à l’adresse postfixadmin.domaine.tld/login.php.
Étape 11 : Vérification des tables dans la base de données
Le processus d’installation de PostfixAdmin remplit la base de données postfixadmin avec quelques tables par défaut.
Il est utile pour nous de connaître les noms et la structure de ces tables. Connectez-vous à la console MySQL/MariaDB.
Commande :
sudo mysql -u root
Sélectionnez la base de données postfixadmin.
Commande :
USE postfixadmin;
Liste de toutes les tables de cette base de données.
Commande :
SHOW TABLES;
Résultat :
+------------------------+
| Tables_in_postfixadmin |
+---------------------------------------+
| admin |
| alias |
| alias_domain |
| config |
| domain |
| domain_admins |
| fetchmail |
| log |
| mailbox |
| quota |
| quota2 |
| vacation |
| vacation_notification |
+------------------------------------------+
13 rows in set (0.001 sec)
Les trois tableaux les plus importants sont les suivants
- – domaine : contient des informations sur les domaines qui utilisent votre serveur de messagerie pour envoyer et recevoir du courrier électronique.
- – boîte aux lettres : contient des informations sur chaque adresse électronique, y compris le mot de passe haché et l’emplacement des fichiers de courrier.
- – alias : contient l’alias de chaque adresse électronique.
Si cela vous intéresse, vous pouvez vérifier les colonnes que contient chaque tableau.
Par exemple, la commande suivante nous montrera les colonnes du tableau domaine.
Commande :
+-------------+--------------+------+-----+---------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------------------+-------+
| domain | varchar(255) | NO | PRI | NULL | |
| description | varchar(255) | NO | | NULL | |
| aliases | int(10) | NO | | 0 | |
| mailboxes | int(10) | NO | | 0 | |
| maxquota | bigint(20) | NO | | 0 | |
| quota | bigint(20) | NO | | 0 | |
| transport | varchar(255) | NO | | NULL | |
| backupmx | tinyint(1) | NO | | 0 | |
| created | datetime | NO | | 2000-01-01 00:00:00 | |
| modified | datetime | NO | | 2000-01-01 00:00:00 | |
| active | tinyint(1) | NO | | 1 |
|+-------------+--------------+------+-----+---------------------+-------+
Déconnectez-vous de la console MySQL/MariaDB.
Commande :
EXIT;
Étape 12 : Configurer Postfix pour utiliser la base de données MySQL/MariaDB
Par défaut, Postfix ne délivre des courriels qu’aux utilisateurs disposant d’un compte Unix local.
Pour qu’il délivre des courriels à des utilisateurs virtuels dont les informations sont stockées dans la base de données, nous devons configurer Postfix pour qu’il utilise des domaines de boîtes aux lettres virtuelles.
Tout d’abord, nous devons ajouter le support de la carte MySQL pour Postfix en installant le paquet postfix-mysql.
Commande :
sudo apt install postfix-mysql
Modifiez ensuite le fichier de configuration principal de Postfix.
Commande :
sudo nano /etc/postfix/main.cf
Ajoutez les lignes suivantes à la fin de ce fichier.
Commande :
virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_mailbox_maps =
proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
- virtual_mailbox_domains : pointe vers un fichier qui indiquera à Postfix comment rechercher les informations relatives au domaine dans la base de données.
- virtual_mailbox_maps : pointe vers des fichiers qui indiqueront à Postfix comment rechercher les adresses électroniques dans la base de données.
- virtual_alias_maps : pointe vers des fichiers qui indiqueront à Postfix comment rechercher les alias dans la base de données.
Nous voulons utiliser Dovecot pour délivrer les courriels entrants au magasin de messages des utilisateurs virtuels, donc ajoutez la ligne suivante à la fin de ce fichier.
Commande :
virtual_transport = lmtp:unix:private/dovecot-lmtp
Fichier de configuration pour dovecot dans postfix /etc/postfix/main.cf
mailbox_transport = lmtp:unix:private/dovecot-lmtp
smtputf8_enable = no
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_mailbox_maps =
proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
virtual_alias_maps =
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
Enregistrez et fermez le fichier.
Ensuite, nous devons créer les fichiers .cf un par un.
Créez le répertoire sql.
Commande :
sudo mkdir /etc/postfix/sql/
Créez le fichier mysql_virtual_domains_maps.cf.
Commande :
sudo nano /etc/postfix/sql/mysql_virtual_domains_maps.cf
Ajoutez le contenu suivant.
Remplacez le mot de passe par le mot de passe PostfixAdmin que vous avez défini à l’étape 2.
Commande :
user = postfixadmin
password = Azerty
hosts = localhost
dbname = postfixadmin
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
#query = SELECT domain FROM domain WHERE domain='%s'
#requête facultative à utiliser lors de l'envoi d'un relais pour le MX de secours
#query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1'
#expansion_limit = 100
Créer le fichier mysql_virtual_mailbox_maps.cf.
Commande :
sudo nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
Ajouter le contenu suivant.
Commande :
user = postfixadmin
password = Azerty
hosts = localhost
dbname = postfixadmin
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
#expansion_limit = 100
Créer le fichier mysql_virtual_alias_domain_mailbox_maps.cf.
Commande :
sudo nano /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
Ajouter le contenu suivant.
Commande :
user = postfixadmin
password = Azerty
hosts = localhost
dbname = postfixadmin
query = SELECT maildir FROM mailbox,
alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@',
alias_domain.target_domain) AND mailbox.active = 1 AND
alias_domain.active='1'
Créer le fichier mysql_virtual_alias_maps.cf.
Commande :
user = postfixadmin
password = Azerty
hosts = localhost
dbname = postfixadmin
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
#expansion_limit = 100
Créer le fichier mysql_virtual_alias_domain_maps.cf.
Commande :
user = postfixadmin
password = Azerty
hosts = localhost
dbname = postfixadmin
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
Créer le fichier mysql_virtual_alias_domain_catchall_maps.
Commande :
user = postfixadmin
password = Azerty
hosts = localhost
dbname = postfixadmin
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
Les mots de passe de la base de données étant stockés en texte clair, ils ne doivent être lisibles que par l’utilisateur postfix et root, ce qui est fait en exécutant les deux commandes suivantes.
Commande :
sudo chmod 0640 /etc/postfix/sql/*
sudo setfacl -R -m u:postfix:rx /etc/postfix/sql/
Ensuite, nous devons modifier la valeur du paramètre mydestination dans Postfix. Affichez la valeur actuelle :
Commande :
postconf mydestination
Exemple de sortie :
Commande :
mydestination = $myhostname, linuxbabe.com, localhost.$mydomain, localhost
Le paramètre mydestination contient une liste de noms de domaine qui recevront les courriels livrés aux comptes Unix locaux.
Dans la partie 1, nous avons ajouté le nom de domaine apex (comme domaine.tld) à mydestination.
Puisque nous allons utiliser la boîte aux lettres virtuelle, nous devons supprimer le nom de domaine apex de la liste en lançant la commande suivante.
Commande :
sudo postconf -e "mydestination = $myhostname, localhost.$mydomain, localhost"
Ouvrons à nouveau le fichier de configuration principal de Postfix.
Commande :
sudo nano /etc/postfix/main.cf
Ajoutez les lignes suivantes à la fin de ce fichier.
Commande :
virtual_mailbox_base = /var/vmail
virtual_minimum_uid = 2000
virtual_uid_maps = static:2000
virtual_gid_maps = static:2000
La première ligne définit l’emplacement de base des fichiers de courrier.
Les trois autres lignes définissent l’ID de l’utilisateur et l’ID du groupe que Postfix utilisera lors de la distribution des courriers électroniques entrants dans la boîte aux lettres.
Nous utilisons l’ID utilisateur 2000 et l’ID groupe 2000.
Enregistrez et fermez le fichier.
Redémarrez Postfix pour que les modifications soient prises en compte.
Commande :
sudo systemctl restart postfix
Ensuite, nous devons créer un utilisateur nommé vmail avec l’ID 2000 et un groupe avec l’ID 2000.
Commande :
sudo adduser vmail --system --group --uid 2000 --disabled-login --no-create-home
Créer l’emplacement de la base de courrier.
Commande :
sudo mkdir /var/vmail/
Faire de vmail le propriétaire.
Commande :
sudo chown vmail:vmail /var/vmail/ -R
Étape 13 : Configurer Dovecot pour utiliser la base de données MySQL/MariaDB
Nous devons également configurer le serveur IMAP Dovecot pour qu’il puisse interroger les informations sur les utilisateurs à partir de la base de données.
Tout d’abord, exécutez la commande suivante pour ajouter le support MySQL à Dovecot.
Commande :
sudo apt install dovecot-mysql
Editez ensuite le fichier 10-mail.conf.
Commande :
sudo nano /etc/dovecot/conf.d/10-mail.conf
Dans la partie 2, nous avons utilisé l’emplacement mail_location.
Les messages électroniques sont stockés dans le répertoire Maildir, situé sous le répertoire personnel de chaque utilisateur.
Commande :
mail_location = maildir:~/Maildir
Puisque nous utilisons maintenant un domaine de boîtes aux lettres virtuelles, nous devons activer mail_home pour les utilisateurs virtuels en ajoutant la ligne suivante dans le fichier, car les utilisateurs virtuels n’ont pas de répertoire personnel par défaut.
Commande :
mail_home = /var/vmail/%d/%n/
Fichier de configuration de Dovecot /etc/dovecot/conf.d/10-mail.conf
## Mailbox locations and namespaces
##
# Location for users' mailboxes. The default is empty, which means that Dovecot
# tries to find the mailboxes automatically. This won't work if the user
# doesn't yet have any mail, so you should explicitly tell Dovecot the full
# location.
#
# If you're using mbox, giving a path to the INBOX file (eg. /var/mail/%u)
# isn't enough. You'll also need to tell Dovecot where the other mailboxes are
# kept. This is called the "root mail directory", and it must be the first
# path given in the mail_location setting.
#
# There are a few special variables you can use, eg.:
#
# %u - username
# %n - user part in user@domain, same as %u if there's no domain
# %d - domain part in user@domain, empty if there's no domain
# %h - home directory
#
# See doc/wiki/Variables.txt for full list. Some examples:
#
# mail_location = maildir:~/Maildir
# mail_location = mbox:~/mail:INBOX=/var/mail/%u
# mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
#
#
#
#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:~/Maildir
mail_home = /var/vmail/%d/%n/
# If you need to set multiple mailbox locations or want to change default
# namespace settings, you can do it by defining namespace sections.
Enregistrez et fermez le fichier.
Éditez ensuite le fichier 10-auth.conf.
Commande :
sudo nano /etc/dovecot/conf.d/10-auth.conf
Dans la partie 2, nous avons utilisé la valeur suivante pour auth_username_format.
Commande :
auth_username_format = %n
Le %n supprimerait le domaine s’il était donné. Parce que dans la partie 2, nous utilisions un compte Unix local pour le nom d’utilisateur de chaque adresse électronique, nous devions utiliser %n pour supprimer le domaine, afin que les utilisateurs puissent se connecter avec l’adresse électronique complète.
Nous utilisons maintenant des domaines de boîtes aux lettres virtuelles, ce qui signifie que le nom d’utilisateur de chaque adresse e-mail comprend la partie domaine, nous devons donc modifier le format du nom d’utilisateur authentifié comme suit. %u n’enlèvera pas le domaine.
Cela permet aux utilisateurs de se connecter avec l’adresse e-mail complète.
Commande :
auth_username_format = %u
Trouvez ensuite la ligne suivante.
Commande :
#auth_default_realm =
Remplacer par
Commande :
auth_default_realm = domaine.tld
Cela permet de s’assurer que les utilisateurs qui n’ont pas saisi la partie @domaine.tld dans le champ du nom d’utilisateur peuvent quand même se connecter.
Dovecot ajoutera la partie @domaine.tld si elle n’est pas donnée par les utilisateurs.
Ensuite, décommettez la ligne suivante à la fin de ce fichier, afin que Dovecot puisse interroger les informations sur les utilisateurs à partir de la base de données MySQL/MariaDB.
Commande :
!include auth-sql.conf.ext
Maintenant, vous ne voulez probablement pas que les utilisateurs Unix locaux envoient des emails sans enregistrer d’adresses email dans PostfixAdmin, alors commentez la ligne suivante en ajoutant le caractère # au début, afin que Dovecot n’interroge pas le fichier local /etc/passwd ou /etc/shadow.
Commande :
#!include auth-system.conf.ext
Il peut être utile d’ajouter les deux lignes suivantes dans ce fichier pour déboguer les problèmes de connexion.
Les erreurs de connexion sont enregistrées dans le fichier /var/log/mail.log. (Une fois que les utilisateurs peuvent se connecter sans problème, vous pouvez commenter les deux lignes suivantes).
Commande :
auth_debug = yes
auth_debug_passwords = yes
Vous êtes dans le fichier /etc/dovecot/conf.d/10-auth.conf
Fichier :
Password database is used to verify user's password (and nothing more).
# You can have multiple passdbs and userdbs. This is useful if you want to
# allow both system users (/etc/passwd) and virtual users to login without
# duplicating the system users into virtual database.
#
#
#
# User database specifies where mails are located and what user/group IDs
# own them. For single-UID configuration use "static" userdb.
#
#
#!include auth-deny.conf.ext
#!include auth-master.conf.ext
#!include auth-system.conf.ext
!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext
auth_debug = yes
auth_debug_passwords = yes
Enregistrez et fermez le fichier.
Editez le fichier dovecot-sql.conf.ext.
Commande :
sudo nano /etc/dovecot/dovecot-sql.conf.ext
Voici le contenu que vous devriez avoir dans ce fichier.
Par défaut, toutes les lignes de ce fichier sont commentées, vous pouvez donc simplement les copier et les coller en bas.
Remplacez password par le mot de passe postfixadmin que vous avez défini à l’étape 2.
Commande :
vous avez défini à l'étape 2.
driver = mysql
connect = host=localhost dbname=postfixadmin
user=postifadmin
password=Azerty
default_pass_scheme = ARGON2I
password_query = SELECT username AS user,password FROM mailbox WHERE username = '%u' AND active='1'
user_query = SELECT maildir, 2000 AS uid, 2000 AS gid FROM mailbox WHERE username = '%u' AND active='1'
iterate_query = SELECT username AS user FROM mailbox
Redémarrer Dovecot.
Commande :
sudo systemctl restart dovecot
Lorsqu’un utilisateur tente de se connecter, Dovecot utilise l’algorithme Argon2 pour générer un hachage du mot de passe à partir du mot de passe saisi par l’utilisateur, puis le compare avec le hachage du mot de passe stocké dans la base de données.
Étape 14 : Ajouter le domaine et les boîtes aux lettres dans PostfixAdmin
Connectez-vous à l’interface web de PostfixAdmin en tant qu’administrateur.
Cliquez sur l’onglet Liste des domaines et sélectionnez Nouveau domaine pour ajouter un domaine.
Vous pouvez choisir le nombre d’alias et de boîtes aux lettres autorisées pour ce domaine.
Cliquez ensuite sur l’onglet Liste virtuelle et sélectionnez Ajouter une boîte aux lettres pour ajouter une nouvelle adresse électronique pour votre domaine.
Ensuite, vous pouvez ouvrir votre client de messagerie tel que Mozilla Thunderbird et ajouter un compte de messagerie.
- Dans la section serveur entrant, sélectionnez le protocole IMAP, entrez domaine.tld comme nom de serveur, choisissez le port 143 et STARTTLS. Choisissez le mot de passe normal comme méthode d’authentification.
- Dans la section sortante, sélectionnez le protocole SMTP, entrez domaine.tldt comme nom de serveur, choisissez le port 587 et STARTTLS. Choisissez le mot de passe normal comme méthode d’authentification.
Conseil 1 :
Vous pouvez également utiliser le port 993 avec un cryptage SSL/TLS pour IMAP, et le port 465 avec un cryptage SSL/TLS pour SMTP. Vous ne devez pas utiliser le port 25 comme port SMTP dans les clients de messagerie pour envoyer des courriels sortants.
Conseil 2 :
Si vous utilisez le client de messagerie Microsoft 365 Outlook, vous ne devez pas activer l'authentification sécurisée par mot de passe (SPA), qui est un protocole propriétaire de Microsoft. Votre mot de passe est déjà crypté par TLS.
Vous devriez maintenant être en mesure de vous connecter à votre propre serveur de messagerie et d’envoyer et de recevoir des courriels avec votre client de messagerie de bureau !
Notez que vous ne pouvez pas utiliser les comptes Unix locaux pour vous connecter désormais.
Vous devez vous connecter avec l’utilisateur virtuel créé à partir de l’interface web de PostfixAdmin.
Prochaine étape
J’espère que ce tutoriel vous a aidé à installer et à utiliser PostfixAdmin sur Ubuntu pour créer des boîtes aux lettres virtuelles.
Dans la partie 4, je vous montrerai comment configurer SPF et DKIM avec Postfix pour améliorer la délivrabilité des emails et dans un prochain tutoriel, je vous montrerai comment héberger plusieurs domaines avec PostfixAdmin.
Si vous souhaitez accéder à vos e-mails à partir d’un navigateur web, je vous recommande Roundcube, un client webmail open-source très populaire et riche en fonctionnalités.
Comme toujours, si vous avez trouvé cet article utile, vous pouvez partager cet article. Bonne lecture !
Accès à tous les cours
Support
FAQ
FAQ
FAQ
Toutes les questions que vous posez en cas d’une erreur qui apparaît dans votre article, je vous ai mis la solution ci-dessous en forme de FAQ.
Impossible de se connecter à partir de clients de messagerie
Si vous ne pouvez pas vous connecter à votre serveur de messagerie à partir d’un client de messagerie de bureau, examinez votre serveur de messagerie pour vérifier si les ports sont ouverts. Notez que vous devez exécuter la commande suivante à partir d’un autre ordinateur ou serveur Linux. Si vous l’exécutez sur votre serveur de messagerie, les ports sembleront toujours ouverts.
sudo nmap mail.domaine.tld
Et vérifiez que Dovecot fonctionne.
systemctl status dovecot
Vous pouvez également consulter le journal du courrier (/var/log/mail.log), qui peut vous donner quelques indices. Si Dovecot ne démarre pas, l’erreur peut ne pas être enregistrée dans le fichier /var/log/mail.log, vous pouvez exécuter la commande suivante pour voir ce qui ne va pas.
sudo journalctl -eu dovecot
Si vous voyez l’erreur suivante dans le journal de courrier, il est probable que vous n’ayez pas défini un mot de passe correct dans les fichiers .cf sous le répertoire /etc/postfix/sql/.
postfix/trivial-rewrite[28494]: warning: virtual_alias_domains: proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf: table lookup problempostfix/trivial-rewrite[28494]: warning: virtual_alias_domains lookup failure
Si vous voyez l’erreur suivante dans le journal de messagerie, c’est que vous avez oublié d’ajouter mail_location = maildir:~/Maildir dans le fichier /etc/dovecot/conf.d/10-mail.conf.
open(/var/mail/username@domain.com) failed: Permission denied (euid=2000(vmail) egid=2000(vmail) missing +w perm: /var/mail, we’re not in group 8(mail), dir owned by 0:8 mode=0775
Accès au relais refusé
Si vous voyez l’erreur “relay access denied” lorsque vous essayez d’envoyer des courriels à partir d’un client de messagerie, il est très probable que vous utilisiez le port 25 comme port SMTP dans votre client de messagerie. Comme je l’ai déjà dit, vous devez utiliser le port 587 ou 465 comme port SMTP dans les clients de messagerie (Microsoft Outlook, etc.) pour envoyer des courriels sortants. Le port 25 doit être utilisé pour les communications entre serveurs SMTP.
Échec de la consultation temporaire
Si votre serveur de messagerie fonctionnait bien depuis un certain temps, mais que vous trouvez soudain l’erreur suivante dans le journal de la messagerie,
Aug 25 20:25:24 mx postfix/trivial-rewrite[3313]: warning: virtual_alias_domains: proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf: table lookup problemAug 25 20:25:24 mx postfix/trivial-rewrite[3313]: warning: virtual_alias_domains lookup failureAug 25 20:25:24 mx postfix/submission/smtpd[3464]: NOQUEUE: reject: 451 4.3.0 <user@kubapay.uk>: Temporary lookup failure; proto=ESMTPAug 25 20:25:24 mx postfix/submission/smtpd[3464]: Temporary lookup failure
Il est probable que votre base de données MariaDB/MySQL se soit arrêtée d’une manière ou d’une autre. Vous pouvez utiliser la commande suivante pour vérifier quand votre serveur de base de données s’est arrêté.
sudo journalctl -eu mariadb
ou
sudo journalctl -eu mysql
La cause la plus fréquente de cette situation est que votre serveur manque de mémoire. Vérifiez que votre serveur dispose de suffisamment de mémoire.
htop
or
free -m
Cette erreur peut également être causée par un trop grand nombre de connexions aux bases de données MariaDB/MySQL, de sorte qu’elles ne peuvent pas traiter plus de requêtes. Pour y remédier, vous pouvez augmenter le nombre de connexions que MariaDB/MySQL peut gérer.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Trouvez la ligne suivante dans la section ” Mise au point”.
#max_connections = 100
Décommentez-le et remplacez la valeur par 500.
max_connections = 500
Si votre serveur dispose de beaucoup de mémoire vive, vous pouvez le remplacer par un nombre plus élevé, comme 1000.
max_connections = 1000
Enregistrez et fermez le fichier. Redémarrez ensuite MariaDB/MySQL.
sudo systemctl restart mysql
Nettoyer automatiquement les dossiers Junk et Trash
Pour supprimer les courriels du dossier Courrier indésirable pour tous les utilisateurs, vous pouvez exécuter la commande suivante
sudo doveadm expunge -A mailbox Junk all
Pour supprimer des courriels dans le dossier Corbeille, exécutez
sudo doveadm expunge -A mailbox Trash all
Je pense qu’il est préférable de nettoyer les courriels qui se trouvent dans le dossier Junk ou Trash depuis plus de 2 semaines, plutôt que de nettoyer tous les courriels.
sudo doveadm expunge -A mailbox Junk savedbefore 2w
Ajoutez ensuite une tâche cron pour automatiser le travail.
sudo crontab -e
Ajoutez la ligne suivante pour nettoyer les dossiers Junk et Trash tous les jours.
@daily doveadm expunge -A mailbox Junk savedbefore 2w;doveadm expunge -A mailbox Trash savedbefore 2w
Vous devez également autoriser l’utilisateur www-data à lire les fichiers de certificats en ajoutant la ligne suivante.
@daily setfacl -R -m u:www-data:rx /etc/letsencrypt/live/ /etc/letsencrypt/archive/
Pour recevoir un rapport lorsqu’un travail Cron produit une erreur, vous pouvez ajouter la ligne suivante au-dessus de tous les travaux Cron.
MAILTO=”osn@osnetworking.net”
Enregistrez et fermez le fichier. Vous avez terminé.
Changement du mot de passe de l'utilisateur dans PostfixAdmin
Les utilisateurs peuvent se connecter à PostfixAdmin à l’adresse https://postfixadmin.osnetworking.net/users/login.php, puis changer leur mot de passe.
Restreindre l'accès à Sendmail
Par défaut, tous les utilisateurs locaux peuvent utiliser le binaire sendmail pour envoyer des messages électroniques sortants.
Maintenant que votre serveur de messagerie utilise des boîtes aux lettres virtuelles, vous voudrez peut-être restreindre l’accès au binaire sendmail aux seuls utilisateurs locaux de confiance, afin qu’un utilisateur malveillant ne puisse pas l’utiliser pour envoyer un volume important de courriers électroniques et nuire à la réputation de votre serveur de messagerie. Modifiez le fichier de configuration principal de Postfix.
sudo nano /etc/postfix/main.cf
Ajoutez la ligne suivante à la fin de ce fichier, afin que seuls les utilisateurs root, www-data et vmail puissent envoyer des courriers électroniques via sendmail.
Vous pouvez également ajouter d’autres noms d’utilisateur.
authorized_submit_users = root,www-data,vmail
Enregistrez et fermez le fichier. Redémarrez ensuite Postfix.
sudo systemctl restart postfix
Comment faire face à une violation de données avec Alias
Si vous utilisez la même adresse électronique pour enregistrer des comptes sur tous les sites web et que les données sont divulguées à des tiers pour diverses raisons, de nombreux spammeurs achèteront la base de données d’adresses électroniques divulguées et enverront du spam.
Pour éviter que votre adresse électronique ne soit la cible de spammeurs, vous pouvez utiliser PostfixAdmin pour créer une adresse alias pour chaque site web.
Si les données sont divulguées à des tiers, vous pouvez supprimer l’alias et en créer un nouveau, afin de ne pas être spammé par ces tiers.
Comment mettre à jour PostfixAdmin
Parfois, il peut y avoir des bogues dans la version actuelle de PostfixAdmin qui peuvent être corrigés par une mise à niveau vers une nouvelle version. Il est très simple de mettre à jour PostfixAdmin.
Lorsqu’une nouvelle version de PostfixAdmin est disponible, vous devez
- – Faites une copie du fichier /var/www/postfixadmin/config.local.php dans votre répertoire personnel.
- – Supprimez le répertoire web PostfixAdmin (sudo rm /var/www/postfixadmin/ -r)
- – Reprenez les étapes 2, 3, 5 et 10 de ce tutoriel. Lors de l’étape 5, copiez simplement le fichier local.php depuis votre répertoire personnel.
À l’étape 10, le schéma de la base de données de PostfixAdmin sera automatiquement mis à jour lorsque vous visiterez la page web setup.php.
J’ai eu une fois un problème de boucle de connexion dans mon installation de PostfixAdmin et il a été résolu en mettant à jour PostfixAdmin vers la dernière version.