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

Aggiornare qmail

1 dicembre 2024 by Roberto Puzzanghera 18 commenti

Per mia comodità ho spostato i sorgenti di qmail sources nel mio spazio github. Ciononostante, tutte le informazioni riguardanti qmail e programmi correlati continueranno a essere riportate in questo spazio web, e questo spazio rimarrà il luogo ove chiedere eventualmente supporto. Da ora in poi, annzichè rilasciare una patch combinata, rilascerò un pacchetto da scaricare da github, che sarà ovviamente il risultato della applicazione delle patch elencate sotto sul programma netqmail-1.06 originale.

Changelog

AVVISO: SE STAI AGGIORNANDO qmail A PARTIRE DA UNA VERSIONE PRECEDENTE ALLA VERSIONE 2024.11.11, TIENI PRESENTE CHE dk-filter E' STATO CANCELLATO, PERTANTO E' NECESSARIO RICONFIGURARE DKIM E IL FILE rc.

  • Dec 01, 2024 (More info here)
    - Added support for EAI (RFC 5336 SMTP Email Address Internationalization) (#13). Thanks to https://github.com/arnt/qmail-smtputf8/tree/smtputf8-tls. libidn2 package (libidn2-dev on debian) is a new dependence.
    - chkuser is now smtputf8 compliant. It accepts utf8 characters in sender and recipient addresses provided that the remote server advertises the SMTPUTF8 verb in MAIL FROM, otherwise it allows only ASCII characters plus additional chars from the CHKUSER_ALLOWED_CHARS set. (#15 #16)
    * dropped variables CHKUSER_ALLOW_SENDER_CHAR_xx CHKUSER_ALLOW_RCPT_CHAR_xx (replaced by CHKUSER_ALLOWED_CHARS)
    * dropped variables CHKUSER_ALLOW_SENDER_SRS and CHKUSER_ALLOW_RCPT_SRS, as we are always accepting '+' and '#' characters
    * added variables CHKUSER_INVALID_UTF8_CHARS and CHKUSER_ALLOWED_CHARS
  • Nov 10, 2024
    - Added support for EAI (RFC 5336 SMTP Email Address Internationalization) (commit). libidn2 is required. Thanks to https://github.com/arnt/qmail-smtputf8/tree/smtputf8-tls.
    - CHKUSER_SENDER_FORMAT and CHKUSER_RCPT_FORMAT have been commented out in chkuser_settings.h to get this feature working.
    Let's consider this release a beta. Testers are welcome concerning the new SMTPUTF8 feature.
  • Oct 26, 2024
    - qmail-remote.c patched to dinamically touch control/notlshosts/<fqdn> if control/notlshosts_auto contains any number greater than 0 in order to skip the TLS connection for remote servers with an obsolete TLS version. (tx Alexandre Fonceca) (commit)
    - defined CHKUSER_DISABLE_VARIABLE "RELAYCLIENT" in chkuser_settings.h
    - enabled CHKUSER_SENDER_NOCHECK_VARIABLE "RELAYCLIENT" in chkuser_settings.h
    - fixed several compilation breaks/warnings on later gcc compilers (tx Pablo Murillo)
    - invalid auth fix in qmail-smtpd.c's smtp_auth function (tx Alexandre Fonceca for the advice) (commit)
    - qmail path determined dinamically in conf-policy
    - added a patch to remove chkuser and the vpopmail dependency (patches dir)
  • Jun 8, 2024
    - conf-channels: default number of channels increased to 4 (was 2). Now qmail offers 2 additional channels with respect to the 2 offered by default (local and remote). More info here
    - maxrcpt: error code changed to 452 due to RFC 4.5.3.1 (was 553). If DISABLE_MAXRCPT is defined it skips the check, otherwise outgoing messages from mailing lists would be rejected. (commit)
  • May 16, 2024
    - DKIM: Make the dkimsign binary _not_ derive the "d=" domain value from the Return-Path header (tx mpdude)
    - Fixed -Wstringop-overflow on qmail-start.c line 128 (gcc-13.2) (commit)
    - Fixed -Wincompatible-pointer-types compilation warnings onsubstdio.h (commit)
    - Big Concurrency fix patch removed, as it is incompatible with the above change.
    - Create a trigger to decide if your qmail-smtpd instance should respect badmailfrom regex or not. This could be very handling if you decide to have very strict rules for your qmail-smtpd that you don´t want to be applied to qmail-submission. Usage: add export DISABLE_BADMAILFROM=1 to run file service (tx brdelphus)

Email Address Internationalization for qmail. MAV from chkuser modified accordingly

20 novembre 2024 by Roberto Puzzanghera 0 commenti

We now have support for EAI (RFC 5336 SMTP Email Address Internationalization), as I accomodated the patch of Arnt Gulbrandsen into my qmail distribution (Nov 03, 2024 and later versions). This means that from now on addresses containing UTF8 characters like mimì@domain.tld or even आर्न्ट@यूनिवर्सल.भारत will be accepted provided that the remote server advertises the SMTPUTF8 verb after the MAIL FROM. If the remote server doesn't advertise SMTPUTF8 capabilities, then the conversation goes as in the past with no allowed UTF8 characters in the email addresses, with a few exceptions for special chars like $%?*^~&/\£#+_-.=

I also had to modify the Mail Address Verification program shipped by chkuser because, if activated by defining the CHKUSER_SENDER_FORMAT and/or CHKUSER_RCPT_FORMAT variables, it accepted only ASCII characters plus a small set of additional UTF8 in user and domain names. And since I was there I simplyfied the code dropping a couple of functions and variables.

Installare e configurare vpopmail

19 ottobre 2024 by Roberto Puzzanghera 6 commenti

Vpopmail fornisce un modo semplice di gestire indirizzi di posta su domini virtuali e account email diversi da quelli su /etc/passwd.

Changelog

Changelog completo

  • Oct 19, 2024 (v. 5.6.3)
    - bug fixed: passwords with length > 8 were denied if sha-512 was disabled
  • Oct 14, 2024 (v. 5.6.3)
    - fixed a configure break where a trivial C test program exits on error with gcc-14.1 due to missing headers
    - vusaged/domain.c: fixed -Wimplicit-function-declaration compilation warning
    - vmysql.h: dropped the multicolumn PRIMARY KEY in valias table to allow multiple forwards for a given alias.
       In case one already has the valias table defined, this is the sql query for the upgrade:
       ALTER TABLE `vpopmail`.`valias` DROP PRIMARY KEY, ADD INDEX (`alias`, `domain`, `valias_type`) USING BTREE;
       ALTER TABLE `vpopmail`.`valias` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`);
  • Jun 7, 2024
    - the header files of libev are now installed in /usr/local/include/libev (was /usr/local/include) to avoid conflicts with libevent. vusaged configure command was adjusted accordingly.
  • Jan 11, 2024
    - vmysql.c: allow the insertion of a second valias row with the same alias/domain when vpopmail is configured with --enable-defaultdelivery and --enable-valias
    - bug fix in mysql.h: wrong definition of VALIAS_TABLE_LAYOUT as it was looking for DEFAULTDELIVERY definition instead of DEFAULT_DELIVERY. This bug was preventing the correct auto creation of the valias table in MtSQL
    - configure.ac: solved all autoconf warnings
  • Dec 11, 2023
    - patch merged with github/brunonymous
    - vpopmail-5.6.0 released (read the update notes)
  • Nov 11, 2023
    - defauldelivery patch: vmakedotqmail won't create users' .qmail if control/defaultdelivery already has vdelivermail.
  • Oct 23, 2023
    - defaultdelivery patch: .qmail file won't be created if control/defaultdelivery already has vdelivermail.

  • Sep 5, 2023
    - changed configuration option --enable-logging=e (was p). Now failed attempts will be logged with no password shown.
  • Aug 27, 2023
    - new combined patch. More info here
    * The logic of the defaultdelivery patch/feature has been revised. if configured with --enable-defauldelivery vpopmail will save control/defauldelivery in the user's .qmail and vdelivermail LDA in the domain's .qmail-default file. This will achieve multiple benefit: you have qmail forwards and sieve together and valias available. The valias table scheme was changed as well.

Aggiornare alla versione 5.6.x

Quando si passa dalla versione 5.4.33 alla versione 5.6.x, se si hanno gli account su SQL, è necessario aumentare le dimensioni della colonna vpopmail.pw_passwd del database, poichè il meccanismo di criptaggio delle password è ora basato su SHA512, che è più lungo del vecchio MD5; si può comunque scegliere di disabilitare le SHA512 pwd con --disable-sha512-passwords al momento della configurazione. In addition, poichè le dimensioni minime delle password sono ora pari a 12 per default, anche se si può scegliere un altro valore (--enable-min-pwd-length=10) o disabilitare il limite. La colonna vpopmail.pw_passwd dovrebbe essere ora impostata a una dimensione di 128; ecco come fare:

ALTER TABLE `vpopmail` CHANGE `pw_passwd` `pw_passwd` CHAR(128) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;

Dettagli della patch installata

Questo l'insieme delle mie patch che sono incluse in vpopmail a partire dalla versione 5.6.0:

  • la patch sql-aliasdomains, che fa in modo che vpopmail salvi gli aliasdomains su mysql. Questo consente al driver sql di dovecot di fare l'autenticazione non solo con i domini reali ma anche con gli alias, a condizione che si modifichi anche la query all'interno del driver, come verrà spiegato dopo. Ciò è ora importante, dato che dovecot ha eliminato il driver per vpopmail.
  • la patch defaultdelivery, copia il delivery agent preferito, salvato in QMAILDIR/control/defauldelivery, nel file .qmail della mailbox, e il delivery agent di vpopmail nel file .qmail-default del dominio.
    Per informazioni precise leggere qui. Dare anche una occhiata al file doc/README.defaultdelivery nel codice sorgente.
  • dovecot-sql-procedures patch. Se si vuole usare il driver sql di dovecot con la configurazione "una tabella per un dominio) (--disable-many-domains) è necessario personalizzare in modo pesante le query sql. Con questo aggiustamento vpopmail installerà in modo autonomo la procedura e le funzioni sql nel database quando si crea un nuovo dominio. La procedura può essere chiamata da dovecot per fare l'autenticazione.
    Il codice sql supporta gli aliasdomains e i mysql limits, e sarà caricato dal file ~/vpopmail/etc/disable-many-domains_procedures.sql che si può ovviamente personalizzare.
    E' necessario configurare vpopmail con --enable-mysql-bin=PATH poichè dobbiamo installare la procedura chiamando mysql con un comando shell.
  • vusaged configure patch
    Almeno su Debian 11 sembra che vusaged si rifiuti di terminare la configurazione (comando configure) a causa di un mancato link alle librerie mysql (configure: error: No vauth_getpw in libvpopmail). Ovviamente ho spulciato lo script e il link sembra impostato correttamente, e ciò è al momento molto strano. Dopo un po' di prove, ho notato che facendo in modo che il configure superi il problema senza bloccarsi con un messaggio di errore, la compilazione susseguente vada a buon fine linkando corrrettamente libmysqlclient e terminando con successo la compilazione.
    NB: è necessario dare un autoreconf -f -i nella directory vusaged prima della configurazione, dal momento che il file configure.ac è stato modificato.
  • s/qmail cdb patch. Questa patch, che consente a vpopmail di localizzare correttamente il file assign.cdb di qmail per gli utenti s/qmail, nell'attuale pacchetto perchè rimpiazzata da una analoga. Gli utenti di s/qmail dovrebbero configurare vpopmail con l'opzione --enable-qmail-cdb-name=assign.cdb
  • recipient check patch. Da usare con s/qmail di Erwin Hoffmann al fine di validare il destinatario della mail. Questa patch non è importante nella presente installazione. Si veda il file  doc/README.vrcptcheck per maggiori informazioni.
  • vuserinfo-D_newline, una piccola patch che migliora la leggibilità quando si utilizza il comando vuserinfo -D, introducendo una nuova linea
  • la patch gcc-10-compat, con il la quale vpopmail è compatibile con gcc-10.
  • Una patch che risolve i seguenti problemi (Ali Erturk TURKER):
    - vdelivermail.c controlla i permessi di spamassassin anzichè di maildrop.
    - vopen_smtp_relay() restituisce il valore corretto, di modo che open_smtp_relay() possa rilevare e riportare gli errori di connessione al database (vmysql.c, voracle.pc, vpgsql.c)
    - vdel_limits() esegue un core-dump se la connessione al database non è disponibile. (vmysql.c, voracle.pc)

daemontools

14 ottobre 2024 by Roberto Puzzanghera 0 commenti

daemontools è una collezione di strumenti per gestire servizi UNIX. Monitora i servizi di qmail e salva i messaggi di errore in uno o più logs.

Changelog

  • Oct 14, 2024 (version 0.78.3)
    - all package/ scripts now run the bash shell
    - package/run script will recognize if we are in an lxc container to skip inittab configuration
    - package/run.rclocal will find both /etc/rc.local /etc/rc.d/rc.local
    - daemontools-0.78.2 directory renamed to daemontools
  • Oct 9, 2024
    - added -ltr to conf-ld to restore compatibility with systems with glibc prior to v. 2.17 like RHEL6/CentOS6, where the librt.so library is not linked
  • Oct 10, 2024
    - version 0.78.1: added package/compile which was missing again! (tx Bai Borko)
  • Sep 6, 2024
    - fixed a .gitignore issue which was preventing the package/compile script upload (thanks Ivelin Topalov)
  • Jul 29, 2024 (version 0.78)
    - multilog prints a readable datetime if used with "d" flag, it prints timestamps if used in the usual way with the "t" flag (80f2133)
    - fixed several compilation warnings and/or breaks on gcc-14.1
  • Dec 9, 2023
    -moved my patched daemontools to github and called 0.77 the new version
    -clear service moved to qmail/supervise/clear

netqmail-1.06 - basic setup

10 settembre 2024 by Roberto Puzzanghera 30 commenti

Changelog

  • 10 settembre 2024: i sorgenti di netqmail sono ora compatibili con le nuove versioni del compilatore gcc.

qmailadmin

7 settembre 2024 by 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.

Come si può vedere, per praticità ho spostato i rogenti di qmailadmin nel mio spazio github. Ciononostante, tutte le informazioni su qmailadmin continueranno a essere pubblicate qui, e questa pagina rimane il posto ove chiedere eventulmente supporto.

Questa versione di qmailadmin mette insieme la versione originale 1.2.16 di Inter7 con le seguenti patch (vecchia patch combinata del 28 agosto 2023):

  • qmailadmin-skin, una patch che ho avuto il tempo di creare durante il lockdown, che dota il pannello di controllo di una nuova interfaccia grafica con tecnologia Mobile Responsive. Ho modificato tutti i file che stanno nella cartella html e molti file .c, dal momento che molto codice html stava proprio all'interno dei file sorgenti. Ho anche aggiunto un foglio di stile nella cartella images e un paio di immagini png con il logo qmail. Non dovrebbe essere complicato aggiornare o modificare il template da ora in avanti.
  • Una patch che chiama la libreria cracklib al fine di controllare la robustezza della password scelta, giusto per evitare la creazione di account insicuri del tipo "test 123456".
  • Un'altra patch (suggeritami da Tony, che ringrazio), di cui non conosco l'autore, che consente di loggare i tentativi falliti di autenticazione. In questo modo sarà possibile bannare gli IP sospetti per mezzo di fail2ban. E' richiest la creazione del log file /var/log/qma-auth.log, che deve assegnare i privilegi di scrittura ad apache.
  • Una patch che restituisce la compatibilità con ezmlm-idx-7 (autore sconosciuto), per la quale ringrazio J.D. Trolinger che me l'ha segnalata.
  • Un fix all'account catchall di Luca Franceschini.
  • Una patch ad autorespond.c che corregge il modo erroneo con cui i file .qmail vengono creati.
  • Supporto a qmail-autoresponder (grazie a Nathanaël Semhoun)

autorespond

18 luglio 2024 by Roberto Puzzanghera 0 commenti

autorespond è usato per le risposte automatiche in caso di assenza (vacation messages). E' richiesto da qmailadmin.

Ultimi commenti
Articoli recenti

RSS feeds