qmailadmin

qmailAdmin è un software libero che fornisce un'interfaccia web per gestire sistemi qmail con domini virtuali basati su vpopmail. Fornisce amministrazione per la creazione/cancellazione di utenti, alias, forward, mailing list e autoesponder.

Prima di installare, potresti valutare di patchare qmailadmin con una mia piccola patch che sopperisce alla mancanza di un quanlunque meccanismo di controllo della complessità della passwopd, giusto per evitare la creazione di account insicuri del tipo "test 123456". Siccome le mie skills nella programmazione C sono basse, ho preferito fare il check con javascript attraverso la validazione del form. Certo, non si può escludere che l'amministratore del dominio disabiliti javascript, ma si spera che non abbiano interesse a far ciò. Per il momento solo delle password con almeno un carattere maiuscolo, almeno un carattere numerico, almeno un carattere speciale e lunghe almeno otto caratteri sono accettate. Naturalmente non è difficile persosnalizzare le cose modificando il file pw_strenght_chk.js nella cartella "html".

Inoltre applicheremo un'altra patch che viene fuori dal contributo di Tony, che si ringrazia, che consente di loggare i tentativi di accesso falliti, di modo che gli IP sospetti siano poi dati in pasto a fail2ban. E' necessario creare il log file /var/log/qma-auth.log ed assere i privilegi di scrittura ad apache.

La patch successiva è la ezmlm-idx 7 compatibility, che ripristina la compatibilità con ezmlm-idx-7 (grazie a J.D. Trolinger per il suggerimento).

Infine applicheremo un bug fix al catchall account  (grazie a Luca Franceschini)

Installazione

cd /usr/local/src
wget http://notes.sagredo.eu/sites/notes.sagredo.eu/files/qmail/tar/qmailadmin-1.2.16.tar.gz
wget http://notes.sagredo.eu/sites/notes.sagredo.eu/files/qmail/patches/qmailadmin/qmailadmin-1.2.16-pwd-strenght.patch-2015.04.25
wget http://notes.sagredo.eu/sites/notes.sagredo.eu/files/qmail/patches/qmailadmin/qmailadmin-1.2.16-log.patch
wget http://notes.sagredo.eu/sites/notes.sagredo.eu/files/qmail/patches/qmailadmin/mailinglist.c.ezmlm7.patch
wget http://notes.sagredo.eu/sites/notes.sagredo.eu/files/qmail/patches/qmailadmin/qmailadmin-catchall.patch

touch /var/log/qma-auth.log
chgrp apache /var/log/qma-auth.log
chmod g+w /var/log/qma-auth.log

tar xzf qmailadmin-1.2.16.tar.gz
cd qmailadmin-1.2.16
patch -p1 < ../qmailadmin-1.2.16-pwd-strenght.patch-2015.04.25
patch < ../qmailadmin-1.2.16-log.patch
patch < ../mailinglist.c.ezmlm7.patch
patch < ../qmailadmin-catchall.patch
chown -R root.root .

./configure \
  --enable-htmldir=/usr/local/www/htdocs/qmail \
  --enable-cgibindir=/usr/local/www/htdocs/qmail/cgi-bin \
  --enable-cgipath=/cgi-bin/qmailadmin \
  --enable-imagedir=/usr/local/www/htdocs/qmail/qmailadmin/qmailadmin_img \
  --enable-imageurl=/qmailadmin_img \
  --enable-htmllibdir=/usr/local/www/htdocs/qmail/qmailadmin \
  --enable-qmaildir=/var/qmail \
  --enable-domain-autofill \
  --enable-vpopuser=vpopmail \
  --enable-vpopgroup=vchkpw \
  --enable-autoresponder-path=/usr/local/bin \
  --enable-ezmlmdir=/usr/local/bin/ezmlm \
  --enable-modify-quota \
  --disable-ezmlm-mysql \
  --disable-trivial-password

make
make install-strip

Ciò installa qmailadmin in /usr/local/www/htdocs/qmail

Bisogna tener presente del fatto che la grafica middleft1.png presente in home page, distribuita insieme a qmailadmin, ha dei problemi di copyright (leggere qui per ulteriori informazioni. Si veda anche il commento di Marc al proposito).

Apache virtual host

<VirtualHost *:443>
        ServerName yourdomain.net
        DocumentRoot /usr/local/www/htdocs/qmail
        ScriptAlias /cgi-bin/ "/usr/local/www/htdocs/qmail/cgi-bin/"
        ErrorLog  "/usr/local/www/logs/qmailadmin_error.log"
        CustomLog "/usr/local/www/logs/qmailadmin_access.log" common
        <Directory "/usr/local/www/htdocs/qmail">
            AllowOverride None
            Order allow,deny
            Allow from all
        </Directory>
        <Directory "/usr/local/www/htdocs/qmail/cgi-bin">
            AllowOverride None
            Options ExecCGI
            Order allow,deny
            Allow from all
        </Directory>

        Alias /qmailadmin_img/ "/usr/local/www/htdocs/qmail/qmailadmin/qmailadmin_img/"
        <Directory "/usr/local/www/htdocs/qmail/qmailadmin/qmailadmin_img">
            Order allow,deny
            Allow from all
        </Directory>
</VirtualHost>

Navigare ora su https://yourdomain.net/cgi-bin/qmailadmin e loggarsi come postmaster:

qmailadmin

Commenti

Ciao Roberto,

complimenti per la magnifica guida! :)

ti volevo segnalare un bel problema per quanto rigarda Qmailadmin

Nel tentativo di creare un forward, ricevo una pagina biancae l'operazione fallisce.

I log riportano questo:

*** glibc detected *** /usr/local/www/htdocs/qmail/cgi-bin/qmailadmin: double free or corruption (!prev): 0x000000000064f0a0 ***, referer: https://qmailadmin.mydomain.it/cgi-bin/qmailadmin/com/adddotqmail?user=postmaster&dom=adgs.eu&time=1347028682

ti è mai capitato?

Grazie,

Donato

Ciao Donato, no, non mi e' mai capitato, ma proverei a ricompilare (non e' che hai fatto un downgrade delle glibc?)

Ciao Roberto, Purtroppo no, non ho ho effettuato il downgrade. L'installazione é pulita. Il problema si verifica su slack 13.37 sia 32 che 64 bit... Cercando in giro Pare che la cosa potrebbe riguardare php o glibc ma nessuno sembra esserne venuto a capo. Il log che ho postato non ti dice nulla? Grazie, Donato.

Il log mi dice poco, ma essendoci di mezzo glibc proverei comunque a ricompilare qmailadmin. php non c'entra nulla con qmailadmin

Forse ho risolto ricompilando come dicevi tu... ti terrò aggiornato.

Grazie :)