GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Configurer un serveur de messagerie avec PostfixAdmin

Postfix Admin est une interface Web qui permet aux utilisateurs de configurer et de gérer un serveur de messagerie basé sur Postfix. Avec Postfix Admin, vous pouvez créer et gérer plusieurs domaines virtuels, utilisateurs et alias.

Il s'agit du premier article de la série pour l'installation et la configuration d'un serveur de messagerie qui couvre la création des enregistrements DNS nécessaires et explique comment installer et configurer Postfix Admin, Nginx avec un certificat Let's Encrypt gratuit, PHP et MySQL.

Ce tutoriel a été écrit pour Ubuntu 16.04, mais les mêmes étapes avec de petites modifications devraient fonctionner sur n'importe quelle version plus récente d'Ubuntu.

Prérequis #

Comme prérequis pour suivre cette série, vous aurez besoin de :

  • Serveur Ubuntu 16.04. Le nom d'hôte du serveur doit être un FQDN. Dans cette série, nous utiliserons mail.linuxize.com .
  • Utilisateur avec privilèges sudo.

Paramètres DNS #

Vous devez configurer les enregistrements DNS suivants pour que votre système de messagerie fonctionne :

  • Un enregistrement, pour faire pointer le FQDN (nom d'hôte) de votre système vers l'adresse IPv4 de votre serveur de messagerie.
mail.linuxize.com. 3600 IN A   23.45.67.89
Le FQDN se compose de deux parties, le nom d'hôte et le nom de domaine.
  • Enregistrement MX, pour spécifier quel serveur de messagerie est responsable de l'acceptation des e-mails au nom du domaine d'un destinataire. Dans notre cas, nous voulons que tous les e-mails soient envoyés à @linuxize.com adresses e-mail à accepter par mail.linuxize.com serveur de messagerie.
linuxize.com.      3600 IN MX  0 mail.linuxize.com.
  • Enregistrement SPF, utilisé pour vérifier quels serveurs de messagerie sont autorisés à envoyer des e-mails au nom d'un domaine donné. Dans l'exemple ci-dessous, nous approuvons les serveurs de messagerie du domaine (mx) et si la vérification SPF échoue, le résultat sera un échec logiciel (~all) :
linuxize.com.      3600 IN TXT "v=spf1 mx ~all"
Bien sûr, vous devez remplacer le nom de domaine et l'adresse IP par votre vrai nom de domaine et l'adresse IP de votre serveur de messagerie.

DNS inversé (PTR) #

Le DNS inversé (PTR) est un mappage d'adresse IP vers un nom de domaine, l'exact opposé du DNS qui mappe les noms de domaine vers des adresses IP.

La plupart des serveurs de messagerie effectueront une recherche DNS inversée sur l'adresse IP qui tente de s'y connecter et peuvent ne pas accepter les e-mails du serveur si l'enregistrement PTR n'est pas défini.

Dans la plupart des cas, les entrées PTR peuvent être définies via l'interface Web de votre hébergeur ou en contactant l'équipe d'assistance et en leur demandant de configurer un enregistrement PTR correct pour vous.

Vous pouvez utiliser la commande dig pour connaître le DNS inverse d'une adresse IP donnée.

dig -x 23.45.67.89
23.45.67.89.in-addr.arpa domain name pointer mail.linuxize.com.

Créer un utilisateur système #

Puisque nous configurons un serveur de messagerie avec des utilisateurs virtuels, nous avons besoin d'un utilisateur système qui sera le propriétaire de toutes les boîtes aux lettres et sera utilisé par les utilisateurs virtuels pour accéder à leurs messages électroniques sur le serveur.

La commande suivante créera un nouveau groupe et un utilisateur nommé vmail et définissez le répertoire personnel de l'utilisateur sur /var/mail/vmail :

sudo groupadd -g 5000 vmailsudo useradd -u 5000 -g vmail -s /usr/sbin/nologin -d /var/mail/vmail -m vmail

Toutes les boîtes aux lettres virtuelles seront stockées dans le /var/mail/vmail répertoire.

Installer Nginx PHP et MySQL #

Postfix Admin est une application basée sur PHP. Pour pouvoir accéder à l'interface Web de PostfixAdmin, nous devons installer un serveur Web et PHP.

Exécutez la commande suivante pour installer Nginx, PHP et tous les modules PHP requis :

sudo apt install nginx mysql-server php7.0-fpm php7.0-cli php7.0-imap php7.0-json php7.0-mysql php7.0-opcache php7.0-mbstring php7.0-readline

Vous serez invité à créer un mot de passe root MySQL lors de l'installation.

Télécharger et configurer Postfix Admin #

Au moment de la rédaction, 3.1 est la dernière version stable de Postfix Admin.

Téléchargez l'archive Postfix Admin à l'aide de la commande wget suivante :

VERSION=3.1wget -q https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-${VERSION}/postfixadmin-${VERSION}.tar.gz

Une fois le téléchargement terminé, extrayez l'archive :

tar xzf postfixadmin-${VERSION}.tar.gz

Déplacez les fichiers source de Postfix Admin vers /var/www répertoire et créez templates_c répertoire (smarty cache):

sudo mv postfixadmin-${VERSION}/ /var/www/postfixadminrm -f postfixadmin-${VERSION}.tar.gzmkdir /var/www/postfixadmin/templates_c

Nginx et PHP-FPM fonctionnent sous l'utilisateur www-data nous devons donc changer le propriétaire du /var/www/postfixadmin à cet utilisateur :

sudo chown -R www-data: /var/www/postfixadmin

L'administrateur de Postfix utilisera une base de données MySQL pour stocker des informations sur les utilisateurs, les domaines et la configuration de l'application.

Connectez-vous au shell MySQL :

mysql -u root -p

Créez un nouvel utilisateur MySQL et une nouvelle base de données à l'aide des commandes suivantes :

CREATE DATABASE postfixadmin;GRANT ALL ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'P4ssvv0rD';FLUSH PRIVILEGES;
N'oubliez pas de changer le mot de passe (P4ssvv0rD ) à quelque chose de plus sûr.

Au lieu de modifier la configuration par défaut de Postfix Admin, nous allons créer un nouveau fichier nommé config.local.php qui écrasera les paramètres par défaut de l'application :

Ouvrez le fichier avec votre fichier texte :

sudo nano /var/www/postfixadmin/config.local.php

Collez le code php suivant :

/var/www/postfixadmin/config.local.php
<?php
$CONF['configured'] = true;

$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'P4ssvv0rD';
$CONF['database_name'] = 'postfixadmin';

$CONF['default_aliases'] = array (
  'abuse'      => '[email protected]',
  'hostmaster' => '[email protected]',
  'postmaster' => '[email protected]',
  'webmaster'  => '[email protected]'
);

$CONF['fetchmail'] = 'NO';
$CONF['show_footer_text'] = 'NO';

$CONF['quota'] = 'YES';
$CONF['domain_quota'] = 'YES';
$CONF['quota_multiplier'] = '1024000';
$CONF['used_quotas'] = 'YES';
$CONF['new_quota_table'] = 'YES';

$CONF['aliases'] = '0';
$CONF['mailboxes'] = '0';
$CONF['maxquota'] = '0';
$CONF['domain_quota_default'] = '0';
?>

Enregistrez et fermez le fichier.

Avec la configuration ci-dessus, nous définissons le type de base de données et les identifiants de connexion. De plus, nous spécifions les alias par défaut, en désactivant fetchmail et l'activation du quota.

Ensuite, exécutez la commande suivante pour créer le schéma de la base de données d'administration de Postfix :

sudo -u www-data php /var/www/postfixadmin/upgrade.php

Une fois la base de données remplie, nous pouvons continuer et créer notre premier utilisateur superadmin PostfixAdmin en utilisant le postfixadmin-cli outil.

Cet utilisateur aura des privilèges d'administration pour modifier n'importe quel paramètre de domaine ou d'application.

sudo bash /var/www/postfixadmin/scripts/postfixadmin-cli admin add [email protected] --superadmin 1 --active 1 --password P4ssvv0rD --password2 P4ssvv0rD

Le résultat devrait ressembler à ceci :

Welcome to Postfixadmin-CLI v0.2
---------------------------------------------------------------

The admin [email protected] has been added!

---------------------------------------------------------------
N'oubliez pas de changer le mot de passe (P4ssvv0rD ) pour le compte superadmin vers quelque chose de plus sécurisé.

Installer gratuitement le certificat SSL Let's Encrypt #

Nous allons utiliser le certificat SSL pour accéder à notre installation Postfix Admin et activer le cryptage Dovecot et Postfix SSL/TLS.

Nous avons un tutoriel sur la façon d'installer un certificat SSL Let's Encrypt. Le point le plus important ici est de générer un certificat SSL pour le nom d'hôte de votre serveur (FQDN) dans notre cas mail.linuxize.com .

Une fois que vous avez généré le certificat SSL en suivant le tutoriel lié ci-dessus, modifiez le bloc de votre serveur Nginx comme suit :

/etc/nginx/sites-enabled/mail.linuxize.com.conf
server {
    listen 80;
    server_name mail.linuxize.com;

    include snippets/letsencrypt.conf;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name mail.linuxize.com;
    root /var/www;

    ssl_certificate /etc/letsencrypt/live/mail.linuxize.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mail.linuxize.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/mail.linuxize.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    location / {
       try_files $uri $uri/ /index.php;
    }

    location /postfixadmin {
       index index.php;
       try_files $uri $uri/ /postfixadmin/index.php;
    }

    location ~* \.php$ {
         fastcgi_split_path_info ^(.+?\.php)(/.*)$;
         if (!-f $document_root$fastcgi_script_name) {return 404;}
         fastcgi_pass  unix:/run/php/php7.0-fpm.sock;
         fastcgi_index index.php;
         include fastcgi_params;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Rechargez le service Nginx pour que les modifications prennent effet :

sudo systemctl reload nginx

À ce stade, vous devriez pouvoir vous connecter à votre installation Postfix Admin sur https://mail.linuxize.com/postfixadmin , en utilisant l'utilisateur superadmin créé précédemment dans ce didacticiel.


Ubuntu
  1. Comment configurer un serveur de messagerie avec PostfixAdmin sur Debian 11

  2. Configurer un serveur de messagerie avec PostfixAdmin et MariaDB sur CentOS 7

  3. Comment configurer un serveur de messagerie avec PostfixAdmin sur CentOS 7

  4. Comment installer un serveur de messagerie avec PostfixAdmin sur Ubuntu 20.04

  5. Configurer un serveur de messagerie avec PostfixAdmin sur Debian 9

Comment configurer rapidement un serveur de messagerie sur Ubuntu 20.04 avec Modoboa

Comment installer le serveur de messagerie avec PostfixAdmin sur CentOS 7

Configurer le serveur Ubuntu avec EHCP (LAMP, DNS, FTP, Mail)

Comment configurer un serveur de messagerie complet avec IRedMail sur Centos 7 VPS

Comment configurer un serveur de messagerie complet avec iRedMail sur Ubuntu 18.04 VPS

Comment configurer un serveur de messagerie avec Modoboa sur Ubuntu 20.04