Release bumped to "gts4".
[tac_plus.git] / CHANGES
1 >Changes from Release 0.0 to release 0.1
2 ---------------------------------------
3
4 You must now say "default attribute = permit" instead of
5 default authorization = permit" when configuring service
6 defaults
7
8 You must now say "default svc = permit" instead of "default
9 authorization = permit" when configuring service defaults for a user.
10
11 When authorizing enable requests, the daemon used to prompt for a
12 username which it then ignored. It no longer prompts for a username.
13
14 Fix recursion issues with service and command lookups. They are now
15 fully recursive c.f. password lookups.
16
17 Add debugging output to password verification to provide information
18 about expiry processing.
19
20 Keep track of longest hash chain we create, for fine tuning. Hash all
21 keywords into a keyword table instead of doing linear lookup.
22
23 Update users_guide to reflect the new configuration syntax.
24
25 The convert.pl script now generates the new configuration file syntax.
26
27 Accounting code now honours the "more" flag.
28
29
30 Changes from Release 0.1 to release 0.2
31 ---------------------------------------
32
33 You can now send a SIGHUP to the daemon to cause it to reinitialize
34 itself and re-read its CONFIG file. There is a new debugging flag
35 devoted to this section of the code.
36
37 Node types are now pretty-printed in debug output.
38
39 The conversion script "convert.pl" now will not print out an expires
40 field if it doesn't think the syntax of the field is correct. It also
41 now ignores blank lines in its input files.
42
43 When doing authorization, the NAS supplied attribute "cmd=" is now
44 correctly ignored. This would previously have caused exec
45 authorization to be denied.
46
47 Changes from Release 0.2 to release 0.3
48 ---------------------------------------
49 Warn when not invoked as uid 0.
50 Improved Usage message
51 Add make install target
52
53 Changes from Release 0.3 to release 0.4
54 ---------------------------------------
55 Add TAC_PLUS_PIDFILE to makefile per Andy Linton's suggestion.
56 Fix bug in authorization code (protocol field needs to be
57 uppercase) which prevented authorization from working.
58
59 Changes from Release 0.4 to release 0.5
60 ---------------------------------------
61 Add pre and post authorization calls to shell commands.
62 Minor bugfixes and code cleanup
63 The "More" bit in accounting records is now honoured.
64 Fix a bug in convert.pl
65 Redo accounting output routines. You can now name the accounting file
66 in the configuration file.
67 Change "svc" to "service" and "proto" to "protocol".
68 You can use any string to name a ppp protocol, even one which doesn't yet exist.
69 Add PPP/LCP special case processing
70 Revised authorization algorithm (see user's guide)
71 Add hex debug flag to allow skipping hex in packet dumps.
72 Update user's guide to reflect changes
73
74 Changes from Release 0.4 to release 1.0
75 ---------------------------------------
76 Changed format of syslog messages to make writing scripts easier
77 Added ability to use cleartext passwords instead of DES passwords
78 Updated man page to reflect the fact that we use SIGUSR1 to re-read
79 the config file. SIGHUP is now ignored.
80 Updated the users guide.
81
82 Changes from Release 1.0 to release 1.1
83 ---------------------------------------
84 Release 1.1 corresponds to RCS version 1.64 of tac_plus
85 (see tac_plus -v)
86
87 A typo in the Solaris section of the Makefile has been fixed.
88
89 The keyword 'des' has been introduced which must be used before all
90 des encrypted passwords.
91
92 The keyword 'password' has been changed to 'login', so
93     password = f23sac783n
94 has become
95     login = des f23sac783n
96
97 The convert.pl script knows about these changes.
98
99 arap and chap now require the keyword 'cleartext' in front of their
100 passwords.
101
102 A cleartext, per-user, global password can now be configured, which
103 works for login, arap and chap.
104
105 The users_guide has been updated to include a list of all A/V pairs
106 recognised by IOS 10.3(3) code.
107
108 Some solaris binaries have been provided as a courtesy.
109
110 Changes from Release 1.1 to release 2.0
111 ---------------------------------------
112 generate_password.pl has been removed in favour of a C program
113 generate_passwd.c
114
115 The version number reported by tac_plus has been changed to agree with the
116 release number. This is why the version has jumped to 2.0
117
118 skey was broken by changes made in 1.1. These are now fixed.
119
120 Documentation has been added for the authorization AV pairs supported
121 by IOS releases 10.3(3) and 11.0.
122
123 Changes from Release 2.0 to release 2.1
124 ---------------------------------------
125 There are now Makefile definitions for most of the major platforms.
126
127 Minor changes to remove some spurious debugging output.
128
129 A prematurely closed NAS connection will now call the authentication
130 function with the abort flag set, so that it can do any clean up it
131 requires.
132
133 syslog messages will contain the string "unknown" for usernames and
134 ports which are NULL, so that the messages always contain a fixed
135 number of fields.
136
137 The authentication code has been rearranged to better reflect the
138 structure of the API.
139
140 The "default user = permit" directive is still accepted but is now
141 deprecated in favour of "default authorization = permit".
142
143 A bug in the handling of substring AV pairs which caused the attribute
144 "addr" to erroneously match "addr-pool" has been fixed.
145
146 Added new files: enable.c generate_passwd.c skey_fn.c
147
148 New #defines have been added to make it easier to port tacacs+ to new
149 systems.
150
151 Many more iterations are allowed before an error is declared.
152
153 Changes from Release 2.1 to release 2.2
154 ---------------------------------------
155 The expiry field in the shadow file on Solaris machines is now
156 honored, if it exists.
157
158 Added TAC_PLUS_AUTHEN_SVC_NASI
159
160 Changes from Release 2.2 to release F3.0.13
161 -------------------------------------------
162 NEW REVISION OF THE PROTOCOL corresponding to tacacs+.spec.v1.63.ps
163 (which see) to increase security in the case of compromised keys.
164
165 Inbound pap logins and outbound pap password are now configurable as
166 separate entries for each principal.  Inbound pap logins are now
167 declared by using a "pap = " configuration directive. Outbound PAP is
168 now configured using "opap =".
169
170 Substantial code rearrangement of authentication routines.
171
172 Cleartext passwords can be up to 255 characters in length (previously
173 only the first 8 characters were used).
174
175 default service = permit is now fully recursive and now allows you to
176 say default service = deny in case you belong to a group where the
177 default is to permit.
178
179 Include backward compatibility with old revision of the protocol
180 (prior to v1.63).
181
182 post_authorization scripts are now invoked for command authorization.
183
184 Better sanity checking of authorization and accounting packets.
185
186 The API has changed slightly. All character string fields in the
187 identity structure are now allocated from the heap and can be up to
188 255 bytes long (instead of being character arrays of 32 and 64 bytes,
189 as specified in the API document revision 1.30 or earlier).
190
191 Double quotes can now appear inside strings if they are escaped with a
192 backslash.
193
194 Added code which limits the number of simultaneous sessions a user can
195 have (see MAXSESS in the user's guide).
196
197 The accounting "more" bit is gone (It was deprecated from the spec).
198
199 Hooks are now in so that if you have DES code, you can do ARAP more
200 securely, per the new protocol.
201
202 The packet read/write routines now handle exceptions more gracefully.
203
204 Lots of stuff added to the user's guide.
205
206 If you use a port number other than the default, the pidfile has the
207 port number appended to it, in case you are running multiple daemons.
208 We also now remove the pidfile when the daemon terminates via SIGTERM.
209
210 user = DEFAULT has been added, deprecating "default authorization =
211 permit". See the user's guide.
212
213 Arbitrary service types can now be configured in the config file.
214
215 REARMSIGNAL has been added for those systems which install one-shot
216 signal handlers which need to be rearmed after use (LINUX, HPUX).
217
218 A \n can now be embedded within strings.
219
220 Concede defeat. Allow SIGHUP as synonym for SIGUSR1.
221
222 Avoid symbol buffer overflow by checking the maximum length of a
223 string or token.
224
225 Make peer DNS lookup on incoming connections optional.
226
227 Do not close socket when servicing a SIGHUP
228
229 Fix a bad bug where service/cmd declarations which were not contiguous
230 were parsed but ignored (reported by Gabor Kiss).
231
232 Patch maxsessions to not count the current port on a different
233 NAS. Add various other fixes to maxsession code.
234
235 Add timeout to finger read routine.
236
237 Changes from release F3.0.13 to F4.0.1
238 -------------------------------------------
239 Added MSCHAP routines
240
241 CSCdi37706 exposed a bug in command authorization on the daemon.
242 Change assemble_args so it returns "" if there are no command
243 arguments.
244
245 Changes from release F4.0.1 to F4.0.2
246 -------------------------------------------
247 Fix fseek problem in maxsess code
248
249 Changes from release F4.0.2 to F4.0.3
250 -------------------------------------------
251 Add option for wtmp file logging in accounting
252 Added -DGLIBC for Linux.
253 Support PAP with des encrypted passwords
254 Support a return code of 3 for external authorization scripts
255