vQadmin

6 dicembre 2024 by Roberto Puzzanghera 0 commenti

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

Come si può vedere, VqAdmin ha una nuova versione con un nuovo aspetto mobile responsive, con tutte le mie vecchie patch incluse (compresa quella di ALI) e diverse correzioni e ripuliture del codice sorgente. Ho risolto tutti i warnings sia di autotools che di gcc e cambiato un paio di cose per poter rifare il tema html (guardare il changelog per maggiori dettagli). Come sempre i contributi nei commenti sono graditi.

PS: anche la parte apache è stata modificata e prima di fare l'aggiornamento è necessario guardare quali modifiche sono necessarie.

Have fun!

Changelog

  • Dec 06, 2024
    - added a patch to highlight users with restrictions and with admin privileges (PR #1, thanks Bai Borko)
    - added control files notlshosts_auto and tlsserverciphers
  • Oct 19, 2024 (version 2.4.2)
    - Minor fix to view_domain.html
    - Minor fix to the html of list all domains
    - aclocal fix
  • Jul 26, 2024 (version 2.4.1)
    - Fixed configure break. Trivial C test program breaks on gcc-14.1 due to missing headers (commit)
  • Mar 5, 2024
    - version 2.4.0 marked as stable
  • Jan 19, 2024
    - 2.4.0-beta.2
     * fixed a buffer overflow in domain.c (tx Bai Borko)
     * solved stringop-truncation warnings in domain.c and lang.c
  • Dec 21, 2023
    - 2.4.0-beta released
    - new skin
    - vqadmin moved to github
  • 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

VQ_VERSION=2.4.2
cd /usr/local/src
wget https://github.com/sagredo-dev/vqadmin/archive/refs/tags/v${VQ_VERSION}.tar.gz
tar xzf v${VQ_VERSION}.tar.gz
cd vqadmin-${VQ_VERSION}
chown -R root:root .

QMAILROOT=/var/www/qmail
./configure \
--enable-qmaildir=${QMAILROOT} \
--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>
Alias /assets/ ${QMAILROOT}/cgi-bin/vqadmin/assets/ 
<Directory ${QMAILROOT}/cgi-bin/vqadmin/assets> 
    Require all granted 
</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 /assets/ ${QMAILROOT}/cgi-bin/vqadmin/assets/ 
       <Directory ${QMAILROOT}/cgi-bin/vqadmin/assets> 
           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 /etc/httpd/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 /etc/httpd/httpdpwd
# chown apache:apache /etc/httpd/httpdpwd
# htpasswd -bc /etc/httpd/httpdpwd/vqadmin.passwd admin password

# more /etc/httpd/httpdpwd/vqadmin.passwd
admin:xxxxxxxxxxxxxx

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

Aggiungi un commento

Ultimi commenti
Articoli recenti

RSS feeds