GNU/Linux >> Tutoriels Linux >  >> Panels >> Panels

Comment installer un serveur de messagerie avec PostfixAdmin sur Ubuntu 20.04

Dans ce didacticiel, nous couvrirons le processus de configuration d'un serveur de messagerie avec Postfix, Dovecot, Postfixadmin et MariaDB sur un VPS Ubuntu 20.04. Mais d'abord, qu'est-ce que PostfixAdmin ?

PostfixAdmin est une application Web open source écrite en PHP qui est utilisée pour créer des domaines virtuels et des comptes de messagerie pour un serveur de messagerie Postfix. À l'aide de PostfixAdmin, nous pouvons gérer les boîtes aux lettres et les alias, définir des quotas, configurer les messages d'absence/d'absence du bureau, etc. De plus, l'interface Web vous offre la convivialité d'une fenêtre de navigateur avec une interface utilisateur.

PostfixAdmin nous permet d'utiliser des adresses e-mail virtuelles et des boîtes aux lettres virtuelles, nous n'avons donc pas besoin de créer un nouveau compte utilisateur système pour chaque adresse e-mail. Compte tenu de tous ces détails, PostfixAdmin est un outil polyvalent et peut être utilisé pour presque tous vos besoins de publipostage. Ce tutoriel va assez en profondeur et peut prendre un certain temps pour tout configurer correctement. Commençons par les étapes d'installation.

Configuration matérielle/logicielle requise

  • Un serveur ou un VPS Ubuntu 20.04 avec l'accès root activé, ou un utilisateur avec des privilèges sudo. Nous fournissons à tous nos utilisateurs un accès root complet sur leurs VPS.
  • L'agent de transfert de courrier Postfix (MTA) et l'agent de distribution de courrier Dovecot IMAP/POP3 doivent être installés.
  • Un serveur de base de données (MySQL/MariaDB, PostgreSQL ou SQLite) doit être installé.
  • Le serveur Web Apache doit être installé avec le mod_rewrite module activé.
  • PHP 7.1 ou version ultérieure doit être installé avec imap , mbstring et mysql extensions toutes activées.

Étape 1. Premiers pas

Pour commencer, nous allons devoir nous connecter à notre serveur en utilisant SSH. Vous pouvez le faire en saisissant cette commande :

ssh root@IP_Address -p Port_Number

N'oubliez pas de remplacer "root" par votre nom d'utilisateur si vous n'utilisez pas l'utilisateur root. Modifiez les valeurs en rouge en fonction de l'adresse IP et du numéro de port SSH de votre serveur (le numéro par défaut est 22, essayez-le d'abord à moins que votre serveur n'utilise un numéro de port personnalisé).

Une fois connecté, vous devez mettre à jour tous vos packages vers leurs dernières versions disponibles.

apt-get update -y
apt-get upgrade -y

Une fois que tous les packages sont à jour, redémarrez votre serveur pour appliquer les modifications de configuration et vous assurer que tous les logiciels fonctionnent sur leurs dernières versions.

Étape 2. Créer un compte utilisateur système

PostfixAdmin a la capacité de créer plusieurs domaines virtuels, utilisateurs et alias. Cela nous évite d'avoir à créer de nouveaux utilisateurs système chaque fois que nous avons besoin d'ajouter un nouveau compte de messagerie. Pour des raisons de sécurité, nous allons créer un nouvel utilisateur nommé "vmail" avec des autorisations pour stocker les e-mails dans le /var/vmail répertoire :

useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual Mail User" vmail
mkdir -p /var/vmail
chmod -R 770 /var/vmail
chown -R vmail:mail /var/vmail

Étape 3. Installez PHP, Apache et les extensions requises

PHP 7.4 et Apache2 sont inclus dans le référentiel Ubuntu par défaut pour 20.04. Nous pouvons installer Apache 2, PHP 7.4 et les extensions PHP requises à l'aide de la commande suivante. Nous avons également inclus les modules PHP et Apache requis dans la commande :

apt-get install apache libapache2-mod-php php php-common php-mbstring php-imap php-mysql

Étape 4. Installer le serveur MariaDB

PostfixAdmin a besoin d'une base de données pour pouvoir stocker les informations de compte de messagerie et de domaine. Pour les besoins de ce didacticiel, nous utiliserons un système de base de données MariaDB, une version open source de MySQL qui maintient la parité des fonctionnalités. Nous pouvons installer le serveur MariaDB en utilisant la commande suivante :

apt-get install mariadb-server mariadb-client mariadb-common

Démarrez le service MariaDB et activez-le au démarrage du serveur à l'aide des commandes suivantes :

systemctl start mariadb 
systemctl enable mariadb

Afin d'améliorer la sécurité de votre installation MariaDB, exécutez le mysql_secure_installation script :

mysql_secure_installation

Lorsque vous y êtes invité, vous pouvez définir le mot de passe root MariaDB et répondre en toute sécurité "O" à toutes les questions.

Enter current password for root (enter for none): Just press the [Enter] key since there is no default password
Set root password? [Y/n]: Y
New password: Enter a strong password
Re-enter new password: Repeat the same password from before
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

Si vous avez suivi les étapes ci-dessus, vous aurez défini un mot de passe pour l'utilisateur racine de MariaDB.

Exécutez cette commande pour accéder à la console MySQL :

mysql -u root -p

Et entrez le mot de passe root que vous avez défini précédemment à l'aide de mysql_secure_installation scénario. Si vous avez choisi de ne pas exécuter ce script, aucun mot de passe n'est défini, il vous suffit donc d'appuyer une fois sur la touche [Entrée].

Ensuite, créez un utilisateur MariaDB et une base de données pour PostfixAdmin :

MariaDB [(none)]> CREATE USER 'postfixadmin'@'localhost' IDENTIFIED BY 'Strong_Password';
MariaDB [(none)]> CREATE DATABASE postfixadmin;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixadmin'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

N'oubliez pas de remplacer "Strong_Password" par un bon mot de passe unique.

Étape 5. Installer Postfix

Installez Postfix et postfix-mysql packages en exécutant la commande ci-dessous :

apt-get install postfix postfix-mysql

Lors de l'installation de Postfix, il vous sera demandé le type de configuration de messagerie. Sélectionnez « Site Internet » et cliquez sur OK pour continuer. Ensuite, entrez le nom d'hôte du serveur dans le champ "nom de messagerie système".

Une fois l'installation de Postfix terminée, nous devons créer plusieurs fichiers de configuration de Postfix. Cela prendra un certain temps car il y a pas mal de fichiers qui doivent être créés et configurés.

mkdir -p /etc/postfix/sql/

Définissez les paramètres de connexion à la base de données pour interroger les cartes fourre-tout du domaine d'alias virtuel en créant ce fichier. Nous utilisons vi , mais vous pouvez utiliser l'éditeur de texte de votre choix :

vi /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf

Une fois le fichier créé, insérez ce contenu :

user = postfixadmin
password = Strong_Password
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'

Créez ce fichier afin que nous puissions définir les paramètres de connexion à la base de données pour interroger les cartes de boîtes aux lettres du domaine d'alias virtuel :

vi /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf

Insérez ensuite ce contenu :

user = postfixadmin
password = Strong_Password
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'

Après cela, définissez les paramètres de connexion à la base de données pour interroger les mappages de domaines d'alias virtuels en créant ce fichier :

vi /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf

Ajoutez ce qui suit :

user = postfixadmin
password = Strong_Password
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'

Les paramètres suivants concernent les paramètres de connexion à la base de données pour interroger les mappages d'alias virtuels. Créez ce fichier :

vi /etc/postfix/sql/mysql_virtual_alias_maps.cf

Ajoutez ce texte :

user = postfixadmin
password = Strong_Password
hosts = localhost
dbname = postfixadmin
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

Il en reste encore quelques-uns. Maintenant, créez un fichier pour les paramètres de connexion à la base de données pour interroger les cartes de domaine virtuel :

vi /etc/postfix/sql/mysql_virtual_domains_maps.cf

Assurez-vous de définir les mots de passe sur tous ces fichiers que vous avez ajoutés. Ajoutez le contenu :

user = postfixadmin
password = Strong_Password
hosts = localhost
dbname = postfixadmin
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'

Au dossier suivant. Créez-le et ajoutez les paramètres de connexion à la base de données pour interroger les cartes de limite de boîte aux lettres virtuelle :

vi /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf

Insérez ceci et changez le mot de passe :

user = postfixadmin
password = Strong_Password
hosts = localhost
dbname = postfixadmin
query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'

Enfin, créez ce fichier et ajoutez les paramètres de connexion à la base de données pour interroger les cartes de boîtes aux lettres virtuelles :

vi /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user = postfixadmin
password = Strong_Password
hosts = localhost
dbname = postfixadmin
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'

REMARQUE  : N'oubliez pas de remplacer "Strong_Password" par votre propre mot de passe dans tous les fichiers de configuration ci-dessus.

Modifier le main.cf Fichier de configuration de Postfix, qui est au cœur de la configuration de Postfix. Exécutez ces commandes pour modifier chaque paramètre :

postconf -e "myhostname = $(hostname -f)"
postconf -e "virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf"
postconf -e "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"
postconf -e "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"
postconf -e "smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem"
postconf -e "smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key"
postconf -e "smtpd_use_tls = yes"
postconf -e "smtpd_tls_auth_only = yes"
postconf -e "smtpd_sasl_type = dovecot"
postconf -e "smtpd_sasl_path = private/auth"
postconf -e "smtpd_sasl_auth_enable = yes"
postconf -e "smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination"
postconf -e "mydestination = localhost"
postconf -e "mynetworks = 127.0.0.0/8"
postconf -e "inet_protocols = ipv4"
postconf -e "inet_interfaces = all"
postconf -e "virtual_transport = lmtp:unix:private/dovecot-lmtp"

Nous pouvons également installer Certbot, puis installer un nouveau certificat SSL Let's encrypt pour le nom d'hôte du serveur et remplacer /etc/ssl/certs/ssl-cert-snakeoil.pem et /etc/ssl/private/ssl-cert-snakeoil.key avec le certificat SSL et les fichiers de clé publique nouvellement créés.

Ensuite, modifiez le master.cf Fichier de configuration de Postfix et modifiez-le comme suit :

vi /etc/postfix/master.cf

Ajoutez ou modifiez le contenu pour que le fichier ressemble à ceci :

smtp inet n - y - - smtpd
#smtp inet n - y - 1 postscreen
#smtpd pass - - y - - smtpd
#dnsblog unix - - y - 0 dnsblog
#tlsproxy unix - - y - 0 tlsproxy
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
# -o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING

Activez le service Postfix pour qu'il démarre au démarrage du serveur et redémarrez le service Postfix :

systemctl enable postfix
systemctl restart postfix

Postfix est enfin installé et configuré.

Étape 6. Installez Dovecot

Dovecot est un Mail Delivery Agent qui permet à un utilisateur de recevoir des emails en toute sécurité via les protocoles IMAP et/ou POP3. Nous pouvons installer Dovecot et le dovecot-mysql package à l'aide de la commande ci-dessous :

apt-get install dovecot-core dovecot-lmtpd dovecot-imapd dovecot-pop3d dovecot-mysql

Modifiez le /etc/dovecot/conf.d/10-mail.conf fichier :

vi /etc/dovecot/conf.d/10-mail.conf

Insérez ceci comme contenu :

mail_location = maildir:/var/vmail/%d/%n
mail_privileged_group = mail
mail_uid = vmail
mail_gid = mail
first_valid_uid = 150
last_valid_uid = 150

Ouvrez le /etc/dovecot/conf.d/10-auth.conf fichier :

vi /etc/dovecot/conf.d/10-auth.conf

Modifiez-le pour que le fichier ressemble à ceci :

auth_mechanisms = plain login
#!include auth-system.conf.ext
!include auth-sql.conf.ext

Modifiez ensuite le dovecot-sql.conf.ext file, et ajoutez ces lignes :

vi /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=localhost dbname=postfixadmin user=postfixadmin password=Strong_Password
default_pass_scheme = MD5-CRYPT
password_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
user_query = SELECT '/var/vmail/%d/%u' as home, 'maildir:/var/vmail/%d/%u' as mail, 150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'

N'oubliez pas de remplacer Strong_Password par le mot de passe réel que vous avez défini précédemment à l'étape 4 lors de la création de l'utilisateur MariaDB.

Modifiez le /etc/dovecot/conf.d/10-ssl.conf fichier et activez la prise en charge SSL :

vi /etc/dovecot/conf.d/10-ssl.conf
ssl = yes

Enregistrez et fermez ce fichier, puis modifiez le /etc/dovecot/conf.d/15-lda.conf fichier et définissez le postmaster_address adresse e-mail.

vi /etc/dovecot/conf.d/15-lda.conf
postmaster_address = [email protected]

Assurez-vous de remplacer votredomaine.com par le nom de domaine réel qui pointe vers votre serveur.

Modifiez le /etc/dovecot/conf.d/10-master.conf fichier, recherchez le service lmtp section et remplacez-la par les lignes suivantes :

vi /etc/dovecot/conf.d/10-master.conf
service lmtp {
     unix_listener /var/spool/postfix/private/dovecot-lmtp {
     mode = 0600
     user = postfix
     group = postfix
     }
}

Une fois cette partie modifiée, recherchez le service auth section et remplacez-la par l'extrait suivant :

service auth {
     unix_listener /var/spool/postfix/private/auth {
     mode = 0666
     user = postfix
     group = postfix
}

unix_listener auth-userdb {
     mode = 0600
     user = vmail

}
user = dovecot
}

Changez ensuite le service auth-worker section à ce qui suit :

service auth-worker {
user = vmail
}

Enregistrez et fermez le fichier.

Définissez les autorisations correctes des fichiers de configuration Dovecot :

chown -R vmail:dovecot /etc/dovecot 
chmod -R o-rwx /etc/dovecot

Activez le service Dovecot pour qu'il démarre au démarrage du serveur et redémarrez Dovecot afin que tous ces nouveaux fichiers de configuration soient effectifs :

systemctl enable dovecot
systemctl restart dovecot

Étape 7. Installez PostfixAdmin

Maintenant que tous nos logiciels requis sont installés et configurés, installons et configurons PostfixAdmin et terminons ce didacticiel.

Téléchargez la dernière version disponible de PostfixAdmin depuis Github et extrayez-la dans le /var/www/html/postfixadmin répertoire.

apt-get install git
cd  /var/www/html/
git clone https://github.com/postfixadmin/postfixadmin.git

Modifiez le /var/www/html/postfixadmin/config.local.php fichier et ajoutez ces lignes :

vi /var/www/html/postfixadmin/config.local.php
<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'Strong_Password';
$CONF['database_name'] = 'postfixadmin';
$CONF['configured'] = true;
$CONF['encrypt'] = 'md5crypt';
?>

Remplacez Strong_Password par le mot de passe de l'utilisateur MariaDB.

mkdir /var/www/html/postfixadmin/templates_c

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

Ouvrez http://your_server_IP/postfixadmin/public/setup.php . Vérifiez si tout va bien et assurez-vous qu'il n'y a pas d'erreur :

Faites défiler vers le bas et saisissez deux fois votre nouveau mot de passe de configuration. Assurez-vous d'en choisir une forte :

Cliquez ensuite sur le bouton "Générer le hachage du mot de passe".

Modifiez le config.local.php fichier et ajoutez-y le hachage généré :

$CONF['setup_password'] = '0584cbe2b03cad2e29c8be0127361e37:d41ceb2689b747cf143d1809aec7b8e6bdde983e';

Remplacez le hachage indiqué dans l'exemple par celui généré pour votre instance.

Enregistrez le config.local.php fichier, ouvrez à nouveau la page de configuration et créez un compte utilisateur administrateur PostfixAdmin. Le mot de passe de configuration de cette page est le même mot de passe que vous avez utilisé à l'étape précédente, alors remplissez les autres champs obligatoires tels que l'adresse e-mail et le mot de passe de l'administrateur, puis cliquez sur le bouton "Ajouter un administrateur".

C'est ça! L'installation de PostfixAdmin est terminée.

Ouvrez http://your_server_IP/postfixadmin/login.php dans votre navigateur Web préféré. Vous verrez la page de connexion :

Connectez-vous en tant qu'utilisateur administrateur et ajoutez les domaines hébergés sur le serveur :

Une fois cela fait, vous pouvez créer des adresses e-mail, définir un quota d'e-mails, etc. :

C'est tout ce dont vous aurez besoin pour installer, configurer et commencer à utiliser votre installation PostfixAdmin sur votre VPS Ubuntu 20.04.

Ce processus d'installation est très complexe et il est assez facile de se tromper et de se retrouver avec une installation bâclée de Postfix, Dovecot ou les deux. Cependant, si vous avez un hébergement VPS Ubuntu géré avec nous, vous n'aurez rien d'autre à faire que de nous demander de l'installer pour vous. Notre équipe d'experts du support installera et configurera complètement tous les aspects de votre serveur afin que Postfix, Dovecot et PostfixAdmin fonctionnent parfaitement. Ils peuvent également vous aider à configurer la maintenance de routine et à optimiser votre serveur pour maximiser sa vitesse.

Nous vous serions reconnaissants de partager ceci sur les réseaux sociaux si vous avez trouvé ce tutoriel utile. Ou, vous pouvez écrire un commentaire pour nous faire savoir comment l'installation s'est déroulée et si PostfixAdmin vous a aidé à gérer votre serveur de messagerie plus facilement. Merci !


Panels
  1. Comment installer FastPanel sur Ubuntu 20.04

  2. Comment installer MySQL sur Ubuntu 16.04

  3. Comment installer NextCloud 13 sur Ubuntu 16.04

  4. Comment installer osTicket sur Ubuntu 16.04

  5. Comment installer WordPress avec LAMP Stack sur Ubuntu 16.04

Comment installer Postfix Mail Server sur Ubuntu 20.04

Comment installer le serveur de messagerie avec PostfixAdmin sur CentOS 7

Comment installer aaPanel sur Ubuntu 20.04

Comment installer Elgg avec Nginx sur Ubuntu 18.04

Comment installer WordPress avec OpenLiteSpeed ​​sur Ubuntu 18.04

Comment installer WordPress avec LAMP Stack sur Ubuntu 20.04