Re: xinetd feature: daemons that listen on multiple ports
Matthias Andree <[email protected]> Wed, 06 Aug 2003 23:57:34 +0200
| Newsgroups | gmane.network.xinetd |
|---|---|
| Message-ID | <[email protected]> |
Steve G <[email protected]> writes: > Writing new requirements has also been educational. I've > found several areas that xinetd's behavior is different > that other inetd's. Then there's IPsec and SASL. I don't > like the idea of squeezing that into xinetd as it stands. Interesting _new_ points are SSL and particularly TLS (the latter is dependent on the protocol, SMTP vs. POP3 vs. IMAP vs. ...) > IPsec and SASL and other things should be designed in from > the ground up. Each module should have its own unit test > that exercises it. Each module can be swung in and out at > compile time. People that want a lean inetd can compile > just the pieces they need. Vendors can compile the whole > thing. While modular approaches are very smooth to test and are aesthetic and have some advantages if the new inetd is considered by itself, this view is way too narrow when evaluating the system at large, inetd + daemons. The problem shows when it comes to documenting daemons, section installation instructions. If you're going to give inetd sample lines, even in the simplest setup you'll have to take four cases into account: your inetd is stupid (no libwrap), your inetd runs with libwrap by default (FreeBSD); tcpd was compiled without PROCESS_OPTIONS, tcpd was compiled with PROCESS_OPTIONS. Now some distros (Red Hat) install xinetd rather than inetd by default, so you add more stuff, and differentiate libwrap again. Makes eight cases already. The more modules the user or a vendor can remove, the more cases "if $INETD was compiled with $OPTION, use this, if $OPTION was left out, use that line" -- someone documenting his ftpd/nntpd/whateverd has to take all this into account. If you need to give simple yet water proof installation instructions, there's nothing short of recommending that the user installs daemontools and ipsvd or ucspi-tcp (see http://cr.yp.to/ and http://smarden.org/pape/). IF you are designing a new inetd, then please do make sure that there are absolutely no switches that disable important features. It must be possible that a _SINGLE_ example of my nntpd or ftpd installation instructions covers $NEW_INETD configuration once and for good -- and do integrate socket_wrappers with -DPROCESS_OPTIONS. (I'd also recommend looking at ipsvd, it has some quite nifty access control features.) -- Matthias Andree