GNU/Linux >> Tutoriels Linux >  >> Cent OS

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

Dans ce guide, nous expliquerons comment installer et configurer un serveur de messagerie avec PostfixAdmin, Postfix, Dovecot, MariaDB et SpamAssasin sur un VPS CentOS. PostfixAdmin est une interface Web basée sur PHP qui vous permet de gérer des domaines virtuels et des utilisateurs pour un agent de transport de courrier Postfix. Ce guide devrait également fonctionner sur d'autres systèmes VPS Linux, mais a été testé et écrit pour un VPS CentOS 7.

Si vous utilisez un VPS Ubuntu, suivez notre tutoriel pour configurer un serveur de messagerie avec Postfix, Dovecot, Spamassassin, SQLite et PostfixAdmin sur un VPS Ubuntu 16.04

Si vous souhaitez utiliser SQLite au lieu de MariaDB, suivez notre tutoriel pour configurer un serveur de messagerie avec Postfix, Dovecot, Spamassassin, SQLite et PostfixAdmin sur un VPS CentoOS 7

1. Mettez à jour le système et installez les packages nécessaires

yum mettre à jour &&yum installer wget nano

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" vmailmkdir -p /var/vmailchmod -R 770 /var/vmailchown -R vmail:mail /var/vmail

3. Installer MariaDB

MariaDB 5.5 est livré dans le référentiel CentOS 7 par défaut, pour l'installer, exécutez simplement :

yum installer 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.servicesystemctl enable mariadb.service

Exécutez la commande suivante pour sécuriser votre installation MariaDB :

mysql_secure_installation

Ensuite, nous devons créer une base de données pour notre instance postfixadminHQ.

mysql -uroot -pMariaDB [(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) )]> PRIVILÈGES FLUSH ; MariaDB [(aucun)]> \q

4. Installez PHP et tous les modules PHP nécessaires

CentOS 7 est livré avec PHP version 5.4, pour installer PHP et les modules nécessaires, exécutez :

yum installer php php-mysql php-imap php-mbstring php-common

Si Apache n'est pas installé, installez-le avec :

yum installer httpd

5. Installer PostfixAdmin

La dernière version de PostfixAdmin, version 3, prend en charge les bases de données MySQL/MariaDB, PostgreSQL et SQLite. Dans ce guide, nous utiliserons MariaDB.
Téléchargez l'archive PostfixAdmin depuis SourceForge et extrayez-la dans le répertoire /var/www/html/ :

wget -q -O - "https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-3.0.2/postfixadmin-3.0.2.tar.gz" | tar -xzf - -C /var/www/html

Ouvrez le fichier de configuration de messagerie et modifiez les valeurs suivantes :

nano /var/www/html/postfixadmin-3.0.2/config.inc.php
$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';
chown -R apache :/var/www/html/postfixadmin-3.0.2

Pour 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 :
Testing database connection - OK - mysqli://postfixadmin:xxxxx@localhost/postfixadmin
Everything seems fine... attempting to create/update database structure

Créez un nouvel utilisateur administrateur :

bash /var/www/html/postfixadmin-3.0.2/scripts/postfixadmin-cli admin add admin@your_domain_name.com --password strong_password22 --password2 strong_password22 --superadmin 1 --active 1

6. Installer et configurer postfix

Pour installer postfix, exécutez la commande ci-dessous :

yum install postfix

Une fois l'installation terminée, nous devons créer des fichiers de configuration :

mkdir -p /etc/postfix/sql/
nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
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.cf
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.cf
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.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT goto FROM alias WHERE address='%s' AND active ='1'#expansion_limit =100
nano /etc/postfix/sql/mysql_virtual_domains_maps.cf
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 quand relais pour la sauvegarde MX#query =SELECT domaine FROM domaine WHERE domaine='%s' AND backupmx ='0' AND active ='1'#expansion_limit =100
nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
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.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT maildir FROM boîte aux lettres WHERE username='%s' AND active ='1'#expansion_limit =100

[ecko_alert color="blue"]Coincé quelque part ? Obtenez un VPS de notre part et nous ferons tout cela pour vous, gratuitement ! Nous installerons et configurerons complètement un serveur de messagerie pour vous. [/ecko_alert]

Modifiez le main.cf fichier :

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" conf -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
soumission inet n - n - - 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_helo_client_restrictions=$mua_helo_client_restrictions# -o smtp_restrictions# -o _helo_client_restrictions# -o smtp_restrictions# -o smtpd_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=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 smtpd_recipient_restrictions=-o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGI NATION

Activer le service postfix

systemctl enable postfixsystemctl restart postfix

7. Installer et configurer Dovecot

Installez dovecot avec le support MySQL en utilisant la commande ci-dessous :

yum install dovecot dovecot-mysql

Ouvrez le /etc/dovecot/conf.d/10-mail.conf fichier 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 /etc/dovecot/conf.d/10-auth.conf fichier 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

Créez un nouveau dovecot-sql.conf.ext fichier :

nano /etc/dovecot/dovecot-sql.conf.ext
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 /etc/dovecot/conf.d/10-ssl.conf fichier activer la prise en charge SSL :

ssl =oui

Ouvrez le /etc/dovecot/conf.d/15-lda.conf fichier et définissez le postmaster_address adresse e-mail.

postmaster_address =postmaster@votre_nom_de_domaine.com

Ouvrez le /etc/dovecot/conf.d/10-master.conf fichier, 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 }}

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 #group =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/dovecotchmod -R o-rwx /etc/dovecot

Activer et redémarrer le service pigeonnier

systemctl enable dovecot systemctl restart dovecot 

8. Installer et configurer Spamassassin

Installez spamassassin à l'aide de la commande ci-dessous :

yum installer spamassassin

Créez un utilisateur système spamassassin :

groupadd spamduseradd -g spamd -s /bin/false -d /var/log/spamassassin spamdchown spamd:spamd /var/log/spamassassin

9. Configurer Postfix pour utiliser SpamAssassin

Ouvrez le master.cf fichier et modifiez-le comme suit :

nano /etc/postfix/master.cf

changer

smtp inet n - n - - smtpd

avec

smtp inet n - n - - smtpd -o content_filter=spamassassin

ajoutez la ligne suivante à la fin du fichier :

spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${expéditeur} ${destinataire}

Activer et redémarrer le service spamassassin

systemctl enable spamassassin systemctl restart spamassassin 

Redémarrez le service postfix

systemctl redémarrer le suffixe

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.

Bien sûr, vous n'êtes pas obligé de configurer un serveur de messagerie avec PostfixAdmin et MariaDB sur CentOS 7, 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 toi. 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 et MariaDB sur CentOS 7, partagez-le avec vos amis sur les réseaux sociaux à l'aide des boutons ci-dessous ou laissez simplement un commentaire dans la section Commentaires ci-dessous. Merci.


Cent OS
  1. Configurer un serveur de messagerie avec PostfixAdmin

  2. Comment installer et configurer Postfix Mail Server sur CentOS 8

  3. Installez Zenario avec Apache, PHP et MariaDB sur CentOS 7

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

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

Comment configurer facilement un serveur de messagerie complet sur CentOS 7 avec iRedMail

Comment configurer facilement un serveur de messagerie complet sur CentOS 8 avec iRedMail

Partie 4 :Configurer SPF et DKIM avec Postfix sur le serveur de messagerie CentOS 8/RHEL 8

Partie 3 :PostfixAdmin - Créer des boîtes aux lettres virtuelles sur le serveur de messagerie CentOS 8/RHEL 8

Comment installer le serveur de messagerie avec PostfixAdmin sur CentOS 7

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