Vogliamo avere Postfix su uno stesso host che risponde a due indirizzi IP diversi (IP alias) con due configurazioni diverse.
Per inizializzare una configurazione multi istanza di Postfix si lancia il comando
postmulti -e init
vengono aggiunge alcune righe a /etc/postfix/main.cf
:
multi_instance_wrapper = ${command_directory}/postmulti -p -- multi_instance_enable = yes
Quindi si crea la seconda istanza, che deve avere un nome del tipo postfix-
. Nel nostro caso la seconda istanza sarà specializzata come server MX primario, quindi scegliamo postfix-mx
. La seconda istanza deve appartenere anche ad un gruppo, per questo scegliamo il nome mta
:
postmulti -I postfix-mx -G mta -e create
Vengono create le directory /etc/postfix-mx/
, /var/spool/postfix-mx/
, /var/lib/postfix-mx/
. Il file /etc/postfix-mx/main.cf
ha alcuni parametri essenziali per gestire la seconda istanza, ma altri vanno configurati a mano. In particolare abbiamo messo:
data_directory = /var/lib/postfix-mx queue_directory = /var/spool/postfix-mx multi_instance_group = mta multi_instance_name = postfix-mx inet_interfaces = 10.0.1.91 #master_service_disable = inet master_service_disable =
Per legare la seconda istanza all'indirizzo IP alias di deve modificare /etc/postfix-mx/master.cf
:
#smtp inet n - - - - smtpd 10.0.1.91:25 inet n - - - - smtpd
Per abilitare la seconda istanza e verificare che lo sia davvero (deve esserci una y nella terza colonna):
postmulti -i postfix-mx -e enable postmulti -l -a - - y /etc/postfix postfix-mx mta y /etc/postfix-mx
Per editare il file main.cf
di una istanza secondaria si possono usare in abbinata i programmi helper postmulti
e postconf
. In questo esempio di imposta l'opzione master_service_disable
al valore blank:
postmulti -i postfix-mx -x postconf -e "master_service_disable ="
Lo script start/stop di Debian gestisce le multi istanze, quindi basta dare:
/etc/init.d/postfix restart
Alcuni alias di postfix sono usati per particolari modalità, ad esempio l'alias mailq è tradizionalmente utilizzato per vedere i messaggi in coda. In una configurazione multi istanza è necessario indicare la configurazione alternativa specificando la directory di configurazione. Ad esempio se la directory di configurazione alternativa è /etc/postfix-mx/:
mailq -C /etc/postfix-mx
Discorso analogo per il comando postcat (usato ad esempio per vedere il contenuto di un messaggio in coda) oppure per postsuper (usato ad esempio per eliminare un messaggio dalla coda). Notare l'opzione -c minuscola:
postcat -c /etc/postfix-mx -q 6702568035C
postsuper -c /etc/postfix-mx -d 6702568035C