Patch di qmail

16 maggio 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.

  • 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)
  • Feb 12, 2024
    - DKIM patch upgraded to v. 1.48
    * fixed minor bug using filterargs for local deliveries (commit)
    - Fixed several compilation warnings (commit)
    - Fixed incompatible redeclaration of library function 'log2' in qmail-send.c qsutil.c as showed by notqmail friends here
    - removed FILES, shar target from Makefile
  • Feb 6, 2024
    -DKIM patch upgraded to v. 1.47
    * fixed a bug which was preventing filterargs' wildcards to work properly on sender domain
  • Jan 20, 2024 (diff here)
    liberal-lf: bare LF no longer allowed by default due to smuggling vulnerability CVE-2023-51765. Bare LF can be allowed by defining ALLOW_BARELF in tcprules or in run file.
  • Jan 15, 2024
    TLS patch by F. Vermeulen upgraded to version 20231230 (more info at https://inoa.net/qmail-tls/ tx Greg Bell for the patch)
    - support to openssl 3.0.11
  • Jan 11, 2024
    - dkim patch upgraded to version 1.46
    * dk-filter.sh has been dropped. If signing at qmail-remote level, before upgrading, you have to review the configuration as explained below.
    - The variables USE_FROM, USE_SENDER and DKIMDOMAIN have been dropped
    - when signing at qmail-remote level qmail-dkim now has to be called directly by spawn-filter in the rc file. man spawn-filter for more info
    - In case of bounces the signature will be automatically based on the from: field. This will solve issues of DMARC reject by google in case of sieve/vacation bounces.
    - In case of ordinary bounces (mailbox not found, for instance) the bounce domain will be taken from control/bouncehost and, if doesn't exist, from control/me
  • Dec 9, 2023
    -sources moved to github

Impostare il firewall con fail2ban

1 maggio 2024 by Roberto Puzzanghera 0 commenti

Fail2ban ispeziona i log file (ad es. /var/log/apache/error_log) e banna IPs che mostrano un comportamento sospetto -- troppe password sbagliate, tentativi di  exploits, etc. Generalmente Fail2Ban è quindi usato per aggiornare le regole del  firewall al fine di rigettare gli indirizzi IP durante un intervallo di tempo settabile, benchè ogni altra azione (come l'invio di una mail di notifica) può anche altresì essere impostata. Tra le altre cose Fail2Ban mette a disposizione dei filtri per diversi servizi come apache, courier, ssh, etc.

Mostrerò brevemente come installare e configurare fail2ban per rigettare le connessioni di IP sospetti, specialmente quelli riguardanti la patch qmail-dnsrbl. Ciò evita di essere bannati noi stessi da spamhaus, che è gratuito solo fino a 100.000 query al giorno.

fail2ban richiede che si abbia un firewall come nftablesiptables attivo.

Changelog

  • May 1, 2024
    - fail2ban upgraded to v. 1.1.0 (changelog)
    * This version drops the python2 support
    * new fail2ban-client stats command returns statistic in form of table (jail, backend, found and banned counts)
  • Jul 15, 2023
    - l'installazione e la configurazione è stata rivista per funzionare su Debian, dove python2 non è presente (grazie a Gabriel Torres)
  • Nov 20, 2022
    -switched all actions to nftables, as it has now replaced iptables and fail2ban has support for it. Just replace "iptables" with "nftables" in your jails.
  • Nov 18, 2022
    - fail2ban upgraded to v. 1.0.2
    - jails now have a different action's declaration (iptables[type=multiport] instead of iptables-multiport[])
    - added a short note on how to configure the server with a network bridge

    ClamAV

    20 aprile 2024 by Roberto Puzzanghera 2 commenti

    Clam AntiVirus is an open source (GPL) anti-virus toolkit for UNIX, designed especially for e-mail scanning on mail gateways.

    Aggiornare alla versione 1.3.0

    La version 1.3.0 di ClamAV (release notes) installa anche le librerie libclamav_rust, libclammspack, libclamunrar_iface, and libclamunrar static libraries required by libclamav. Non dobbiamo quindi più preoccuparci di questi prerequisiti.

    qmailadmin

    27 marzo 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.

    Roundcube webmail

    14 febbraio 2024 by Roberto Puzzanghera 4 commenti

    12 febbraio 2024: vulnerabilità nella webmail Roundcube (severità media). E' sufficiente aggiornare Roundcube all'ultima versione.


    Roundcube è una webmail avanzata con una bella interfaccia grafica.

    Changelog

    • Sep 28, 2022
      RC upgraded to v. 1.6.0
      -new $config['imap_host'] variable
      -all my SMTP config options were stripped from my configuration file and I had to restore them
    • Gen 3, 2021
      disabled the SMTP authentication when sending messages via RC. SMTP port changed to 25.

    vQadmin

    19 gennaio 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

    • 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
      - 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

    Installare e configurare vpopmail

    11 gennaio 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.

    Aggiornamento dell'11 dicembre 2023

    Thanks to TLK Games guys at https://github.com/brunonymous/vpopmail we have a new vpopmail-5.6.0 version. They did a huge job merging together the old vpopmail-5.4.33 version with many patches that can be found around the net, my combo included. More importantly, they polished and corrected the code and added several features that you can see in the changelog.

    From now on, I'll no longer release a new patch but I'll pull a request there, where you can get the released package.

    For any request concerning my patches, this page remains the place where to find more information and ask for support. If you want to contribute to the code of my patches, you can send it here in a comment or post a PR in my github space (we don't want to bother our french friends with issues concerning my patch, ok?).

    Changelog

    Changelog completo

    • 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

    Quando si passa alla versione 5.6, 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)

    Codice sorgente spostato su github

    11 dicembre 2023 by Roberto Puzzanghera 0 commenti

    Per mia comodità di lavoro, ho spostato il codice sorgente di daemontools, qmail, vpopmail, qmailadmin e simscan su github. Da ora in avanti, invece dui rilasciare nuove patch di questi programmi pubblicherò un pacchetto sulla piattaforma github, che sarà linkato da qui. Ciononostante questo spazio web rimarrà il posto ove reperire le informazioni ed eventualmente chiedere supporto. Noterete che gli "issues" nel mio spazio github sono disabilitati, poichè vorrei centralizzare qui le discussioni.

    vpopmail sarà scaricato da https://github.com/brunonymous/vpopmail. Questi ragazzi francesi hanno fatto un enorme lavoro rilasciando una nuova versione di vpopmail che include moltissime patche, tra cui le mie. Cosa più importante, hanno ripulito e corretto il codice, e aggiunto diverse funzionalità che potete vedere nel changelog.

    GitHub logo

Ultimi commenti
Articoli recenti

RSS feeds