Dans cet article, nous allons vous montrer comment installer et configurer un serveur de messagerie avec PostfixAdmin, Postfix, Dovecot et SQLite 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 Ubuntu, suivez notre tutoriel pour configurer Postfix, Dovecot, Spamassassin, SQLite et PostfixAdmin sur un VPS Ubuntu 16.04 avec Nginx et PHP 7.0
1. Mettez à jour le système et installez les packages nécessaires
yum mettre à jour yum installer wget nano sqlite
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 PostfixAdmin
La dernière version de PostfixAdmin, version 3, prend en charge les bases de données MySQL, PostgreSQL et SQLite. Dans ce guide, nous utiliserons SQLite.
Téléchargez l'archive PostfixAdmin depuis SourceForge et extrayez-la dans le répertoire /var/www/html/ :
wget -q -O - "http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-3.0.2.2/postfixadmin-3.0.2.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'] ='sqlite';// $CONF['database_host'] ='localhost';// $CONF['database_user'] =' postfix';// $CONF['database_password'] ='postfixadmin';$CONF['database_name'] ='/var/vmail/postfixadmin.db';$CONF['domain_path'] ='NO';$CONF ['domain_in_mailbox'] ='OUI' ;
chown -R apache :/var/www/html/postfixadmin-3.0.2
Créez la base de données SQLite :
touchez /var/vmail/postfixadmin.dbchown vmail:mail /var/vmail/postfixadmin.dbchmod 660 /var/vmail/postfixadmin.dbusermod -a -G mail apache
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 - sqlite://:xxxxx@//var/vmail/postfixadmin.db
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
4. Installer et configurer postfix
Postfix version 3 n'est pas disponible dans le référentiel CentOS 7 par défaut, nous allons donc utiliser le référentiel GhettoForge :
rpm -Uhv http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm
Installez postfix3 avec le support SQLite avec la commande ci-dessous :
yum installer postfix3 postfix3-sqlite --enablerepo=gf-plus
Une fois l'installation terminée, créez les fichiers suivants :
nano /etc/postfix/sqlite_virtual_alias_maps.cf
dbpath =/var/vmail/postfixadmin.dbquery =SELECT goto FROM alias WHERE address='%s' AND active ='1'
nano /etc/postfix/sqlite_virtual_alias_domain_maps.cf
dbpath =/var/vmail/postfixadmin.dbquery =SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain ='%d' and alias.address ='%u' || '@' || alias_domain.target_domain AND alias.active =1 AND alias_domain.active='1'
nano /etc/postfix/sqlite_virtual_alias_domain_catchall_maps.cf
dbpath =/var/vmail/postfixadmin.dbquery =SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain ='%d' and alias.address ='@' || alias_domain.target_domain AND alias.active =1 AND alias_domain.active='1'
nano /etc/postfix/sqlite_virtual_domains_maps.cf
dbpath =/var/vmail/postfixadmin.dbquery =SELECT domaine FROM domaine WHERE domaine='%s' AND active ='1'
nano /etc/postfix/sqlite_virtual_mailbox_maps.cf
dbpath =/var/vmail/postfixadmin.dbquery =SELECT maildir FROM boîte aux lettres WHERE username='%s' AND active ='1'
nano /etc/postfix/sqlite_virtual_alias_domain_mailbox_maps.cf
dbpath =/var/vmail/postfixadmin.dbquery =SELECT maildir FROM boîte aux lettres,alias_domain WHERE alias_domain.alias_domain ='%d' et boîte aux lettres.username ='%u' || '@' || alias_domain.target_domain ET boîte aux lettres.active =1 ET alias_domain.active='1'
[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 =sqlite:/etc/postfix/sqlite_virtual_domains_maps.cf"postconf -e "virtual_alias_maps =sqlite:/etc/postfix/sqlite_virtual_alias_maps.cf, sqlite :/etc/postfix/sqlite_virtual_alias_domain_maps.cf, sqlite :/etc/postfix/sqlite_virtual_alias_domain_catchall_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 =oui" postconf -e "smtpd_sasl_type =dovecot"postconf -e "smtpd_sasl_path =privé/auth"postconf -e "smtpd_sasl_auth_enable =oui"postconf -e "smtpd_recipient_restrictions =" 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 et redémarrer le service postfix
systemctl enable postfixsystemctl restart postfix
5. Installer et configurer Dovecot
Installez dovecot à l'aide de la commande ci-dessous :
yum install dovecot
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 =sqliteconnect =/var/vmail/postfixadmin.dbdefault_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 boîte aux lettres WHERE username ='%u' AND active ='1'user_query =\ SELECT '/var/vmail/%d/%n' comme home, 'maildir:/var/vmail/%d/%n' comme mail, \ 150 AS uid, 8 AS gid, 'dirsize:storage=' || quota AS quota \ FROM boîte aux lettres WHERE username ='%u' AND active ='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/dovecotActiver et redémarrer le service pigeonnier
systemctl enable dovecot systemctl restart dovecotSi 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 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 le configurer 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, partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons ci-dessous ou laissez simplement un commentaire dans la section Commentaires ci-dessous. Merci.