Installazione di Dovecot e sieve su qmail + vpopmail

10 febbraio 2023 Roberto Puzzanghera 7 commenti

 

Changelog

  • Feb 10, 2023
    - added a patch to restore the old vpopmail-auth driver (tx Ali Erturk TURKER)
  • Nov 2, 2022
    -added mailbox_list_index = yes and mail_always_cache_fields = date.save to 10-mail.conf (tx JonTDW, more info here)
  • Aug 9, 2022
    -improved the sql stuff in case of --disable-many-domains (tx kengheng)
  • Apr 22, 2022
    -added Solr support (--with-solr)
  • Apr 17, 2022
    -auth-sql.conf.ext: changed the userdb lookup for LDA from static to sql, as the home dir was not retrieved correctly if positioned in a subfolder (i.e. domains/0/domainname).
  • June 20, 2021
    -15-mailboxes.conf: added Junk.TeachSpam and Junk.TeachNotSpam mailboxes to store messages for the learning/report system (more info here)
  • March 17, 2021
    - 90-quota.conf: quota definition adjusted in this way quota = maildir:: as the GETQUOTA command was not returning the quota (thanks a.key)
  • March 2, 2021
    - added domains limits support to password_query (you have to compile vpopmail --enable-mysql-limits)
  • January 29, 2021
    - auth-sql.conf.ext now uses the userdb's prefetch driver in order to perform one single query when doing the auth
    - dovecot-sql.conf.ext has been modified to allow authentication both with real and alias domains, provided that you patched vpopmail accordingly. More info in this page.
    - the iterate_query in the sql driver now extracts the "user" field (was "username") as required by the docs.

Info

Dovecot è un mail server IMAP e POP3 open-source per sistemi Linux/UNIX, scritto con la sicurezza in mente come prima cosa. Dovecot è una scelta eccellente sia per piccole che per grandi installazioni. E' veloce, semplice da installare, non richiede particolari operazioni di amministrazione e usa molta poca memoria.

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.x

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.