4 069
contributi
Riga 970: | Riga 970: | ||
<pre> | <pre> | ||
# chmod o= /etc/amavis/conf.d/50-user | # chmod o= /etc/amavis/conf.d/50-user | ||
</pre> | |||
=== Amministrare gli utenti virtuali === | |||
====ISPwebAdmin (web interface): introduzione ==== | |||
E' disponibile un'interfaccia web per amministrare i domini virtuali, gli utenti virtuali e gli alias. L'interfaccia si chiama ISPWebAdmin ed è disponibile per il download all'indirizzo: [[http://workaround.org/sites/default/files/ispwebadmin-1.0.2.tar_.gz Download]] | |||
==== Installazione ==== | |||
Per poter utilizzare ISPWebAdmin è necessario aggiungere alcune tabelle SQL al database per poter archiviare gli username e le password degli amministratori abilitati alla gestione degli account. Apriamo quindi la shell di MySQL: | |||
<pre> | |||
# mysql -U root -p | |||
</pre> | |||
e digitiamo la query: | |||
<pre> | |||
CREATE TABLE IF NOT EXISTS `admins` ( | |||
`id` int(11) NOT NULL auto_increment, | |||
`username` varchar(40) NOT NULL, | |||
`pwhash` varchar(32) NOT NULL, | |||
PRIMARY KEY (`id`) | |||
) ENGINE=MyISAM DEFAULT CHARSET=utf8; | |||
</pre> | |||
Quindi creiamo un utente amministratore che possa effettuare il login nell'interfaccia web: | |||
<pre> | |||
INSERT INTO mailserver.admins (username,pwhash) VALUES ('john', MD5('doe')); | |||
</pre> | |||
Installiamo e configuriamo alcuni requisiti per l'interfaccia: | |||
<pre> | |||
# aptitude install python-virtualenv | |||
# apt-get build-dep python-mysqldb | |||
# su -s /bin/bash vmail | |||
cd /var/vmail | |||
mkdir ispwebadmin | |||
cd ispwebadmin | |||
virtualenv . | |||
. bin/activate | |||
</pre> | |||
A questo punto siamo pronti per effettuare l'installazione dell'interfaccia: | |||
<pre> | |||
easy_install ispwebadmin*.tar.gz | |||
paster make-config ispwebadmin run.ini | |||
</pre> | |||
Il secondo comando creerà un file <code>run.ini</code> che conterrà le impostazioni specifiche per la nostra installazione. Per modificare queste impostazioni (che saranno trattate nel paragrafo successivo) possiamo aprire il file con il nostro editor preferito: | |||
<pre> | |||
nano run.ini | |||
</pre> | |||
Ora siamo pronti per avviare la nostra web application: | |||
<pre> | |||
paster serve run.ini | |||
</pre> | |||
Su un server, però, non è conveniente avere dei servizi da avviare manualmente. Vediamo quindi come creare un servizio che funzioni in background e che sia avviato automaticamente all'avvio del server. | |||
<br/> | |||
Per creare il nuovo servizio utilizzeremo il sistema <code>runit</code> di Debian Lenny: | |||
<pre> | |||
# aptitude install runit | |||
# mkdir /etc/sv/ispwebadmin | |||
# cd /etc/sv/ispwebadmin | |||
</pre> | |||
Creiamo ora un file <code>/etc/sv/ispwebadmin/run</code> | |||
<pre> | |||
# nano /etc/sv/ispwebadmin/run | |||
</pre> | |||
contenente: | |||
<pre> | |||
#!/bin/sh | |||
exec 2>&1 | |||
echo 'ISPwebAdmin starting.' | |||
cd /var/vmail/ispwebadmin | |||
sudo -u vmail PYTHON_EGG_CACHE=/var/vmail/ispwebadmin/.python-eggs bin/paster serve run.ini | |||
</pre> | |||
Rendiamo eseguibile il file: | |||
<pre> | |||
# chmod u+x /etc/sv/ispwebadmin/run | |||
</pre> | |||
e creiamo il symlink corretto: | |||
<pre> | |||
# ln -s /etc/sv/ispwebadmin /etc/service/ | |||
</pre> | |||
Da questo momento il servizio potrà essere utilizzato nel modo seguente: | |||
* '''Stato''': <code>sv status /etc/service/ispwebadmin</code> | |||
* '''Arresto''': <code>sv stop /etc/service/ispwebadmin</code> | |||
* '''Avvio''': <code>sv start /etc/service/ispwebadmin</code> | |||
Se vogliamo avere un log di questo servizio possiamo creare un file | |||
<pre> | |||
# nano /etc/sv/ispwebadmin/log/run | |||
</pre> | |||
contenente: | |||
<pre> | |||
#!/bin/sh -e | |||
LOG=/var/log/runit-ispwebadmin | |||
test -d "$LOG" || mkdir -p -m2750 "$LOG" | |||
exec svlogd -tt "$LOG" | |||
</pre> | |||
Il file di log si troverà in <code>/var/log/runit-ispwebadmin</code>. | |||
==== Configurazione del file <code>run.ini</code> ==== | |||
Il file creato con il comando <code>paster make-config run.ini</code> contiene alcune impostazioni che possono essere personalizzate per adattarle alla configurazione del nostro mail server. Prima di avviare la web interface è consigliato aprire il file e controllare queste impostazioni: | |||
* ''''<code>[server:main] -> host</code>''': l'indirizzo IP dove il web server è in ascolto. E' possibile impostare "0.0.0.0" per indicare tutte le interfacce di rete | |||
* '''<code>[server:main] -> port</code>''': la porta TCP dove il web server è in ascolto | |||
* '''<code>[app:main] -> ispwebadmin.maildir_location</code>''': il percorso dove sono archiviate le mail boxes degli utenti. Nel corso di questo tutorial è stato utilizzato <code>/var/vmail</code> | |||
* '''<code>[app:main] -> ispwebadmin.postmaster</code>''': l'indirizzo email utilizzato come abuse@ e postmaster@ per i nuovi domini creati. E' richiesto un account del genere per ogni dominio creato. Questa impostazione è opzionale. | |||
* '''<code>[app:main] -> sqlalchemy.url</code>''': la stringa che definisce come effettuare la connessione al database. Ad esempio: | |||
<pre> | |||
mysql://root:seoroct3@mailserver.example.com/mailserver?charset=utf8 | |||
</pre> | </pre> |