Ricerca nel sito web

Configurazione dei servizi di posta elettronica (SMTP, Imap e Imaps) e limitazione dell'accesso a SMTP - Parte 7


Un LFCE (Linux Foundation Certified Engineer) è un professionista qualificato che ha le competenze per installare, gestire e risolvere i problemi dei servizi di rete nei sistemi Linux ed è responsabile della progettazione, implementazione e manutenzione continua dell'architettura del sistema e dell'amministrazione degli utenti.

Presentazione del programma di certificazione Linux Foundation.

In un tutorial precedente abbiamo discusso come installare i componenti necessari di un servizio di posta. Se non hai ancora installato Postfix e Dovecot, fai riferimento alla Parte 1 di questa serie per istruzioni su come farlo prima di procedere.

Requisiti

  1. Installa Postfix Mail Server e Dovecot – Parte 1

In questo post ti mostrerò come configurare il tuo server di posta e come eseguire le seguenti attività:

  1. Configura gli alias email
  2. Configura un servizio IMAP e IMAPS
  3. Configura un servizio SMTP
  4. Limitare l'accesso a un server SMTP

Nota: la nostra configurazione coprirà solo un server di posta per una rete locale in cui le macchine appartengono allo stesso dominio. L'invio di messaggi di posta elettronica ad altri domini richiede una configurazione più complessa, comprese le funzionalità di risoluzione dei nomi di dominio, che non rientrano nell'ambito della certificazione LFCE.

Ma prima di tutto, cominciamo con alcune definizioni.

Componenti di un processo di invio, trasporto e consegna della posta

L'immagine seguente illustra il processo di trasporto della posta elettronica a partire dal mittente fino a quando il messaggio raggiunge la casella di posta del destinatario:

Per rendere tutto ciò possibile, dietro le quinte accadono diverse cose. Affinché un messaggio di posta elettronica venga consegnato da un'applicazione client (come Thunderbird, Outlook o servizi di webmail come Gmail o Yahoo! Mail) al suo server di posta e da lì al server di destinazione e infine al destinatario previsto , in ciascun server deve essere attivo un servizio SMTP (Simple Mail Transfer Protocol).

Quando si parla di servizi di posta elettronica, troverete menzionati molto spesso i seguenti termini:

Agente di trasporto messaggi – MTA

MTA (abbreviazione di Mail o Message Transport Agent), noto anche come mail Relay, è un software incaricato di trasferire i messaggi di posta elettronica da un server a un cliente (e anche viceversa). In questa serie, Postfix funge da nostro MTA.

Agente utente di posta – MUA

MUA, o Mail User Agent, è un programma informatico utilizzato per accedere e gestire le caselle di posta elettronica dell'utente. Esempi di MUA includono, ma non sono limitati a, Thunderbird, Outlook e interfacce webmail come Gmail, Outlook.com, solo per citarne alcuni. In questa serie utilizzeremo Thunderbird nei nostri esempi.

Agente di consegna della posta

MDA (abbreviazione di Message o Mail Delivery Agent) è la parte del software che consegna effettivamente i messaggi e-mail alle caselle di posta degli utenti. In questo tutorial utilizzeremo Dovecot come nostro MDA. Dovecot gestirà anche l'autenticazione dell'utente.

Protocollo di trasferimento della posta semplice – SMTP

Affinché questi componenti possano “parlare” tra loro, devono “parlare” lo stesso “linguaggio” (o protocollo ), vale a dire SMTP (Simple Mail Transfer Protocol) come definito nella RFC 2821. Molto probabilmente dovrai fare riferimento a quella RFC durante la configurazione dell'ambiente del server di posta.

Altri protocolli di cui dobbiamo tenere conto sono IMAP4 (Internet Message Access Protocol), che consente di gestire i messaggi di posta elettronica direttamente sul server senza scaricarli sul disco rigido del nostro cliente e POP3 (Post Office Protocol), che consente di scaricare messaggi e cartelle sul computer dell'utente.

Il nostro ambiente di test

Il nostro ambiente di test è il seguente:

Configurazione del server di posta
Mail Server OS	: 	Debian Wheezy 7.5 
IP Address	:	192.168.0.15
Local Domain	:	example.com.ar
User Aliases	:	[email  is aliased to [email  and [email 
Configurazione della macchina client
Mail Client OS	: 	Ubuntu 12.04
IP Address	:	192.168.0.103

Sul nostro client abbiamo impostato una risoluzione DNS elementare aggiungendo la seguente riga al file /etc/hosts.

192.168.0.15 example.com.ar mailserver

Aggiunta di alias e-mail

Per impostazione predefinita, un messaggio inviato a un utente specifico deve essere recapitato solo a quell'utente. Tuttavia, se vuoi consegnarlo anche a un gruppo di utenti, o a un utente diverso, puoi creare un alias di posta o utilizzare uno di quelli esistenti in /etc/postfix/aliases , seguendo questa sintassi:

user1: user1, user2

Pertanto, le email inviate a utente1 verranno consegnate anche a utente2. Tieni presente che se ometti la parola utente1 dopo i due punti, come in

user1: user2

i messaggi inviati a utente1 verranno inviati solo a utente2 e non a utente1.

Nell'esempio precedente, utente1 e utente2 dovrebbero già esistere nel sistema. Potresti fare riferimento alla Parte 8 della serie LFCS se hai bisogno di rinfrescare la memoria prima di aggiungere nuovi utenti.

  1. Come aggiungere e gestire utenti/gruppi in Linux
  2. 15 comandi per aggiungere utenti in Linux

Nel nostro caso specifico, utilizzeremo il seguente alias come spiegato prima (aggiungere la seguente riga in /etc/aliases).

sysadmin: gacanepa, jdoe

Ed esegui il comando seguente per creare o aggiornare la tabella di ricerca degli alias.

postalias /etc/postfix/aliases

In questo modo i messaggi inviati a [email  verranno recapitati nella casella di posta degli utenti sopra elencati.

Configurazione di Postfix – Il servizio SMTP

Il file di configurazione principale per Postfix è /etc/postfix/main.cf. Devi solo impostare alcuni parametri prima di poter utilizzare il servizio di posta. Tuttavia, dovresti familiarizzare con i parametri di configurazione completi (che possono essere elencati con man 5 postconf) per impostare un server di posta sicuro e completamente personalizzato.

Nota: questo tutorial ha solo lo scopo di farti iniziare questo processo e non rappresenta una guida completa sui servizi di posta elettronica con Linux.

Apri il file /etc/postfix/main.cf con l'editor che preferisci e apporta le seguenti modifiche come spiegato.

vi /etc/postfix/main.cf

1. myorigin specifica il dominio che appare nei messaggi inviati dal server. Potresti vedere il file /etc/mailname utilizzato con questo parametro. Sentiti libero di modificarlo se necessario.

myorigin = /etc/mailname

Se viene utilizzato il valore sopra riportato, i messaggi verranno inviati come [email protetto], dove utente è l'utente che invia il messaggio.

2. miadestinazione elenca quali domini questa macchina consegnerà i messaggi e-mail localmente, invece di inoltrarli a un'altra macchina (agendo come un sistema di inoltro). Nel nostro caso saranno sufficienti le impostazioni predefinite (assicuratevi di modificare il file per adattarlo al vostro ambiente).

Dove il file /etc/postfix/transport definisce la relazione tra i domini e il server successivo a cui devono essere inoltrati i messaggi di posta. Nel nostro caso, poiché consegneremo i messaggi solo alla nostra rete locale (ignorando quindi qualsiasi risoluzione DNS esterna), sarà sufficiente la seguente configurazione.

example.com.ar    local:
.example.com.ar    local:

Successivamente, dobbiamo convertire questo file di testo semplice nel formato .db, che crea la tabella di ricerca che Postfix utilizzerà effettivamente per sapere cosa fare con la posta in entrata e in uscita.

postmap /etc/postfix/transport

Dovrai ricordarti di ricreare questa tabella se aggiungi più voci al file di testo corrispondente.

3. mynetworks definisce le reti autorizzate da cui Postfix inoltrerà i messaggi. Il valore predefinito, subnet, indica a Postfix di inoltrare la posta solo dai client SMTP nelle stesse sottoreti IP della macchina locale.

mynetworks = subnet

4. relay_domains specifica le destinazioni a cui devono essere inviate le email. Lasceremo intatto il valore predefinito, che punta alla mia destinazione. Ricorda che stiamo configurando un server di posta per la nostra LAN.

relay_domains = $mydestination

Tieni presente che puoi utilizzare $mydestination invece di elencare i contenuti effettivi.

5. inet_interfaces definisce su quali interfacce di rete deve essere in ascolto il servizio di posta. L'impostazione predefinita, all, dice a Postfix di utilizzare tutte le interfacce di rete.

inet_interfaces = all

6. Infine, mailbox_size_limit e message_size_limit verranno utilizzati per impostare rispettivamente la dimensione della casella di posta di ciascun utente e la dimensione massima consentita dei singoli messaggi in byte.

mailbox_size_limit = 51200000
message_size_limit = 5120000

Limitazione dell'accesso al server SMTP

Il server Postfix SMTP può applicare determinate restrizioni a ciascuna richiesta di connessione del client. Non a tutti i client dovrebbe essere consentito di identificarsi presso il server di posta utilizzando il comando smtp HELO, e certamente non a tutti dovrebbe essere concesso l'accesso per inviare o ricevere messaggi.

Per implementare queste restrizioni, utilizzeremo le seguenti direttive nel file main.cf. Sebbene siano autoesplicativi, i commenti sono stati aggiunti a scopo di chiarimento.

Require that a remote SMTP client introduces itself with the HELO or EHLO command before sending the MAIL command or other commands that require EHLO negotiation.
smtpd_helo_required = yes

Permit the request when the client IP address matches any network or network address listed in $mynetworks
Reject the request when the client HELO and EHLO command has a bad hostname syntax
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname

Reject the request when Postfix does not represent the final destination for the sender address
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain

Reject the request unless 1) Postfix is acting as mail forwarder or 2) is the final destination
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

La pagina postconf dei parametri di configurazione di Postfix può tornare utile per esplorare ulteriormente le opzioni disponibili.

Configurazione di Dovecot

Subito dopo l'installazione, dovecot supporta immediatamente i protocolli POP3 e IMAP, insieme alle loro versioni sicure, POP3S e IMAPS, rispettivamente.

Aggiungi le seguenti righe nel file /etc/dovecot/conf.d/10-mail.conf.

%u represents the user account that logs in
Mailboxes are in mbox format
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Directory owned by the mail group and the directory set to group-writable (mode=0770, group=mail)
You may need to change this setting if postfix is running a different user / group on your system
mail_privileged_group = mail

Se controlli la tua directory home, noterai che esiste una sottodirectory di posta con i seguenti contenuti.

Inoltre, tieni presente che il file /var/mail/%u è il luogo in cui vengono archiviati i messaggi di posta dell'utente sulla maggior parte dei sistemi.

Aggiungi la seguente direttiva a /etc/dovecot/dovecot.conf (nota che imap e pop3 implicano anche imaps e pop3s).

protocols = imap pop3

E assicurati che /etc/conf.d/10-ssl.conf includa le seguenti righe (altrimenti aggiungile).

ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem

Ora riavviamo Dovecot e verifichiamo che sia in ascolto sulle porte relative a imap, imaps, pop3 e pop3s.

netstat -npltu | grep dovecot

Configurazione di un client di posta e invio/ricezione di posta

Sul nostro computer client, apriremo Thunderbird e fare clic su FileNuovoAccount di posta esistente. Ci verrà richiesto di inserire il nome dell'account e l'indirizzo email associato, insieme alla sua password. Quando facciamo clic su Continua, Thunderbird proverà a connettersi al server di posta per verificare le impostazioni.

Ripeti la procedura sopra per l'account successivo ([email ) e le seguenti due caselle di posta dovrebbero apparire nel riquadro sinistro di Thunderbird.

Sul nostro server, scriveremo un messaggio email a sysadmin, che ha l'alias di jdoe e gacanepa.

Il registro della posta (/var/log/mail.log) sembra indicare che l'e-mail inviata a sysadmin è stata inoltrata a [email  e [email , come si può vedere nell'immagine seguente.

Possiamo verificare se la posta è stata effettivamente consegnata al nostro client, dove gli account IMAP sono stati configurati in Thunderbird.

Infine, proviamo a inviare un messaggio da [email  a [email .

Nell'esame ti verrà chiesto di lavorare esclusivamente con le utilità della riga di comando. Ciò significa che non potrai installare un'applicazione client desktop come Thunderbird, ma ti verrà richiesto di utilizzare la posta. In questo capitolo abbiamo utilizzato Thunderbird solo a scopo illustrativo.

Conclusione

In questo post abbiamo spiegato come configurare un server di posta IMAP per la tua rete locale e come limitare l'accesso al server SMTP. Se ti capita di riscontrare un problema durante l'implementazione di una configurazione simile nel tuo ambiente di test, ti consigliamo di controllare la documentazione online di Postfix e Dovecot (specialmente le pagine sui file di configurazione principali, /etc/postfix/main.cf e/etc/dovecot/dovecot.conf rispettivamente), ma in ogni caso non esitate a contattarmi utilizzando il modulo commenti qui sotto. Sarò più che felice di aiutarti.