Patch di qmail

31 gennaio 2023 Roberto Puzzanghera 18 commenti

Changelog

  • Jan 31,2023
    -bug fix in qmail-smtpd.c. 4096 bit RSA key cannot be open (tx Ali Erturk TURKER)
  • Jan 1, 2023
    -bug fix in dk-filter. It was calling a non existent function (tx Andreas).
    More info here
  • Dic 17, 2022
    -chkuser receipt check won't be disabled for RELAYCLIENT
    * CHKUSER_DISABLE_VARIABLE commented out from chkuser_settings.h
    diff here
  • Oct 2, 2022
    -dkim patch updated to v. 1.30 and new qmail combined patch released
    * bug fix: it was returning an error in case of domains with no key.
  • Sep 28, 2022
    -dkim patch updated to v. 1.29 (tx M. Bhangui and Computerism for troubleshooting)
    * Custom selector via new control file /var/qmail/control/dkimkeys. More info here
  • May 22, 2022
    "qmail-smtpd pid, qp log" patch (http://iain.cx/qmail/patches.html#smtpd_pidqp) removed, as its log informations are already contained in the qlogreceived line. (diff)
    -improved a couple of read_failed error messages
  • Feb 26, 2022
    -added REJECTNULLSENDERS environment variable (diff)
  • Feb 10, 2022
    -fixed a TLS Renegotiation DoS vulnerability. Disabled all renegotiation in TLSv1.2 and earlier (only openssl-1.1). (diff here)
  • Jan 17, 2022
    -now qmail-smtpd logs rejects when client tries to auth when auth is not allowed, or it's not allowed without TLS (a closed connection with no log at all appeared before).
    -added qmail-spp.o to the TARGET file so that it will be purged with "make clean".
    diff here
  • Dec 19, 2021
    -qmail-spp patch added

Indicizzare le e-mail con Solr FTS Engine

5 gennaio 2023 Roberto Puzzanghera 0 commenti

Solr è un server di indicizzazione basato su Apache Lucene. Dovecot communica con esso attraverso delle query HTTP/XML. Il server di indicizzazione consente di fare ricerche di testo in modo veloce nelle mail, compreso il corpo dei messaggi.

Aggiornamento alla versione 9.1.0

  • Maggiori informazioni qui

Prima di ogni cosa controllare che la propria versione di java sia almeno la 11.

Scaricare Solr:

wget https://www.apache.org/dyn/closer.lua/solr/solr/9.1.0/solr-9.1.0.tgz?action=download -O solr-9.1.0.tgz

Arrestare quindi il server Solr e lanciare l'aggiornamento con le opzioni -f (aggiornamento) e -n (non lanciare do not start the server when finished) options:

tar xzf solr-9.1.0.tgz solr-9.1.0/bin/install_solr_service.sh --strip-components=2
sudo bash ./install_solr_service.sh solr-9.1.0.tgz -f -n

Gli utenti Slackware invece dovranno procedere diversamente:

wget https://notes.sagredo.eu/files/qmail/solr/install_solr_slackware.sh
chmod +x install_solr_slackware.sh
./install_solr_slackware.sh solr-9.1.0.tgz -f -n

Scaricare e installare il nuovo schema e il file di configurazione per Dovecot

cd /var/solr/data/dovecot/conf
rm -f schema.xml managed-schema solrconfig.xml
wget https://notes.sagredo.eu/files/qmail/solr/schema-9.1.0.xml     -O schema.xml
wget https://notes.sagredo.eu/files/qmail/solr/solrconfig-9.1.0.xml -O solrconfig.xml
chown solr:solr solrconfig.xml schema.xml

Il nuovo file di configurazione sostituisce LRUCache con CaffeineCache e cambia la locazione delle librerie .jar (diff).

Configure your /etc/default/solr.in.sh file, as many options are changed. Then restart the Solr server.

Finally upgrade the indexes (edit the downloaded script to insert your Dovecot password)

wget https://notes.sagredo.eu/files/qmail/solr/solr_rescan_index.sh
chmod +x solr_rescan_index.sh
chown root:root solr_rescan_index.sh
chmod o-wrx solr_rescan_index.sh

./solr_rescan_index.sh
Stopping Dovecot 
. 
<?xml version="1.0" encoding="UTF-8"?> 
<response> 

<lst name="responseHeader"> 
 <int name="status">0</int> 
 <int name="QTime">20</int> 
</lst> 
</response> 
Starting Dovecot.

Se lo script non deve restituire errori (status=0). Se invece si ottengono degli errori è necessario ricontrollare le autorizzazioni di sicurezza e le credenziali dell'utente dovecot di Solr.

Plugins per Roundcube

1 gennaio 2023 Roberto Puzzanghera 7 commenti

I plugin che ho abilitato sono (al momento):

  • Password, per cambiare la password utente
  • ManageSieve, che scrive gli script per filtrare le email in arrivo (rigetto, spostamento in una cartella specifica, etc.). Notare che per usare questo è necessario aver abilitato  Dovecot managesieve.
  • SpamAssassin User Prefs SQL (sauserprefs), 
  • che consente all'utente di caricare su database SQL le prefenze su come Spamassassin deve filtrare la sua posta, creando ad esempio una black list.
  • Markasjunk, un plugin che consente di aggiungere con un click nel bottone "Marca come spam" l'indirizzo e-mail del mittente alla propria blacklist, o viceversa, o lanciare un comando come sa_learn.
  • Context Menu. Aggiunge un menu di dialogo alla lista dei messaggi, attivabile con il tasto destro, che comprende tra le altre cose la lista delle cartelle, la rubrica, il marcamento come letto/non letto, cancella, rispondi e inoltra. 
  • NewMail_notifier. Può notificare le nuove mail in tre modi: focalizzando la finestra del browser e cambiandone l'icona, riproducendo un suono, oppure mostrando la notifica sul desktop (via webkitNotifications).
  • Persistent login, che fornisce la funzionalità "Mantienimi loggato" per Roundcube.
  • ZipDownload, che aggiunge una opzione per scaricare tutti gli allegati a un messaggio in un singolo file zip, quando un messaggio ha allegati multipli.
  • Enigma, che fornisce il supporto per la visualizzazione e l'invio di messaggi firmati e/o criptati in formato PGP (RFC 2440) e PGP/MIME (RFC 3156).
  • swipe, che aggiunge le azioni di trascinamento destra/sinistra/giù alla lista dei messaggi nei dispositivi touch (tablet/cellulari).

Altri plugin che ho usato in passato per i quali la documentazione potrebbe non essere più valida

  • rcguard.Questo plugin registra i tentativi di accesso falliti e presenta una verifica reCAPTCHA dopo un certo numero di accessi falliti.
  • autologon. Esegue il login da una pagina esterna (CMS)
  • logout_redirect. Versione modificata per redirigere alla home page dopo il logout
  • carddav. CardDav client. Può sincronizzare la rubrica con un server CardDav server come owncloud o SoGO.
  • quickrules (progetto abbandonato e soppiantato dal più ampio Context Menu). Aggiunge un tasto alla lista dei messaggi per consentire la rapida creazione di regole attraverso il plugin ManageSieve. Le informazioni della mail selezionata sono usate per pre-compilare il form per la creazione della nuova regola.

ClamAV

1 gennaio 2023 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.0.0

La version 1.0.0 di ClamAV richiede che Rust sia installato almeno alla versione 1.61. Se la propria distribuzione è indietro rispetto a questa versione è necessario fare l'aggiornamento manualmente, disinstallando prima il pacchetto Rust già presente nel sistema. L'installazione è molto semplice:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Ciò installerà i binari nella cartella /root/.cargo/bin. L'installazione cercherà di aggiungere questa cartella al proprio  PATH. Se qualcosa è andato storto, aggiungere manualmente al proprio profile:

export PATH:$PATH:/root/.cargo/bin

Se un giorno si volesse disinstallare Rust, poichè il pacchetto sarà presente nella propria distribuzione, si può fare in questo modo:

rustup self uninstall

Una volta sistemato Rust, è necessario seguire la procedura di installazione spiegata sotto per sovrascrivere la versione precedente. Alla fine bisognerà rinominare i file di configurazione ed editarli come spiegato più sotto.

cd /usr/local/etc
mv clamd.conf clamd.conf.105
mv clamd.conf.sample clamd.conf
mv freshclam.conf freshclam.conf.105
mv freshclam.conf.sample freshclam.conf

E' ora possibile eliminare il file per il logrotate, dato che il programma è ora in grado di fare la rotazione dei log in modo autonomo, posto che si abbia

LogRotate yes

nel file di configurazione.