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.