Nel precedente articolo di questa serie abbiamo spiegato come impostare e gestire il database del server di posta in modo sicuro utilizzando phpMyAdmin.
Ora è il momento di configurare i programmi interni che renderanno l'invio e la ricezione di email una realtà: suffisso e Colombaia (per gestire rispettivamente le e-mail in uscita e in entrata).
Prima di iniziare la configurazione suffisso, varrebbe la pena dare un'occhiata alle sue pagine man qui, ponendo particolare enfasi sulla sezione intitolata “Informazioni per i nuovi utenti di Postfix“. Se lo fai, troverai più facile seguire questo tutorial.
In poche parole, dovresti sapere che ci sono due file di configurazione per suffisso:
Nel /etc/postfix/main.cf
, individuare (o aggiungere, se necessario) le seguenti righe e assicurarsi che corrispondano ai valori indicati di seguito:
main.cf
append_dot_mydomain = no. biff = no. directory_config = /etc/postfix. dovecot_destination_recipient_limit = 1. message_size_limit = 4194304. readme_directory = no. smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache. smtpd_banner = $myhostname ESMTP $mail_name (CentOS) smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem. smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem. smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache. smtpd_use_tls = sì. virtual_transport = colombaia. smtpd_sasl_type = colombaia. smtpd_sasl_path = private/auth.
Le tre impostazioni successive sono di particolare importanza. Nei file indicati in giallo configureremo l'accesso di Postfix al Domini_tbl, Utenti_tbl, e Alias_tbl tabelle:
virtual_mailbox_domains = mysql:/etc/postfix/mariadb-vdomains.cf virtual_mailbox_maps = mysql:/etc/postfix/mariadb-vusers.cf virtual_alias_maps = mysql:/etc/postfix/mariadb-valias.cf
Nota che puoi scegliere nomi di file diversi sopra, purché ti assicuri di crearli e inserirvi i seguenti contenuti. In ogni caso, sostituire La tua password con la password che hai scelto per il dba utente in Parte 1, oppure puoi anche usare il Maria DB credenziali di root per utente e password di seguito.
Inoltre, assicurati di utilizzare esattamente gli stessi nomi del database del server di posta elettronica e delle tabelle create in Parte 1.
Nel /etc/postfix/mariadb-vdomains.cf
:
mariadb-vdomains.cf
utente = dba. password = La tua password. host = 127.0.0.1. dbname = EmailServer_db. query = SELECT 1 FROM Domains_tbl WHERE DomainName='%s'
Nel /etc/postfix/mariadb-vusers.cf
:
mariadb-vusers.cf
utente = dba. password = La tua password. host = 127.0.0.1. dbname = EmailServer_db. query = SELECT 1 FROM Users_tbl WHERE Email='%s'
Nel /etc/postfix/mariadb-valias.cf
:
mariadb-valias.cf
utente = dba. password = La tua password. host = 127.0.0.1. dbname = EmailServer_db. query = SELECT Destinazione FROM Alias_tbl WHERE Sorgente='%s'
Infine, non dimenticare di modificare i permessi di questi file in 640:
# chmod 640 /etc/postfix/mariadb-vdomains.cf. # chmod 640 /etc/postfix/mariadb-vusers.cf. # chmod 640 /etc/postfix/mariadb-valias.cf.
E la proprietà all'utente radice e gruppo suffisso:
# chown root: postfix /etc/postfix/mariadb-vdomains.cf. # chown root: postfix /etc/postfix/mariadb-vusers.cf. # chown root: postfix /etc/postfix/mariadb-valias.cf.
Successivamente, per abilitare le connessioni sicure, dobbiamo assicurarci che le seguenti impostazioni non siano commentate (o aggiunte, se necessario) in /etc/postfix/master.cf
:
master.cf
sottomissione 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_recipient_restrictions=permit_sasl_authenticated, rifiuta -o milter_macro_daemon_name=ORIGINATING. pickup unix n - n 60 1 pickup. pulizia unix n - n - 0 pulizia. qmgr unix n - n 300 1 qmgr. tlsmgr unix - - n 1000? 1 tlsmg. riscrivi unix - - n - - trivial-rewrite. rimbalzo unix - - n - 0 rimbalzo. posticipare unix - - n - 0 rimbalzo. traccia unix - - n - 0 rimbalzo. verifica unix - - n - 1 verifica. filo unix n - n 1000? 0 a filo. proxymap unix - - n - - proxymap. proxywrite unix - - n - 1 proxymap. smtp unix - - n - - smtp. relè unix - - n - - smtp showq unix n - n - - showq. errore unix - - n - - errore. riprova unix - - n - - errore. scarta unix - - n - - scarta. unix locale - n n - - locale. #virtuale unix - n n - - virtuale. lmtp unix - - n - - lmtp. incudine unix - - n - 1 incudine. scache unix - - n - 1 scache.
Nota: Il rientro nelle righe che iniziano con -o
l'opzione è critica; altrimenti il controllo postfix restituirà un errore:
Prima di salvare le modifiche, aggiungi le seguenti righe in fondo al file:
master.cf
dovecot unix - n n - - pipe flags=DRhu user=vmail: vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
A questo punto è fondamentale verificare se Postfix ha accesso alle tabelle del database e ai domini, account e alias che abbiamo creato in Parte 1.
Per fare ciò, utilizzeremo il postmap comando, un'utilità per testare la comunicazione con le tabelle che Postfix cercherà durante il funzionamento, ma prima di tutto dovremo riavviare postfix:
# systemctl postfix riavvio. # postmap -q linuxnewz.com mysql:/etc/postfix/mariadb-vdomains.cf. # postmap -q someotherdomain.com mysql:/etc/postfix/mariadb-vdomains.cf. # postmap -q [e-mail protetta] mysql:/etc/postfix/mariadb-vusers.cf. # postmap -q [e-mail protetta] mysql:/etc/postfix/mariadb-vusers.cf. # postmap -q [e-mail protetta] mysql:/etc/postfix/mariadb-vusers.cf. # postmap -q [e-mail protetta] mysql:/etc/postfix/mariadb-valias.cf.
Nell'immagine sotto possiamo vedere che per i record esistenti nel database, a 1 viene restituito. In caso contrario, sullo schermo non viene visualizzato nulla. Nel caso del controllo dell'alias, si noti che viene restituito l'effettivo account di posta elettronica a cui è mappato l'alias:
Nota che siamo NON autenticandoci con le credenziali impostate per ogni account di posta elettronica, stiamo solo testando la capacità di Postfix di rilevare quei record nel database.
Pertanto, se ottieni un output diverso da quello sopra, assicurati di utilizzare una coppia utente/password valida in mariadb-vdomains.cf, mariadb-vusers.cf, e mariadb-valias.cf (o come hai scelto di chiamare quei file).
come un IMAP / POP3 server, Dovecot fornisce un modo per gli utenti attraverso a Agente utente di posta (MUA, o noto anche come client), come Thunderbird o Veduta, per citare alcuni esempi per accedere alla loro posta.
Per iniziare, creiamo un utente e un gruppo per gestire le e-mail (ne avremo bisogno poiché i nostri account e-mail non sono associati a un utente di sistema). Puoi usarne un altro UID e GID (diverso da 5000 come facciamo di seguito) purché non sia in uso e sia un numero alto:
# groupadd -g 5000 vmail # useradd -g vmail -u 5000 vmail -d /home/vmail -m.
Le impostazioni per Dovecot sono suddivise in diversi file di configurazione (assicurati che le seguenti righe non siano commentate e/o modificale in modo che corrispondano alle impostazioni indicate di seguito).
Nel /etc/dovecot/dovecot.conf
:
dovecot.cf
!include_try /usr/share/dovecot/protocols.d/*.protocol. protocolli = imap pop3 lmtp. !include conf.d/*.conf. !include_try local.conf.
Nel /etc/dovecot/conf.d/10-auth.conf
(abilita solo l'autenticazione tramite SQL e lascia altri metodi di autenticazione commentati):
10-auth.conf
disable_plaintext_auth = sì. auth_mechanisms = login semplice. !include auth-sql.conf.ext.
Nel /etc/dovecot/conf.d/auth-sql.conf.ext
(nota che memorizzeremo le email all'interno di una directory denominata tuodominio.com dentro /home/vmail, che devi creare se non esiste. Nel nostro caso lo abbiamo fatto mkdir /home/vmail/linuxnewz.com per gestire le email per quel dominio):
auth-sql.conf.ext
passdb { driver = sql args = /etc/dovecot/dovecot-sql.conf.ext. } userdb { driver = argomenti statici = uid=vmail gid=vmail home=/home/vmail/%d/%n/Maildir. }
Le caselle di posta individuali per gli account utente verranno create alla prima ricezione delle e-mail per tali account.
Nel /etc/dovecot/conf.d/10-mail.conf
:
10-mail.conf
mail_location = maildir:/home/vmail/%d/%n/Maildir. spazio dei nomi inbox { inbox = yes. } mail_privileged_group = mail. mbox_write_locks = fcntl.
Nel /etc/dovecot/conf.d/10-master.conf
:
10-master.conf
servizio imap-login { inet_listener imap { porta = 143 } inet_listener imaps { } } servizio pop3-login { inet_listener pop3 { porta = 110 } inet_listener pop3s { } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } } 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. } service auth-worker { utente = vmail. } servizio dict { unix_listener dict { } }
Nel /etc/dovecot/conf.d/10-ssl.conf
(sostituire il certificato e i percorsi della chiave se si prevede di utilizzare un certificato firmato da una CA):
10-ssl.conf
ssl = richiesto. ssl_cert =Nel
/etc/dovecot/dovecot-sql.conf.ext
inserisci le informazioni del tuo database e le credenziali dell'utente amministrativo creato in Parte 1.Importante: se la tua password contiene un asterisco
(#)
, dovrai racchiudere la stringa di connessione come indicato nell'esempio seguente:dovecot-sql.conf.ext
driver = mysql. connect = "host=127.0.0.1 dbname=EmailServer_db user=dba password=PassWith#Here" default_pass_scheme = SHA512-CRYPT. password_query = SELEZIONA Email come utente, password FROM Users_tbl WHERE Email='%u';Inoltre, puoi configurare la registrazione per Dovecot in modo che sia separata da Postfix in
/etc/dovecot/conf.d/10-logging.conf
:log_path = /var/log/dovecot.log.Infine, assicurati che il registro Dovecot sia accessibile per l'utente colombaia:
# chown vmail: dovecot /var/log/dovecot.log. # chmod 660 /var/log/dovecot.log.Verifica e correggi la configurazione di Postifix e abilita SMTP, POP3 e IMAP nel firewall
Se riscontri problemi durante la configurazione di Postfix e/o Dovecot, invece di inviare tutto dei file di configurazione per chiedere aiuto, è possibile ottenere un riepilogo della configurazione (solo righe non commentate) insieme a:
# postconf –n # Riepilogo per /etc/postfix/main.cf. # postconf –M # Riepilogo per /etc/postfix/master.cf. # doveconf –n # Riepilogo di tutti i file di configurazione per Dovecot.Inoltre, assicurati che le caselle di posta elettronica siano leggibili da vmail solo:
# chown –R vmail: vmail /home/vmail.I file di configurazione dovrebbero essere leggibili anche da vmail e colombaia utenti:
# chown -R vmail: dovecot /etc/dovecot # chmod -R o-rwx /etc/dovecotInfine, assicurati di abilitare SMTP, POP3, e IMAP attraverso il firewall:
# firewall-cmd --add-port=143/tcp. # firewall-cmd --add-port=143/tcp --permanent. # firewall-cmd --add-port=110/tcp. # firewall-cmd --add-port=110/tcp --permanent. # firewall-cmd --add-port=587/tcp. # firewall-cmd --add-port=587/tcp --permanent.Configura Thunderbird come client di posta elettronica per Postfix
Avendo accesso protetto attraverso il firewall per le porte utilizzate nelle comunicazioni e-mail, è il momento di configurare un client di posta elettronica. Usando [e-mail protetta] e la sua password corrispondente, insieme a mail.linuxnewz.com come server IMAP (o POP3) e SMTP siamo pronti per iniziare a inviare e ricevere email da e verso tale account:
Puoi tranquillamente ignorare il messaggio di avviso visualizzato perché stai utilizzando un certificato non firmato da una CA di terze parti attendibile:
Componiamo una breve email di prova e facciamo clic su Invia:
Quando viene richiesto di accettare il certificato autofirmato per il server in uscita, confermarlo in precedenza come prima:
Infine, vai all'e-mail di destinazione per vedere se hai ricevuto l'e-mail appena inviata. In tal caso, rispondi e verifica se viene restituito alla casella di posta elettronica di origine (in caso contrario, fai riferimento al registro di Postfix all'indirizzo /var/log/maillog o il registro Dovecot su /var/log/dovecot.log per informazioni sulla risoluzione dei problemi):
Ora hai un server di posta Postfix e Dovecot funzionante e puoi iniziare a inviare e ricevere email.
Riepilogo
In questo articolo abbiamo spiegato come configurare Postfix e Dovecot per gestire il traffico email nel tuo server Linux. Se qualcosa non funziona come indicato in questo articolo, assicurati di prenderti del tempo per controllare il suffisso e Colombaia documentazione.
Tieni presente che, sebbene configurare un server di posta Postfix non sia un compito facile, è un'esperienza gratificante per ogni amministratore di sistema.
Se dopo aver esaminato i documenti ti ritrovi ancora alle prese con suffisso e / o Colombaia, sentiti libero di inviarci una nota utilizzando il modulo di commento qui sotto e saremo lieti di aiutarti (non farlo dimentica di caricare su un servizio di archiviazione online la configurazione di Postfix e Dovecot così come recuperata usando postconf e doveconf come descritto in questo articolo).