In questo tutorial, ti mostreremo come configurare un server di posta con PostfixAdmin su un VPS Debian 9. Configurare un server di posta con Postfix, Dovecot e MariaDB.
PostfixAdmin è una GUI basata sul Web per il database utilizzata da Postfix. Puoi gestire facilmente il tuo server di posta, come aggiungere e rimuovere domini, account e-mail, alias e quote tramite l'uso di Postfixadmin. La GUI basata sul Web rende queste funzioni e caratteristiche più accessibili e consente di modificare e accedere alle informazioni mentre si è lontani dal terminale. Iniziamo.
Prerequisiti:
- un Debian 9 VPS
- Accesso SSH con privilegi di root o accesso a un utente con privilegi sudo
Fase 1:accedi tramite SSH e aggiorna il sistema
Accedi al tuo VPS Debian 9:
# ssh root@Indirizzo_IP -p Numero_porta
Puoi controllare se hai la versione Debian corretta installata sul tuo server con il seguente comando:
# lsb_release -a
Dovresti ottenere questo output:
ID distributore:DebianDescription:Debian GNU/Linux 9.9 (Stretch)Release:9.9Codename:stretch
Quindi, esegui il comando seguente per assicurarti che tutti i pacchetti installati sul server siano aggiornati alle ultime versioni disponibili:
# apt update &&apt upgrade
Fase 2:crea un 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 "Utente posta virtuale" vmail# mkdir -p /var/vmail# chmod -R 770 /var/vmail # chown -R vmail:mail /var/vmail
Fase 3:installa il server MariaDB
PostfixAdmin supporta i sistemi di database MySQL/MariaDB, PostgreSQL e SQLite. In questo tutorial utilizzeremo MySQL/MariaDB come motore di archiviazione del database.
# apt install mariadb-server
Per avviare il servizio MariaDB e consentirne l'avvio all'avvio, eseguire i seguenti comandi:
# systemctl avvia mariadb# systemctl abilita mariadb
Ora puoi saltare il passaggio seguente se preferisci non avere una password di root MySQL.
# installazione_mysql_secure
Quando richiesto, rispondi alle domande seguenti seguendo la guida.
Inserisci la password corrente per root (inserisci per nessuno):premi semplicemente il tasto [Invio] poiché non esiste una password predefinitaImposta la password di root? [S/n]:YNuova password:Immettere passwordReinserire nuova password:Ripetere passwordRimuovere utenti anonimi? [S/n]:YDisconsentire l'accesso root da remoto? [S/n]:Rimuovere il database di test e accedervi? [S/n]:YRicarica le tabelle dei privilegi ora? [S/n]:S
Se hai seguito il passaggio precedente, avresti una nuova password impostata per l'utente root di MySQL.
Quindi, esegui questo comando per accedere alla shell MySQL.
# mysql -u root -p
Ricordati di inserire la tua password di root se hai eseguito lo script di installazione sicura.
Procediamo con la creazione di un database per PostfixAdmin:
MariaDB [(none)]> CREATE DATABASE postfixadmin;MariaDB [(none)]> CONCEDERE TUTTI I PRIVILEGI SU postfixadmin.* A 'postfixadmin'@'localhost' IDENTIFICATO DA 'M0d1fyth15';MariaDB [(none)]> FLUSH PRIVILEGI;MariaDB [(nessuno)]> \q
Assicurati di sostituire la password per l'utente del database con una password univoca valida.
Fase 4:installa PHP e tutti i moduli PHP necessari
Questo è
apt install apache2 php php-mbstring php-imap php-mysql libapache2-mod-php7.0
Fase 5:installa Postfix
Installa Postfix con il comando seguente:
# apt install postfix-mysql
Scegli Sito Internet e fai clic su OK per continuare.
Ti verrà chiesto il nome della posta di sistema, assicurati che sia lo stesso con il tuo nome host.
Una volta completata l'installazione, dobbiamo creare i file di configurazione:
# mkdir -p /etc/postfix/sql/
Da qui verranno creati diversi file di configurazione. Assicurati di sostituire tutti i valori che qui sono diversi con i valori necessari, altrimenti la tua configurazione potrebbe non funzionare.
# nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
utente =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain ='%d' e 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
utente =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =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 E alias_domain.active='1'
# nano /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
utente =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT vai a FROM alias,alias_domain WHERE alias_domain.alias_domain ='%d' e alias.address =CONCAT('%u', '@', alias_domain.target_domain) AND alias .active =1 E alias_domain.active='1'
# nano /etc/postfix/sql/mysql_virtual_alias_maps.cf
user =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT vai a FROM alias WHERE address='%s' AND active ='1'
# nano /etc/postfix/sql/mysql_virtual_domains_maps.cf
utente =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELEZIONA dominio DA dominio WHERE dominio='%s' AND active ='1'
# nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
utente =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELEZIONA la quota DALLA casella di posta DOVE username='%s' AND active ='1'
# nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
utente =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELEZIONA maildir DALLA casella di posta DOVE username='%s' AND active ='1'
Nei file di configurazione sopra, utilizziamo 'm0d1fyth15' come password, cambiala con la tua password.
Ora modifichiamo il main.cf
file invocando i seguenti comandi:
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, require_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
smtp inet n - y - - smtpd#smtp inet n - y - 1 postscreen#smtpd pass - - y - - smtpd#dnsblog unix - - y - 0 dnsblog#tlsproxy unix - - y - 0 tlsproxysubmission 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=ORIGINATINGsmtps 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=ORIGINANTE
Abilita e riavvia il servizio Postfix:
# systemctl abilita postfix# systemctl riavvia postfix
Fase 6:installa Dovecot
Installa Dovecot usando il comando seguente:
# apt install dovecot-mysql
Apri il file /etc/dovecot/conf.d/10-mail.conf e modifica i seguenti valori:
# 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
Apri il file /etc/dovecot/conf.d/10-auth.conf e modifica i seguenti valori:
# nano /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms =login semplice#!include auth-system.conf.ext!include auth-sql.conf.ext
Modifica il dovecot-sql.conf.ext
file, quindi aggiungi queste righe:
# nano /etc/dovecot/dovecot-sql.conf.ext
driver =mysqlconnect =host=localhost dbname=postfixadmin user=postfixadmin password=M0d1fyth15default_pass_scheme =MD5-CRYPTpassword_query =SELEZIONA nome utente come utente, password, '/var/vmail/%d/%n' come userdb_home, 'maildir:/ var/vmail/%d/%n' come userdb_mail, 150 come userdb_uid, 8 come userdb_gid DALLA casella di posta DOVE nome utente ='%u' E attivo ='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' E attivo ='1'
Ricorda di sostituire anche qui la password e qualsiasi altro valore diverso.
Nel file /etc/dovecot/conf.d/10-ssl.conf, abilita il supporto SSL:
# nano /etc/dovecot/conf.d/10-ssl.conf
ssl =si
Apri il file /etc/dovecot/conf.d/15-lda.conf e imposta il postmaster_address
indirizzo email.
# nano /etc/dovecot/conf.d/15-lda.conf
indirizzo_postmaster [email protected]
Apri il file /etc/dovecot/conf.d/10-master.conf, trova la sezione service lmtp e cambiala come segue:
# nano /etc/dovecot/conf.d/10-master.conf
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}user =dovecot}
Modificare la sezione auth-worker del servizio come segue:
servizio 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 abilita dovecot# systemctl riavvia dovecot
Passaggio 7:installa PostfixAdmin
In questo passaggio, scaricheremo PostfixAdmin da Github e lo memorizzeremo in /opt
directory.
# apt install git# cd /opt# git clone https://github.com/postfixadmin/postfixadmin.git# ln -s /opt/postfixadmin/public/ /var/www/html/mailadmin
Inserisci queste righe in /opt/postfixadmin/config.local.php
# nano /opt/postfixadmin/config.local.php
# mkdir /opt/postfixadmin/templates_c# chown -R www-data:/opt/postfixadmin
Collegati a http://1.2.3.4/mailadmin/setup.php, assicurandoti di sostituire 1.2.3.4 con l'indirizzo IP effettivo del tuo server. Se tutto è a posto, scorri verso il basso e crea una password di configurazione.
fai clic su genera hash e vedrai questo:
Devi incollare il setup_password
hash come mostrato nell'immagine sopra su /opt/postfixadmin/config.local.php, dovrebbe assomigliare a questo
Salva il file, quindi puoi tornare alla pagina di configurazione per creare un utente amministratore PostfixAdmin. La password di configurazione in quella pagina è la stessa che hai utilizzato nel passaggio precedente:riempi gli altri spazi vuoti come desideri, quindi fai clic sul pulsante "Aggiungi amministratore".Ora puoi andare su
http://1.2.3.4/mailadmin/login.php
per aggiungere i tuoi domini e creare lì indirizzi email.Questo è tutto! Ora PostfixAdmin è configurato e funzionante sul tuo server Debian 9.
Naturalmente, non è necessario configurare un server di posta con PostfixAdmin su Debian 9 se si utilizza uno dei nostri servizi di hosting di server di posta, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di configurare un server di posta 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 su come configurare un server di posta con PostfixAdmin su Debian 9, o se lo hai trovato utile, condividilo con i tuoi amici sui social network usando le scorciatoie di condivisione, o semplicemente lascia un commento nella sezione Commenti sotto. Grazie.