11 settembre 2022 Roberto Puzzanghera 5 commenti
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.
qmail
. Non dovrebbe essere complicato aggiornare o modificare il template da ora in avanti.cracklib
al fine di controllare la robustezza della password scelta, giusto per evitare la creazione di account insicuri del tipo "test 123456".fail2ban
. E' richiest la creazione del log file /var/log/qma-auth.log
, che deve assegnare i privilegi di scrittura ad apache
..qmail
vengono creati.cracklib
Cracklib
è una libreria di funzioni che fornisce il controllo del grado di complessità di una password per mezzo di una lista di parole note (dizionario da installare). cracklib
confronta la password scelta cone le parole del dizionario e se esa è simile a una di queste restituisce un responso negativo.
Prima di installare qmailadmin
dobbiamo installare cracklib
e poi applicare la nostra patch. La patch migliora quella resa disponibile tempo fa da Inter7, che però agiva solo nella pagina di notifica dell'utente. Io ho fatto in modo qmailadmin
facesse una chiamata a cracklib
anche alla creazione dell'utente e nella pagina di cambio password..
E' molto probabile che esista un pacchetto cracklib
fornito dalla propria distribuzione, magari con all'interno il dizionario già pronto, in tal caso si salti al prossimo paragrafo.
Una nota per gli utemti Debian
: il pacchetto cracklib
ha libpam-cracklib
come dipendenza. Ora,libpam-cracklib
andrebbe a sostituire libpam-modules
, che è una libreria di sistema che non andrebbe assolutamente toccata senza una buona ragione e solo sapendo cosa si sta facendo. Pertanto suggerisco di installare cracklib
dai sorgenti su /usr/local come spiegato sotto. Ho testato questa soluzione alcune volte e ho visto che non nuocea libpam
.
Dunque la procedura per installare cracklib
dai sorgenti è la solita:
wget https://ftp.osuosl.org/pub/blfs/conglomeration/cracklib/cracklib-2.9.8.tar.bz2 tar xjf cracklib-2.9.8.tar.bz2 cd cracklib-2.9.8 ./configure --with-default-dict=/usr/share/cracklib/pw_dict make make install ldconfig
# Creare la cartella che ospiterà il dizionario (la stessa usata sopra nel comando configure) mkdir /usr/share/cracklib cd /usr/share/cracklib # scaricare il dizionario (words list) wget https://ftp.osuosl.org/pub/blfs/conglomeration/cracklib/cracklib-words-2.9.8.bz2 bunzip2 cracklib-words-2.9.8.bz2 # formattare e compilare il dizionario cracklib-format cracklib-words-2.9.8 | cracklib-packer pw_dict
Controlliamo che il dizionario sia stato creato a partire dal file cracklibs-words
:
ls cracklib-words-2.9.8 pw_dict.hwm pw_dict.pwd pw_dict.pwi
Il database è costituito da quei tre file compilati pw_dict.*
. E' sempre possibile arricchire il database aggiungendo righe con parole nuove e poi utilizzando i comandi cracklib-format/
cracklib-packer
come mostrato sopra.Prendiamo nota della posizione del database perchè la dovremo passare al configure
di qmailadmin
.
cracklib
Facciamo ora qualche test per vedere anche come funziona cracklib
:
# cracklib-check roberto roberto: it is based on a dictionary word 123456 123456: it is too simplistic/systematic roberto928 roberto928: it is based on a dictionary word robe99 robe99: it is based on a dictionary word 99robe 99robe: it is based on a dictionary word robe@99 robe@99: it is based on a dictionary word Qwerty123 Qwerty123: it is based on a dictionary word Qwerty!123 Qwerty!123: it is based on a dictionary word Rob&02f Rob&02f: OK Rob&rto Rob&rto: OK ^C
Per
abilitare cracklib
compilare qmailadmin
come segue
--enable-cracklib=/usr/share/cracklib/pw_dict
Quando si installa la patch di cracklib
da sola è necessario fornire i comandi aclocal/automake/autoconf
per ricostruire il file configure
. La mia patch combinata ha già un file configure
ricostruito. Se si hanno problemi a compilare, perchè la propria versione di aclocal è datata, far precedere alla configurazione i comandi
aclocal automake --install-missing autoconf
Notare che nei comandi qui sotto è necessario fornire un autoreconf
, dal momento che la patch va a modificare il configure.in
originario.
cd /usr/local/src wget https://notes.sagredo.eu/files/qmail/tar/qmailadmin-1.2.16.tar.gz wget https://notes.sagredo.eu/files/qmail/patches/qmailadmin/roberto-qmailadmin/roberto-qmailadmin-1.2.16.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 < ../roberto-qmailadmin-1.2.16.patch chown -R root.root . autoreconf -f -i QMAILROOT=/var/www/qmail ./configure \ --enable-htmldir=${QMAILROOT} \ --enable-cgibindir=${QMAILROOT}/cgi-bin \ --enable-cgipath=/cgi-bin/qmailadmin \ --enable-imagedir=${QMAILROOT}/qmailadmin/files \ --enable-imageurl=/qmailadmin/files \ --enable-htmllibdir=${QMAILROOT}/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 \ --disable-catchall \ --enable-cracklib=/usr/share/cracklib/pw_dict
Prima di compilare è possibile salvare le immagini del logo qmail
nella cartella "images":
wget -O images/favicon-16x16.png https://notes.sagredo.eu/files/qmail/patches/qmailadmin/skin/img/favicon-16x16.png wget -O images/favicon-32x32.png https://notes.sagredo.eu/files/qmail/patches/qmailadmin/skin/img/favicon-32x32.png wget -O images/logo.png https://notes.sagredo.eu/files/qmail/patches/qmailadmin/skin/img/logo.png wget -O images/logo_big.png https://notes.sagredo.eu/files/qmail/patches/qmailadmin/skin/img/logo_big.png
Ora compilare e installare al solito modo:
make
make install-strip
Abbiamo installato qmailadmin
in /var/www/qmail
Define QMAILROOT /var/www/qmail Define LOGDIR /var/log/apache2 <VirtualHost *:443> ServerName mydomain.tld DocumentRoot ${QMAILROOT} ScriptAlias /cgi-bin/ ${QMAILROOT}/cgi-bin/ ErrorLog ${LOGDIR}/qmailadmin_error.log CustomLog ${LOGDIR}/qmailadmin_access.log common <Directory ${QMAILROOT}> Require all granted AllowOverride None </Directory> <Directory ${QMAILROOT}/cgi-bin> AllowOverride None Options ExecCGI Require all granted </Directory> </VirtualHost>
Navigare ora su https://mydomain.tld/cgi-bin/qmailadmin
e loggarsi come postmaster.
RBL and Bordermailer
20 marzo 2023 09:31
RBL and Bordermailer
20 marzo 2023 09:13
RBL and Bordermailer
18 marzo 2023 15:52
Bug in dknewkey
18 marzo 2023 11:35
What is qq_internal_bug_?
18 marzo 2023 11:28
What is qq_internal_bug_?
18 marzo 2023 11:08
What is qq_internal_bug_?
18 marzo 2023 08:48
What is qq_internal_bug_?
18 marzo 2023 08:08
What is qq_internal_bug_?
18 marzo 2023 07:43
What is qq_internal_bug_?
18 marzo 2023 04:37
Tags
apache clamav dkim dovecot ezmlm fail2ban ftp guide hacks lamp letsencrypt linux linux-vserver lxc mariadb mediawiki mozilla mysql openboard owncloud patches php proftpd qmail qmail to postfix qmail-spp qmailadmin rbl roundcube rsync sieve simscan slackware solr spamassassin spf ssh ssl tcprules tex ucspi-tcp vpopmail vqadmin
Commenti
errore glibc qmailadmin
Donato 13 settembre 2012 01:59
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:
ti č mai capitato?
Grazie,
Donato
Rispondi | Permalink
Ciao Donato, no, non mi e'
roberto puzzanghera Donato 14 settembre 2012 21:50
Ciao Donato, no, non mi e' mai capitato, ma proverei a ricompilare (non e' che hai fatto un downgrade delle glibc?)
Rispondi | Permalink
Ciao Roberto,Purtroppo no,
Donato roberto puzzanghera 16 settembre 2012 00:04
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.
Rispondi | Permalink
Il log mi dice poco, ma
roberto puzzanghera Donato 16 settembre 2012 21:00
Il log mi dice poco, ma essendoci di mezzo glibc proverei comunque a ricompilare qmailadmin. php non c'entra nulla con qmailadmin
Rispondi | Permalink
Forse ho risolto ricompilando
Donato roberto puzzanghera 17 settembre 2012 14:36
Forse ho risolto ricompilando come dicevi tu... ti terrņ aggiornato.
Grazie :)
Rispondi | Permalink