Dans ce tutoriel, nous allons vous montrer comment configurer un serveur de messagerie avec PostfixAdmin sur un VPS Debian 9. Nous allons configurer un serveur de messagerie avec Postfix, Dovecot et MariaDB.
PostfixAdmin est une interface graphique Web pour la base de données utilisée par Postfix. Vous pouvez facilement gérer votre serveur de messagerie, comme l'ajout et la suppression de domaines, de comptes de messagerie, d'alias et de quotas grâce à l'utilisation de Postfixadmin. L'interface graphique basée sur le Web rend ces fonctions et caractéristiques plus accessibles et vous permet de modifier et d'accéder aux informations lorsque vous êtes loin de votre terminal. Commençons.
Prérequis :
- un VPS Debian 9
- Accès SSH avec privilèges root ou accès à un utilisateur disposant de privilèges sudo
Étape 1 :Connectez-vous via SSH et mettez à jour le système
Connectez-vous à votre VPS Debian 9 :
# ssh root@IP_Address -p Port_number
Vous pouvez vérifier si vous avez la bonne version de Debian installée sur votre serveur avec la commande suivante :
# lsb_release -a
Vous devriez obtenir ce résultat :
ID distributeur :DebianDescription :Debian GNU/Linux 9.9 (Stretch)Version :9.9Nom de code :stretch
Ensuite, exécutez la commande suivante pour vous assurer que tous les packages installés sur le serveur sont mis à jour vers leurs dernières versions disponibles :
# apt update &&apt upgrade
Étape 2 :Créer un utilisateur système
Pour des raisons de sécurité, nous allons créer un nouvel utilisateur système qui sera le propriétaire de toutes les boîtes aux lettres.
# useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Utilisateur de messagerie virtuelle" vmail# mkdir -p /var/vmail# chmod -R 770 /var/vmail # chown -R vmail:mail /var/vmail
Étape 3 :Installer le serveur MariaDB
PostfixAdmin prend en charge les systèmes de bases de données MySQL/MariaDB, PostgreSQL et SQLite. Dans ce didacticiel, nous utiliserons MySQL/MariaDB comme moteur de stockage de base de données.
# apt install mariadb-server
Pour démarrer le service MariaDB et lui permettre de démarrer au démarrage, exécutez les commandes suivantes :
# systemctl start mariadb# systemctl enable mariadb
Maintenant, vous pouvez ignorer l'étape suivante si vous préférez ne pas avoir de mot de passe root MySQL.
# mysql_secure_installation
Lorsque vous y êtes invité, répondez aux questions ci-dessous en suivant le guide.
Entrez le mot de passe actuel pour root (entrez pour aucun) :appuyez simplement sur la touche [Entrée] puisqu'il n'y a pas de mot de passe par défaut. Définir le mot de passe root ? [O/n] : YNouveau mot de passe :saisissez le mot de passe. Saisissez à nouveau le nouveau mot de passe :répétez le mot de passe. Supprimer les utilisateurs anonymes ? [O/n] :YInterdire la connexion root à distance ? [O/n] :YSupprimer la base de données de test et y accéder ? [O/n] :YRecharger les tables de privilèges maintenant ? [O/n] :O
Si vous avez suivi l'étape ci-dessus, vous auriez alors un mot de passe nouvellement défini pour l'utilisateur root de MySQL.
Ensuite, exécutez cette commande pour accéder au shell MySQL.
# mysql -u root -p
N'oubliez pas d'entrer votre mot de passe root si vous avez exécuté le script d'installation sécurisée.
Continuons avec la création d'une base de données pour PostfixAdmin :
MariaDB [(aucun)]> CRÉER UNE BASE DE DONNÉES postfixadmin;MariaDB [(aucun)]> ACCORDER TOUS LES PRIVILÈGES SUR postfixadmin.* À 'postfixadmin'@'localhost' IDENTIFIÉ PAR 'M0d1fyth15';MariaDB [(aucun)]> FLUSH PRIVILÈGES;MariaDB [(aucun)]> \q
Assurez-vous de remplacer le mot de passe de l'utilisateur de la base de données par un bon mot de passe unique.
Étape 4 :Installez PHP et tous les modules PHP nécessaires
C'est
apt installer apache2 php php-mbstring php-imap php-mysql libapache2-mod-php7.0
Étape 5 :Installez Postfix
Installez Postfix avec la commande ci-dessous :
# apt install postfix-mysql
Choisissez Site Internet et cliquez sur OK pour continuer.
Il vous sera demandé le nom de messagerie du système, assurez-vous qu'il est identique à votre nom d'hôte.
Une fois l'installation terminée, nous devons créer des fichiers de configuration :
# mkdir -p /etc/postfix/sql/
À partir de là, plusieurs fichiers de configuration seront créés. Assurez-vous de remplacer ici toutes les valeurs qui sont différentes des valeurs nécessaires, sinon votre configuration risque de ne pas fonctionner.
# nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
user =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =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'
# nano /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
user =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT maildir FROM boîte aux lettres,alias_domain WHERE alias_domain.alias_domain ='%d' et boîte aux lettres.username =CONCAT('%u', '@', alias_domain.target_domain) AND boîte aux lettres .active =1 ET alias_domain.active='1'
# nano /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
user =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =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 ET alias_domain.active='1'
# nano /etc/postfix/sql/mysql_virtual_alias_maps.cf
user =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT goto FROM alias WHERE address='%s' AND active ='1'
# nano /etc/postfix/sql/mysql_virtual_domains_maps.cf
user =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT domain FROM domain WHERE domain='%s' AND active ='1'
# nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
user =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT quota FROM boîte aux lettres WHERE username='%s' AND active ='1'
# nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT maildir FROM boîte aux lettres WHERE username='%s' AND active ='1'
Dans les fichiers de configuration ci-dessus, nous utilisons 'm0d1fyth15' comme mot de passe, veuillez le changer pour votre propre mot de passe.
Maintenant, éditons le main.cf
fichier en invoquant les commandes suivantes :
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, reflect_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"
Ouvrez le master.cf
fichier, trouver submission inet n
et smtps inet n
sections et modifiez-les comme suit :
# nano /etc/postfix/master.cf
smtp inet n - y - - smtpd#smtp inet n - y - 1 postscreen#smtpd pass - - y - - smtpd#dnsblog unix - - y - 0 dnsblog#tlsproxy unix - - y - 0 tlsproxysubmission 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=ORIGINATINGsmtps 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=non-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 et redémarrez le service Postfix :
# systemctl enable postfix# systemctl restart postfix
Étape 6 :Installez Dovecot
Installez Dovecot à l'aide de la commande ci-dessous :
# apt install dovecot-mysql
Ouvrez le fichier /etc/dovecot/conf.d/10-mail.conf et modifiez les valeurs suivantes :
# nano /etc/dovecot/conf.d/10-mail.conf
mail_location =maildir :/var/vmail/%d/%nmail_privileged_group =mailmail_uid =vmailmail_gid =mailfirst_valid_uid =150last_valid_uid =150
Ouvrez le fichier /etc/dovecot/conf.d/10-auth.conf et modifiez les valeurs suivantes :
# nano /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms =plain login#!include auth-system.conf.ext!include auth-sql.conf.ext
Modifiez le dovecot-sql.conf.ext
fichier, puis ajoutez ces lignes :
# nano /etc/dovecot/dovecot-sql.conf.ext
driver =mysqlconnect =host=localhost dbname=postfixadmin user=postfixadmin password=M0d1fyth15default_pass_scheme =MD5-CRYPTpassword_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 boîte aux lettres WHERE username ='%u' ET actif ='1'
N'oubliez pas de remplacer le mot de passe ainsi que toute autre valeur différente ici également.
Dans le fichier /etc/dovecot/conf.d/10-ssl.conf, activez le support SSL :
# nano /etc/dovecot/conf.d/10-ssl.conf
ssl =oui
Ouvrez le fichier /etc/dovecot/conf.d/15-lda.conf et définissez le postmaster_address
adresse e-mail.
# nano /etc/dovecot/conf.d/15-lda.conf
postmaster_address [email protected]
Ouvrez le fichier /etc/dovecot/conf.d/10-master.conf, recherchez la section service lmtp et modifiez-la comme suit :
# nano /etc/dovecot/conf.d/10-master.conf
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode =0600 user =postfix group =postfix }}
recherchez la section d'authentification du service et remplacez-la par :
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}
Modifiez la section service auth-worker comme suit :
service auth-worker {user =vmail}
Définissez les autorisations :
# chown -R vmail:dovecot /etc/dovecot# chmod -R o-rwx /etc/dovecot
Activer et redémarrer le service Dovecot
# systemctl enable dovecot# systemctl restart dovecot
Étape 7 :Installez PostfixAdmin
Dans cette étape, nous allons télécharger PostfixAdmin depuis Github et le stocker dans le /opt
répertoire.
# apt install git# cd /opt# git clone https://github.com/postfixadmin/postfixadmin.git# ln -s /opt/postfixadmin/public/ /var/www/html/mailadmin
Insérez ces lignes dans /opt/postfixadmin/config.local.php
# nano /opt/postfixadmin/config.local.php
# mkdir /opt/postfixadmin/templates_c# chown -R www-data:/opt/postfixadmin
Connectez-vous à http://1.2.3.4/mailadmin/setup.php, en veillant à remplacer 1.2.3.4 par l'adresse IP réelle de votre serveur. Si tout va bien, faites défiler vers le bas et créez un mot de passe de configuration.
cliquez sur générer un hachage, et vous verrez ceci :
Vous devez coller le setup_password
hachage comme indiqué dans l'image ci-dessus vers /opt/postfixadmin/config.local.php, il devrait ressembler à ceci
Enregistrez le fichier, puis vous pouvez revenir à la page de configuration pour créer un 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 - remplissez les autres champs comme vous le souhaitez, puis cliquez sur le bouton "Ajouter un administrateur".Maintenant, vous pouvez aller sur
http://1.2.3.4/mailadmin/login.php
pour ajouter vos domaines et y créer des adresses e-mail.C'est ça! Vous avez maintenant PostfixAdmin configuré et exécuté sur votre serveur Debian 9.
Bien sûr, vous n'avez pas besoin de configurer un serveur de messagerie avec PostfixAdmin sur Debian 9 si vous utilisez l'un de nos services d'hébergement de serveur de messagerie, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de configurer un serveur de messagerie pour vous. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.
PS. Si vous avez aimé cet article sur la configuration d'un serveur de messagerie avec PostfixAdmin sur Debian 9, ou si vous l'avez trouvé utile, partagez-le avec vos amis sur les réseaux sociaux en utilisant les raccourcis de partage, ou laissez simplement un commentaire dans la section Commentaires dessous. Merci.