Re: qmail.org DEAD?

Erwin Hoffmann <[email protected]> Wed, 3 Jul 2019 22:06:38 +0200
Newsgroups gmane.mail.qmail.general
Message-ID <[email protected]>
Hi together,

I know, my docs are unreadable; but I share this with Exim and Postfix =
;-)


Let's talk about the bottom line:

a) qmail architecture:=20

Best ever. DJB explained that in "Some thoughts on security after ten =
years of qmail 1.0". We should be conservative here and shall stuck to =
those principles.

b) qmail coding:=20

Has been developed since then; look at ucspi-tcp and djbdns. Starting =
from Kai Peter's qlibs, I made an attempt to modernise those; including =
IPv6 and a DNS stub resolver while making it portable to almost any HW =
platform and OS. Felix von Leitner (fefe) did the same approach =
(https://www.fefe.de/djb/). qmail's DNS stub resolver is still pre =
ucspi-tcp and in particular bad.=20
qmail-1.03 does even not compile on recent OS without patching.=20

c) qmail scope:

qmail-1.03 is simple (E)SMTP; it lacks all modern features (Auth, TLS, =
SPF, DKIM, DANE, ....). It is simply not usable anymore as MTA today =
(apart from using it in a restricted environment).=20
Over the years, I tried to incorporate most to the lacking features; in =
particular Anti-Spam and Virus checking (Spamcontrol).=20

d) qmail installation:

Though it is easy, i receive complains about hard-coded UID; the queue =
is fixed to the local filesystem (inodes).
My slashpackage attempt for s/qmail may not be appropriate for system =
administrators expecting an 'apt install (s/)qmail'.=20


In short: We need a fresh start. Portability, scalability, performance, =
security, coverage, and easiness needed to be achieved (in arbitrary =
order).=20

Probably within the next months, I will release s/qmail based on my =
fehQlibs which are already now the base of the current ucspi-tcp6, =
ucspi-ssl and djbdnscurve6. The latter providing interfaces for =
OpenSSL/LibreSSL and NaCL/libsodium.=20

However, we need to match the expectations of the community and =
capabilities of the developers providing a mature product. This was =
certainly lacking the last two centuries.=20

Probably, these sentences were again unreadable, thus I rather shut my =
mouth :-)

Regards.
--eh.=20



> Am 03.07.2019 um 17:42 schrieb Amitai Schleier <[email protected]>:
>=20
> On 2 Jul 2019, at 12:13, Amitai Schleier wrote:
>=20
>> I suspect a more fruitful question is, how could we arrive at an =
active and agreed group of developers collaborating to ship sensible, =
trustworthy, seamless, and therefore sufficiently authoritative updates =
to qmail?
>=20
> A couple updates, both off-list but public:
>=20
> 1. Russ Nelson wasn't aware that qmail.org had gone nxdomain, and said =
he'd take a look.
>=20
> 2. Dave Sill reminded me that qmail's design integrity and extremely =
low bug count are what made it special, and a modernized version that =
loses these characteristics wouldn't be worth much. I agreed (as I =
imagine we all do), and went on to muse on my design choices and future =
plans. Sharing that here:
>=20
> -----
>=20
> qmail's design is why it met our needs so well back then, and it's why =
I've found it worthwhile and possible to keep adapting it to the =
present. For example, the popular SMTP AUTH patch always felt hacky to =
me, so I finally wrote acceptutils =
(https://schmonz.com/qmail/acceptutils) to cohere with Russ's design for =
POP3 authentication. By matching the existing design, old programs =
gained new user-controlled features. And then I noticed I could easily =
handle TLS in acceptutils too (thanks to UCSPI-TLS in tcpserver) and get =
rid of the qmail-smtpd half of the popular TLS patch.
>=20
> My plan to get rid of the other half is to break up qmail-remote, =
something like so:
>=20
> - qmail-remoteip will do DNS lookups and determine where to connect
> - qmail-remoteio is the SMTP client, reading stdin and writing stdout
> - qmail-newremote matches the qmail-remote interface and coordinates =
the subprograms, running qmail-remoteio via tcpclient
> - tcpclient can be ucspi-tcp6's tcpclient, or ucspi-ssl's sslclient
> - sslclient will grow an UCSPI-TLS interface
> - qmail-newremote will use UCSPI-TLS instead of the popular TLS patch
> - Admins can choose qmail-newremote by applying a tiny QMAILQUEUE-like =
patch (https://schmonz.com/qmail/remote) and setting QMAILREMOTE to =
qmail-newremote
>=20
> After that, my plan for outbound DKIM and SRS rounds into focus:
>=20
> - qmail-rfilter (https://schmonz.com/qmail/rfilter) will be a lot like =
qmail-qfilter, but wrapping qmail-remote (or $QMAILREMOTE)
> - DKIM signing is a Unix filter
> - SRS rewriting for forwarded messages is a Unix filter
> - Admins list them (or alternate implementations, or nothing) in =
control/remotefilters
>=20
> For inbound accept/reject/tag decisions, I really like =
http://qmail-spp.sourceforge.net, and have published rejectutils =
(https://schmonz.com/qmail/rejectutils) that runs in that environment. =
For SPF, I use https://www.caputo.com/foss/qmail-spp-spf/.
>=20
> Everything mentioned here is integrated into pkgsrc's qmail-run =
package, except for the stuff that doesn't exist yet :-)
>=20
> I've deliberately avoided making my own fork; I like the design =
pressure of needing to produce small patches that will apply cleanly to =
an arbitrarily patched netqmail. If the handful of us who are still =
actively developing qmail-derived works don't come up with a way to join =
our efforts, I'll keep working on mine as time permits. I'm just hoping =
we can figure out how to put our heads together and make informed, =
conservative, consensus-driven changes the way you netqmail folks did.
>=20

Dr. Erwin Hoffmann | FEHCom | http://www.fehcom.de | PGP Key-Id 7E4034BE