Possible future directions
Alternatives to sslserver
Opportunistic TLS encryption in acceptutils depends on UCSPI tools that offer the
UCSPI-TLS interface.
When I was creating acceptutils, the only ready-to-run implementation was
ucspi-ssl’s
sslserver
.
Since then,
s6-networking
has added s6-ucspitlsd
, which works equally well with acceptutils.
I’ve also
requested UCSPI-TLS extensions be added to ucspi-tools.
BSD blocklist integration
authup
could communicate successful and failed logins to
blocklist,
so sysadmins can set policy for their packet filter to block certain
connections automatically.
Submission filters
qmail-qfilter-gpgsign
could be a filter that connects to the current
user’s gpg-agent
to sign a message. I might add it to
control/ofmipfilters
.
Dual-purpose port 25
acceptutils could learn to cooperate with incoming SMTP on the same
port. For instance, authup
could perhaps be started with --
and
additional arguments with which to replace itself when sent an
unsupported SMTP request. Maybe something roughly like this:
#!/bin/sh
exec sslserver -n 0 25 \
env UCSPITLS="" \
authup smtp \
checkpassword \
checknotroot \
fixsmtpio \
ofmipd \
-- \
setuidgid qmaild \
fixsmtpio \
qmail-smtpd
Other SMTP changes
acceptutils could learn new ways to modify or extend qmail’s SMTP
implementation. As a configurable proxy with an active maintainer,
fixsmtpio
is a sensible place to put new behaviors. Send me useful
code that’s off by default, on when configured, and covered by automated
tests, and I’ll gladly merge it and issue a new release. Some ideas:
- Implement
SIZE
using Will Harris’s RFC1870 ESMTP SIZE patch. - Implement
VRFY
usingqmail-rcptcheck-realrcptto
from rejectutils. - Allow new verbs to be implemented as external commands.
- Log the server’s decisions, in the manner of Kyle Wheeler’s logging patch.