GNU/Linux >> Linux Esercitazione >  >> Debian

Configura un server di posta con PostfixAdmin su Debian 9

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.


Debian
  1. Configura un server di posta con PostfixAdmin

  2. Come configurare un server SFTP su Debian 11 Server

  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 configurare facilmente un server di posta su Debian 9 Stretch con iRedMail

Come configurare facilmente un server di posta su Debian 10 Buster con iRedMail

Configurazione iniziale del server con Debian 11

Come configurare LAMP con Debian 11

Come installare il server di posta con PostfixAdmin su CentOS 7

Come configurare un server di posta con Modoboa su Ubuntu 20.04