Ssmtp

Ssmtp (1) è un sistema molto semplice per l'invio della posta elettronica a un servente SMTP. Lo scopo di questo programma è quello di sostituire l'MTA tipico, quando non è necessaria la gestione della consegna locale (MDA) e si può fare affidamento continuamente su un MTA esterno, contattato attraverso il protocollo SMTP.

Figura u81.1. Esempio di una situazione in cui viene utilizzato Ssmtp.

utilizzo di Ssmtp

Per comprendere il funzionamento di Ssmtp è necessario partire da un esempio, come si vede nella figura u81.1. Nell'elaboratore dinkel.brot.dg è stato installato Ssmtp; l'elaboratore weizen.mehl.dg offre un servente SMTP a cui dinkel.brot.dg può accedere. Nell'elaboratore dinkel.brot.dg sono registrati tre utenti: Tizio, Caio e Sempronio, ognuno dei quali riceve la propria posta elettronica presso una casella remota (come indicato nella figura stessa); inoltre, è Tizio che svolge anche il ruolo di amministratore.

Ssmtp non è un demone e viene avviato solo quando serve. In quel momento, contatta il servente SMTP indicato nella sua configurazione e gli affida il messaggio. Pertanto, il servente in questione deve essere sempre disponibile, ovvero deve essere sempre disponibile la comunicazione verso quell'elaboratore remoto. Da questo si comprende che Ssmtp non può essere usato in un elaboratore che si collega alla rete esterna solo saltuariamente.

In generale, i messaggi destinati all'elaboratore locale non si possono consegnare, ma anche se non si intende usare un programma come Mailx (mail) non bisogna dimenticare che in un sistema Unix standard vengono generati automaticamente dei messaggi che spesso sono diretti all'amministratore, per aggiornarlo sullo svolgimento di operazioni periodiche o per avvisarlo di qualunque tipo di problema. In altri termini, un sistema Unix non può fare a meno di un programma che consenta almeno l'invio dei messaggi di posta elettronica. Ssmtp è in grado di ridirigere questi messaggi a un indirizzo di posta elettronica, che però deve esterno all'elaboratore locale.

Quando un utente invia un messaggio, è necessario che Ssmtp sia in grado di modificare il campo From:, in modo che appaia un indirizzo di posta elettronica valido; diversamente, se apparisse l'indirizzo dell'elaboratore locale (dinkel.brot.dg nell'esempio), non potrebbe ricevere alcuna risposta dal suo interlocutore.

Configurazione

Ssmtp utilizza solo due file per la configurazione. Si tratta di /etc/ssmtp/ssmtp.conf e di /etc/ssmtp/revaliases. È sufficiente mostrare degli esempi compatibili con quanto visto in figura u81.1 per comprendere l'uso delle direttive di questi file. Si comincia con /etc/ssmtp/ssmtp.conf, dove i commenti relativi alle direttive non utilizzate sono rimasti in inglese:

# /etc/ssmtp/ssmtp.conf

# La persona che riceve i messaggi diretti agli utenti con UID inferiore a 10
root=tizio@bla.dg

# Il servente SMTP per l'invio dei messaggi.
mailhub=weizen.mehl.dg

# Where will the mail seem to come from?
#rewriteDomain=dinkel.brot.dg

# Il nome completo del nodo locale
hostname=dinkel.brot.dg

# Set this to never rewrite the "From:" line (unless not given) and to
# use that address in the "from line" of the envelope.
#FromLineOverride=YES

Come si vede, i messaggi diretti a root@localhost vengono modificati e inviati a tizio@bla.dg; l'invio dei messaggi avviene facendo uso del servizio offerto da weizen.mehl.dg; il nome dell'elaboratore locale è dinkel.brot.dg.

Quanto visto fino a questo punto basta per inviare i messaggi, ma non è sufficiente a modificare il campo From:, perché si tratta di un compito affidato alla configurazione con il file /etc/ssmtp/revaliases:

# /etc/ssmtp/revaliases

root:           tizio@bla.dg
tizio:          tizio@bla.dg
caio:           caio@ciao.dg
sempronio:      sempre@sorriso.dg

Si può osservare che al nominativo-utente si abbina l'indirizzo di posta elettronica appropriato, compreso il caso di root.

Ricezione della posta elettronica

La ricezione della posta elettronica è un'attività al di fuori della competenza di Ssmtp, pertanto la si deve prelevare attraverso il protocollo POP3 o un altro simile, ma questo direttamente attraverso il programma utilizzato per la lettura della stessa. In altri termini, non si può usare Fetchmail (39.11.3) e nemmeno altri programmi che rinviano i messaggi prelevati nel sistema di recapito locale.

Considerazioni sulla sicurezza

L'utilizzo di Ssmtp si giustifica solo quando si vuole evitare di dovere gestire un servente SMTP standard, con tutti i problemi di sicurezza che ciò comporta. Inoltre, si evita di avere in funzione continuamente il programma, riducendo così le risorse elaborative richieste.


1) Ssmtp   GNU GPL

«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net