vQadmin

0 commenti

vqadmin è un pannello di controllo su un'interfaccia web che consente di eseguire azioni che richiedono l'accesso a root — per esempio, aggiungere e cancellare domini.

Changelog

  • Jul 18, 2023
    patch updated
    - Italian translation file html/it updated, following the patch by Ali Erturk TURKER
    - the vqadmin source directory has been cleaned of unnececessary files
  • Feb 18, 2023
    Added Ali Erturk TURKER's patch to my combo. Original patch here

Installazione

La patch combinata che stiamo per applicare andrà a risolvere alcuni problemi importanti. Per maggiori informazioni si vedano le indicazioni riportate all'interno della patch stessa. Alcune delle patch applicate sono reperibili individualmente in questa cartella

cd /usr/local/src
wget http://notes.sagredo.eu/files/qmail/tar/vqadmin-2.3.7.tar.gz
wget http://notes.sagredo.eu/files/qmail/patches/vqadmin/roberto_vqadmin-2.3.7.patch
tar xzf vqadmin-2.3.7.tar.gz
cd vqadmin-2.3.7
chown -R root.root .
patch -p1 < ../roberto_vqadmin-2.3.7.patch

QMAILROOT=/var/www/qmail
./configure \
        --enable-qmaildir=/var/qmail \
        --enable-cgibindir=${QMAILROOT}/cgi-bin
make
make install-strip

vQadmin verrà installato su /var/www/qmail/cgi-bin/vqadmin. Eventualmente adattare la variabile QMAILROOT alla directory htdocs di apache.

Configurazione di Apache

vQadmin richiede una sua directory, protetta dall'accesso, con abiltazione all'esecuzione di CGI, per operare. Dentro il virtual host è necessario mettere

<Directory ${QMAILROOT}/cgi-bin/vqadmin">
    Require all denied
    Options ExecCGI
    AllowOverride AuthConfig
</Directory>

E siccome se si installa vqadmin in un posto diverso da /cgi-bin esso non funzionerà poichè è configurato così già nei sorgenti (hardcoded per capirci), devi definire /cgi-bin come uno ScriptAlias

ScriptAlias /cgi-bin/ ${QMAILROOT}/cgi-bin/

Questo è il mio virtual host, nel quale ho sia vQadmin che qmailadmin. Spiegherò l'alias /image tra un attimo.

Define QMAILROOT /var/www/qmail
Define LOGDIR    /var/log/apache2

<VirtualHost *:443>
#       Include /path/to/sslstuff.conf
        ServerName yourdomain.net
        DocumentRoot ${QMAILROOT}
        ScriptAlias /cgi-bin/ ${QMAILROOT}/cgi-bin/
        AddHandler cgi-script .cgi .pl
        ErrorLog  ${LOGDIR}/qmailadmin_error_log
        CustomLog ${LOGDIR}/qmailadmin_access_log common
        <Directory ${QMAILROOT}>
            AllowOverride None
            Require all granted
        </Directory>
        <Directory ${QMAILROOT}/cgi-bin>
            AllowOverride None
            Options ExecCGI
            Require all granted
        </Directory>

        # VQADMIN
        <Directory ${QMAILROOT}/cgi-bin/vqadmin>
            Require all denied
            Options ExecCGI
            AllowOverride AuthConfig
        </Directory>
        Alias /images/ ${QMAILROOT}/cgi-bin/vqadmin/images/
        <Directory ${QMAILROOT}/cgi-bin/vqadmin/images>
            Require all granted
        </Directory>
</VirtualHost>

Nota che qmailadmin e vqadmin sono sullo stesso host

Impostazione delle autorizzazioni di accesso

Nella directory dove abbiamo installato vQadmin c'è un file .htaccess. Diamoci un'occhiata:

# cd /var/www/qmail/cgi-bin/vqadmin

# ls -la
total 148
drwxr-xr-x 4 vpopmail vchkpw   4096 2010-07-26 21:53 ./
drwxr-xr-x 3 root     apache   4096 2010-07-26 21:43 ../
-rw-r--r-- 1 nobody   apache    112 2009-08-04 17:32 .htaccess
drwxr-xr-x 2 vpopmail vchkpw   4096 2009-08-17 11:26 html/
-rw-r--r-- 1 vpopmail vchkpw    865 2009-08-17 15:03 vqadmin.acl
-rwsr-sr-x 1 root     root   122592 2010-07-26 21:53 vqadmin.cgi*

# more .htaccess
AuthType Basic
AuthUserFile /usr/local/etc/httpdpwd/vqadmin.passwd
AuthName "Authentication required"
require valid-user

/usr/local/etc/httpdpwd/vqadmin.passwd è il file dove dobbiamo salvare l'account che avrà accesso a vQadmin via httpd. Creiamo un utente:

# mkdir -p /usr/local/etc/httpdpwd
# chown apache.apache /usr/local/etc/httpdpwd
# /usr/local/apache/bin/htpasswd -bc /usr/local/etc/httpdpwd/vqadmin.passwd admin password

# more /usr/local/etc/httpdpwd/vqadmin.passwd
admin:xxxxxxxxxxxxxx

Questo è tutto. Apriamo il browser e controlliamo https://yourdomain.net/cgi-bin/vqadmin/vqadmin.cgi

L'errore "Invalid language file"

La patch che abbiamo applicato dovrebbe aver già risolto questo problema. Ad ogni modo, in alcuni browser è possibile ottenere un messaggio di errore "Invalid language file", dovuto al fatto che l'impostazione della lingua del browser in questione non coincide con il nome del file di vqadmin. Per esempio, il nome del file della lingua italiana su vqadmin è it, ma l'impostazione del browser è it-it. Per ovviare all'inconveniente è sufficiente collocarsi nella cartella vqadmin/html e creare un link simbolico come segue:

cd /var/www/qmail/cgi-bin/vqadmin/html
ln -s it it-it

Aggiungi un commento