Postfix e MySQL: gestire il mail server con un database

4 novembre 2008

Il matrimonio, in ambiente Linux, tra il noto MTA (Mail Transfer Agent) Postfix e il database MySQL, consente di realizzare un server di posta elettronica facilmente amministrabile. Utenti, domini, alias ed altre configurazioni verranno memorizzati direttamente nelle tabelle del database. I vantaggi di una simile soluzione sono innumerevoli, proviamo ad elencarne alcuni:

  • Il nostro server gestirà solo utenti virtuali e non utenti reali rendendo maggiormente sicuro il sistema
  • Per aggiungere una mailbox o un alias basterà un semplice INSERT senza dover riavviare il servizio o lanciare altri comandi
  • Sarà possibile scrivere una semplice applicazione, ad esempio in PHP, per consentire l’ordinaria amministrazione anche ad utenti non molto esperti
  • Risulterà facile scalare dalla gestione di centinaia a migliaia di caselle email: non sarebbe altrettanto semplice, ad esempio, con i classici file virtusertable e aliases di Sendmail
  • Se il carico di lavoro aumentasse risulterebbe possibile (e facile) gestire mailer e database con macchine distinte aumentando le prestazioni
  • Entrambi i software sono open source e distribuiti gratuitamente (per lo meno la Community Edition di MySQL) di qui la possibilità di ottenere una soluzione altamente professionale, ma a bassi costi

L’elenco potrebbe continuare, ma penso che ci siano ragioni a sufficienza per testare la soluzione proposta. Il sistema operativo di riferimento sarà Fedora 9 ed utilizzeremo YUM per l’installazione dei pacchetti precompilati. Non sarà comunque difficile adattare le indicazioni fornite alla vostra distribuzione preferita.

Installiamo Postfix

Prima di passare all’azione è d’obbligo fare qualche considerazione su questo MTA open source, sviluppato da Wietse Venema nei laboratori IBM. Postfix nasce come naturale sostituto di Sendmail, se volessimo aggiornare un mail server il passaggio dall’uno all’altro risulterebbe praticamente indolore. I più temerari potrebbero addirittura farlo su una macchina in produzione con bassissime probabilità di blocco del servizio. Postfix può infatti gestire le mailbox ed alcuni file di configurazione, come /etc/aliases, esattamente nello stesso formato di Sendmail.

Quali sono le ragioni che potrebbero spingerci ad adottare questo software? Innanzitutto il fatto che sia stato sviluppato con moderni criteri di sicurezza, poi le ottime prestazioni con carichi di lavoro elevati anche su hardware non potentissimo. Quest’ultima caratteristica non va sottovalutata infatti la quantità di Spam che circola in Rete rende trafficato anche il mail server di una piccola azienda. Ancora da segnalare la facilità d’installazione e configurazione: pur disponendo di moltissimi parametri, mantenendo i valori predefiniti e impostandone solo due o tre, potremo ottenere un mail server di base, perfettamente funzionante.

In realtà Postfix è costituito da un insieme di programmi, ciascuno con un proprio compito preciso, che interagiscono tra loro e molte delle sue caratteristiche positive derivano proprio da quest’architettura.

Cominciamo con l’installare il software, apriamo una console, assumiamo i privilegi di root e digitiamo:

[root]# yum install postfix

YUM ci avviserà se il pacchetto è già presente nel sistema o necessita semplicemente di aggiornamento. Al momento della stesura dell’articolo risulta disponibile la versione 2.5.1-2.fc9. Il mail server che vogliamo realizzare non è proprio standard, ma dovrà interfacciarsi con il database MySQL. Con Fedora 9 siamo fortunati, il pacchetto installato è già predisposto allo scopo. Nel caso di Fedora 8 o precedenti l’opzione non sarà invece disponibile.

Per verificare se la versione di Postfix installata soddisfa o meno alle nostre esigenze possiamo procedere così:

[root]# ldd /usr/libexec/postfix/smtpd | grep mysql
libmysqlclient.so.15 => /usr/lib/mysql/libmysqlclient.so.15 (0x001aa000)

Se la risposta ottenuta è simile alla seconda riga, ovvero riporta il riferimento a libmysqlclient, allora siamo tranquilli. In caso contrario bisognerà trovare una strada alternativa come vedremo nel prossimo paragrafo. L’installazione da pacchetto precompilato provvede alla creazione di un utente di sistema postfix appartenente al gruppo postfix e privo dei privilegi di login.

Se vuoi aggiornamenti su Postfix e MySQL: gestire il mail server con un database inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Postfix e MySQL: gestire il mail server con un database

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy