Event-driven servers
This project features a couple of event-driven servers,
a modular authentication system and other stuff that may or may
not prove useful to you.
The software should compile out of the box for recent versions
of MacOS, Linux, FreeBSD, OpenBSD, NetBSD, DragonFly BSD, Solaris and,
in a somewhat degraded mode, Windows (via Cygwin). Please note that not all of those compiles are recently tested.
Documentation
- spawnd
[pdf]
is a broker with load-balancing functionality that listens for incoming connections on IPv4, IPv6 or UNIX sockets and forwards them (using ancillary messages over UNIX domain sockets) to the spawned server processes. spawnd functionality is integrated into the daemons you'll find below, and it's an essential part of the latter.
- ftpd
[pdf]
is a highly configurable event-driven FTP daemon with TLS/SSL and
IPv6 support, and much more.
- mavis
[pdf]
and mavisd
[pdf]
implement the modular authentication sub-system used by ftpd, tac_plus-ng and tac_plus (the latter is now deprecated)
- tac_plus
[pdf]
is an event-driven TACACS+ daemon which utilizes the MAVIS backend for
authentication and authorization (and may get its user data from various backends, including PAM, LDAP, RADIUS and ActiveDirectory (for -NG: click here).
Supported features include IPv6, single-connection and much more.
Don't use this daemon for new installations, it's deprecated in favour of tac_plus-ng.
- tac_plus-ng
[pdf]
is a rewritten variant of the former. And, to put it plainly, it's the future. Also, it comes with the tactrace.pl utility which greatly simplifies configuration checking.
Plus, it supports
Non-standard SSH Public Key Authentication and other experimental features (e.g. TLS).
- tcprelay
[pdf]
is an event-driven TCP connection forwarder for IPv4 and IPv6.
Public GIT
I've moved the project to GitHub.
That GIT includes source plus documentation in PDF, HTML and plain text format.
A tarball is available from GitHub. The historic snapshot archive is gone for good.
Feedback
If you've trouble using the software, please open an issue via GitHub Issues, but please take care that you're on the latest GIT version.
Sending a mail via the Event-Driven Servers Google group might be an option too, but the mailing system there seems to have reliability issues. That group is moderated, first-time posters will need my approval. Don't send your mail more than once (I have absolutely no trouble with approving re-sends, so just don't do it). Your mail will show up, most certainly, sooner or later.
This is a non-commercial project. There is no private support. At all. Theres no paid-for support, either. I'm happy to support you in public, if I have spare time for that. Support requests or inquries sent to any of my private email addresses will be silently discarded by a mail filter. Use the public channels, please.
Cheers,
Marc