Mar 022013
 

Postfix è un ottimo server di posta, ma non è la più facile delle bestia da domare, se non siete un amministratore di sistema esperto e volete impostare solo un servizio per il vostro server e dominio, oggi vi mostrerò come installare e configurare postfixadmin una interfaccia web-based utilizzata per gestire le caselle di posta, domini virtuali e gli alias. Dispone inoltre di supporto per i messaggi per vacation/out-of-the-office.

Questo software è compatibile con diversi database e server IMAP/POP3 , nel seguente articolo userò Mysql come database server, su un server Linux Centos 6.



Breve descrizione e caratteristiche:

Postfix Admin è uno strumento di gestione Web creato per Postfix. Si tratta di un’applicazione basata su PHP per la gestione all’interno di Postfix dei domini virtuali e degli utenti che sono memorizzati in MySQL o PostgreSQL.

  • Amministrazione basata sul web per un server di posta Postfix
  • Supporto ai database MySQL o PostgreSQL
  • Supporto a Fetchmail
  • Supporto ai messaggi di Vacation / auto-risposta
  • Possibilità di integrazione con Squirrelmail / Roundcube

Primo passo: Requisiti

Per funzionare correttamente Postfix Admin ha bisogno dei seguenti software installati sul server Linux:

  • Postfix 2.0 o maggiore.
  • Apache 1.3.27 / Lighttpd 1.3.15 o maggiore.
  • PHP 5.1.2 o maggiore con supporto a mysql.
  • MySQL (5.x raccomandato)

Tutti questi software sono facilmente installabile su Centos 6 tramite yum

Secondo passo: installazione e configurazione Postfix Admin

Scarica l’ultima versione di Postfix Admin da sourceforge , in questo momento l’ultima versione è la 2.3.6.

Una volta scaricato il pacchetto sorgente scompattarlo nella document root del vostro server Web, in questo esempio la mia document root è /srv/posyfixadmin

cd /srv
tar -zxvf /tmp/postfixadmin-2.3.6.tar.gz
mv postfixadmin-2.3.6 postfixadmin

Configurare un database

Sul vostro server di database preferito, è necessario creare un nuovo database. Un buon nome per questo potrebbe essere:
postfix

La maggior parte degli utenti utilizza il phpMyAdmin come via più facile, per creare un database ed una utenza oppure è possibile creare utente e database MySQL in modo rapido e semplice eseguendo mysql dalla shell.

La sintassi è la seguente e il simbolo del dollaro è il prompt dei comandi:

$ mysql -uroot -p
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.1.67 Source distribution
 
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> CREATE DATABASE postfix;
Query OK, 1 row affected (0.00 sec)
 
mysql> CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'yourpassword';
Query OK, 0 rows affected (0.00 sec)
 
mysql> GRANT ALL PRIVILEGES ON `postfix`.* TO 'postfix'@'localhost';
Query OK, 0 rows affected (0.00 sec)
 
mysql> exit
Bye
 
$

Ora modificare il file config.inc.php – o – config.local.php e creare o aggiungere le impostazioni qui riportate.
Le impostazioni più importanti sono quelle per la connessione al server database che dovrebbero essere simili a queste:

$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'yourpassword';
$CONF['database_name'] = 'postfix';

Dovete anche cambiare la linea di configurazione:

$CONF['configured'] = false;

In

$CONF['configured'] = true;

Postfixadmin non richiede l’accesso in scrittura a tutti i file. Pertanto, è possibile lasciare i file di proprietà di root (o altro utente), fino a quando l’utente del web server (ad esempio www-data o apache) è in grado di leggerli andrà tutto bene.

Ora aprite il vostro browser alla url: http://yourservername.com/setup.php si dovrebbe vedere una pagina come questa:

postfixadmin

Farà un check-up di base della configurazione e indicherà se manca qualcosa, alla mia prima verifica mi mancava php-mbstring e php-imap così li ho installati con:

yum install php-mbstring php-imap

E riavviato Apache, ricaricando la pagina ho ricevuto una “Ok”
Lo script setup.php tenterà di creare la struttura del database ed è possibile specificare una password (che avrete bisogno di usare se volete utilizzare setup.php ancora in futuro), quando si invia il modulo, il valore hash, che è necessario inserire in config.inc.php viene mostrato con queste istruzioni:

if you want to use the password you entered as setup password, edit config.inc.php and set
 
$CONF['setup_password'] = '1a05f571012e9f14c0f80f764d516f80:ec41add25de301101bac12649f929bbcbea8575e';

Cambiate quindi questa direttiva nel file di configurazione.
Ora è anche possibile creare l’account amministratore postfixadmin con un modulo come questo:

postfixadmin-createadmin

E questo è tutto, è stato correttamente installato e configurato Postfix Admin, è possibile visitare il vostro sito ed effettuare il login con il vostro account amministratore.

Configurazione di Postfix

Questa è la configurazione minima per far funzionare postfix e buona per il test. Vi permetterà di inviare e-mail non protette sulla porta 25. Nota, è meglio per garantire la connessione di posta elettronica proteggere almeno la password di cui si parla qui di seguito, ma prima accertarsi che la configurazione di base funzioni.

Aggiungere queste informazioni al file /etc/postfix/main.cf:

virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_mailbox_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
relay_domains = mysql:/etc/postfix/mysql_relay_domains.cf
smtpd_recipient_restrictions =
   permit_mynetworks,
   permit_sasl_authenticated,
   reject_non_fqdn_hostname,
   reject_non_fqdn_sender,
   reject_non_fqdn_recipient,
   reject_unauth_destination,
   reject_unauth_pipelining,
   reject_invalid_hostname
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous

Create i seguenti file con questo contenuto:

/etc/postfix/mysql_virtual_mailbox_domains.cf

hosts = 127.0.0.1
user = postfix
password = my_passwd _2   #replace with the password you set above
dbname = postfixadmin
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = 0 and active = 1

/etc/postfix/mysql_virtual_mailbox_maps.cf

hosts = 127.0.0.1
user = postfix
password = my_passwd_2  #replace with the password you set above
dbname = postfixadmin
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1

/etc/postfix/mysql_virtual_alias_maps.cf

hosts = 127.0.0.1
user = postfix
password = my_passwd _2  #replace with the password you set above
dbname = postfixadmin
query = SELECT goto FROM alias WHERE address='%s' AND active = 1

/etc/postfix/mysql_relay_domains.cf

hosts = 127.0.0.1
user = postfix
password = my_passwd _2  #replace with the password you set above
dbname = postfixadmin
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = 1

/etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
auxprop_plugin: rimap

Aggiornate /etc/default/saslauthd con:

START=yes
MECHANISMS="rimap"
#imap server address
MECH_OPTIONS="localhost"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

Aggiungete l’utente postfix al gruppo sasl:

sudo adduser postfix sasl

Fate ripartire postfix

/etc/init.d/postfix restart

Ora sarete in grado di creare un nuovo dominio e cassette postali in esso dal web con alcune semplici pagine:

postfixadmin-admin-create-domain

Admin – Create domain

postfixadmin-admin-create-mailbox

Admin – Create mailbox

postfixadmin-admin-create-mailbox

Admin – Create mailbox

postfixadmin-admin-domain-list

Admin – List domains

Popular Posts:

Flattr this!

  7 Responses to “Gestire facilmente Postfix con Postfixadmin”

  1. Hi, I don’t think that this is going to work.. You need to tell postfix to look domains/aliases which postfixadmin created in database, so you need to add virtual_alias_maps, virtual_mailbox_maps… in main.cf file. Correct me if I wrong..

    Cheers,

    Branko

  2. Appreciate the time you took to write this and all works well… with apache.

    Using lighttpd 1.4.31 however I ran into problems. Everything went well during the initial setup with postfixadmin but when I tried to login postfixadmin with the credentials I had created I got the 404 not found error.

    Changing the ‘postfix_admin_url = /postfixadmin didn’t help, it just refreshed the page asking for my user credentials again.

    Nothing major, I will just stick with apache but it would be great if I can get it working with lighttpd as it uses a significantly smaller resource footprint.

  3. Hi bro thanks for your post, I have a question, I´m running Postfix Admin 2.3.2 how can i upgrade with out overwrite all my data settings and db´s? thanks for your answer.

    Cheers.

  4. In your postfix settings you refer to the dbname “dbname = postfixadmin” but you’re dbsetup section talks about ‘postfix’ as the name

  5. how do i reset a certain user quota since their quota limit has been reached and they no longer receive mails

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*