Patch di qmail

22 maggio 2022 Roberto Puzzanghera 18 commenti

Changelog

  • 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

21 aprile 2022 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.

Installazione

Solr è un servlet java che richiede jdk v. 8 o successivo. E' necessario accertarsi che l'eseguibile java sia nel path:

PATH=$PATH:/usr/lib64/java/bin/

Scaricare i binari di Solr e installare

cd /usr/local/src
wget https://www.apache.org/dyn/closer.lua/lucene/solr/8.11.1/solr-8.11.1.tgz?action=download -O solr-8.11.1.tgz

Estrarre l'installer dall'archivio e lanciarlo. L'installer funzioznaerà per la maggior parte delle distribuzioni Linux basate esu systemd.

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

Il server verrà avviato da systemd all'avvio della macchina.

LXC scripts for unprivileged containers

12 aprile 2022 Roberto Puzzanghera 0 commenti

Handling LXC unprivileged containers as root is not possible with the default LXC programs, because they must be called by the user who owns them and sometime is also necessary to specify the container's configuration file. For example, running lxc-ls as root shows all the unprivileged containers as stopped even when they are running, while lxc-start aborts the containers' startup sequence due to id mapping issues.

Since I prefer to run/stop/create/destroy/etc. my containers just typing my commands as root, not after the usual su - owner each time, I wrote my own wrapper scripts collection for the main LXC commands, just to simplify my tasks. In addition, all the containers will be created in the same directory, say /usr/local/lxc.

I use them both for privileged (owned by root itself) and unprivileged containers. In the latter case the owner of the container is determined dinamically.

These scripts allow an administrator to use LXC running his applications in separate containers, each one (or group of them) runned by a different user and id map.

I wrote them for my Slackware linux distro, but I think that they remain valid for any other Linux flavor.

If you are a Slackware user and you are looking for unprivileged containers documentation, you should take a look to Chris Willings' guide, which was my starting point on this topic. Also the Stéphane Graber's article is a suitable reading at the beginning.

qmailadmin

9 aprile 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.

Patch combinata

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

Changelog

  • Apr 09, 2022
    --enable-imageurl=/files is now --enable-imageurl=/qmailadmin/files (no need to have an alias on apache config). Added --disable-catchall, which is bad for spam. Tx Gabriel Torres
  • 2022.04.01
    -qmailadmin now logs to stderr when qma-auth.log file can't be opened in write mode. It was returning a white screen
    without any error message nor on screen, nor on stderr.
  • 2021.03.12
    -patch cleanup
  • 2020.09.01
    -mod_user.html: cleaned the html as it was printing unneeded strings
  • 2020.08.10
    -mod_user.html: added the "value" attribute to the name/gecos input tag (tx Pablo Murillo)

  • 2020.05.22
    - mod_user.html: removed the "required" attribute on password field, to allow modification with no password change

Ecco come si presenta il nuovo pannello di controllo: