GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come configurare un server di posta con PostfixAdmin su CentOS 7

In questo articolo, ti mostreremo come impostare e configurare un server di posta con PostfixAdmin, Postfix, Dovecot e SQLite su un VPS CentOS. PostfixAdmin è un front-end Web basato su PHP che consente di gestire domini virtuali e utenti per un agente di trasporto della posta Postfix. Questa guida dovrebbe funzionare anche su altri sistemi VPS Linux, ma è stata testata e scritta per un VPS CentOS 7.

Se usi Ubuntu, segui il nostro tutorial per configurare Postfix, Dovecot, Spamassassin, SQLite e PostfixAdmin su un VPS Ubuntu 16.04 con Nginx e PHP 7.0

1. Aggiorna il sistema e installa i pacchetti necessari

yum update 
yum install wget nano sqlite

2. Crea utente di sistema

Per motivi di sicurezza, creeremo un nuovo utente di sistema che sarà il proprietario di tutte le caselle di posta.

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

3. Installa PostfixAdmin

L'ultima versione di PostfixAdmin, versione 3, supporta i database MySQL, PostgreSQL e SQLite. In questa guida utilizzeremo SQLite.
Scarica l'archivio PostfixAdmin da SourceForge ed estrailo nella directory /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

Apri il file di configurazione della posta e modifica i seguenti valori:

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'] = 'YES';
chown -R apache: /var/www/html/postfixadmin-3.0.2

Crea il database SQLite:

touch /var/vmail/postfixadmin.db
chown vmail:mail /var/vmail/postfixadmin.db
chmod 660 /var/vmail/postfixadmin.db
usermod -a -G mail apache

Per popolare il database vai su https://Your_IP_Address/postfixadmin-3.0.2/setup.php e dovresti vedere qualcosa come di seguito:
Testing database connection - OK - sqlite://:xxxxx@//var/vmail/postfixadmin.db
Everything seems fine... attempting to create/update database structure

Crea un nuovo utente amministratore:

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. Installa e configura postfix

Postfix versione 3 non è disponibile nel repository CentOS 7 predefinito, quindi utilizzeremo il repository GhettoForge:

rpm -Uhv http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm

Installa postfix3 con il supporto SQLite con il comando seguente:

yum install postfix3 postfix3-sqlite --enablerepo=gf-plus

Una volta completata l'installazione, creare i seguenti file:

nano /etc/postfix/sqlite_virtual_alias_maps.cf
dbpath = /var/vmail/postfixadmin.db
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
nano /etc/postfix/sqlite_virtual_alias_domain_maps.cf
dbpath = /var/vmail/postfixadmin.db
query = 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.db
query  = 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.db
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
nano /etc/postfix/sqlite_virtual_mailbox_maps.cf
dbpath = /var/vmail/postfixadmin.db
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
nano /etc/postfix/sqlite_virtual_alias_domain_mailbox_maps.cf
dbpath = /var/vmail/postfixadmin.db
query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = '%u' || '@' || alias_domain.target_domain AND mailbox.active = 1 AND alias_domain.active='1'

[ecko_alert color=”blue”]Bloccato da qualche parte? Ottieni un VPS da noi e faremo tutto questo per te, gratuitamente! Installeremo e configureremo completamente un server di posta per te. [/ecko_alert]

Modifica il main.cf file:

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 "virtual_mailbox_maps = sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf, sqlite:/etc/postfix/sqlite_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, 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"

Apri il master.cf file, trova submission inet n e smtps inet n sezioni e modificare come segue:

nano /etc/postfix/master.cf
submission 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_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
smtps     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=ORIGINATING

Abilita e riavvia il servizio postfix

systemctl enable postfix
systemctl restart postfix

5. Installa e configura Dovecot

Installa dovecot usando il comando qui sotto:

yum install dovecot

Apri il /etc/dovecot/conf.d/10-mail.conf file e modificare i seguenti valori:

nano /etc/dovecot/conf.d/10-mail.conf
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

Apri il /etc/dovecot/conf.d/10-auth.conf file e modificare i seguenti valori:

nano /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login
#!include auth-system.conf.ext
!include auth-sql.conf.ext

Crea un nuovo dovecot-sql.conf.ext file:

nano /etc/dovecot/dovecot-sql.conf.ext
driver = sqlite
connect = /var/vmail/postfixadmin.db
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/%n' as home, 'maildir:/var/vmail/%d/%n' as mail, \
  150 AS uid, 8 AS gid, 'dirsize:storage=' || quota AS quota \
  FROM mailbox WHERE username = '%u' AND active = '1'

Nel /etc/dovecot/conf.d/10-ssl.conf file abilita il supporto SSL:

ssl = yes

Apri il /etc/dovecot/conf.d/15-lda.conf file e imposta il postmaster_address indirizzo email.

postmaster_address = postmaster@your_domain_name.com

Apri il /etc/dovecot/conf.d/10-master.conf file, trova la sezione lmtp del servizio e cambiala in:

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}

trova la sezione di autenticazione del servizio e cambiala in:

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
}

Modificare la sezione auth-worker del servizio come segue:

service auth-worker {
  user = vmail
}

Imposta i permessi:

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

Abilita e riavvia il servizio dovecot

systemctl enable dovecot 
systemctl restart dovecot 

Se tutto è impostato correttamente ora dovresti essere in grado di accedere al tuo backend PostfixAdmin andando su http://Your_IP_Address/postfixadmin-3.0.2.2 e crea il tuo primo dominio virtuale e la tua casella di posta.

Ovviamente, non devi configurare un server di posta con PostfixAdmin su CentOS 7, se utilizzi uno dei nostri servizi di hosting di server di posta, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di configurarlo per te. Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.

PS . Se ti è piaciuto questo post, condividilo con i tuoi amici sui social network utilizzando i pulsanti qui sotto o lascia semplicemente un commento nella sezione Commenti qui sotto. Grazie.


Cent OS
  1. Configura il server DHCP su CentOS 8 - Come farlo?

  2. Come configurare server DNS privati ​​con BIND su CentOS 8

  3. Configura un server di posta con PostfixAdmin e MariaDB su CentOS 7

  4. Come installare un server di posta con PostfixAdmin su Ubuntu 20.04

  5. Come configurare VSFTPD su CentOS 8

Come installare Exim Mail Server su CentOS 6

Come installare il server di posta con PostfixAdmin su CentOS 7

Come configurare il server DHCP su CentOS 8

Come configurare un server TeamSpeak su CentOS 7

Come configurare un server di posta completo con IRedMail su Centos 7 VPS

Come configurare un server di posta con Modoboa su Ubuntu 20.04