Dans ce didacticiel, nous allons vous montrer comment installer et configurer Mail Server With PostfixAdmin sur CentOS 7. Pour ceux d'entre vous qui ne le savaient pas, Postfixadmin est une interface Web pour MySQL ou Base de données MariaDB utilisée par Postfix. Avec Postfixadmin, nous pouvons facilement gérer à partir d'un navigateur Web notre service Postfix, ajouter et supprimer des utilisateurs et des domaines de messagerie, des alias de messagerie, des quotas de disque, etc.
Cet article suppose que vous avez au moins des connaissances de base sur Linux, que vous savez utiliser le shell et, plus important encore, que vous hébergez votre site sur votre propre VPS. L'installation est assez simple et suppose que vous s'exécutent dans le compte root, sinon vous devrez peut-être ajouter 'sudo
‘ aux commandes pour obtenir les privilèges root. Je vais vous montrer l'installation étape par étape de Mail Server With PostfixAdmin sur un serveur CentOS 7.
Prérequis
- Un serveur exécutant l'un des systèmes d'exploitation suivants :CentOS 7.
- Il est recommandé d'utiliser une nouvelle installation du système d'exploitation pour éviter tout problème potentiel.
- Accès SSH au serveur (ou ouvrez simplement Terminal si vous êtes sur un ordinateur).
- Un
non-root sudo user
ou l'accès à l'root user
. Nous vous recommandons d'agir en tant qu'non-root sudo user
, cependant, car vous pouvez endommager votre système si vous ne faites pas attention lorsque vous agissez en tant que root.
Installer le serveur de messagerie avec PostfixAdmin sur CentOS 7
Étape 1. Tout d'abord, commençons par nous assurer que votre système est à jour.
yum clean allyum -y mise à jour
Étape 2. Installez le serveur LAMP.
Un serveur de pile CentOS 7 LAMP est requis. Si vous n'avez pas installé de LAMP, vous pouvez suivre notre guide ici. Installez également les modules PHP requis :
yum installer php70w-cli php70w-gd php70w-xml php70w-curl php70w-mysql php70w-zip php70w-mbstring php70w-mcrypt
Étape 3. Configuration de MariaDB pour PostfixAdmin.
Par défaut, MariaDB n'est pas renforcée. Vous pouvez sécuriser MariaDB à l'aide de mysql_secure_installation
scénario. Vous devez lire attentivement et ci-dessous chaque étape qui définira le mot de passe root, supprimera les utilisateurs anonymes, interdira la connexion root à distance et supprimera la base de données de test et l'accès à MariaDB sécurisé :
mysql_secure_installation
Configurez-le comme ceci :
- Définir le mot de passe root ? [O/n] y- Supprimer les utilisateurs anonymes ? [O/n] y- Interdire la connexion root à distance ? [O/n] y- Supprimer la base de données de test et y accéder ? [O/n] y- Recharger les tables de privilèges maintenant ? [O/n] oui
Ensuite, nous devrons nous connecter à la console MariaDB et créer une base de données pour PostfixAdmin. Exécutez la commande suivante :
mysql -u root -p
Cela vous demandera un mot de passe, alors entrez votre mot de passe root MariaDB et appuyez sur Entrée. Une fois que vous êtes connecté à votre serveur de base de données, vous devez créer une base de données pour Installation de PostfixAdmin :
CMariaDB [(aucun)]> CRÉER UNE BASE DE DONNÉES postfixadmin;MariaDB [(aucun)]> ACCORDER TOUS LES PRIVILÈGES SUR postfixadmin.* À 'postfixadmin'@'localhost' IDENTIFIÉ PAR 'strong_password';MariaDB [(aucun)]> FLUSH PRIVILÈGES;MariaDB [(aucun)]> \q
Étape 4. Installation de PostfixAdmin.
La première chose à faire est d'aller sur la page de téléchargement de PostfixAdmin et de télécharger la dernière version stable de PostfixAdmin :
cd /var/www/htmlwget https://github.com/postfixadmin/postfixadmin/archive/refs/tags/postfixadmin-3.3.11.tar.gztar -xzf postfixadmin-3.3.11.tar.gzOuvrez le fichier de configuration principal :
nano /var/www/html/postfixadmin-3.3.11/config.inc.phpModifiez les valeurs suivantes :
$CONF['configured'] =true;$CONF['database_type'] ='mysqli';$CONF['database_host'] ='localhost';$CONF['database_user'] ='postfixadmin';$ CONF['database_password'] ='strong_password';$CONF['database_name'] ='postfixadmin';$CONF['domain_path'] ='NO';$CONF['domain_in_mailbox'] ='YES';Vous devez maintenant attribuer la propriété des fichiers et dossiers à l'utilisateur et au groupe Apache. Pour ce faire, la commande est :
chown -R apache :/var/www/html/postfixadmin-3.3.11Pour remplir la base de données, allez sur https://Your_IP_Address/postfixadmin-3.0.2/setup.php et vous devriez voir quelque chose comme ci-dessous :
Test de la connexion à la base de données - OK - mysqli://postfixadmin:xxxxx@localhost/postfixadminTout semble correct... tentative de création/mise à jour de la structure de la base de donnéesCréez un nouvel utilisateur administrateur :
bash /var/www/html/postfixadmin-3.3.11/scripts/postfixadmin-cli admin add admin@your_domain_idroot.us --password strong_password22 --password2 strong_password22 --superadmin 1 --active 1Étape 5. Installation et configuration de Postfix.
Installez postfix avec la commande suivante :
yum -y install postfixUne fois l'installation terminée, nous devons créer les fichiers de configuration :
mkdir -p /etc/postfix/sql/nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cfModifiez les valeurs suivantes :
user =postfixadminpassword =strong_passwordhosts =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.cfModifiez les valeurs suivantes :
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT maildir FROM boîte aux lettres,alias_domain WHERE alias_domain.alias_domain ='%d' and mailbox.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.cfModifiez les valeurs suivantes :
user =postfixadminpassword =strong_passwordhosts =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.cfModifiez les valeurs suivantes :
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT goto FROM alias WHERE address='%s' AND active ='1'#expansion_limit =100nano /etc/postfix/sql/mysql_virtual_domains_maps.cfModifiez les valeurs suivantes :
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT domaine FROM domaine WHERE domaine='%s' AND active ='1'#query =SELECT domaine FROM domaine WHERE domaine='%s'#requête facultative à utiliser lorsque relais pour la sauvegarde MX#query =SELECT domain FROM domain WHERE domain='%s' AND backupmx ='0' AND active ='1'#expansion_limit =100nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cfModifiez les valeurs suivantes :
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT quota FROM boîte aux lettres WHERE username='%s' AND active ='1'nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cfModifiez les valeurs suivantes :
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT maildir FROM boîte aux lettres WHERE username='%s' AND active ='1'#expansion_limit =100Ensuite, modifiez le fichier main.cf :
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/pki/tls/certs/localhost.crt"postconf -e "smtpd_tls_key_file =/ etc/pki/tls/private/localhost.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, rejette_unauth_destination"postcon f -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, recherchez les sections de soumission inet n et smtps inet n et modifiez-les comme suit :nano /etc/postfix/master.cfModifiez les valeurs suivantes :
soumission iNet n - n - - smtpd -o syslog_name =postfix / soumission -o smtpd_tls_security_level =Crypter -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 -o smtpd_recipient_restrictions smtpd_relay_restrictions =permit_sasl_authenticated, rejeter -o milter_macro_daemon_name =ORIGINATINGsmtps iNet n - n - - 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 =$ mua_client_restrictions # -o smtpd_helo_restrictions =$ mua_helo_restrictions # -o smtpd_sender_restrictions =$ mua_sender_restrictions # -o -o smtpd_recipient_restrictions smtpd_relay_restrictions =permit_sasl_authenticated, rejeter -o milter_macro_daemon_name =ORIGIN ATTEREnfin, activez le service postfix :
systemctl enable postfixsystemctl restart postfixÉtape 6. Installation et configuration de Dovecot.
Installez dovecot à l'aide de la commande ci-dessous :
yum install dovecot dovecot-mysqlOuvrez le fichier /etc/dovecot/conf.d/10-mail.conf :
nano /etc/dovecot/conf.d/10-mail.confModifiez les valeurs suivantes :
mail_location =maildir :/var/vmail/%d/%nmail_privileged_group =mailmail_uid =vmailmail_gid =mailfirst_valid_uid =150last_valid_uid =150Ouvrez le fichier /etc/dovecot/conf.d/10-auth.conf :
nano /etc/dovecot/conf.d/10-auth.confModifiez les valeurs suivantes :
auth_mechanisms =plain login#!include auth-system.conf.ext!include auth-sql.conf.extCréez un nouveau fichier dovecot-sql.conf.ext :
nano /etc/dovecot/dovecot-sql.conf.extModifiez les valeurs suivantes :
driver =mysqlconnect =host=localhost dbname=postfixadmin user=postfixadmin password=strong_passworddefault_pass_scheme =MD5-CRYPTpassword_query =SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/ var/vmail/%d/%n' comme userdb_mail, 150 comme userdb_uid, 8 comme 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'Dans le fichier /etc/dovecot/conf.d/10-ssl.conf, activez le support SSL :
ssl =ouiOuvrez le fichier /etc/dovecot/conf.d/15-lda.conf et définissez l'adresse e-mail postmaster_address :
postmaster_address =postmaster@votre_nom_de_domaine.comOuvrez le fichier /etc/dovecot/conf.d/10-master.conf, recherchez la section service lmtp et remplacez-la par :
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode =0600 user =postfix group =postfix }}Trouvez 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 #group =vmail } user =dovecot}Changez la section service auth-worker comme suit :
service auth-worker { user =vmail}Vous devez maintenant attribuer la propriété des fichiers et des dossiers. Pour ce faire, la commande est :
chown -R vmail:dovecot /etc/dovecotchmod -R o-rwx /etc/dovecotEnfin, activez et redémarrez le service dovecot :
systemctl enable dovecot systemctl restart dovecotÉtape 7. Installation et configuration de Spamassassin.
Installez SpamAssassin en utilisant la commande ci-dessous :
yum -y installer spamassassinCréez un utilisateur système SpamAssassin :
groupadd spamduseradd -g spamd -s /bin/false -d /var/log/spamassassin spamdchown spamd:spamd /var/log/spamassassinEnsuite, configurez Postfix pour utiliser SpamAssassin :
nano /etc/postfix/master.cfModifier les valeurs :
smtp inet n - n - - smtpdAvec :
smtp inet n - n - - - smtpd -o content_filter=spamassassinAjoutez la ligne suivante à la fin du fichier :
systemctl enable spamassassin systemctl restart spamassassinEnfin, redémarrez le service postfix :
systemctl redémarrer postfixÉtape 8. Accéder à PostfixAdmin.
Si tout est configuré correctement maintenant, vous devriez pouvoir vous connecter à votre backend PostfixAdmin en allant sur
http://Your_IP_Address/postfixadmin-3.0.2.2
et créez votre premier domaine virtuel et votre première boîte aux lettres.Félicitations ! Vous avez installé PostfixAdmin avec succès. Merci d'avoir utilisé ce didacticiel pour l'installation de Mail Server With PostfixAdmin sur le système CentOS 7. Pour obtenir de l'aide supplémentaire ou des informations utiles, nous vous recommandons de consulter le site Web officiel de PostfixAdmin.