/mandos/trunk

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

« back to all changes in this revision

Viewing changes to mandos-clients.conf.xml

  • Committer: Teddy Hogeborn
  • Date: 2016-03-13 00:37:02 UTC
  • Revision ID: teddy@recompile.se-20160313003702-dulwtwt8ilpojra9
Server: Fix bug where it did not exit timely on signals

Use GLib.unix_signal_add() instead of signal.signal() to catch
signals; this will allow GLib to do its internal magic with signal
file descriptors.  (GLib does not handle signals properly otherwise.)
The function unix_signal_add() requires GLib 2.30 or later, which was
not required by PyGobject until version 3.7.1, so depend on this.

* INSTALL (Mandos Server): Document dependency on PyGObject 3.7.1
* mandos (main): Use GLib.unix_signal_add instead of signal.signal.
* init.d-mandos (do_stop): Remove workaround.
* mandos.service ([Service]): - '' -

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
        "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4
4
<!ENTITY CONFNAME "mandos-clients.conf">
5
5
<!ENTITY CONFPATH "<filename>/etc/mandos/clients.conf</filename>">
6
 
<!ENTITY TIMESTAMP "2010-09-26">
 
6
<!ENTITY TIMESTAMP "2016-03-05">
7
7
<!ENTITY % common SYSTEM "common.ent">
8
8
%common;
9
9
]>
20
20
        <firstname>Björn</firstname>
21
21
        <surname>Påhlsson</surname>
22
22
        <address>
23
 
          <email>belorn@fukt.bsnet.se</email>
 
23
          <email>belorn@recompile.se</email>
24
24
        </address>
25
25
      </author>
26
26
      <author>
27
27
        <firstname>Teddy</firstname>
28
28
        <surname>Hogeborn</surname>
29
29
        <address>
30
 
          <email>teddy@fukt.bsnet.se</email>
 
30
          <email>teddy@recompile.se</email>
31
31
        </address>
32
32
      </author>
33
33
    </authorgroup>
35
35
      <year>2008</year>
36
36
      <year>2009</year>
37
37
      <year>2010</year>
 
38
      <year>2011</year>
 
39
      <year>2012</year>
 
40
      <year>2013</year>
 
41
      <year>2014</year>
 
42
      <year>2015</year>
 
43
      <year>2016</year>
38
44
      <holder>Teddy Hogeborn</holder>
39
45
      <holder>Björn Påhlsson</holder>
40
46
    </copyright>
64
70
      ><refentrytitle>mandos</refentrytitle>
65
71
      <manvolnum>8</manvolnum></citerefentry>, read by it at startup.
66
72
      The file needs to list all clients that should be able to use
67
 
      the service.  All clients listed will be regarded as enabled,
68
 
      even if a client was disabled in a previous run of the server.
 
73
      the service.  The settings in this file can be overridden by
 
74
      runtime changes to the server, which it saves across restarts.
 
75
      (See the section called <quote>PERSISTENT STATE</quote> in
 
76
      <citerefentry><refentrytitle>mandos</refentrytitle><manvolnum
 
77
      >8</manvolnum></citerefentry>.)  However, any <emphasis
 
78
      >changes</emphasis> to this file (including adding and removing
 
79
      clients) will, at startup, override changes done during runtime.
69
80
    </para>
70
81
    <para>
71
82
      The format starts with a <literal>[<replaceable>section
110
121
          <para>
111
122
            How long to wait for external approval before resorting to
112
123
            use the <option>approved_by_default</option> value.  The
113
 
            default is <quote>0s</quote>, i.e. not to wait.
 
124
            default is <quote>PT0S</quote>, i.e. not to wait.
114
125
          </para>
115
126
          <para>
116
127
            The format of <replaceable>TIME</replaceable> is the same
160
171
            This option is <emphasis>optional</emphasis>.
161
172
          </para>
162
173
          <para>
163
 
            This option allows you to override the default shell
164
 
            command that the server will use to check if the client is
165
 
            still up.  Any output of the command will be ignored, only
166
 
            the exit code is checked:  If the exit code of the command
167
 
            is zero, the client is considered up.  The command will be
168
 
            run using <quote><command><filename>/bin/sh</filename>
 
174
            This option overrides the default shell command that the
 
175
            server will use to check if the client is still up.  Any
 
176
            output of the command will be ignored, only the exit code
 
177
            is checked:  If the exit code of the command is zero, the
 
178
            client is considered up.  The command will be run using
 
179
            <quote><command><filename>/bin/sh</filename>
169
180
            <option>-c</option></command></quote>, so
170
181
            <varname>PATH</varname> will be searched.  The default
171
182
            value for the checker command is <quote><literal
172
183
            ><command>fping</command> <option>-q</option> <option
173
 
            >--</option> %%(host)s</literal></quote>.
 
184
            >--</option> %%(host)s</literal></quote>.  Note that
 
185
            <command>mandos-keygen</command>, when generating output
 
186
            to be inserted into this file, normally looks for an SSH
 
187
            server on the Mandos client, and, if it find one, outputs
 
188
            a <option>checker</option> option to check for the
 
189
            client’s key fingerprint – this is more secure against
 
190
            spoofing.
174
191
          </para>
175
192
          <para>
176
193
            In addition to normal start time expansion, this option
181
198
      </varlistentry>
182
199
      
183
200
      <varlistentry>
 
201
        <term><option>extended_timeout<literal> = </literal><replaceable
 
202
        >TIME</replaceable></option></term>
 
203
        <listitem>
 
204
          <para>
 
205
            This option is <emphasis>optional</emphasis>.
 
206
          </para>
 
207
          <para>
 
208
            Extended timeout is an added timeout that is given once
 
209
            after a password has been sent successfully to a client.
 
210
            The timeout is by default longer than the normal timeout,
 
211
            and is used for handling the extra long downtime while a
 
212
            machine is booting up.  Time to take into consideration
 
213
            when changing this value is file system checks and quota
 
214
            checks.  The default value is 15 minutes.
 
215
          </para>
 
216
          <para>
 
217
            The format of <replaceable>TIME</replaceable> is the same
 
218
            as for <varname>timeout</varname> below.
 
219
          </para>
 
220
        </listitem>
 
221
      </varlistentry>
 
222
      
 
223
      <varlistentry>
184
224
        <term><option>fingerprint<literal> = </literal
185
225
        ><replaceable>HEXSTRING</replaceable></option></term>
186
226
        <listitem>
228
268
            will wait for a checker to complete until the below
229
269
            <quote><varname>timeout</varname></quote> occurs, at which
230
270
            time the client will be disabled, and any running checker
231
 
            killed.  The default interval is 5 minutes.
 
271
            killed.  The default interval is 2 minutes.
232
272
          </para>
233
273
          <para>
234
274
            The format of <replaceable>TIME</replaceable> is the same
298
338
            This option is <emphasis>optional</emphasis>.
299
339
          </para>
300
340
          <para>
301
 
            The timeout is how long the server will wait (for either a
302
 
            successful checker run or a client receiving its secret)
303
 
            until a client is disabled and not allowed to get the data
304
 
            this server holds.  By default Mandos will use 1 hour.
305
 
          </para>
306
 
          <para>
307
 
            The <replaceable>TIME</replaceable> is specified as a
308
 
            space-separated number of values, each of which is a
309
 
            number and a one-character suffix.  The suffix must be one
310
 
            of <quote>d</quote>, <quote>s</quote>, <quote>m</quote>,
311
 
            <quote>h</quote>, and <quote>w</quote> for days, seconds,
312
 
            minutes, hours, and weeks, respectively.  The values are
313
 
            added together to give the total time value, so all of
314
 
            <quote><literal>330s</literal></quote>,
315
 
            <quote><literal>110s 110s 110s</literal></quote>, and
316
 
            <quote><literal>5m 30s</literal></quote> will give a value
317
 
            of five minutes and thirty seconds.
 
341
            The timeout is how long the server will wait, after a
 
342
            successful checker run, until a client is disabled and not
 
343
            allowed to get the data this server holds.  By default
 
344
            Mandos will use 5 minutes.  See also the
 
345
            <option>extended_timeout</option> option.
 
346
          </para>
 
347
          <para>
 
348
            The <replaceable>TIME</replaceable> is specified as an RFC
 
349
            3339 duration; for example
 
350
            <quote><literal>P1Y2M3DT4H5M6S</literal></quote> meaning
 
351
            one year, two months, three days, four hours, five
 
352
            minutes, and six seconds.  Some values can be omitted, see
 
353
            RFC 3339 Appendix A for details.
 
354
          </para>
 
355
        </listitem>
 
356
      </varlistentry>
 
357
      
 
358
      <varlistentry>
 
359
        <term><option>enabled<literal> = </literal>{ <literal
 
360
        >1</literal> | <literal>yes</literal> | <literal>true</literal
 
361
        > | <literal >on</literal> | <literal>0</literal> | <literal
 
362
        >no</literal> | <literal>false</literal> | <literal
 
363
        >off</literal> }</option></term>
 
364
        <listitem>
 
365
          <para>
 
366
            Whether this client should be enabled by default.  The
 
367
            default is <quote>true</quote>.
318
368
          </para>
319
369
        </listitem>
320
370
      </varlistentry>
364
414
        <quote><literal>approval_duration</literal></quote>,
365
415
        <quote><literal>created</literal></quote>,
366
416
        <quote><literal>enabled</literal></quote>,
 
417
        <quote><literal>expires</literal></quote>,
367
418
        <quote><literal>fingerprint</literal></quote>,
368
419
        <quote><literal>host</literal></quote>,
369
420
        <quote><literal>interval</literal></quote>,
412
463
      <literal>%(<replaceable>foo</replaceable>)s</literal> is
413
464
      obscure.
414
465
    </para>
 
466
    <xi:include href="bugs.xml"/>
415
467
  </refsect1>
416
468
  
417
469
  <refsect1 id="example">
419
471
    <informalexample>
420
472
      <programlisting>
421
473
[DEFAULT]
422
 
timeout = 1h
423
 
interval = 5m
 
474
timeout = PT5M
 
475
interval = PT2M
424
476
checker = fping -q -- %%(host)s
425
477
 
426
478
# Client "foo"
443
495
        4T2zw4dxS5NswXWU0sVEXxjs6PYxuIiCTL7vdpx8QjBkrPWDrAbcMyBr2O
444
496
        QlnHIvPzEArRQLo=
445
497
host = foo.example.org
446
 
interval = 1m
 
498
interval = PT1M
447
499
 
448
500
# Client "bar"
449
501
[bar]
450
502
fingerprint = 3e393aeaefb84c7e89e2f547b3a107558fca3a27
451
503
secfile = /etc/mandos/bar-secret
452
 
timeout = 15m
 
504
timeout = PT15M
453
505
approved_by_default = False
454
 
approval_delay = 30s
 
506
approval_delay = PT30S
455
507
      </programlisting>
456
508
    </informalexample>
457
509
  </refsect1>
459
511
  <refsect1 id="see_also">
460
512
    <title>SEE ALSO</title>
461
513
    <para>
 
514
      <citerefentry><refentrytitle>intro</refentrytitle>
 
515
      <manvolnum>8mandos</manvolnum></citerefentry>,
462
516
      <citerefentry><refentrytitle>mandos-keygen</refentrytitle>
463
517
      <manvolnum>8</manvolnum></citerefentry>,
464
518
      <citerefentry><refentrytitle>mandos.conf</refentrytitle>
465
519
      <manvolnum>5</manvolnum></citerefentry>,
466
520
      <citerefentry><refentrytitle>mandos</refentrytitle>
 
521
      <manvolnum>8</manvolnum></citerefentry>,
 
522
      <citerefentry><refentrytitle>fping</refentrytitle>
467
523
      <manvolnum>8</manvolnum></citerefentry>
468
524
    </para>
 
525
    <variablelist>
 
526
      <varlistentry>
 
527
        <term>
 
528
          RFC 3339: <citetitle>Date and Time on the Internet:
 
529
          Timestamps</citetitle>
 
530
        </term>
 
531
      <listitem>
 
532
        <para>
 
533
          The time intervals are in the "duration" format, as
 
534
          specified in ABNF in Appendix A of RFC 3339.
 
535
        </para>
 
536
      </listitem>
 
537
      </varlistentry>
 
538
    </variablelist>
469
539
  </refsect1>
470
540
</refentry>
471
541
<!-- Local Variables: -->