Internet Service Provider con Debian: differenze tra le versioni

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>