xref: /dflybsd-src/contrib/tcp_wrappers/CHANGES (revision 86d7f5d305c6adaa56ff4582ece9859d73106103)
186d7f5d3SJohn MarinoRequest: after building the programs, please run the `tcpdchk' wrapper
286d7f5d3SJohn Marinoconfiguration checker. See the `tcpdchk.8' manual page (`nroff -man'
386d7f5d3SJohn Marinoformat) for instructions. `tcpdchk' automatically identifies the most
486d7f5d3SJohn Marinocommon configuration problems, and will save you and me a lot of time.
586d7f5d3SJohn Marino
686d7f5d3SJohn MarinoChanges per release 7.6 (Mar 1997)
786d7f5d3SJohn Marino==================================
886d7f5d3SJohn Marino
986d7f5d3SJohn Marino- Improved the anti source-routing protection. The code in version
1086d7f5d3SJohn Marino7.5 was not as strong as it could be, because I tried to be compatible
1186d7f5d3SJohn Marinowith Linux. That was a mistake. Sorry for the inconvenience.
1286d7f5d3SJohn Marino
1386d7f5d3SJohn Marino- The program no longer terminates case of a source-routed connection,
1486d7f5d3SJohn Marinomaking the IP-spoofing code more usable for long-running daemons.
1586d7f5d3SJohn Marino
1686d7f5d3SJohn Marino- When syslogging DNS hostname problems, always stop after a limited
1786d7f5d3SJohn Marinonumber of characters.
1886d7f5d3SJohn Marino
1986d7f5d3SJohn MarinoChanges per release 7.5 (Feb 1997)
2086d7f5d3SJohn Marino==================================
2186d7f5d3SJohn Marino
2286d7f5d3SJohn Marino- Optionally refuse source-routed TCP connections requests altogether.
2386d7f5d3SJohn MarinoCredits to Niels Provos of Universitaet Hamburg.  File: fix_options.c.
2486d7f5d3SJohn Marino
2586d7f5d3SJohn Marino- Support for IRIX 6 (Lael Tucker).
2686d7f5d3SJohn Marino
2786d7f5d3SJohn Marino- Support for Amdahl UTS 2.1.5 (Richard E. Richmond).
2886d7f5d3SJohn Marino
2986d7f5d3SJohn Marino- Support for SINIX 5.42 (Klaus Nielsen).
3086d7f5d3SJohn Marino
3186d7f5d3SJohn Marino- SCO 5 now has vsyslog() (Bill Golden).
3286d7f5d3SJohn Marino
3386d7f5d3SJohn Marino- Hints and tips for dealing with IRIX inetd (Niko Makila, Aaron
3486d7f5d3SJohn MarinoM Lee).
3586d7f5d3SJohn Marino
3686d7f5d3SJohn Marino- Support for BSD/OS (Paul Borman).
3786d7f5d3SJohn Marino
3886d7f5d3SJohn Marino- Support for Tandem (Emad Qawas).
3986d7f5d3SJohn Marino
4086d7f5d3SJohn Marino- Support for ISC (Frederick B. Cohen).
4186d7f5d3SJohn Marino
4286d7f5d3SJohn Marino- Workaround for UNICOS - it would choke on a setjmp() expression
4386d7f5d3SJohn Marino(Bruce Kelly). File: hosts_access.c, tcpdchk.c.
4486d7f5d3SJohn Marino
4586d7f5d3SJohn Marino- Increased the level of buffer overflow paranoia when printing
4686d7f5d3SJohn Marinounwanted IP options.  File: fix_options.c.
4786d7f5d3SJohn Marino
4886d7f5d3SJohn MarinoChanges per release 7.4 (Mar 1996)
4986d7f5d3SJohn Marino==================================
5086d7f5d3SJohn Marino
5186d7f5d3SJohn Marino- IRIX 5.3 (and possibly, earlier releases, too) library routines call
5286d7f5d3SJohn Marinothe non-reentrant strtok() routine. The result is that hosts may slip
5386d7f5d3SJohn Marinothrough allow/deny filters. Workaround is to not rely on the vendor's
5486d7f5d3SJohn Marinostrtok() routine (#ifdef LIBC_CALLS_STRTOK). Credits to Th. Eifert
5586d7f5d3SJohn Marino(Aachen University) for spotting this one. This fix supersedes the
5686d7f5d3SJohn Marinoearlier workaround for a similar problem in FreeBSD 2.0.
5786d7f5d3SJohn Marino
5886d7f5d3SJohn MarinoChanges per release 7.3 (Feb 1996)
5986d7f5d3SJohn Marino==================================
6086d7f5d3SJohn Marino
6186d7f5d3SJohn Marino- More tests added to tcpdchk and tcpdmatch: make sure that the
6286d7f5d3SJohn MarinoREAL_DAEMON_DIR actually is a directory and not a regular file;
6386d7f5d3SJohn Marinodetect if tcpd recursively calls itself.
6486d7f5d3SJohn Marino
6586d7f5d3SJohn Marino- Edwin Kremer found an amusing fencepost error in the xgets()
6686d7f5d3SJohn Marinoroutine: lines longer than BUFLEN characters would be garbled.
6786d7f5d3SJohn Marino
6886d7f5d3SJohn Marino- The access control routines now refuse to execute "dangerous" actions
6986d7f5d3SJohn Marinosuch as `twist' when they are called from within a resident process.
7086d7f5d3SJohn MarinoThis prevents you from shooting yourself into the foot with critical
7186d7f5d3SJohn Marinosystems programs such as, e.g., portmap or rpcbind.
7286d7f5d3SJohn Marino
7386d7f5d3SJohn Marino- Support for Unicos 8.x (Bruce Kelly). The program now closes the
7486d7f5d3SJohn Marinosyslog client socket before running the real daemon: Cray UNICOS
7586d7f5d3SJohn Marinorefuses to checkpoint processes with open network ports.
7686d7f5d3SJohn Marino
7786d7f5d3SJohn Marino- Support for MachTen UNIX (Albert M.C Tam).
7886d7f5d3SJohn Marino
7986d7f5d3SJohn Marino- Support for Interactive UNIX R3.2 V4.0 (Bobby D. Wright).
8086d7f5d3SJohn Marino
8186d7f5d3SJohn Marino- Support for SCO 3.2v5.0.0 OpenServer 5 (bob@odt.handy.com)
8286d7f5d3SJohn Marino
8386d7f5d3SJohn Marino- Support for Unixware 1.x and Unixware 2.x.  The old Unixware Makefile
8486d7f5d3SJohn Marinorule was broken. Sorry about that.
8586d7f5d3SJohn Marino
8686d7f5d3SJohn Marino- Some FreeBSD 2.0 libc routines call strtok() and severely mess up the
8786d7f5d3SJohn Marinoallow/deny rule processing. This is very bad. Workaround:  call our own
8886d7f5d3SJohn Marinostrtok() clone (#ifdef USE_STRSEP).
8986d7f5d3SJohn Marino
9086d7f5d3SJohn Marino- The programs now log a warning when they detect that a non-existent
9186d7f5d3SJohn Marinobanner directory is specified.
9286d7f5d3SJohn Marino
9386d7f5d3SJohn Marino- The hosts_access.3 manual page used obsolete names for the RQ_*
9486d7f5d3SJohn Marinoconstants.
9586d7f5d3SJohn Marino
9686d7f5d3SJohn MarinoChanges per release 7.2 (Jan 1995)
9786d7f5d3SJohn Marino==================================
9886d7f5d3SJohn Marino
9986d7f5d3SJohn Marino- Added a note to the README and manpages on using the IDENT service to
10086d7f5d3SJohn Marinodetect sequence number spoofing and other host impersonation attacks.
10186d7f5d3SJohn Marino
10286d7f5d3SJohn Marino- Portability: ConvexOS puts RPC version numbers before the daemon path
10386d7f5d3SJohn Marinoname (Jukka Ukkonen).
10486d7f5d3SJohn Marino
10586d7f5d3SJohn Marino- Portability: the AIX compiler disliked the strchr() declaration
10686d7f5d3SJohn Marinoin socket.c.  I should have removed it when I included <string.h>.
10786d7f5d3SJohn Marino
10886d7f5d3SJohn Marino- Backwards compatibility: some people relied on the old leading dot or
10986d7f5d3SJohn Marinotrailing dot magic in daemon process names.
11086d7f5d3SJohn Marino
11186d7f5d3SJohn Marino- Backwards compatibility: hostname lookup remains enabled when
11286d7f5d3SJohn Marino-DPARANOID is turned off. In order to disable hostname lookups you
11386d7f5d3SJohn Marinomust turn off -DALWAYS_HOSTNAME.
11486d7f5d3SJohn Marino
11586d7f5d3SJohn Marino- Eliminated false complaints from the tcpdmatch/tcpdchk configuration
11686d7f5d3SJohn Marinochecking programs about process names not in inetd.conf or about KNOWN
11786d7f5d3SJohn Marinousername patterns.
11886d7f5d3SJohn Marino
11986d7f5d3SJohn MarinoChanges per release 7.1 (Jan 1995)
12086d7f5d3SJohn Marino==================================
12186d7f5d3SJohn Marino
12286d7f5d3SJohn Marino- Portability: HP-UX permits you to break inetd.conf entries with
12386d7f5d3SJohn Marinobackslash-newline.
12486d7f5d3SJohn Marino
12586d7f5d3SJohn Marino- Portability: EP/IX has no putenv() and some inetd.conf entries are
12686d7f5d3SJohn Marinospread out over two lines.
12786d7f5d3SJohn Marino
12886d7f5d3SJohn Marino- Portability: SCO with NIS support has no *netgrent() routines.
12986d7f5d3SJohn Marino
13086d7f5d3SJohn MarinoChanges per release 7.0 (Jan 1995)
13186d7f5d3SJohn Marino==================================
13286d7f5d3SJohn Marino
13386d7f5d3SJohn Marino- Added a last-minute workaround for a Solaris 2.4 gethostbyname()
13486d7f5d3SJohn Marinofoulup with multi-homed hosts in DNS through NIS mode.
13586d7f5d3SJohn Marino
13686d7f5d3SJohn Marino- Added a last-minute defense against TLI weirdness: address lookups
13786d7f5d3SJohn Marinoapparently succeed but the result netbuf is empty (ticlts transport).
13886d7f5d3SJohn Marino
13986d7f5d3SJohn Marino- Dropped several new solutions that were in need of a problem. Beta
14086d7f5d3SJohn Marinotesters may recognize what new features were kicked out during the last
14186d7f5d3SJohn Marinoweeks before release 7.0 came out. Such is life.
14286d7f5d3SJohn Marino
14386d7f5d3SJohn Marino- Got rid of out the environment replacement routines, at least for
14486d7f5d3SJohn Marinomost architectures. One should not have to replace working system
14586d7f5d3SJohn Marinosoftware when all that is needed is a 4.4BSD setenv() emulator.
14686d7f5d3SJohn Marino
14786d7f5d3SJohn Marino- By popular request I have added an option to send banner messages to
14886d7f5d3SJohn Marinoclients. There is a Banners.Makefile that gives some aid for sites that
14986d7f5d3SJohn Marinoare going to use this feature. John C. Wingenbach did some pioneering
15086d7f5d3SJohn Marinowork here. I used to think that banners are frivolous. Now that I had
15186d7f5d3SJohn Marinoa personal need for them I know that banners can be useful.
15286d7f5d3SJohn Marino
15386d7f5d3SJohn Marino- At last: an extensible functional interface to the pattern matching
15486d7f5d3SJohn Marinoengine. request_init() and request_set() accept a variable-length
15586d7f5d3SJohn Marinoname-value argument list.  The result can be passed to hosts_access().
15686d7f5d3SJohn Marino
15786d7f5d3SJohn Marino- When PARANOID mode is disabled (compile time), the wrapper does no
15886d7f5d3SJohn Marinohostname lookup or hostname double checks unless required by %letter
15986d7f5d3SJohn Marinoexpansions, or by access control rules that match host names.  This is
16086d7f5d3SJohn Marinouseful for sites that don't care about internet hostnames anyway.
16186d7f5d3SJohn MarinoInspired by the authors of the firewalls and internet security book.
16286d7f5d3SJohn Marino
16386d7f5d3SJohn Marino- When PARANOID mode is disabled (compile time), hosts with a name/name
16486d7f5d3SJohn Marinoor name/address conflict can be matched with the PARANOID host wildcard
16586d7f5d3SJohn Marinopattern, so that you can take some intelligent action instead of just
16686d7f5d3SJohn Marinodropping clients. Like showing a banner that explains the problem.
16786d7f5d3SJohn Marino
16886d7f5d3SJohn Marino- New percent escapes: %A expands to the server address; %H expands to
16986d7f5d3SJohn Marinothe corresponding hostname (or address if no name is available); %n and
17086d7f5d3SJohn Marino%N expand to the client and server hostname (or "unknown"); %s expands
17186d7f5d3SJohn Marinoto everything we know about the server endpoint (the opposite of the %c
17286d7f5d3SJohn Marinosequence for client information).
17386d7f5d3SJohn Marino
17486d7f5d3SJohn Marino- Symmetry: server and client host information is now treated on equal
17586d7f5d3SJohn Marinofooting, so that we can reuse a lot of code.
17686d7f5d3SJohn Marino
17786d7f5d3SJohn Marino- Lazy evaluation of host names, host addresses, usernames, and so on,
17886d7f5d3SJohn Marinoto avoid doing unnecessary work.
17986d7f5d3SJohn Marino
18086d7f5d3SJohn Marino- Dropping #ifdefs for some archaic systems made the code simpler.
18186d7f5d3SJohn Marino
18286d7f5d3SJohn Marino- Dropping the FAIL pattern made the pattern matcher much simpler.  Run
18386d7f5d3SJohn Marinothe "tcpdchk" program to scan your access control files for any uses of
18486d7f5d3SJohn Marinothis obscure language feature.
18586d7f5d3SJohn Marino
18686d7f5d3SJohn Marino- Moving host-specific pattern matching from string_match() to the
18786d7f5d3SJohn Marinohost_match() routine made the code more accurate.  Run the "tcpdchk"
18886d7f5d3SJohn Marinoprogram to scan your access control files for any dependencies on
18986d7f5d3SJohn Marinoundocumented or obscure language features that are gone.
19086d7f5d3SJohn Marino
19186d7f5d3SJohn Marino- daemon@host patterns trigger on clients that connect to a specific
19286d7f5d3SJohn Marinointernet address.  This can be useful for service providers that offer
19386d7f5d3SJohn Marinomultiple ftp or www archives on different internet addresses, all
19486d7f5d3SJohn Marinobelonging to one and the same host (www.foo.com, ftp.bar.com, you get
19586d7f5d3SJohn Marinothe idea).  Inspired by a discussion with Rop Gonggrijp, Cor Bosman,
19686d7f5d3SJohn Marinoand Casper Dik, and earlier discussions with Adrian van Bloois.
19786d7f5d3SJohn Marino
19886d7f5d3SJohn Marino- The new "tcpdchk" program critcizes all your access control rules and
19986d7f5d3SJohn Marinoinetd.conf entries. Great for spotting obscure bugs in my own hosts.xxx
20086d7f5d3SJohn Marinofiles. This program also detects hosts with name/address conflicts and
20186d7f5d3SJohn Marinowith other DNS-related problems. See the "tcpdchk.8" manual page.
20286d7f5d3SJohn Marino
20386d7f5d3SJohn Marino- The "tcpdmatch" program replaces the poor old "try" command. The new
20486d7f5d3SJohn Marinoprogram looks in your inetd.conf file and therefore produces much more
20586d7f5d3SJohn Marinoaccurate predictions. In addition, it detects hosts with name/address
20686d7f5d3SJohn Marinoconflicts and with other DNS-related problems. See the "tcpdmatch.8"
20786d7f5d3SJohn Marinomanual page.  The inetd.conf lookup was suggested by Everett F Batey.
20886d7f5d3SJohn Marino
20986d7f5d3SJohn Marino- In the access control tables, the `=' between option name and value
21086d7f5d3SJohn Marinois no longer required.
21186d7f5d3SJohn Marino
21286d7f5d3SJohn Marino- Added 60-second timeout to the safe_finger command, to cover another
21386d7f5d3SJohn Marinopotential problem. Suggested by Peter Wemm.
21486d7f5d3SJohn Marino
21586d7f5d3SJohn Marino- Andrew Maffei provided code that works with WIN-TCP on NCR System V.4
21686d7f5d3SJohn MarinoUNIX. It reportedly works with versions 02.02.01 and 02.03.00. The code
21786d7f5d3SJohn Marinopops off all streams modules above the device driver, pushes the timod
21886d7f5d3SJohn Marinomodule to get at the peer address, and then restores the streams stack
21986d7f5d3SJohn Marinoto the initial state.
22086d7f5d3SJohn Marino
22186d7f5d3SJohn MarinoChanges per release 6.3 (Mar 1994)
22286d7f5d3SJohn Marino==================================
22386d7f5d3SJohn Marino
22486d7f5d3SJohn Marino- Keepalives option, to get rid of stuck daemons when people turn off
22586d7f5d3SJohn Marinotheir PC while still connected. Files: options.c, hosts_options.5.
22686d7f5d3SJohn Marino
22786d7f5d3SJohn Marino- Nice option, to calm down network daemons that take away too much CPU
22886d7f5d3SJohn Marinotime. Files: options.c, hosts_options.5.
22986d7f5d3SJohn Marino
23086d7f5d3SJohn Marino- Ultrix perversion: the environ global pointer may be null. The
23186d7f5d3SJohn Marinoenvironment replacement routines now check for this. File: environ.c.
23286d7f5d3SJohn Marino
23386d7f5d3SJohn Marino- Fixed a few places that still assumed the socket is on standard
23486d7f5d3SJohn Marinoinput. Fixed some error messages that did not provide access control
23586d7f5d3SJohn Marinofile name and line number.  File: options.c.
23686d7f5d3SJohn Marino
23786d7f5d3SJohn Marino- Just when I was going to release 6.2 I received code for Dynix/PTX.
23886d7f5d3SJohn MarinoThat code is specific to PTX 2.x, so I'll keep around my generic
23986d7f5d3SJohn MarinoPTX code just in case. The difference is in the handling of UDP
24086d7f5d3SJohn Marinoservices.  Files:  tli_sequent.[hc].
24186d7f5d3SJohn Marino
24286d7f5d3SJohn MarinoChanges per release 6.2 (Feb 1994)
24386d7f5d3SJohn Marino==================================
24486d7f5d3SJohn Marino
24586d7f5d3SJohn Marino- Resurrected my year-old code to reduce DNS load by appending a dot to
24686d7f5d3SJohn Marinothe gethostbyname() argument. This feature is still experimental and it
24786d7f5d3SJohn Marinomay go away if it causes more problems than it solves. File: socket.c.
24886d7f5d3SJohn Marino
24986d7f5d3SJohn Marino- Auxiliary code for the Pyramid, BSD universe. Karl Vogel figured out
25086d7f5d3SJohn Marinowhat was missing: yp_get_default_domain() and vfprintf(). Files:
25186d7f5d3SJohn Marinoworkarounds.c, vfprintf.c.
25286d7f5d3SJohn Marino
25386d7f5d3SJohn Marino- Improved support for Dynix/PTX. The wrapper should now be able to
25486d7f5d3SJohn Marinodeal with all TLI over IP services. File: ptx.c.
25586d7f5d3SJohn Marino
25686d7f5d3SJohn Marino- The try command now uses the hostname that gethostbyaddr() would
25786d7f5d3SJohn Marinoreturn, instead of the hostname returned by gethostbyname(). This can
25886d7f5d3SJohn Marinobe significant on systems with NIS that have short host names in the
25986d7f5d3SJohn Marinohosts map. For example, gethostbyname("wzv.win.tue.nl") returns
26086d7f5d3SJohn Marino"wzv.win.tue.nl"; gethostbyaddr(131.155.210.17) returns "wzv", and
26186d7f5d3SJohn Marinothat is what we should test with. File: try.c.
26286d7f5d3SJohn Marino
26386d7f5d3SJohn MarinoChanges per release 6.1 (Dec 1993)
26486d7f5d3SJohn Marino==================================
26586d7f5d3SJohn Marino
26686d7f5d3SJohn Marino- Re-implemented all environment access routines. Most systems have
26786d7f5d3SJohn Marinoputenv() but no setenv(), some systems have setenv() but no putenv(),
26886d7f5d3SJohn Marinoand there are even systems that have neither setenv() nor putenv(). The
26986d7f5d3SJohn Marinobenefit of all this is that more systems can now be treated in the same
27086d7f5d3SJohn Marinoway. File:  environ.c.
27186d7f5d3SJohn Marino
27286d7f5d3SJohn Marino- Workaround for a weird problem with DG/UX when the wrapper is run as
27386d7f5d3SJohn Marinonobody (i.e. fingerd). For some reason the ioctl(fd, I_FIND, "sockmod")
27486d7f5d3SJohn Marinocall fails even with socket-based applications. The "fix" is to always
27586d7f5d3SJohn Marinoassume sockets when the ioctl(fd, I_FIND, "timod") call fails. File:
27686d7f5d3SJohn Marinofromhost.c. Thanks to Paul de Vries (vries@dutentb.et.tudelft.nl) for
27786d7f5d3SJohn Marinohelping me to figure out this one.
27886d7f5d3SJohn Marino
27986d7f5d3SJohn Marino- Implemented a workaround for Dynix/PTX and other systems with TLI
28086d7f5d3SJohn Marinothat lack some essential support routines. Thanks to Bugs Brouillard
28186d7f5d3SJohn Marino(brouill@hsuseq.humboldt.edu) for the hospitality to try things out.
28286d7f5d3SJohn MarinoThe trick is to temporarily switch to the socket API to identify the
28386d7f5d3SJohn Marinoclient, and to switch back to TLI when done.  It still does not work
28486d7f5d3SJohn Marinoright for basic network services such as telnet. File: fromhost.c.
28586d7f5d3SJohn Marino
28686d7f5d3SJohn Marino- Easy-to-build procedures for SCO UNIX, ConvexOS with UltraNet, EP/IX,
28786d7f5d3SJohn MarinoDynix 3.2, Dynix/PTX. File: Makefile.
28886d7f5d3SJohn Marino
28986d7f5d3SJohn Marino- Variable rfc931 timeout. Files: rfc931.c, options.c, log_tcp.h, try.c.
29086d7f5d3SJohn Marino
29186d7f5d3SJohn Marino- Further simplification of the rfc931 code. File: rfc931.c.
29286d7f5d3SJohn Marino
29386d7f5d3SJohn Marino- The fromhost() interface stinks: I cannot change that, but at least
29486d7f5d3SJohn Marinothe from_sock() and from_tli() functions now accept a file descriptor
29586d7f5d3SJohn Marinoargument.
29686d7f5d3SJohn Marino
29786d7f5d3SJohn Marino- Fixed a buglet: fromhost() would pass a garbage file descriptor to
29886d7f5d3SJohn Marinothe isastream() call.
29986d7f5d3SJohn Marino
30086d7f5d3SJohn Marino- On some systems the finger client program lives in /usr/bsd. File:
30186d7f5d3SJohn Marinosafe_finger.c.
30286d7f5d3SJohn Marino
30386d7f5d3SJohn MarinoChanges per release 6.0 (Sept 1993)
30486d7f5d3SJohn Marino===================================
30586d7f5d3SJohn Marino
30686d7f5d3SJohn Marino- Easy build procedures for common platforms (sun, ultrix, aix, hpux
30786d7f5d3SJohn Marinoand others).
30886d7f5d3SJohn Marino
30986d7f5d3SJohn Marino- TLI support, System V.4 style (Solaris, DG/UX).
31086d7f5d3SJohn Marino
31186d7f5d3SJohn Marino- Username lookup integrated with the access control language.
31286d7f5d3SJohn MarinoSelective username lookups are now the default (was: no username
31386d7f5d3SJohn Marinolookups).
31486d7f5d3SJohn Marino
31586d7f5d3SJohn Marino- A safer finger command for booby traps. This one solves a host of
31686d7f5d3SJohn Marinopossible problems with automatic reverse fingers. Thanks, Borja Marcos
31786d7f5d3SJohn Marino(borjam@we.lc.ehu.es) for some inspiring discussions.
31886d7f5d3SJohn Marino
31986d7f5d3SJohn Marino- KNOWN pattern that matches hosts whose name and address are known.
32086d7f5d3SJohn Marino
32186d7f5d3SJohn Marino- Cleanup of diagnostics. Errors in access-control files are now shown
32286d7f5d3SJohn Marinowith file name and line number.
32386d7f5d3SJohn Marino
32486d7f5d3SJohn Marino- With AIX 3.2, hostnames longer than 32 would be truncated.  This
32586d7f5d3SJohn Marinocaused hostname verification failures, so that service would be refused
32686d7f5d3SJohn Marinowhen paranoid mode was enabled.  Found by:  Adrian van Bloois
32786d7f5d3SJohn Marino(A.vanBloois@info.nic.surfnet.nl).
32886d7f5d3SJohn Marino
32986d7f5d3SJohn Marino- With some IRIX versions, remote username lookups failed because the
33086d7f5d3SJohn Marinofgets() library function does not handle partial read()s from sockets.
33186d7f5d3SJohn MarinoFound by:  Daniel O'Callaghan (danny@austin.unimelb.edu.au).
33286d7f5d3SJohn Marino
33386d7f5d3SJohn Marino- Added a DISCLAIMER document to help you satisfy legal departments.
33486d7f5d3SJohn Marino
33586d7f5d3SJohn MarinoThe extension language module has undergone major revisions and
33686d7f5d3SJohn Marinoextensions.  Thanks, John P. Rouillard (rouilj@ra.cs.umb.edu) for
33786d7f5d3SJohn Marinodiscussions, experiments, and for being a good guinea pig. The
33886d7f5d3SJohn Marinoextensions are documented in hosts_options.5, and are enabled by
33986d7f5d3SJohn Marinoediting the Makefile STYLE macro definition.
34086d7f5d3SJohn Marino
34186d7f5d3SJohn Marino- (Extension language) The ":" separator may now occur within options
34286d7f5d3SJohn Marinoas long as it is protected with a backslash. A warning is issued when
34386d7f5d3SJohn Marinoa rule ends on ":".
34486d7f5d3SJohn Marino
34586d7f5d3SJohn Marino- (Extension language) Better verification mode. When the `try' command
34686d7f5d3SJohn Marinois run, each option function now explains what it would do.
34786d7f5d3SJohn Marino
34886d7f5d3SJohn Marino- (Extension language) New "allow" and "deny" keywords so you can now
34986d7f5d3SJohn Marinohave all rules within a single file. See "nroff -man hosts_options.5"
35086d7f5d3SJohn Marinofor examples.
35186d7f5d3SJohn Marino
35286d7f5d3SJohn Marino- (Extension language) "linger" keyword to set the socket linger time
35386d7f5d3SJohn Marino(SO_LINGER). From:  Marc Boucher <marc@cam.org>.
35486d7f5d3SJohn Marino
35586d7f5d3SJohn Marino- (Extension language) "severity" keyword to turn the logging noise up
35686d7f5d3SJohn Marinoor down. Many sites wanted a means to shut up the program; other sites
35786d7f5d3SJohn Marinowanted to emphasize specific events.  Adapted from code contributed
35886d7f5d3SJohn Marinoby Dave Mitchell <D.Mitchell@dcs.shef.ac.uk>.
35986d7f5d3SJohn Marino
36086d7f5d3SJohn MarinoChanges per release 5.1 (Mar 1993)
36186d7f5d3SJohn Marino==================================
36286d7f5d3SJohn Marino
36386d7f5d3SJohn Marino- The additional protection against source-routing attacks from hosts
36486d7f5d3SJohn Marinothat pretend to have someone elses network address has become optional
36586d7f5d3SJohn Marinobecause it causes kernel panics with SunOS <= 4.1.3.
36686d7f5d3SJohn Marino
36786d7f5d3SJohn MarinoChanges per release 5.0 (Mar 1993)
36886d7f5d3SJohn Marino==================================
36986d7f5d3SJohn Marino
37086d7f5d3SJohn Marino- Additional protection against source-routing attacks from hosts that
37186d7f5d3SJohn Marinopretend to have someone elses network address. For example, the address
37286d7f5d3SJohn Marinoof a trusted host within your own network.
37386d7f5d3SJohn Marino
37486d7f5d3SJohn Marino- The access control language has been extended with a simple but
37586d7f5d3SJohn Marinopowerful operator that greatly simplifies the design of rule sets (ALL:
37686d7f5d3SJohn Marino.foo.edu EXCEPT dialup.foo.edu). Blank lines are permitted, and long
37786d7f5d3SJohn Marinolines can be continued with backslash-newline.
37886d7f5d3SJohn Marino
37986d7f5d3SJohn Marino- All configurable stuff, including path names, has been moved into the
38086d7f5d3SJohn MarinoMakefile so that you no longer have to hack source code to just
38186d7f5d3SJohn Marinoconfigure the programs.
38286d7f5d3SJohn Marino
38386d7f5d3SJohn Marino- Ported to Solaris 2. TLI-based applications not yet supported.
38486d7f5d3SJohn MarinoSeveral workarounds for System V bugs.
38586d7f5d3SJohn Marino
38686d7f5d3SJohn Marino- A small loophole in the netgroup lookup code was closed, and the
38786d7f5d3SJohn Marinoremote username lookup code was made more portable.
38886d7f5d3SJohn Marino
38986d7f5d3SJohn Marino- Still more documentation. The README file now provides tutorial
39086d7f5d3SJohn Marinosections with introductions to client, server, inetd and syslogd.
39186d7f5d3SJohn Marino
39286d7f5d3SJohn MarinoChanges per release 4.3 (Aug 1992)
39386d7f5d3SJohn Marino==================================
39486d7f5d3SJohn Marino
39586d7f5d3SJohn Marino- Some sites reported that connections would be rejected because
39686d7f5d3SJohn Marinolocalhost != localhost.domain. The host name checking code now
39786d7f5d3SJohn Marinospecial-cases localhost (problem reported by several sites).
39886d7f5d3SJohn Marino
39986d7f5d3SJohn Marino- The programs now report an error if an existing access control file
40086d7f5d3SJohn Marinocannot be opened (e.g. due to lack of privileges).  Until now, the
40186d7f5d3SJohn Marinoprograms would just pretend that the access control file does not exist
40286d7f5d3SJohn Marino(reported by Darren Reed, avalon@coombs.anu.edu.au).
40386d7f5d3SJohn Marino
40486d7f5d3SJohn Marino- The timeout period for remote userid lookups was upped to 30 seconds,
40586d7f5d3SJohn Marinoin order to cope with slow hosts or networks.  If this is too long for
40686d7f5d3SJohn Marinoyou, adjust the TIMEOUT definition in file rfc931.c (problem reported
40786d7f5d3SJohn Marinoby several sites).
40886d7f5d3SJohn Marino
40986d7f5d3SJohn Marino- On hosts with more than one IP network interface, remote userid
41086d7f5d3SJohn Marinolookups could use the IP address of the "wrong" local interface.  The
41186d7f5d3SJohn Marinoproblem and its solution were discussed on the rfc931-users mailing
41286d7f5d3SJohn Marinolist.  Scott Schwartz (schwartz@cs.psu.edu) folded the fix into the
41386d7f5d3SJohn Marinorfc931.c module.
41486d7f5d3SJohn Marino
41586d7f5d3SJohn Marino- The result of % expansion (in shell commands) is now checked for
41686d7f5d3SJohn Marinostuff that may confuse the shell; it is replaced by underscores
41786d7f5d3SJohn Marino(problem reported by Icarus Sparry, I.Sparry@gdr.bath.ac.uk).
41886d7f5d3SJohn Marino
41986d7f5d3SJohn Marino- A portability problem was fixed that caused compile-time problems
42086d7f5d3SJohn Marinoon a CRAY (problem reported by Michael Barnett, mikeb@rmit.edu.au).
42186d7f5d3SJohn Marino
42286d7f5d3SJohn MarinoChanges per release 4.0 (Jun 1992)
42386d7f5d3SJohn Marino==================================
42486d7f5d3SJohn Marino
42586d7f5d3SJohn Marino1 - network daemons no longer have to live within a common directory
42686d7f5d3SJohn Marino2 - the access control code now uses both the host address and name
42786d7f5d3SJohn Marino3 - an access control pattern that supports netmasks
42886d7f5d3SJohn Marino4 - additional protection against forged host names
42986d7f5d3SJohn Marino5 - a pattern that matches hosts whose name or address lookup fails
43086d7f5d3SJohn Marino6 - an operator that prevents hosts or services from being matched
43186d7f5d3SJohn Marino7 - optional remote username lookup with the RFC 931 protocol
43286d7f5d3SJohn Marino8 - an optional umask to prevent the creation of world-writable files
43386d7f5d3SJohn Marino9 - hooks for access control language extensions
43486d7f5d3SJohn Marino10 - last but not least, thoroughly revised documentation.
43586d7f5d3SJohn Marino
43686d7f5d3SJohn MarinoChanges per release 3.0 (Oct 1991)
43786d7f5d3SJohn Marino==================================
43886d7f5d3SJohn Marino
43986d7f5d3SJohn MarinoEnhancements over the previous release are: support for datagram (UDP
44086d7f5d3SJohn Marinoand RPC) services, and execution of shell commands when a (remote host,
44186d7f5d3SJohn Marinorequested service) pair matches a pattern in the access control tables.
44286d7f5d3SJohn Marino
44386d7f5d3SJohn MarinoChanges per release 2.0 (May 1991)
44486d7f5d3SJohn Marino==================================
44586d7f5d3SJohn Marino
44686d7f5d3SJohn MarinoEnhancements over the previous release are: protection against rlogin
44786d7f5d3SJohn Marinoand rsh attacks through compromised domain name servers, optional
44886d7f5d3SJohn Marinonetgroup support for systems with NIS (formerly YP), and an extension
44986d7f5d3SJohn Marinoof the wild card patterns supported by the access control files.
45086d7f5d3SJohn Marino
45186d7f5d3SJohn MarinoRelease 1.0 (Jan 1991)
452