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

Come installare il server di posta con PostfixAdmin su CentOS 7

In questo tutorial, ti mostreremo come installare e configurare il server di posta con PostfixAdmin su CentOS 7. Per chi non lo sapesse, Postfixadmin è un frontend web per MySQL o Database MariaDB utilizzato da Postfix.Con Postfixadmin possiamo gestire facilmente da un browser web il nostro servizio Postfix, aggiungendo e rimuovendo utenti e domini di posta, alias di posta, quote disco, ecc.

Questo articolo presuppone che tu abbia almeno una conoscenza di base di Linux, sappia come usare la shell e, soprattutto, che ospiti il ​​tuo sito sul tuo VPS. L'installazione è abbastanza semplice e presuppone che tu sono in esecuzione nell'account root, in caso contrario potrebbe essere necessario aggiungere 'sudo ' ai comandi per ottenere i privilegi di root. Ti mostrerò l'installazione passo passo di Mail Server con PostfixAdmin su un server CentOS 7.

Prerequisiti

  • Un server che esegue uno dei seguenti sistemi operativi:CentOS 7.
  • Si consiglia di utilizzare una nuova installazione del sistema operativo per prevenire potenziali problemi.
  • Accesso SSH al server (o semplicemente apri Terminal se sei su un desktop).
  • Un non-root sudo user o accedere all'root user . Ti consigliamo di agire come non-root sudo user , tuttavia, poiché puoi danneggiare il tuo sistema se non stai attento quando agisci come root.

Installa il server di posta con PostfixAdmin su CentOS 7

Passaggio 1. Innanzitutto, iniziamo assicurandoci che il tuo sistema sia aggiornato.

yum clean all
yum -y update

Passaggio 2. Installa il server LAMP.

È richiesto uno stack server CentOS 7 LAMP. Se non hai installato una LAMP, puoi seguire la nostra guida qui. Inoltre, installa i moduli PHP richiesti:

yum install php70w-cli php70w-gd php70w-xml php70w-curl php70w-mysql php70w-zip php70w-mbstring php70w-mcrypt

Passaggio 3. Configurazione di MariaDB per PostfixAdmin.

Per impostazione predefinita, MariaDB non è protetto. Puoi proteggere MariaDB usando mysql_secure_installation sceneggiatura. Dovresti leggere attentamente e sotto ogni passaggio che imposterà la password di root, rimuoverà gli utenti anonimi, non consentirà l'accesso root remoto e rimuoverà il database di test e l'accesso per proteggere MariaDB:

mysql_secure_installation

Configuralo in questo modo:

- Set root password? [Y/n] y
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y

Avanti, dovremo accedere alla console MariaDB e creare un database per PostfixAdmin. Esegui il seguente comando:

mysql -u root -p

Questo ti chiederà una password, quindi inserisci la tua password di root MariaDB e premi Invio. Una volta effettuato l'accesso al server del database, devi creare un database per Installazione di PostfixAdmin:

CMariaDB [(none)]> CREATE DATABASE postfixadmin;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'strong_password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Passaggio 4. Installazione di PostfixAdmin.

La prima cosa da fare è andare alla pagina di download di PostfixAdmin e scaricare l'ultima versione stabile di PostfixAdmin:

cd /var/www/html
wget https://github.com/postfixadmin/postfixadmin/archive/refs/tags/postfixadmin-3.3.11.tar.gz
tar -xzf postfixadmin-3.3.11.tar.gz

Apri il file di configurazione principale:

nano /var/www/html/postfixadmin-3.3.11/config.inc.php

Modifica i seguenti valori:

$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';

Ora devi assegnare la proprietà dei file e delle cartelle all'utente e al gruppo di Apache. Per farlo, il comando è:

chown -R apache: /var/www/html/postfixadmin-3.3.11

Per popolare il database vai su https://Your_IP_Address/postfixadmin-3.0.2/setup.php e dovresti vedere qualcosa come il seguente:

Testing database connection - OK - mysqli://postfixadmin:xxxxx@localhost/postfixadmin
Everything seems fine... attempting to create/update database structure

Crea un nuovo utente amministratore:

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

Passaggio 5. Installazione e configurazione di Postfix.

Installa postfix con il seguente comando:

yum -y install postfix

Una volta completata l'installazione, dobbiamo creare i file di configurazione:

mkdir -p /etc/postfix/sql/
nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf

Modifica i seguenti valori:

user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query  = 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

Modifica i seguenti valori:

user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'
nano /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf

Modifica i seguenti valori:

user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query = 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 AND alias_domain.active='1'
nano /etc/postfix/sql/mysql_virtual_alias_maps.cf

Modifica i seguenti valori:

user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
#expansion_limit = 100
nano /etc/postfix/sql/mysql_virtual_domains_maps.cf

Modifica i seguenti valori:

user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query          = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
#query          = SELECT domain FROM domain WHERE domain='%s'
#optional query to use when relaying for backup MX
#query           = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1'
#expansion_limit = 100
nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf

Modifica i seguenti valori:

user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cf

Modifica i seguenti valori:

user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query           = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
#expansion_limit = 100

Successivamente, modifica il file 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, 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 le sezioni di submission inet n e smtps inet n e modifica come segue:

nano /etc/postfix/master.cf

Modifica i seguenti valori:

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

Infine, abilita il servizio postfix:

systemctl enable postfix
systemctl restart postfix

Passaggio 6. Installazione e configurazione di Dovecot.

Installa dovecot usando il comando seguente:

yum install dovecot dovecot-mysql

Apri il file /etc/dovecot/conf.d/10-mail.conf:

nano /etc/dovecot/conf.d/10-mail.conf

Cambia i seguenti valori:

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 file /etc/dovecot/conf.d/10-auth.conf:

nano /etc/dovecot/conf.d/10-auth.conf

Cambia i seguenti valori:

auth_mechanisms = plain login
#!include auth-system.conf.ext
!include auth-sql.conf.ext

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

nano /etc/dovecot/dovecot-sql.conf.ext

Modifica i seguenti valori:

driver = mysql
connect = host=localhost dbname=postfixadmin user=postfixadmin password=strong_password
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/%u' as home, 'maildir:/var/vmail/%d/%u' as mail, 150 AS uid, 8 AS gid, concat('dirsize:storage=',  quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'

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

ssl = yes

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

postmaster_address = postmaster@your_domain_name.com

Apri il file /etc/dovecot/conf.d/10-master.conf, trova la sezione service lmtp 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 modificala 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
}

Cambia la sezione Service auth-worker come segue:

service auth-worker {
  user = vmail
}

Ora devi assegnare la proprietà dei file e delle cartelle. Per farlo, il comando è:

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

Infine, abilita e riavvia il servizio dovecot:

systemctl enable dovecot 
systemctl restart dovecot

Passaggio 7. Installazione e configurazione di Spamassassin.

Installa SpamAssassin usando il comando seguente:

yum -y install spamassassin

Crea un utente del sistema SpamAssassin:

groupadd spamd
useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd
chown spamd:spamd /var/log/spamassassin

Avanti, configura Postfix per usare SpamAssassin:

nano /etc/postfix/master.cf

Cambia valori:

smtp      inet  n       -       n       -       -       smtpd

Con:

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

Aggiungi la seguente riga alla fine del file:

systemctl enable spamassassin 
systemctl restart spamassassin

Infine, riavvia il servizio postfix:

systemctl restart postfix

Passaggio 8. Accesso a PostfixAdmin.

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 casella di posta.

Congratulazioni! Hai installato correttamente PostfixAdmin. Grazie per aver utilizzato questo tutorial per l'installazione del server di posta con PostfixAdmin sul sistema CentOS 7. Per ulteriore aiuto o informazioni utili, ti consigliamo di controllare il sito Web ufficiale di PostfixAdmin.


Cent OS
  1. Come installare SpamAssassin su un server virtuale con CentOS 6

  2. Come installare Website Baker su un CentOS 7 VPS

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

  4. Come configurare un server di posta con PostfixAdmin su CentOS 7

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

Come gestire il server CentOS 7 con Webmin

Come installare Lighttpd con PHP-FPM e MariaDB su CentOS 8

Come installare Cacti Monitoring Server su CentOS 8

Come installare Zabbix Server 5.0 / 4.0 su CentOS 8 / RHEL 8

Come installare Exim Mail Server su CentOS 6

Come installare il server LEMP su CentOS 8