Manage your Blog

Create your blog now! Easy and Free

Linuxlandia
Diffondere la cultura del software libero è il nostro obiettivo. Avere un sistema operativo in grado di fare tutto spendendo nulla è possibile. Oggi più che mai ne abbiamo gli strumenti. Non più scuse. Oggi dipende tutto dalla nostra volontà.

Category: Client email

07/06/2008 GMT 1

Postfix, server per gestire la posta elettronica in uscita (protocollo SMTP)

linuxlandia @ 17:15

feed RSSPostfix è un server per gestire la posta elettronica in uscita (protocollo SMTP). Postfix può essere considerato come alternativa a Sendmail, con il vantaggio di essere molto più semplice da utilizzare.

postfix.gif

Postfix è un demone di posta SMTP (categorizzato comunemente MTA, o Mail Transfer Agent) scritto inizialmente da Wietse Zweitze Venema e rilasciato con licenza IBM Public License, attualmente riceve molteplici e svariati contributi dal mondo open source. Attualmente è compilabile ed eseguibile sui sistemi operativi AIX, BSD, HP-UX, IRIX, Linux, Mac OS X, Solaris, Tru64 UNIX e in genere su tutti i sistemi operativi Unix-like dotati di un compilatore ANSI C, librerie di sviluppo compatibili POSIX e che abbia anche le librerie necessarie per gestire i socket BSD.

sky8_728x90.gif
Nasce alla fine degli anni '90 con lo scopo di fornire un'alternativa a Sendmail che offrisse maggiori garanzie per quanto riguarda la sicurezza.

Fra i pregi di Postfix ci sono l'enorme tolleranza e capacità di contenimento riguardo ai buffer overflow ed è capace di gestire grandi quantità di messaggi di posta elettronica. Attualmente è presente nella quasi totalità delle distribuzioni Linux e scelto come MTA di default su molte di queste.

È giunto alla versione 2.3, nella quale offre supporto per:

* Transport Layer Security (TLS);
* la possibilità di grey-list e il content filtering avanzato;
* supporto per vari database per le tabelle di configurazione e conversione: Berkeley DB, CDB, DBM, LDAP, MySQL e PostgreSQL;
* supporto per mailbox, maildir e domini virtuali;
* manipolazione degli indirizzi, VERP, autenticazione SASL e molto altro.

Postfix si struttura in diversi demoni che svolgono ognuno una sola funzione, ognuno dei quali eseguito con diritti minimi. Questo garantisce che qualsiasi bug o exploit che coinvolga uno dei "pezzi" di Postfix non comprometta l'intero sistema di delivery delle e-mail. Un solo processo deve avere diritti privilegiati, tutti gli altri hanno diritti minimi e spesso un file di configurazione proprio, pochi di questi ultimi hanno la capacità di scrivere sulle periferiche di memorizzazione di massa.

Anatomia
Un'immagine proveniente dalla home page di Postfix per descriverne la fisionomia:

Legenda:

* nel rettangolo bordato di nero c'è Postfix
* le ellissi gialle rappresentano i processi/demoni di Postfix
* i rettangoli gialli sono le destinazioni locali di posta (mailbox o maildir) o delle code di posta in ingresso/uscita
* i rettangoli azzurri sono i file di configurazione legati ai singoli processi

Descrittivamente Postfix accetta messaggi in due modi:

1. sorgente locale (Sendmail o altro eseguibile che inietta il messaggio sul pickup);
2. la rete esterna alla macchina (che sia una rete Intranet o Internet).

todomondo_papagallo_pirata728x901.gif


Nel secondo caso si ha in ascolto sulla porta TCP 25 il demone smtpd, che si occupa di colloquiare con il mittente per definire come stabilire la trasmissione. Il demone ha alcuni file di configurazione che gli permettono di utilizzare fonti esterne per autorizzare la ricezione, fra cui le DNSBL e una access-list (basabile su IP, domini, autenticazione del mittente tramite nome utente e password). Se smtpd accetta l'e-mail passa al demone cleanup il messaggio, terminando il suo compito. cleanup si occupa di prendere in carico il messaggio e inserirlo nella coda di arrivo. Prima di tale operazione viene analizzato l'indirizzo e-mail del mittente e di destinazione ed eventualmente tradotto tramite virtual e canonical (operazione svolta dal demone rewrite), cioè vengono riscritti i campi FROM e TO (più correttamente RCPT) del messaggio. virtual è un derivato di local; il suo compito è quello di rintracciare tramite delle tabelle un indirizzo di posta elettronica e rimpiazzarlo con l'identificativo di un utente locale (esempio: riscrive il RCPT da utente@example.com a utente permettendo la preparazione al salvataggio dell'e-mail nella maildir/mailbox di "utente"). Questo avviene tendenzialmente alle e-mail in arrivo dall'esterno della macchina. canonical svolge la funzione inversa di virtual, modificando il campo FROM convertendo utente@localhost in utente@example.com, indirizzo a cui il resto del mondo potrà eventualmente rispondere.

ignore_by_eklektion.jpg La locazione di incoming serve come parcheggio temporaneo mentre la parte di assimilazione di Postfix finisce il proprio incarico. Ogni qualvolta viene alterato il contenuto di incoming viene segnalato al demone qmgr che è necessaria un'opera di smaltimento, il quale si prenderà carico dell'e-mail e proverà a passarla a chi di dovere per portarla alla destinazione finale; se si presentano problemi o difficoltà nello svolgere tale compito allora il messaggio viene posto in una differente coda chiamata deferred e rielaborata in seguito. qmgr controlla la coda "deferred" a intervalli regolari solo se la locazione non è vuota. qmgr verifica inanzitutto la disponibilità immediata della destinazione, utilizzando principalmente il relocated, ovvero un elenco di spostamenti della destinazione (nel caso si tratti di destinazione locale) con segnali interpretati come l'utente pippo@example.com è stato spostato su pluto@example.com. Se invece la destinazione è reale e raggiungibile allora "qmgr" si comporta in base ad alcune condizioni:

1. transport tramite resolve stabilisce se l'utente è locale o se l'e-mail deve essere instradata altrove;
2. se la destinazione è un utente locale allora viene passata a local;
3. se la destinazione risiede su un altro server allora il messaggio viene inviato a pipe o smtp per l'invio alla macchina remota.

local è il demone che si occupa di scrivere fisicamente nella mailbox/maildir il messaggio. Per stabilire in modo univoco la reale destinazione si appoggia su una tabella chiamata alias che è un elenco di equivalenze che permettono di attribuire più indirizzi a un unico utente, oppure fa uso di forward che si occupa di inoltrare l'e-mail in una locazione diversa dalla mailbox/maildir propria dell'utente. smtp si comporta complementarmente a smtpd, però anziché ascoltare sulla porta 25 per l'eventuale arrivo di messaggi si fa carico di inoltrare l'e-mail verso il server di destinazione (o comunque definito come passo successivo per raggiungere poi la destinazione) alla porta 25.

UUCP è un protocollo un po' datato, che svolge le stesse funzioni di smtp pero' cercando all'altro capo della comunicazione un server in grado di colloquiare con lo stesso linguaggio.

Accenni sulla configurazione di base
Esistono poi alcuni file di configurazione "globali" all'host (che sia reale o virtuale) in cui è installato il sistema Postfix, fra cui "main.cf". Di norma le impostazioni di default delle forme pacchettizate dalle varie distribuzioni Linux, nelle varie versioni di sistemi operativi BSD suddetto file presenta già parametri idonei a un uso casalingo o amatoriale, rimangono da specificare poche cose, fra cui:

myhostname = FQDN_della_macchina
mydomain = il_vostro_dominio_di_appartenenza
myorigin = cosa_viene_appeso_dopo_la_@
relayhost = il_server_SMTP_del_vostro_ISP

Per ogni altra personalizzazione è raccomandabile usare un motore di ricerca per essere certi di utilizzare la guida più indicata per il sistema operativo in uso.

macbookair_728x901.gif

 

Postfix feature overview

Supported environments

Postfix runs on AIX, BSD, HP-UX, IRIX, LINUX, MacOS X, Solaris, Tru64 UNIX, and other UNIX systems. It requires ANSI C, a POSIX.1 library, and BSD sockets. See below for the gory details of what Postfix expects from the file system.

Gory details: the Postfix mail queue requires that (1) the file system can rename a file to a near-by directory without changing the file's inode number, and that (2) mail is safely stored after fsync() of that file (not its parent directory) returns successfully, even when that file is renamed to a near-by directory at some later point in time. Maildir delivery also requires that (3) a file can be hard linked between different near-by directories. Mailbox delivery introduces no additional requirements beyond what is already needed for Postfix queues.
Main features

The following is a list of major Postfix features. Some features require third-party libraries (examples: LDAP, SQL, TLS). Other features are available only when the necessary operating system support exists and Postfix knows how to use it (examples: IP version 6, connection caching).

Protocol support

Postfix 2.2 Connection cache for SMTP
Postfix 2.3 DKIM, DomainKeys and SenderID authentication (via Milter plug-in)
Postfix 2.3 DSN status notifications
Postfix 2.3 Enhanced status codes
Postfix 1.0 ETRN on-demand relay
Postfix 2.2 IP version 6
Postfix 1.0 LMTP client
Postfix 2.0 MIME (including 8BITMIME to 7BIT conversion)
Postfix 1.0 Pipelining (SMTP client and server)
Postfix 2.3 Plug-in support for multiple SASL implementations (Cyrus, Dovecot)
Postfix 1.0 SASL authentication
Postfix 2.2 TLS encryption and authentication
Postfix 1.1 QMQP server

By popular demand...

Postfix 2.3 Configurable delivery status notification message text
Postfix 2.3 Sender-dependent SMTP relay lookup
Postfix 2.3 Sender-dependent SASL password lookup

Junk mail control

Postfix 2.1 Access control per client/sender/recipient/etc.
Postfix 2.1 Address probing callout
Postfix 1.1 Content filter (built-in, external before queue, external after queue)
Postfix 2.3 Sendmail Milter (mail filter) protocol
Postfix 2.1 Greylisting plug-in
Postfix 2.1 SPF plug-in
Postfix 2.2 SMTP server per-client rate and concurrency limits
Postfix 2.5 Stress-dependent configuration

40fotogratis728x90.jpg

Database support

Postfix 1.0 Berkeley DB database
Postfix 2.2 CDB database
Postfix 1.0 DBM database
Postfix 1.0 LDAP database
Postfix 1.0 MySQL database
Postfix 2.0 PostgreSQL database

Mailbox support

Postfix 1.0 Maildir and mailbox format
Postfix 1.0 Virtual domains

Address manipulation

Postfix 2.2 Masquerading addresses in outbound SMTP mail
Postfix 2.2 Selective address rewriting
Postfix 1.1 VERP envelope return addresses

Postfix Howtos and FAQs

To have information listed on this page, please send mail to wietse@porcupine.org. The information listed here is maintained by the respective authors. It is listed without formal evaluation, in other words, no implied warranty of any kind.

FAQs

PostfixWiki

Training

wii_728x90.gif

MS Exchange Integration

The following documents describe how to build the list of valid Exchange recipients for a Postfix 2.x "front end" MTA, so that you don't clog the Postfix mail queue with undeliverable MAILER-DAEMON messages.

TLS

SASL

Adding disclaimers

  • Altermime system to alter mime-encoded messages. With Postfix, use this as an external content filter in order to mutilate transit mail.

UCE/Virus

POP/IMAP and the kitchen sink

trovolavoro_728x90.gif

Miscellaneous

General Email/System Administration

Fonte: Wikipedia & Postfix

Ultimi post pubblicati

RSTP (Raccomandati Se Ti Piacciono)

Archive | Create your blog now! Easy and Free