/mandos/release

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/release

« back to all changes in this revision

Viewing changes to NEWS

Convert some programs to use the exit codes from <sysexits.h>.  Change
all programs using the "argp" parsing functions to use them correctly;
checking return value, using argp_error() to report parse errors etc.

* plugin-runner.c: Use <sysexits.h> exit codes.  Always use fallback,
                   even on option errors, except for "--help", etc.
  (getplugin): Make sure "errno" is set correctly on return.
  (main): Declare our own "--help", "--usage", and "--version"
          options which do not cause the fallback to be invoked.
          In all other options, use fallback on any error.
  (parse_opt, parse_opt_config_file): Reset errno at start and return
                                      errno.  No need to check "arg"
                                      for NULL.  New "--help",
                                      "--usage", and "--version"
                                      options.
  (parse_opt): Accept empty string as global option.  Do not print
               errors which will be detected and reported later.  Do
               "argp_error()" on parse error or empty plugin names.
* plugins.d/mandos-client.c: Use <sysexits.h> exit codes.  Do not
                             return successful exit code on "--help",
                             etc. since this would give the wrong
                             message to "plugin-runner".
  (main): Declare our own "--help", "--usage", and "--version"
          options which do not return a successful exit code.
  (parse_opt): Reset errno at start and return errno.  Do
               "argp_error()" on parse errors.  New "--help",
               "--usage", and "--version" options.
* plugins.d/password-prompt.c: Use exit codes from <sysexits.h>.  Do
                               not return successful exit code on
                               "--help", etc. since this would give
                               the wrong message to "plugin-runner".
  (main): Declare our own "--help", "--usage", and "--version" options
          which do not return a successful exit code.  Do
          close(STDOUT_FILENO) after writing to check its return code.
  (parse_opt): Reset errno at start and return errno.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
This NEWS file records noteworthy changes, very tersely.
2
2
See the manual for detailed information.
3
3
 
4
 
Version 1.7.10 (2016-06-23)
5
 
* Client
6
 
** Security fix: restrict permissions of /etc/mandos/plugin-helpers
7
 
* Server
8
 
** Bug fix: Make the --interface flag work with Python 2.7 when "cc"
9
 
   is not installed
10
 
 
11
 
Version 1.7.9 (2016-06-22)
12
 
* Client
13
 
** Do not include intro(8mandos) man page
14
 
 
15
 
Version 1.7.8 (2016-06-21)
16
 
* Client
17
 
** Include intro(8mandos) man page
18
 
** mandos-keygen: Use ECDSA SSH keys by default
19
 
** Bug fix: Work with GnuPG 2 when booting (Debian bug #819982)
20
 
   by copying /usr/bin/gpg-agent into initramfs
21
 
* Server
22
 
** Bug fix: Work with GnuPG 2 (don't use --no-use-agent option)
23
 
** Bug fix: Make the --interface option work when using Python 2.7
24
 
   by trying harder to find SO_BINDTODEVICE
25
 
 
26
 
Version 1.7.7 (2016-03-19)
27
 
* Client
28
 
** Fix bug in Plymouth client, broken since 1.7.2
29
 
 
30
 
Version 1.7.6 (2016-03-13)
31
 
* Server
32
 
** Fix bug where stopping server would time out
33
 
** Make server runnable with Python 3
34
 
 
35
 
Version 1.7.5 (2016-03-08)
36
 
* Server
37
 
** Fix security restrictions in systemd service file.
38
 
** Work around bug where stopping server would time out
39
 
 
40
 
Version 1.7.4 (2016-03-05)
41
 
* Client
42
 
** Bug fix: Tolerate errors from configure_networking (Debian Bug
43
 
   #816513)
44
 
** Compilation: Only use sanitizing options which work with the
45
 
   compiler used when building.  This should fix compilation with GCC
46
 
   4.9 on mips, mipsel, and s390x.
47
 
* Server
48
 
** Add extra security restrictions in systemd service file.
49
 
 
50
 
Version 1.7.3 (2016-02-29)
51
 
* Client
52
 
** Bug fix: Remove new type of keyring directory user by GnuPG 2.1.
53
 
** Bug fix: Remove "nonnull" attribute from a function argument, which
54
 
   would otherwise generate a spurious runtime warning.
55
 
 
56
 
Version 1.7.2 (2016-02-28)
57
 
* Server
58
 
** Stop using python-gnutls library; it was not updated to GnuTLS 3.3.
59
 
** Bug fix: Only send D-Bus signal ClientRemoved if using D-Bus.
60
 
** Use GnuPG 2 if available.
61
 
* Client
62
 
** Compile with various sanitizing flags.
63
 
 
64
 
Version 1.7.1 (2015-10-24)
65
 
* Client
66
 
** Bug fix: Can now really find Mandos server even if the server has
67
 
   an IPv6 address on a network other than the one which the Mandos
68
 
   server is on.
69
 
 
70
 
Version 1.7.0 (2015-08-10)
71
 
* Server
72
 
** Bug fix: Handle local Zeroconf service name collisions better.
73
 
** Bug fix: Finally fix "ERROR: Child process vanished" bug.
74
 
** Bug fix: Fix systemd service file to start server correctly.
75
 
** Bug fix: Be compatible with old 2048-bit DSA keys.
76
 
** The D-Bus API now provides the standard D-Bus ObjectManager
77
 
   interface, and deprecates older functionality.  See the DBUS-API
78
 
   file for the currently recommended API.  Note: the original API
79
 
   still works, but is deprecated.
80
 
* Client
81
 
** Can now find Mandos server even if the server has an IPv6 address
82
 
   on a network without IPv6 Router Advertisment (like if the Mandos
83
 
   client itself is the router, or there is an IPv6 router advertising
84
 
   a network other than the one which the Mandos server is on.)
85
 
** Use a better value than 1024 for the default number of DH bits.
86
 
   This better value is either provided by a DH parameters file (see
87
 
   below) or an appropriate number of DH bits is determined based on
88
 
   the PGP key.
89
 
** Bug fix: mandos-keygen now generates correct output for the
90
 
   "Checker" variable even if the SSH server on the Mandos client has
91
 
   multiple SSH key types.
92
 
** Can now use pre-generated Diffie-Hellman parameters from a file.
93
 
 
94
 
Version 1.6.9 (2014-10-05)
95
 
* Server
96
 
** Changed to emit standard D-Bus signal when D-Bus properties change.
97
 
   (The old signal is still emitted too, but marked as deprecated.)
98
 
 
99
 
Version 1.6.8 (2014-08-06)
100
 
* Client
101
 
** Bug fix: mandos-keygen now generates working SSH checker commands.
102
 
* Server
103
 
** Bug fix: "mandos-monitor" now really redraws screen on Ctrl-L.
104
 
** Now requires Python 2.7.
105
 
 
106
 
Version 1.6.7 (2014-07-17)
107
 
* Client
108
 
** Bug fix: Now compatible with GPGME 1.5.0.
109
 
** Bug fix: Fixed minor memory leaks.
110
 
* Server
111
 
** "mandos-monitor" now has verbose logging, toggleable with "v".
112
 
 
113
 
Version 1.6.6 (2014-07-13)
114
 
* Client
115
 
** If client host has an SSH server, "mandos-keygen --password" now
116
 
   outputs "checker" option which uses "ssh-keyscan"; this is more
117
 
   secure than the default "fping" checker.
118
 
** Bug fix: allow "." in network hook names, to match documentation.
119
 
** Better error messages.
120
 
* Server
121
 
** New --no-zeroconf option.
122
 
** Bug fix: Fix --servicename option, broken since 1.6.4.
123
 
** Bug fix: Fix --socket option work for --socket=0.
124
 
 
125
 
Version 1.6.5 (2014-05-11)
126
 
* Client
127
 
** Work around bug in GnuPG <http://bugs.g10code.com/gnupg/issue1622>
128
 
** Give better error messages when run without sufficient privileges
129
 
** Only warn if workaround for Debian bug #633582 was necessary and
130
 
   failed, not if it failed and was unnecessary.
131
 
 
132
 
Version 1.6.4 (2014-02-16)
133
 
* Server
134
 
** Very minor fix to self-test code.
135
 
 
136
 
Version 1.6.3 (2014-01-21)
137
 
* Server
138
 
** Add systemd support.
139
 
** For PID file, fall back to /var/run if /run does not exist.
140
 
* Client
141
 
** Moved files from /usr/lib/mandos to whatever the architecture
142
 
   specifies, like /usr/lib/x86_64-linux-gnu/mandos or
143
 
   /usr/lib64/mandos.
144
 
 
145
 
Version 1.6.2 (2013-10-24)
146
 
* Server
147
 
** PID file moved from /var/run to /run.
148
 
** Bug fix: Handle long secrets when saving client state.
149
 
** Bug fix: Use more magic in the GnuTLS priority string to handle
150
 
   both old DSA/ELG 2048-bit keys and new RSA/RSA 4096-bit keys.
151
 
* Client
152
 
** mandos-keygen: Bug fix: now generate RSA keys which GnuTLS can use.
153
 
                  Bug fix: Output passphrase prompts even when
154
 
                  redirecting standard output.
155
 
 
156
 
Version 1.6.1 (2013-10-13)
157
 
* Server
158
 
** All client options for time intervals now also take an RFC 3339
159
 
   duration.  The same for all options to mandos-ctl.
160
 
** Bug fix: Handle fast checkers (like ":") correctly.
161
 
** Bug fix: Don't print output from checkers when running in
162
 
   foreground.
163
 
** Bug fix: Do not fail when client is removed from clients.conf but
164
 
   saved settings remain.
165
 
** Bug fix: mandos-monitor now displays standout (reverse video) again
166
 
   using new version of Urwid.
167
 
** Bug fix: Make boolean options work from the config file again.
168
 
** Bug fix: Make --no-ipv6 work again.
169
 
** New default priority string to be slightly more compatible with
170
 
   older versions of GnuTLS.
171
 
* Client
172
 
** Bug fix: Fix bashism in mandos-keygen.
173
 
** Default key and subkey types are now RSA and RSA, respectively.
174
 
   Also, new default key size is 4096 bits.
175
 
 
176
 
Version 1.6.0 (2012-06-18)
177
 
* Server
178
 
** Takes new --foreground option
179
 
** Init script supports new "status" action.
180
 
* Client
181
 
** Now uses all interfaces by default; the --interface option can
182
 
   still be used to restrict it, and the argument to --interface (as
183
 
   well as the $DEVICE environment variable for the network hooks) is
184
 
   now a comma-separated list of interfaces to use.
185
 
 
186
 
Version 1.5.5 (2012-06-01)
187
 
* Server
188
 
** Server takes new --socket option
189
 
 
190
 
Version 1.5.4 (2012-05-20)
191
 
* Server
192
 
** Bug fix: Regression fix: Make non-zero approval timeout values work.
193
 
** Bug fix: Regression fix: Allow changing the Timeout D-Bus property.
194
 
** Fall back to not bind to an interface if an invalid interface name
195
 
   is given.
196
 
** Removed support for undocumented feature of using plain "%%s" in
197
 
   "checker" client option.
198
 
** Old D-Bus interface are now marked as deprecated.
199
 
** mandos-monitor: Bug fix: show approval timers correctly.
200
 
** mandos-ctl: Show "Extended Timeout" correctly, not as milliseconds.
201
 
 
202
 
Version 1.5.3 (2012-01-15)
203
 
* Server
204
 
** Add D-Bus property se.recompile.Client.LastCheckerStatus and use it
205
 
   in mandos-monitor.
206
 
* Client
207
 
** Fix bugs in the example "bridge" network hook.
208
 
 
209
 
Version 1.5.2 (2012-01-08)
210
 
* Server
211
 
** Removed D-Bus signal se.recompile.Mandos.NewRequest() added in
212
 
   1.5.0.  It was buggy and was of questionable utility.
213
 
 
214
 
Version 1.5.1 (2012-01-01)
215
 
* Server
216
 
** Include intro(8mandos) manual page, missing since migration from
217
 
   README file in version 1.4.0.
218
 
 
219
 
Version 1.5.0 (2012-01-01)
220
 
* Client
221
 
** Network hooks.  The Mandos client can now run custom scripts to take
222
 
   up a network interface before the client is run.  Three example
223
 
   scripts are provided: "wireless", "openvpn", and "bridge".
224
 
   To facilitate this, the client now prefers network interfaces which
225
 
   are up (if any) over all other interfaces.
226
 
* Server
227
 
** Persistent state.  Client state is now saved between server
228
 
   restarts.
229
 
** clients.conf file can now contain "enabled" setting for clients.
230
 
** Bug fix: Fix rare crash bug.
231
 
** Bug fix: Send corrent D-Bus type in PropertyChanged for
232
 
   "ApprovalDelay", "ApprovalDuration", "Timeout", and
233
 
   "ExtendedTimeout".
234
 
** mandos-ctl: Bare numbers as arguments are taken to be milliseconds.
235
 
** Bug fix: mandos-ctl --secret option now works.
236
 
** New D-Bus signal: se.recompile.Mandos.NewRequest(s).
237
 
 
238
 
Version 1.4.1 (2011-10-15)
239
 
* Server
240
 
** Make D-Bus properties settable again, and handle checkers
241
 
   for disabled clients correctly.
242
 
* Miscellaneous fixes to "pedantic" Lintian warnings
243
 
 
244
 
Version 1.4.0 (2011-10-09)
245
 
* README file migrated to manual page intro(8mandos).
246
 
* Client:
247
 
** Fixed warning about "rmdir: Directory not empty".
248
 
* Server:
249
 
** Default values changed: timeout 5 minutes, interval 2 minutes.
250
 
** Clients gets an expiration extension when receiving a password,
251
 
   controlled by new "extended_timeout" setting.
252
 
** New domain name: "fukt.bsnet.se" changes to "recompile.se".  This
253
 
   also affects the D-Bus bus and interface names (old names still
254
 
   work).  Users should start using the new names immediately.
255
 
** New D-Bus Client object properties "Expires" and "ExtendedTimeout";
256
 
   see DBUS-API for details.
257
 
 
258
 
Version 1.3.1 (2011-07-27)
259
 
* Client:
260
 
** Client now retries all Mandos servers periodically.
261
 
** Work around Debian bug #633582 - fixes "Permission denied" problem.
262
 
 
263
 
Version 1.3.0 (2011-03-08)
264
 
* Server:
265
 
** Updated for Python 2.6.
266
 
* Client:
267
 
** Bug fix: Make the password-prompt plugin not conflict with
268
 
   Plymouth.
269
 
** Bug fix: Bug fix: update initramfs also when purging package.
270
 
 
271
 
Version 1.2.3 (2010-10-11)
272
 
* Server:
273
 
** Bug fix: Expose D-Bus API also in non-debug mode.
274
 
 
275
 
Version 1.2.2 (2010-10-07)
276
 
* Client:
277
 
** splashy: Minor fix to compile with non-Linux kernels.
278
 
 
279
 
Version 1.2.1 (2010-10-02)
280
 
* Server:
281
 
** mandos-monitor(8): Documentation bug fix: Key for removing client
282
 
   is "R", not "r".
283
 
 
284
 
Version 1.2 (2010-09-28)
285
 
* Client:
286
 
** New "plymouth" plugin to ask for a password using the Plymouth
287
 
   graphical boot system.
288
 
** The Mandos client now automatically chooses a network interface if
289
 
   the DEVICE setting in /etc/initramfs-tools/initramfs.conf is set to
290
 
   the empty string.  This is also the new default instead of "eth0".
291
 
** The Mandos client --connect option now loops indefinitely until a
292
 
   password is received from the specified server.
293
 
** Bug fix: Quote directory correctly in mandos-keygen with --password
294
 
** Bug fix: don't use "echo -e" in mandos-keygen; unsupported by dash.
295
 
* Server:
296
 
** Terminology change: clients are now "ENABLED" or "DISABLED", not
297
 
   "valid" or "invalid".
298
 
** New D-Bus API; see the file "DBUS-API".
299
 
** New control utilities using the new D-Bus API:
300
 
   + mandos-ctl                A command-line based utility
301
 
   + mandos-monitor            A text-based GUI interface
302
 
** New feature: manual interactive approval or denying of clients on a
303
 
   case-by-case basis.
304
 
** New --debuglevel option to control logging
305
 
** Will not write PID file if --debug is passed
306
 
** Bug fix: Avoid race conditions with short "interval" values or
307
 
   fast checkers.
308
 
** Bug fix: Don't try to bind to a network interface when none is
309
 
   specified
310
 
 
311
 
Version 1.0.14 (2009-10-25)
312
 
Enable building without -pie and -fPIE if BROKEN_PIE is set.
313
 
 
314
4
Version 1.0.13 (2009-10-22)
315
5
* Client
316
6
** Security bug fix: If Mandos server is also installed, do not copy