Configura il server SMTP Postfix su Ubuntu/Debian
Hai il tuo nome di dominio e il tuo server vps/dedicato e desideri utilizzare il nome di dominio per le e-mail. Quindi è necessario configurare un server di posta utilizzando un server smtp e un server imap/pop.
Questo tutorial mostra come configurare Postfix (server smtp) e Dovecot (server imap/pop). Il compito del server SMTP è accettare la posta in arrivo e inoltrare la posta in uscita da utenti autorizzati sul sistema.
Mentre Dovecot consente agli utenti autorizzati di accedere alla propria Posta in arrivo e leggere qualsiasi posta ci sia.
La configurazione semplice - Non lo stiamo facendo
Nel tipo più semplice di configurazione per Postfix, basta specificare il tuo nome di dominio "xyz.com" nel parametro di configurazione "mydestination" quindi sarai in grado di ricevere mail per [email protected] se c'è un utente (linux) di nome silver sul sistema.
Questa tecnica è semplice ma con pesanti inconvenienti. Per prima cosa devi creare un nuovo account utente Unix per ogni nuovo indirizzo email di cui abbiamo bisogno.
In secondo luogo, gli utenti devono effettuare il login con le loro password di sistema. Quindi questa non è una strategia molto flessibile per configurare gli account di posta.
Separatamente puoi configurare Dovecot per leggere la posta in arrivo dalla directory in cui Postfix le memorizza (/var/mail di default). C'è un articolo su DigitalOcean che mostra come impostare postfix con dovecot del genere.
Imposteremo le cose in modo che tu possa creare rapidamente indirizzi e-mail semplicemente scrivendoli in un file insieme alla password.
Aggiungeremo tutti i domini che vogliamo e creeremo tutte le email e tutto sarà crittografato e autenticato.
Since the email accounts we shall be creating are not related to any system users or system domains, they are called "virtual users" and "virtual domains". Virtual means, that not related to any system specific thing.
Come funzionerà? - Il gergo tecnico
1. Tutta la posta in arrivo destinata al tuo server deve essere ricevuta da Postfix (SMTP) e quindi consegnata a Dovecot (LMTP) per essere archiviata nella Posta in arrivo.
Questo è meglio perché il servizio lmtp integrato di dovecot offre più funzionalità come quote, autorizzazioni, strutture di directory flessibili per le cassette postali ecc.
Incoming mail (From somewhere) -> Postfix (SMTP) -> Dovecot (LMTP) -> MailBox/Inbox
And due to this Postfix is reduced to just a "tranmission agent" that just moves mails in and out, and nothing else.
2. Tutti i messaggi in uscita devono essere spediti tramite Postfix. Ma solo da account autenticati.
Outgoing mail (Thunderbird) -> Postfix (SMTP) -> Destination (SMTP) like gmail
3. Dovecot fornirà servizi IMAP/POP per consentire ai client di posta di leggere Inbox.
Thunderbird <==> Dovecot (IMAP) <==> Inbox
4. Dovecot fornirà esclusivamente il meccanismo di autenticazione a Postfix tramite SASL.
Gli account e-mail - nome utente + password devono essere archiviati in un file.
Se desideri configurare domini e account e-mail in un database (anziché in un file), segui questo tutorial su linode.com
Imposta i record MX per il dominio
Prima di andare oltre, assicurati che i record MX per i tuoi domini che utilizzerai con il tuo server di posta siano impostati correttamente. La maggior parte dei provider di server come Linode fornisce un'interfaccia semplice per impostare le voci di zona per i record mx.
Se il tuo dominio è esempio.com il tuo mx potrebbe essere mail.esempio.com per esempio. Usa il comando dig per verificare -
# Find the MX (mail exchange) server $ dig MX amazon.com +short 5 amazon-smtp.amazon.com. # Find the ip address of the mx server $ dig amazon-smtp.amazon.com +short 207.171.184.25
Assicurati che l'indirizzo IP del tuo MX (server di posta) sia di quel server su cui installerai postfix e dovecot.
Configurazione del server di posta Postfix in Ubuntu passo dopo passo
La prima cosa da configurare è Postfix. Non dimenticare che nella nostra configurazione Postfix trasmetterà tutti i messaggi in uscita, ma per tutti i messaggi in arrivo li consegnerà a Dovecot per l'archiviazione e l'accesso successivo da parte dei client di posta elettronica.
Le cose da sapere prima
1. Postfix registra tutte le sue azioni in un file chiamato /var/log/mail.log. Controllalo per informazioni utili e risparmia tempo nella diagnosi dei problemi.
2. Il comando postconf è lo strumento per sbirciare all'interno delle configurazioni di Postfix. Elenca tutto in un formato nome=valore per riga. Quindi usa il comando grep per trovare tutto ciò di cui hai bisogno.
3. Tutti i parametri di configurazione di Postfix si trovano nel file /etc/postfix/main.cf
I parametri sono spiegati nelle pagine man che si trovano in - "man 5 postconf"
Installa e configura Postfix
Ok, quindi se non l'hai già fatto, installa Postfix. È proprio lì nei repository, quindi non dovresti cercare altrove a meno che tu non voglia qualcosa di nuovo.
$ sudo aptitude install postfix
Non preoccuparti, il resto non sarà così facile. Dopo aver installato Postfix potresti voler controllare la versione. Ecco il comando per farlo.
$ postconf mail_version mail_version = 2.10.2 $ postconf | grep mail_version mail_version = 2.10.2
Configura main.cf
In questa sezione configureremo diverse cose nel file di configurazione principale di Postfix che si trova in /etc/postfix/main.cf .
Questi includono nomi host, parametri per l'autenticazione SASL, socket unix per dovecot lmtp e dovecot sasl servizio di autenticazione e l'elenco dei nostri virtual_mailbox_domains per i quali Postfix sarà responsabile della ricezione della posta in arrivo.
I parametri difficili!!!
I seguenti parametri sono i 3 parametri super confusi che è necessario comprendere e configurare correttamente per evitare problemi imprevisti.
myhostname mydomain myorigin
Potresti ospitare più domini sul tuo server, ad esempio abc.com + efg.com + xyz.com. Devi usarne uno come dominio principale e usarlo per "myorigin". Il campo myorigin è quello che viene configurato automaticamente durante l'installazione di postfix e ti chiede il dominio del server.
Per impostazione predefinita myorigin è configurato per puntare a /etc/mailname in modo da poter inserire il tuo dominio predefinito in /etc/mailname o specificarlo direttamente nel file di configurazione.
The domain specified with myorigin is used for mails generated by Postfix. For example when it fails to deliver a mail, it would reply with a from address of "Mail Delivery System<[email protected]>".
Il parametro myhostname dovrebbe contenere il tuo "nome del server di posta" come indicato dal tuo record mx. Questo è il nome che Postfix usa nella comunicazione SMTP per identificarsi. Ad esempio "HELO myhostname".
If you set myhostname to a certain domain, then you should be able to setup the SPF records for that domain later. This is dictated by the SPF specifications.
Potresti anche lasciare myhostname solo su "localhost" e le cose funzionerebbero comunque bene. Tuttavia, in tal caso, il tuo server utilizzerà un messaggio come "HELO localhost" durante la connessione ad altri server di posta come Gmail e Gmail rifiuterebbe con rabbia la posta chiamandola non richiesta.
Pertanto si consiglia di configurare myhostname su un nome di dominio appropriato con record A e TXT (SPF) validi. Assicurati anche di impostare myorigin.
Esempio di configurazione -
myhostname = mail.yoursite.com myorigin = yoursite.com
Tecnicamente, su un singolo server, puoi utilizzare lo stesso valore di myorigin per myhostname. Tuttavia, in configurazioni diverse che coinvolgono più server separati, i valori di questi campi devono essere impostati con maggiore attenzione.
Per saperne di più leggi la guida alla configurazione di base di Postfix.
Il parametro virtual_transport dice a postfix di inoltrare/trasportare le mail a dovecot per quei domini che sono elencati in "virtual_mailbox_domains".
Il percorso "private/dovecot-lmtp" è relativo a "/var/spool/postfix/". La presa unix effettiva sarà configurata più avanti nella sezione di configurazione di Dovecot.
Qui impostiamo i parametri per configurare l'autenticazione basata su SASL per Postfix. Postfix internamente è in grado di comunicare con il "servizio SASL di Dovecot" tramite un socket unix.
Per verificare quali diversi plug-in smtpd_sasl_type supporta la tua installazione di Postfix, esegui il comando seguente.
Qui specifichiamo i domini per i quali Postfix "accetterà" la posta in arrivo. Quindi specifica qui tutti i tuoi domini interni. Metteremo i domini in un file chiamato virtual_mailbox_domains.
Inserisci i domini, uno in una riga
Quindi esegui postmap sul file. Creerà un file chiamato virtual_mailbox_domains.db che verrà utilizzato da Postfix
La tabella virtual_mailbox_maps può essere utilizzata per specificare indirizzi email validi per i domini elencati in virtual_mailbox_domains.
Oltre al servizio smtp sulla porta 25 dobbiamo abilitare più servizi. SMTPS opererà sulla porta 465 e MSA (Mailsubmission Agent) opererà sulla porta 587. SMTP utilizza il tipo di autenticazione SSL/TLS e MSA utilizza STARTTLS.
Trova la sezione su "submission" e "smtps" nel file chiamato /etc/postfix/master.cf e decommenta le prime righe. SI SOLO LA PRIMA LINEA
La riga "submission" abilita il servizio MSA sulla porta 587 e "smtps" avvia il servizio SMTP abilitato SSL sulla porta 465.
Potresti voler abilitare solo il servizio di invio, poiché SMTPS ora è deprecato e mantenuto solo per compatibilità con le applicazioni Microsoft che non supportano STARTTLS.
Porta 25 - è per MTA (Mail Transmission Agent). Il servizio MTA consente ad altri MTA e MSA di connettersi e consegnare la posta.
Porta 465/587 - è per MSA (agente di invio della posta). Il servizio MSA consente ai MUA (mail user agent come thunderbird) di connettersi e depositare e-mail per la consegna.
Abbiamo finito di configurare Postfix. Ora riavvia.
Abbiamo finito con l'installazione e la configurazione di Postfix. Ciò che resta è Dovecot, il server IMAP/POP. Ma Dovecot fa molto di più, come vedremo adesso.
1. A Dovecot deve essere assegnato un luogo in cui conservare la posta in arrivo consegnata da Postfix.
2. Deve essere creato un account utente di sistema separato e fornito a dovecot in modo che dovecot possa leggere/scrivere la directory di archiviazione della posta. Nel nostro esempio l'utente è chiamato "vmail".
3. Dovecot ospiterà servizi IMAP e POP sicuri per consentire ai client di posta elettronica di leggere la Posta in arrivo.
4. Dovecot fornirà il servizio di autenticazione SASL a Postfix tramite un socket unix. Lo stesso nome utente/password funzionerà sia con Postfix (server SMTP) che con Dovecot (server IMAP/POP)
5. Utilizzeremo l'indirizzo e-mail completo ([email protected]) come nome utente e imposteremo anche una password crittografata.
Per prima cosa installa dovecot e alcuni pacchetti necessari. Installa il pacchetto principale di dovecot e i pacchetti per il supporto di imap, pop e lmtp.
Controlla la versione
Ora è il momento di configurare Dovecot per configurare gli account utente e anche i socket SASL per consentire a Postfix di eseguire autenticazioni. Tutti i file di configurazione si trovano all'interno di /etc/dovecot/conf.d/ directory.
Controlla /etc/dovecot/dovecot.conf file e assicurati che il file di protocolli sia incluso. Include i file di configurazione per vari protocolli che li abilitano.
I protocolli installati possono essere elencati in questo modo
Diciamo a dovecot di archiviare i messaggi all'interno della directory /var/mail/vhosts e di inserirli ulteriormente in sottodirectory per ciascun dominio e l'utente in quel dominio.
Modifica il file 10-mail.conf
Crea la directory /var/mail/vhosts
Ora crea all'interno di quella directory, crea una directory per ogni dominio su cui desideri ricevere la posta su questo server.
Ora crea un utente con nome e gruppo di vmail e uid e gid di 5000. Sebbene l'uid possa essere qualsiasi numero, scegliamo 5000 per indicare che non è un utente normale. L'opzione "-r" specifica inoltre che questo utente è un utente a livello di sistema e non dispone di alcun accesso.
Assegna a vmail i privilegi completi per leggere/scrivere su /var/mail/vhosts
Ora dì a dovecot di avviare i servizi imaps e pops. Modifica il file 10-master.conf e abilita le porte per i servizi e specifica ssl su yes.
Lascia commentate le porte per imap e pop poiché non vogliamo ospitare servizi non sicuri.
Per IMAPS:IMAP sicuro
Per POP3S:POP3 sicuro
La pagina wiki di dovecot su LMTP mostra un semplice esempio di come configurare il socket lmtp in /etc/dovecot/conf.d/10-master.conf file.
Trova la sezione denominata "service lmtp" e inserisci il percorso del file in cui verrebbe creato il socket unix. Questo stesso percorso è utilizzato da postfix per l'impostazione "trasporto_virtuale".
Il socket deve avere i privilegi di user:group postfix in modo che il processo Postfix possa usarlo.
Trova la sezione "service auth" e al suo interno aggiungi quanto segue. Se è già presente, modificalo.
Apri il file conf.d/10-auth.conf e decommenta la riga disable_plaintext_auth assicurandoti che sia impostata su yes. Ciò garantisce che la crittografia TLS/SSL venga sempre utilizzata a scopo di autenticazione.
Trova l'impostazione denominata auth_mechanism e decommentala. Questa impostazione specifica il formato in cui verrà fornita la password a dovecot.
Specifica i file di autenticazione
L'ultima cosa da configurare nel file 10-auth.conf è il database delle password. Di default dovecot è configurato per autenticarsi usando "utenti di sistema" (utenti Linux da /etc/passwd).
Gli diremo di autenticarsi utilizzando un file separato contenente i nomi utente e le password
Trova e commenta la riga auth-system.conf.ext e decommenta la riga auth-passwdfile. Dovrebbe assomigliare a questo
Quindi modifica il file auth-passwdfile.conf.ext
Fallo sembrare qualcosa del genere.
La sezione passdb dice a dovecot dove cercare il nome utente e le password per autenticarsi. Il file è /etc/dovecot/dovecot-users.
Il formato_utente "%u" indica che l'intero indirizzo email verrà utilizzato come nome utente. Ciò significa che quando si accede da un client di posta elettronica si utilizzerà l'indirizzo e-mail come nome utente sia per smtp che per imap/pop.
Il nome utente e le password sono archiviati in un file chiamato /etc/dovecot/dovecot-users che creeremo nel passaggio successivo
La sezione userdb dice a dovecot dove leggere/scrivere le mail per un dato utente. Stiamo utilizzando una struttura di directory fissa /var/mail/vhosts/%d/%n
Quindi le mail per l'utente [email protected] verrebbero lette dalla seguente directory -
Crea un semplice file di testo all'interno di /etc/dovecot/ e riempilo con nome utente e password nel formato user:password. Ecco un esempio
Genera password usando il comando doveadm in questo modo. L'hash della password restituito dal comando precedente deve essere copiato così com'è nel file dovecot-users.
Il file della password può anche contenere informazioni sulla directory e sulle autorizzazioni della cassetta postale del singolo utente. Controlla l'articolo della wiki sul formato passwdfile.
Apri il file /etc/dovecot/conf.d/10-ssl.conf e decommenta la riga SSL e impostala su richiesta
Assicurati inoltre che ssl_cert e ssl_key puntino a file corretti (questo è per impostazione predefinita)
Imposta logrotate
Se modifichiamo i file di registro di Dovecot, è necessario configurare logrotate per garantire che i file di registro vengano creati in parti anziché in un unico file di grandi dimensioni.
E riempi quanto segue
Per ulteriori informazioni, controlla la pagina wiki di dovecot sulla registrazione.
Buon lavoro. Tutte le configurazioni eseguite. Ora riavvia dovecot
Ora che hai finito di configurare tutto, è il momento di testare. Usa un client di posta come Thunderbird e configura le connessioni SMTP e IMAP.
Quindi prova a inviare un'e-mail a un altro account come gmail. Se ricevi la posta su gmail, prova a rispondere. Se la posta viene visualizzata nel tuo client di posta, hai finito. Congratulazioni!
Controllo delle porte aperte con netstat
Usa il comando netstat per verificare che i servizi siano attivi e in esecuzione
Nell'output sopra possiamo vedere che dovecot tiene le porte 993, 995, 110 e 143
1. mail.log vuoto
Sui server Ubuntu il file /var/log/mail.log potrebbe essere completamente vuoto. Ciò accade a causa di problemi di autorizzazione e può essere risolto con i seguenti comandi
Il corretto proprietario del file dovrebbe essere syslog. Imposta l'autorizzazione di proprietà corretta con i seguenti comandi -
Ora il file mail.log dovrebbe essere popolato con i messaggi corretti per tenere traccia di cosa sta succedendo con il server Postfix.
2. Accesso al relay negato
Quando si inviano e-mail, se il registro del suffisso (/var/log/mail.log) mostra un tale messaggio di errore -
Assicurati che nel campo smtpd_relay_restrictions (/etc/postfix/main.cf) sia elencato "permit_sasl_authenticated" in modo che gli utenti autenticati tramite SASL possano inviare e-mail utilizzando postfix come server smtp.
3. Errore durante la ricezione della posta
Se i registri di dovecot mostrano un tale messaggio di errore durante la ricezione di e-mail -
Basta modificare /etc/dovecot/conf.d/15-lda.conf e aggiungere un valore per postmaster_address
Prova a inviare un'e-mail a un indirizzo gmail tramite un client di posta come thunderbird e tramite il server smtp postfix e la posta finirebbe nella cartella spam di gmail o potrebbe essere rifiutata del tutto.
Per risolvere questo problema, è necessario impostare i record SPF per il dominio del mittente. Se il server postfix invia e-mail con "da indirizzo" di [email protected], i record DNS TXT di esempio.com devono contenere le informazioni di convalida SPF per indicare che questo il server è autorizzato a inviare e-mail per conto di example.com
Tutto quello che devi fare è modificare le voci della zona del tuo nameserver e aggiungere un record TXT contenente quanto segue
La maggior parte dei provider vps come Linode fornisce un'interfaccia pulita per modificare le impostazioni DNS come quelle. Dai un'occhiata al sito Web del progetto OpenSPF per saperne di più.
Controlla i record SPF del tuo dominio con questo semplice comando -
L'esempio precedente utilizza un file per archiviare account di posta elettronica e password. Questo lo rende comodo quando hai bisogno di pochi account e-mail sul tuo server personale e non li modificherai troppo spesso.
Tuttavia, su larga scala quando si forniscono e-mail a un numero elevato di utenti e si creano/eliminano spesso account, il modo consigliato è archiviare virtual_mailbox_domains e virtual_mailbox_maps in un database e quindi utilizzare alcuni client di database per modificare i record in modo rapido e semplice.
Sia Postfix che Dovecot supportano Mysql/MariaDB.
Controlla le risorse in fondo per link articoli utili su come configurare Postfix e Dovecot in altri modi usando un database.
1. Puoi installare un client di posta basato sul Web come Roundcube per poter accedere al tuo server dal browser e leggere/inviare e-mail.
2. Alcuni utenti (come me ovviamente) preferiscono utilizzare Gmail di Google come client di posta aggiungendo informazioni sull'account smtp e pop. Google ti consentirebbe rapidamente di inviare e-mail utilizzando questa nuovissima configurazione del server smtp sopra.
Ma gmail non leggerebbe la posta dal server IMAP/POP creato sopra, fino a quando non usiamo un vero certificato da un'autorità di certificazione (CA) in Dovecot.
I certificati SSL delle CA costano denaro, ma puoi ottenere un certificato gratuito da StartCom StartSSL PKI e utilizzarlo con Dovecot e quindi Gmail ti consentirà di leggere la posta da questo server.
3. Inoltre dovresti anche configurare DKIM (Domainkeys Identified Mail) per il tuo dominio, per far rispettare l'autenticità delle email ed essere considerato legittimo dai principali servizi di posta come Gmail.
Ecco alcune risorse più utili su come impostare e configurare Postfix e Dovecot in vari modi per ottenere il tipo esatto di server di posta che desideri.
Tutorial Linode sulla configurazione di Postfix e Dovecot con Mysql
Documentazione dei parametri di configurazione di Postfix da utilizzare in main.cf
Spiegazione dei diversi tipi di domini supportati e utilizzati da Postfix
Dettagli su come Postfix gestisce diversi tipi di domini virtuali
Documentazione completa di Postfix# Handing off local delivery to Dovecot's LMTP
virtual_transport = lmtp:unix:private/dovecot-lmtp
Configura SASL in main.cf
#Enabling SMTP for authenticated users, and handing off authentication to Dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_tls_auth_only = yes
# postconf -a
cyrus
dovecot
Aggiungi domini delle cassette postali in main.cf
#Virtual domains, users, and aliases
virtual_mailbox_domains = /etc/postfix/virtual_mailbox_domains
# virtual_mailbox_maps = /etc/postfix/virtual_mailbox_maps
# nano /etc/postfix/virtual_mailbox_domains
example.com OK
mysite.com OK
# postmap /etc/postfix/virtual_mailbox_domains
However this is not necessary, since the SASL authentication via Dovecot would be doing the verification.
Abilita SMTPS e MSA - master.cf
...
submission inet 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=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet 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=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
...
Due to historic specifications, technically port 25, 465, 587 do almost the same thing. However as things are evolving they are being redefined.
Thunderbird (MUA) -> your server smtp(MSA/MTA) -> gmail (MTA) -> Inbox
Riavvia Postfix
$ sudo service postfix restart
Installa e configura Dovecot
Cose da sapere
Installa Dovecot
# sudo apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd
# dovecot --version
2.1.7
Configura Dovecot
# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol
# ls -l /usr/share/dovecot/protocols.d
total 12
-rw-r--r-- 1 root root 28 Nov 30 15:44 imapd.protocol
-rw-r--r-- 1 root root 28 Nov 30 15:44 lmtpd.protocol
-rw-r--r-- 1 root root 28 Nov 30 15:44 pop3d.protocol
#
Configura posizione Posta in arrivo - 10-mail.conf
Mails for [email protected] would be stored in /var/mail/vhosts/example.com/someone/
#mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:/var/mail/vhosts/%d/%n
# mkdir /var/mail/vhosts/
# mkdir /var/mail/vhosts/example.com
Crea un utente per leggere i messaggi
$ groupadd -g 5000 vmail
$ useradd -r -g vmail -u 5000 vmail -d /var/mail/vhosts -c "virtual mail user"
$ chown -R vmail:vmail /var/mail/vhosts/
Abilita i servizi IMAPS e POP3S - 10-master.conf
service imap-login {
inet_listener imap {
#port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
service pop3-login {
inet_listener pop3 {
#port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
Configura socket lmtp - 10-master.conf
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
.....
Configura il socket di autenticazione SASL
service auth {
.....
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user=postfix
group=postfix
}
.....
Configura l'autenticazione
disable_plaintext_auth = yes
auth_mechanisms = plain login
#!include auth-system.conf.ext
#!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext
/etc/dovecot/conf.d# nano auth-passwdfile.conf.ext
passdb {
driver = passwd-file
args = scheme=PLAIN username_format=%u /etc/dovecot/dovecot-users
}
userdb {
driver = static
# args = username_format=%u /etc/dovecot/dovecot-users
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
# Default fields that can be overridden by passwd-file
#default_fields = quota_rule=*:storage=1G
# Override fields from passwd-file
#override_fields = home=/home/virtual/%u
}
/var/mail/vhosts/example.com/someone/
Crea casella di posta o account utente
# cat dovecot-users
[email protected]:{plain}abc123
[email protected]:{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1
# doveadm pw -s MD5-CRYPT
Enter new password:
Retype new password:
{MD5-CRYPT}$1$JdyRMcO6$qUwKZT40EVp/oIpVfAEXF1
#
Abilita SSL in dovecot - 10-ssl.conf
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
ssl = required
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
[/pre]
If you have your own certificates from a certificate authority then use them here.
<h3>Setup dovecot log files</h3>
Dovecot by default logs to /var/log/syslog which is already a giant warehouse of logs and would make it difficult to search in there. A neater way is to make dovecot log to a separate file that is easier to track. The configuration lies in the file /etc/dovecot/conf.d/10-logging.conf
Open the file and edit the log_path variable and set it to /var/log/dovecot.log
Also note that info_log_path and debug_log_path would use the same to log information and debugging messages respectively. If you want to separate them further then set a log file for each.
[pre]
# Log file to use for error messages. "syslog" logs to syslog,
# /dev/stderr logs to stderr.
log_path = /var/log/dovecot.log
# Log file to use for informational messages. Defaults to log_path.
#info_log_path =
# Log file to use for debug messages. Defaults to info_log_path.
#debug_log_path =
$ nano /etc/logrotate.d/dovecot
/var/log/dovecot*.log {
missingok
notifempty
delaycompress
sharedscripts
postrotate
doveadm log reopen
endscript
}
Riavvia Dovecot
$ sudo service dovecot restart
Test
# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3315/mysqld
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 16218/master
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 28791/dovecot
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3337/nginx
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 16218/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3252/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 16218/master
Mentre Postfix (master) tiene le porte 587, 465 e 25Risoluzione dei problemi
# ls -l /var/log/mail.log
-rw-r----- 1 messagebus adm 0 Apr 26 2013 /var/log/mail.log
$ sudo chown syslog.adm /var/log/mail.log
$ sudo chmod 640 /var/log/mail.log
Dec 1 09:57:12 li240-5 postfix/smtpd[25795]: NOQUEUE: reject: RCPT from unknown[122.163.8.12]: 454 4.7.1 <...>: Relay access denied; from=<...> to=<...> proto=ESMTP helo=<[192.168.1.2]>
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
Dec 02 18:32:12 lmtp(4412): Fatal: Error reading configuration: Invalid settings: postmaster_address setting not given
# Address to use when sending rejection mails.
# Default is [email protected]<your domain>. %d expands to recipient domain.
postmaster_address = [email protected]
Crea record DNS SPF per abilitare la convalida ed evitare lo spam
"v=spf1 mx a -all"
$ dig -t TXT example.com
Note
E poi
Risorse
https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql
http://www.postfix.org/postconf.5.html
https://workaround.org/ispmail/squeeze/postfix-domain-types
http://www.postfix.org/VIRTUAL_README.html
http://www.postfix.org/documentation.html