Mail Server Software

Gli MTA sono i programmi che trasportano posta da una macchina all'altra. Il tradizionale MTA è Sendmail, tuttavia ci sono molte altre scelte.

Ci sono server SMTP, server POP (qpopper) e un server IMAP (Courier-IMAP).

Postfix-2.1.5

Introduzione a Postfix

Il pacchetto Postfix contiene un Mail Transport Agent (MTA). Esso serve per inviare email ad altri utenti della propria macchina host. Può anche essere configurato per essere una server di posta centrale per il proprio dominio, un mail relay agent o semplicemente un mail delivery agent per il proprio Internet Service Provider (ISP) locale.

Informazioni sul pacchetto

Installazione di Postfix

Configurazione della costruzione

L'albero sorgente di Postfix non contiene uno script configure, ma il makefile nella directory top-level contiene un target makefiles che rigenera tutti gli altri makefile nell'albero di costruzione. Se si desidera usare software aggiuntivo come un database back-end per utenti virtuali, o autenticazione TLS/SSL, bisognerà rigenerare i makefile usando uno o più dei settaggi CCARGS e AUXLIBS appropriati elencati di seguito.

Qui c'è un esempio che combina gli argomenti TLS/SSL e Cyrus-SASL:

make makefiles \
CCARGS="-DHAS_SSL -DUSE_SASL_AUTH -I/usr/include/openssl -I/usr/include/sasl" \
AUXLIBS="-L/usr/lib -R/usr/lib -lssl -lcrypto -lsasl2"
Autenticazione SSL/TLS

Per usare l'autenticazione SSL/TLS con Postfix, sarà prima necessario applicare una patch disponibile presso ftp://ftp.aet.tu-cottbus.de/pub/postfix_tls/pfixtls-0.8.18-2.1.3-0.9.7d.tar.gz. Scompattare il tarball della patch e applicarla con i seguenti comandi:

patch -p1 < ../pfixtls-0.8.18-2.1.3-0.9.7d/pfixtls.diff

Sarà necessario passare i seguenti valori al comando make makefiles:

CCARGS="-DHAS_SSL -I/usr/include/openssl" \
AUXLIBS="-L/usr/lib -lssl -lcrypto"

Per usare SSL o TLS sarà anche necessario Cyrus SASL-2.1.20.

Cyrus-SASL

Per usare Cyrus-SASL con Postfix, usare i seguenti argomenti:

CCARGS="-DUSE_SASL_AUTH -I/usr/include/sasl" \
AUXLIBS="-L/usr/lib -R/usr/lib -lsasl2"
OpenLDAP

Per usare OpenLDAP con Postfix, usare i seguenti argomenti:

CCARGS="-I/usr/include -DHAS_LDAP" \
AUXLIBS="-L/usr/lib -lldap -llber"
MySQL

Per usare MySQL con Postfix, usare i seguenti argomenti:

CCARGS="-DHAS_MYSQL -I/usr/include/mysql" \
AUXLIBS="-L/usr/lib -lmysqlclient -lz -lm"
PostgreSQL

Per usare PostgreSQL con Postfix, usare i seguenti argomenti:

CCARGS="-DHAS_PGSQL -I/usr/include/postgresql" \
AUXLIBS="-L/usr/lib -lpq -lz -lm"

Installazione di Postfix

Prima di compilare il programma bisogna creare utenti e gruppi che lo script di installazione si aspetterà di trovare. Aggiungere gli utenti e gruppi con i seguenti comandi:

groupadd postfix &&
groupadd postdrop &&
groupadd -g 65534 nogroup &&
useradd -c postfix -d /dev/null -g postfix -s /bin/false postfix &&
useradd -c nobody -d /home -g nogroup -s /bin/bash -u 65534 nobody &&
chown postfix:postfix /var/mail

Installare Postfix eseguendo i seguenti comandi:

make &&
sh postfix-install daemon_directory=/usr/sbin \
                   manpage_directory=/usr/share/man \
                   sample_directory=/usr/share/doc/postfix \
                   -non-interactive

L'ultimo passo è l'installazione della documentazione del programma con i seguenti comandi:

install -d /usr/share/doc/postfix &&
cp -rf html/* /usr/share/doc/postfix

Spiegazioni dei comandi

sh postfix-install ... -non-interactive : questo evita che lo script di installazione faccia domande, accettando così le directory di destinazione di default ovunque tranne nei tre casi esplicitamente menzionati.

make makefiles : questo comando ricostruisce i makefile attraverso l'albero sorgenti per usare le opzioni contenute nelle variabili CCARGS e AUXLIBS.

Configurazione di Postfix

File di configurazione

/etc/aliases, /etc/postfix/main.cf e /etc/postfix/master.cf

Informazioni di configurazione

cat >> /etc/aliases << "EOF"
# Begin /etc/aliases

MAILER-DAEMON:    postmaster
postmaster:       root

root:             LOGIN
# End /etc/aliases
EOF
[Nota]

Nota

Per proteggere un esistente file /etc/aliases il precedente comando aggiunge ad esso questi alias, se esiste. Questo file deve essere verificato e gli alias duplicati rimossi, se presenti.

Il file /etc/aliases che è stato appena creato o aggiunto, main.cf e master.cf devono venire personalizzati per il proprio sistema. Il file aliases necessita le propria identità di login non-root, in modo che la posta indirizzata a root possa essere inoltrata a voi al livello utente. Il file main.cf ha bisogno del proprio fully qualified hostname. Tutte queste modifiche possono essere fatte con comandi sed inseriti nella console con le appropriate sostituzioni per il proprio login name non-root per [utente] e il proprio fully qualified hostname per [localhost.localdomain]. Si troverà che il file main.cf è auto-documentato, quindi caricarlo nel proprio editor per fare i cambiamenti necessari per la propria situazione.

sed -i "s/LOGIN/[user]/" /etc/aliases &&
sed -i "s/#myhostname = host.domain.tld/myhostname = \
        [localhost.localdomain]/" /etc/postfix/main.cf &&
/usr/bin/newaliases &&
/usr/sbin/postfix start

Script Postfix init.d

Per automatizzare l'esecuzione di Postfix all'accensione installare l'init script /etc/rc.d/init.d/postfix incluso nel pacchettoblfs-bootscripts-6.0.

make install-postfix

Contenuti

Programmi installati: bounce, cleanup, error, flush, lmtp, local, mailq, master, newaliases, nqmgr, oqmgr, pickup, pipe, postalias, postcat, postconf, postdrop, postfix, postkick, postlock, postlog, postmap, postqueue, postsuper, proxymap, qmgr, qmqpd, sendmail, showq, smtp, smtpd, spawn, trivial-rewrite, verify, e virtual
Librerie installate: Nessuna
Directory installate: /etc/postfix e /usr/share/doc/postfix

Brevi descrizioni

bounce

un demone che mantiene file log per messaggio con informazioni di stato di mancato recapito.

cleanup

un demone che processa posta in ingresso, la inserisce nella coda della posta in ingresso, e informa il gestore della coda del suo arrivo.

error

un demone che processa richieste non-delivery dal gestore della coda.

flush

un demone che mantiene una registrazione della posta rinviata a destinazione.

lmtp

un demone che processa richieste di consegna messaggi dal gestore della coda.

local

un demone che processa richieste di consegna dal gestore della coda per recapitare posta ai destinatari locali.

mailq

un link simbolico a sendmail.

master

il processo residente che esegue il demone Postfix su richiesta.

newaliases

un link simbolico a sendmail.

nqmgr

un demone che attende l'arrivo di posta in ingresso e la sistema per la sua consegna.

oqmgr

il gestore della coda vecchio stile. Esso verrà presto rimosso.

pickup

un demone che attende che gli venga notificato che nuova posta è stata buttata nella directory maildrop, e la invia al demone cleanup.

pipe

un demone che processa richieste dal manager della coda per recapitare messaggi a comandi esterni.

postalias

crea o fa richieste ad uno o più database di alias di Postfix, o ne aggiorna uno esistente.

postcat

stampa i contenuti dei file named in formato leggibile dall'uomo.

postconf

visualizza o cambia il valore dei parametri di configurazione di Postfix.

postdrop

crea un file nella directory maildrop e copia il suo standard input nel file.

postfix

controlla l'operazione del sistema di posta Postfix.

postkick

invia richieste al servizio specificato su un canale di trasporto locale.

postlock

blocca una casella di posta per un uso esclusivo ed esegue comandi passati ad esso.

postlog

un'intefaccia di log compatibile con Postfix per l'uso, ad esempio, in script di shell.

postmap

crea o invia richieste a una o più tabelle di ricerca di Postfix o ne aggiorna una esistente.

postqueue

l'interfaccia utente di Postfix per la gestione della coda.

postsuper

l'interfaccia utente di Postfix per la gestione della coda da parte del superutente.

proxymap

fornisce servizi di ricerca su tabelle in sola lettura ad altri processi Postfix.

qmgr

un demone che attende l'arrivo di posta in ingresso e dispone la sua consegna.

qmqpd

un demone che riceve un messaggio per connessione, e fa un pipe tramite il demone cleanup, e lo mette nella coda di ingresso.

sendmail

l'interfaccia di compatibilità da Postfix a Sendmail.

showq

un demone che riporta lo stato della coda di posta di Postfix.

smtp

cerca un elenco di indirizzi di mail exchanger per l'host di destinazione, ordina l'elenco sulla base delle preferenze e si connette a ciascun indirizzo elencato fino a quando trova un server che risponda.

smtpd

accetta richieste di connessioni di rete ed esegue zero o più transazioni SMTP per connessione.

spawn

si pone in ascolto di una porta come specificato nel file master.cf di Postfix e produce un comando esterno qualora venga stabilita una connessione.

trivial-rewrite

un demone che riscrive indirizzi in forma standard.

verify

mantiene un record di quali indirizzi destinatari sono noti come recapitabili o non recapitabili.

virtual

recapita posta alle directory di posta degli utenti virtuali.