GNU/Linux >> Linux Esercitazione >  >> Panels >> Panels

Come installare un server di posta con PostfixAdmin su Ubuntu 20.04

In questo tutorial, tratteremo il processo di configurazione di un server di posta con Postfix, Dovecot, Postfixadmin e MariaDB su un VPS Ubuntu 20.04. Ma prima, cos'è PostfixAdmin?

PostfixAdmin è un'applicazione basata sul Web open source scritta in PHP che viene utilizzata per creare domini virtuali e account di posta elettronica per un server di posta Postfix. Utilizzando PostfixAdmin, possiamo gestire caselle di posta e alias, impostare quote, configurare messaggi di ferie/fuori sede e altro ancora. Inoltre, l'interfaccia basata sul Web ti offre la facilità d'uso di una finestra del browser con un'interfaccia utente.

PostfixAdmin ci consente di utilizzare indirizzi e-mail virtuali e caselle di posta virtuali, quindi non è necessario creare un nuovo account utente di sistema per ciascun indirizzo e-mail. Considerando tutti questi dettagli, PostfixAdmin è uno strumento versatile e può essere utilizzato per quasi tutte le tue esigenze di spedizione. Questo tutorial è piuttosto approfondito e potrebbe richiedere del tempo per configurare tutto correttamente. Iniziamo con la procedura di installazione.

Requisiti hardware/software

  • Un server Ubuntu 20.04 o VPS con accesso root abilitato o un utente con privilegi sudo. Forniamo a tutti i nostri utenti l'accesso come root completo sui loro VPS.
  • Devono essere installati Postfix Mail Transfer Agent (MTA) e Dovecot IMAP/POP3 Mail Delivery Agent.
  • È necessario installare un server di database (MySQL/MariaDB, PostgreSQL o SQLite).
  • Il server web Apache deve essere installato con mod_rewrite modulo abilitato.
  • È necessario installare PHP 7.1 o versioni successive con imap , mbstring e mysql estensioni tutte abilitate.

Passaggio 1. Per iniziare

Per iniziare, dovremo accedere al nostro server utilizzando SSH. Puoi farlo inserendo questo comando:

ssh root@IP_Address -p Port_Number

Ricorda di sostituire "root" con il tuo nome utente se non stai utilizzando l'utente root. Modifica i valori in rosso in base all'indirizzo IP del tuo server e al numero di porta SSH (il numero predefinito è 22, quindi provalo prima a meno che il tuo server non utilizzi un numero di porta personalizzato).

Una volta effettuato l'accesso, dovresti aggiornare tutti i tuoi pacchetti alle ultime versioni disponibili.

apt-get update -y
apt-get upgrade -y

Una volta che tutti i pacchetti sono aggiornati, riavvia il server per applicare le modifiche alla configurazione e assicurati che tutto il software sia in esecuzione con le versioni più recenti.

Passaggio 2. Crea un account utente di sistema

PostfixAdmin ha la capacità di creare più domini virtuali, utenti e alias. Questo ci evita il fastidio di dover creare nuovi utenti di sistema ogni volta che abbiamo bisogno di aggiungere un nuovo account e-mail. Per motivi di sicurezza, creeremo un nuovo utente chiamato "vmail" con i permessi per archiviare le email nel /var/vmail directory:

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

Passaggio 3. Installa PHP, Apache e le estensioni richieste

PHP 7.4 e Apache2 sono inclusi nel repository Ubuntu predefinito per 20.04. Possiamo installare Apache 2, PHP 7.4 e le estensioni PHP richieste usando il seguente comando. Abbiamo anche incluso i moduli PHP e Apache richiesti nel comando:

apt-get install apache libapache2-mod-php php php-common php-mbstring php-imap php-mysql

Passaggio 4. Installa il server MariaDB

PostfixAdmin richiede un database per poter memorizzare l'account e-mail e le informazioni sul dominio. Ai fini di questo tutorial, utilizzeremo un sistema di database MariaDB, una versione open source di MySQL che mantiene la parità delle funzionalità. Possiamo installare il server MariaDB usando il seguente comando:

apt-get install mariadb-server mariadb-client mariadb-common

Avviare il servizio MariaDB e consentirne l'avvio all'avvio del server utilizzando i seguenti comandi:

systemctl start mariadb 
systemctl enable mariadb

Per migliorare la sicurezza della tua installazione di MariaDB, esegui mysql_secure_installation sceneggiatura:

mysql_secure_installation

Quando richiesto, puoi impostare la password di root di MariaDB e rispondere in modo sicuro a "Y" a tutte le domande.

Enter current password for root (enter for none): Just press the [Enter] key since there is no default password
Set root password? [Y/n]: Y
New password: Enter a strong password
Re-enter new password: Repeat the same password from before
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

Se hai seguito i passaggi precedenti, avrai una password impostata per l'utente root di MariaDB.

Esegui questo comando per accedere alla console MySQL:

mysql -u root -p

E inserisci la password di root che hai impostato in precedenza usando mysql_secure_installation sceneggiatura. Se hai scelto di non eseguire quello script, non è stata impostata alcuna password, quindi devi solo premere il tasto [Invio] una volta.

Quindi, crea un utente e un database MariaDB per PostfixAdmin:

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

Non dimenticare di sostituire "Strong_Password" con una password valida e univoca.

Passaggio 5. Installa Postfix

Installa Postfix e postfix-mysql pacchetti eseguendo il comando seguente:

apt-get install postfix postfix-mysql

Durante l'installazione di Postfix, ti verrà chiesto il tipo di configurazione della posta. Seleziona "Sito Internet" e fai clic su OK per continuare. Quindi, inserisci il nome host del server nel campo "nome e-mail di sistema".

Una volta completata l'installazione di Postfix, dobbiamo creare diversi file di configurazione di Postfix. L'operazione richiederà un po' di tempo poiché ci sono alcuni file che devono essere creati e configurati.

mkdir -p /etc/postfix/sql/

Definire le impostazioni di connessione al database per eseguire query sulle mappe catchall del dominio alias virtuale creando questo file. Stiamo usando vi , ma puoi utilizzare qualsiasi editor di testo che preferisci:

vi /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf

Una volta creato il file, inserisci questi contenuti:

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'

Crea questo file in modo da poter impostare le impostazioni di connessione al database per interrogare le mappe delle cassette postali del dominio alias virtuale:

vi /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf

Quindi inserisci questi contenuti:

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'

Successivamente, definisci le impostazioni di connessione al database per interrogare le mappe di dominio alias virtuali creando questo file:

vi /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf

Aggiungi quanto segue:

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'

Le impostazioni successive riguardano le impostazioni di connessione al database per interrogare le mappe degli alias virtuali. Crea questo file:

vi /etc/postfix/sql/mysql_virtual_alias_maps.cf

Aggiungi questo testo:

user = postfixadmin
password = Strong_Password
hosts = localhost
dbname = postfixadmin
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

Ce ne sono altri da fare. Ora, crea un file per le impostazioni di connessione al database per interrogare le mappe del dominio virtuale:

vi /etc/postfix/sql/mysql_virtual_domains_maps.cf

Assicurati di impostare le password su tutti questi file che hai aggiunto. Aggiungi il contenuto:

user = postfixadmin
password = Strong_Password
hosts = localhost
dbname = postfixadmin
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'

Al file successivo. Crealo e aggiungi le impostazioni di connessione al database per interrogare le mappe dei limiti delle cassette postali virtuali:

vi /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf

Inserisci questo e cambia la password:

user = postfixadmin
password = Strong_Password
hosts = localhost
dbname = postfixadmin
query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'

Infine, crea questo file e aggiungi le impostazioni di connessione al database per interrogare le mappe delle cassette postali virtuali:

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

NOTA : Non dimenticare di sostituire "Strong_Password" con la tua password in tutti i file di configurazione precedenti.

Modifica il main.cf File di configurazione di Postfix, che è il cuore della configurazione di Postfix. Esegui questi comandi per modificare ogni impostazione:

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/ssl/certs/ssl-cert-snakeoil.pem"
postconf -e "smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.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"

Possiamo anche installare Certbot, quindi installare un nuovo certificato SSL Let's encrypt per il nome host del server e sostituire /etc/ssl/certs/ssl-cert-snakeoil.pem e /etc/ssl/private/ssl-cert-snakeoil.key con il certificato SSL appena creato e i file della chiave pubblica.

Quindi, modifica il master.cf File di configurazione di Postfix e modificarlo come segue:

vi /etc/postfix/master.cf

Aggiungi o modifica il contenuto in modo che il file assomigli a questo:

smtp inet n - y - - smtpd
#smtp inet n - y - 1 postscreen
#smtpd pass - - y - - smtpd
#dnsblog unix - - y - 0 dnsblog
#tlsproxy unix - - y - 0 tlsproxy
submission inet n - y - - 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 smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
smtps inet n - y - - 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=permit_sasl_authenticated,reject
# -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 l'avvio del servizio Postfix all'avvio del server e riavvia il servizio Postfix:

systemctl enable postfix
systemctl restart postfix

Postfix è finalmente installato e configurato.

Passaggio 6. Installa Dovecot

Dovecot è un Mail Delivery Agent che consente all'utente di ricevere e-mail in completa sicurezza tramite i protocolli IMAP e/o POP3. Possiamo installare Dovecot e dovecot-mysql pacchetto utilizzando il comando seguente:

apt-get install dovecot-core dovecot-lmtpd dovecot-imapd dovecot-pop3d dovecot-mysql

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

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

Inserisci questo come contenuto:

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:

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

Modificalo in modo che il file assomigli a questo:

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

Quindi modifica il dovecot-sql.conf.ext file e aggiungi queste righe:

vi /etc/dovecot/dovecot-sql.conf.ext
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'

Non dimenticare di sostituire Strong_Password con la password effettiva che hai impostato in precedenza nel passaggio 4 durante la creazione dell'utente MariaDB.

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

vi /etc/dovecot/conf.d/10-ssl.conf
ssl = yes

Salva e chiudi quel file, quindi modifica il /etc/dovecot/conf.d/15-lda.conf file e imposta il postmaster_address indirizzo email.

vi /etc/dovecot/conf.d/15-lda.conf
postmaster_address = [email protected]

Assicurati di cambiare tuodominio.com con il nome di dominio effettivo che punta al tuo server.

Modifica il /etc/dovecot/conf.d/10-master.conf file, trova il service lmtp sezione e sostituirla con le seguenti righe:

vi /etc/dovecot/conf.d/10-master.conf
service lmtp {
     unix_listener /var/spool/postfix/private/dovecot-lmtp {
     mode = 0600
     user = postfix
     group = postfix
     }
}

Una volta che quella parte è stata modificata, trova service auth sezione e sostituirla con il seguente snippet:

service auth {
     unix_listener /var/spool/postfix/private/auth {
     mode = 0666
     user = postfix
     group = postfix
}

unix_listener auth-userdb {
     mode = 0600
     user = vmail

}
user = dovecot
}

Quindi cambia il service auth-worker sezione alla seguente:

service auth-worker {
user = vmail
}

Salva e chiudi il file.

Imposta i permessi corretti dei file di configurazione di Dovecot:

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

Abilita l'avvio del servizio Dovecot all'avvio del server e riavvia Dovecot in modo che tutti questi nuovi file di configurazione siano attivi:

systemctl enable dovecot
systemctl restart dovecot

Passaggio 7. Installa PostfixAdmin

Ora che tutto il nostro software richiesto è installato e configurato, installiamo e configuriamo PostfixAdmin e finiamo questo tutorial.

Scarica l'ultima versione disponibile di PostfixAdmin da Github ed estraila nel /var/www/html/postfixadmin directory.

apt-get install git
cd  /var/www/html/
git clone https://github.com/postfixadmin/postfixadmin.git

Modifica il /var/www/html/postfixadmin/config.local.php file e aggiungi queste righe:

vi /var/www/html/postfixadmin/config.local.php
<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'Strong_Password';
$CONF['database_name'] = 'postfixadmin';
$CONF['configured'] = true;
$CONF['encrypt'] = 'md5crypt';
?>

Sostituisci Strong_Password con la password utente MariaDB.

mkdir /var/www/html/postfixadmin/templates_c

chown -R www-data: /var/www/html/postfixadmin

Apri http://your_server_IP/postfixadmin/public/setup.php . Controlla se è tutto a posto e assicurati che non ci siano errori:

Scorri verso il basso e inserisci la nuova password di configurazione due volte. Assicurati di sceglierne uno forte:

Quindi fai clic sul pulsante "Genera hash password".

Modifica il config.local.php file e aggiungi l'hash generato ad esso:

$CONF['setup_password'] = '0584cbe2b03cad2e29c8be0127361e37:d41ceb2689b747cf143d1809aec7b8e6bdde983e';

Sostituisci l'hash mostrato nell'esempio con quello generato per la tua istanza.

Salva il config.local.php file, apri nuovamente la pagina di configurazione e crea un account utente amministratore PostfixAdmin. La password di configurazione in quella pagina è la stessa che hai utilizzato nel passaggio precedente, quindi compila gli altri campi richiesti come l'indirizzo e-mail e la password dell'amministratore, quindi fai clic sul pulsante "Aggiungi amministratore".

Questo è tutto! L'installazione di PostfixAdmin è completa.

Apri http://your_server_IP/postfixadmin/login.php nel tuo browser web preferito. Vedrai la pagina di accesso:

Accedi come utente amministratore e aggiungi i domini ospitati sul server:

Dopo averlo fatto, puoi creare indirizzi email, impostare una quota di posta e così via:

Questo è tutto ciò di cui hai bisogno per installare, configurare e iniziare a utilizzare l'installazione di PostfixAdmin sul tuo VPS Ubuntu 20.04.

Questo processo di installazione è molto complicato ed è abbastanza facile rovinare e finire con un'installazione mal riuscita di Postfix, Dovecot o entrambi. Tuttavia, se disponi di un hosting VPS Ubuntu gestito con noi, non dovrai fare altro che chiederci di installarlo per te. Il nostro team di esperti di supporto installerà e configurerà completamente tutti gli aspetti del tuo server in modo che Postfix, Dovecot e PostfixAdmin funzionano tutti perfettamente. Possono anche aiutare a impostare la manutenzione ordinaria e ottimizzare il tuo server per massimizzarne la velocità.

Ti saremmo grati se lo condividessi sui social media se trovassi utile questo tutorial. Oppure puoi scrivere un commento facendoci sapere come è andata l'installazione e se PostfixAdmin ti ha aiutato a gestire il tuo server di posta più facilmente. Grazie!


Panels
  1. Come installare DKIM sul server Ubuntu

  2. Come installare MySQL su Ubuntu 16.04

  3. Come installare PHP 7.2 su Ubuntu 16.04

  4. Come installare MySQL su Ubuntu 18.04

  5. Come installare NextCloud 15 su Ubuntu 18.04

Come installare Postfix Mail Server su Ubuntu 20.04

Come installare il server di posta con PostfixAdmin su CentOS 7

Come installare aaPanel su Ubuntu 20.04

Come installare osTicket su Ubuntu 16.04

Come installare WordPress con lo stack LAMP su Ubuntu 16.04

Come installare Vanilla Forum con OpenLiteSpeed ​​su Ubuntu 20.04