pop-before-smtp con Postfix

Postfix è integrabile con diversi sistemi di autenticazione, di controllo dei virus, di applicativi webmail e può raggiungere livelli molto elevati di complessità strutturale. Molti strumenti e metodi utilizzati con Sendmail sono disponibili anche con Postfix.
Sul sito ufficiale del pacchetto alla pagina http://www.postfix.org/addon.html sono disponibili diversi riferimenti a utility, patch e documentazione per implementare diverse funzioni.

Attualmente Postfix è integrabile con molti dei principali sistemi di posta pop3/imap come Cyrus IMAP, Qpopper, Courier-imap, con vari software antivirus, con sistemi di controllo delle autenticazioni before-smtp come DRAC, whoson o pop-before-smtp o con sistemi anti-UCE come SpamAssassin. Alcune di queste funzioni implicano la ricompilazione del pacchetto, altre necessitano di particolari accorgimenti, come spesso succede nel mondo Linux ci sono molti modi di ottenere lo stesso effetto ed è difficile stabilire quale sia il migliore.

Un metodo di autenticazione molto usato è pop-before-smtp.
Per far questo si può utilizzare DRAC Dinamic Relay Authorization Control, un demone che si occupa di scrivere un database di indirizzi autenticati attraverso pop3/imap ma implica alcuni fattori poco favorevoli quali l'uso di Remote Procedure Call e quindi la necessità di avere portmap attivo e il fatto di dover ricompilare i demoni usati per pop3/imap, si può usare whoson una patch per Postfix che quindi implica la sua ricompilazione oppure usare pop-before-smtp un demone scritto in Perl.
L'ultima è probabilmente la soluzione più funzionale e pratica, non implica ricompilazioni particolari ed è portabile su molte piattaforme differenti, unico neo che potrebbe far preferire DRAC a questo metodo è che non opera da remoto implica per ciò che i file necessari siano presenti sulla macchina del server di posta.

Il pacchetto, disponibile su sourceforge si può trovare in formato rpm o in formato tar.gz, una volta appurato che siano presenti i modili Perl necessari per far funzionare pop-before-smtp installabili attraverso un Bash script all'interno della directory contrib dei sorgenti scaricati, chiamato getfromcpan che li scarica, ne crea il pacchetto rpm e se lanciato come root li installa o per i puristi con il comando Perl per accedere all'immenso archivio dei moduli di Perl:
#perl -MCPAN -e 'install Time::HiRes'
#perl -CPAN -e 'install File::Tail'
#perl -MCPAN -e 'install Date::Parse'
#perl -MCPAN -e 'install Net::Netmask'


A questo punto premesso di avere un'installazione funzionante di un sistema di posta, in questo caso poniamo un server pop3 e Postfix, sarà necessario lavorare principalmente sulla configurazione di pop-before-smtp e sul main.cf di Postfix.
Il file di configurazione principale pop-before-smtp-conf.pl è molto ben commentato ed è consigliabile leggerlo tutto per chiarire appieno il funzionamento e le possibili configurazioni, di norma si dovrà fare attenzione ad alcuni parametri:
# Set the log file we will watch for pop3d/imapd records.
Con questo commento inizia la sezione che specifica il log file del server pop3d/imapd. Notare che è presente del codice che tenta di effettuare questa operazione automaticamente.
if (!-f $file_tail{'name'}) {
    foreach (qw( /var/log/mail/info /var/log/mail.log
         /var/log/messages /var/adm/messages )) {
    if (-f $_) {
        $file_tail{'name'} = $_;
        last;
    }
    }
}


Mentre sarà importante fare attenzione alle definizioni della variabile $pat per determinare le azioni da eseguire sui file di log, di cui il default è
# For UW ipop3d/imapd and their secure versions. This is the DEFAULT.
$pat = '^(... .. ..:..:..) \S+ (?:ipop3s?d|imaps?d)\[\d+\]: ' .
    '(?:Login|Authenticated|Auth) user=\S+ ' .
    'host=(?:\S+ )?\[(\d+\.\d+\.\d+\.\d+)\]';


Sarà necessario identificare il server pop3d/imapd usato e scommentare le righe di codice che lo riguardano.
A questo punto se è tutto a posto si potrà lanciare il comando o usando
#/usr/sbin/pop-before-smtp
o a seconda della distribuzione lo script di init
/etc/init.d/pop-before-smtp start
Di default dovrebbe creare il file pop-before-smtp.db nella directory /etc/postfix/ e sarà necessario configurare il main.cf di conseguenza agendo sul parametro di restrizione dei recipienti
smtpd_recipient_restrictions = permit_mynetworks,reject_non_fqdn_recipient,
        check_client_access hash:/etc/postfix/pop-before-smtp,
        check_relay_domains

In questo modo quando un client si autenticherà via pop da qualunque indirizzo ip, poniamo dei dipendenti che viaggiano spesso e si collegano con il modem, il demone pop-before-smtp aggiornerà il file database contenente le informazioni sul client di modo che Postfix ne conceda l'inoltro (relay) della posta. I metodi possibili per gestire l'autenticazione per limitare il relay di Postfix sono molte, questo è forse uno dei metodi più semplici e pratici ma consigliabile fare riferimento alla documentazione presente in Internet per questo argomento che spesso contiene informazioni molto utili per la comprensione delle architetture implementabili con Postfix.

Privacy Policy