/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.xml

  • Committer: Teddy Hogeborn
  • Date: 2010-09-26 21:27:28 UTC
  • Revision ID: teddy@fukt.bsnet.se-20100926212728-ej205k5037nfhz2g
Update copyright year to "2010" wherever appropriate.

* plugin-runner.c: - '' -
* plugins.d/mandos-client.c: - '' -

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3
3
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4
4
<!ENTITY COMMANDNAME "mandos">
5
 
<!ENTITY TIMESTAMP "2017-02-23">
 
5
<!ENTITY TIMESTAMP "2010-09-26">
6
6
<!ENTITY % common SYSTEM "common.ent">
7
7
%common;
8
8
]>
19
19
        <firstname>Björn</firstname>
20
20
        <surname>Påhlsson</surname>
21
21
        <address>
22
 
          <email>belorn@recompile.se</email>
 
22
          <email>belorn@fukt.bsnet.se</email>
23
23
        </address>
24
24
      </author>
25
25
      <author>
26
26
        <firstname>Teddy</firstname>
27
27
        <surname>Hogeborn</surname>
28
28
        <address>
29
 
          <email>teddy@recompile.se</email>
 
29
          <email>teddy@fukt.bsnet.se</email>
30
30
        </address>
31
31
      </author>
32
32
    </authorgroup>
34
34
      <year>2008</year>
35
35
      <year>2009</year>
36
36
      <year>2010</year>
37
 
      <year>2011</year>
38
 
      <year>2012</year>
39
 
      <year>2013</year>
40
 
      <year>2014</year>
41
 
      <year>2015</year>
42
 
      <year>2016</year>
43
 
      <year>2017</year>
44
37
      <holder>Teddy Hogeborn</holder>
45
38
      <holder>Björn Påhlsson</holder>
46
39
    </copyright>
94
87
      <sbr/>
95
88
      <arg><option>--debug</option></arg>
96
89
      <sbr/>
97
 
      <arg><option>--debuglevel
98
 
      <replaceable>LEVEL</replaceable></option></arg>
99
 
      <sbr/>
100
90
      <arg><option>--no-dbus</option></arg>
101
91
      <sbr/>
102
92
      <arg><option>--no-ipv6</option></arg>
103
 
      <sbr/>
104
 
      <arg><option>--no-restore</option></arg>
105
 
      <sbr/>
106
 
      <arg><option>--statedir
107
 
      <replaceable>DIRECTORY</replaceable></option></arg>
108
 
      <sbr/>
109
 
      <arg><option>--socket
110
 
      <replaceable>FD</replaceable></option></arg>
111
 
      <sbr/>
112
 
      <arg><option>--foreground</option></arg>
113
 
      <sbr/>
114
 
      <arg><option>--no-zeroconf</option></arg>
115
93
    </cmdsynopsis>
116
94
    <cmdsynopsis>
117
95
      <command>&COMMANDNAME;</command>
135
113
    <para>
136
114
      <command>&COMMANDNAME;</command> is a server daemon which
137
115
      handles incoming request for passwords for a pre-defined list of
138
 
      client host computers. For an introduction, see
139
 
      <citerefentry><refentrytitle>intro</refentrytitle>
140
 
      <manvolnum>8mandos</manvolnum></citerefentry>. The Mandos server
141
 
      uses Zeroconf to announce itself on the local network, and uses
142
 
      TLS to communicate securely with and to authenticate the
143
 
      clients.  The Mandos server uses IPv6 to allow Mandos clients to
144
 
      use IPv6 link-local addresses, since the clients will probably
145
 
      not have any other addresses configured (see <xref
146
 
      linkend="overview"/>).  Any authenticated client is then given
147
 
      the stored pre-encrypted password for that specific client.
 
116
      client host computers.  The Mandos server uses Zeroconf to
 
117
      announce itself on the local network, and uses TLS to
 
118
      communicate securely with and to authenticate the clients.  The
 
119
      Mandos server uses IPv6 to allow Mandos clients to use IPv6
 
120
      link-local addresses, since the clients will probably not have
 
121
      any other addresses configured (see <xref linkend="overview"/>).
 
122
      Any authenticated client is then given the stored pre-encrypted
 
123
      password for that specific client.
148
124
    </para>
149
125
  </refsect1>
150
126
  
219
195
      </varlistentry>
220
196
      
221
197
      <varlistentry>
222
 
        <term><option>--debuglevel
223
 
        <replaceable>LEVEL</replaceable></option></term>
224
 
        <listitem>
225
 
          <para>
226
 
            Set the debugging log level.
227
 
            <replaceable>LEVEL</replaceable> is a string, one of
228
 
            <quote><literal>CRITICAL</literal></quote>,
229
 
            <quote><literal>ERROR</literal></quote>,
230
 
            <quote><literal>WARNING</literal></quote>,
231
 
            <quote><literal>INFO</literal></quote>, or
232
 
            <quote><literal>DEBUG</literal></quote>, in order of
233
 
            increasing verbosity.  The default level is
234
 
            <quote><literal>WARNING</literal></quote>.
235
 
          </para>
236
 
        </listitem>
237
 
      </varlistentry>
238
 
      
239
 
      <varlistentry>
240
198
        <term><option>--priority <replaceable>
241
199
        PRIORITY</replaceable></option></term>
242
200
        <listitem>
293
251
          <xi:include href="mandos-options.xml" xpointer="ipv6"/>
294
252
        </listitem>
295
253
      </varlistentry>
296
 
      
297
 
      <varlistentry>
298
 
        <term><option>--no-restore</option></term>
299
 
        <listitem>
300
 
          <xi:include href="mandos-options.xml" xpointer="restore"/>
301
 
          <para>
302
 
            See also <xref linkend="persistent_state"/>.
303
 
          </para>
304
 
        </listitem>
305
 
      </varlistentry>
306
 
      
307
 
      <varlistentry>
308
 
        <term><option>--statedir
309
 
        <replaceable>DIRECTORY</replaceable></option></term>
310
 
        <listitem>
311
 
          <xi:include href="mandos-options.xml" xpointer="statedir"/>
312
 
        </listitem>
313
 
      </varlistentry>
314
 
      
315
 
      <varlistentry>
316
 
        <term><option>--socket
317
 
        <replaceable>FD</replaceable></option></term>
318
 
        <listitem>
319
 
          <xi:include href="mandos-options.xml" xpointer="socket"/>
320
 
        </listitem>
321
 
      </varlistentry>
322
 
      
323
 
      <varlistentry>
324
 
        <term><option>--foreground</option></term>
325
 
        <listitem>
326
 
          <xi:include href="mandos-options.xml"
327
 
                      xpointer="foreground"/>
328
 
        </listitem>
329
 
      </varlistentry>
330
 
      
331
 
      <varlistentry>
332
 
        <term><option>--no-zeroconf</option></term>
333
 
        <listitem>
334
 
          <xi:include href="mandos-options.xml" xpointer="zeroconf"/>
335
 
        </listitem>
336
 
      </varlistentry>
337
 
      
338
254
    </variablelist>
339
255
  </refsect1>
340
256
  
414
330
      for some time, the client is assumed to be compromised and is no
415
331
      longer eligible to receive the encrypted password.  (Manual
416
332
      intervention is required to re-enable a client.)  The timeout,
417
 
      extended timeout, checker program, and interval between checks
418
 
      can be configured both globally and per client; see
419
 
      <citerefentry><refentrytitle>mandos-clients.conf</refentrytitle>
420
 
      <manvolnum>5</manvolnum></citerefentry>.
 
333
      checker program, and interval between checks can be configured
 
334
      both globally and per client; see <citerefentry>
 
335
      <refentrytitle>mandos-clients.conf</refentrytitle>
 
336
      <manvolnum>5</manvolnum></citerefentry>.  A client successfully
 
337
      receiving its password will also be treated as a successful
 
338
      checker run.
421
339
    </para>
422
340
  </refsect1>
423
341
  
445
363
    <title>LOGGING</title>
446
364
    <para>
447
365
      The server will send log message with various severity levels to
448
 
      <filename class="devicefile">/dev/log</filename>.  With the
 
366
      <filename>/dev/log</filename>.  With the
449
367
      <option>--debug</option> option, it will log even more messages,
450
368
      and also show them on the console.
451
369
    </para>
452
370
  </refsect1>
453
371
  
454
 
  <refsect1 id="persistent_state">
455
 
    <title>PERSISTENT STATE</title>
456
 
    <para>
457
 
      Client settings, initially read from
458
 
      <filename>clients.conf</filename>, are persistent across
459
 
      restarts, and run-time changes will override settings in
460
 
      <filename>clients.conf</filename>.  However, if a setting is
461
 
      <emphasis>changed</emphasis> (or a client added, or removed) in
462
 
      <filename>clients.conf</filename>, this will take precedence.
463
 
    </para>
464
 
  </refsect1>
465
 
  
466
372
  <refsect1 id="dbus_interface">
467
373
    <title>D-BUS INTERFACE</title>
468
374
    <para>
530
436
        </listitem>
531
437
      </varlistentry>
532
438
      <varlistentry>
533
 
        <term><filename>/run/mandos.pid</filename></term>
 
439
        <term><filename>/var/run/mandos.pid</filename></term>
534
440
        <listitem>
535
441
          <para>
536
442
            The file containing the process id of the
537
443
            <command>&COMMANDNAME;</command> process started last.
538
 
            <emphasis >Note:</emphasis> If the <filename
539
 
            class="directory">/run</filename> directory does not
540
 
            exist, <filename>/var/run/mandos.pid</filename> will be
541
 
            used instead.
542
 
          </para>
543
 
        </listitem>
544
 
      </varlistentry>
545
 
      <varlistentry>
546
 
        <term><filename
547
 
        class="directory">/var/lib/mandos</filename></term>
548
 
        <listitem>
549
 
          <para>
550
 
            Directory where persistent state will be saved.  Change
551
 
            this with the <option>--statedir</option> option.  See
552
 
            also the <option>--no-restore</option> option.
553
 
          </para>
554
 
        </listitem>
555
 
      </varlistentry>
556
 
      <varlistentry>
557
 
        <term><filename class="devicefile">/dev/log</filename></term>
 
444
          </para>
 
445
        </listitem>
 
446
      </varlistentry>
 
447
      <varlistentry>
 
448
        <term><filename>/dev/log</filename></term>
558
449
        <listitem>
559
450
          <para>
560
451
            The Unix domain socket to where local syslog messages are
583
474
      backtrace.  This could be considered a feature.
584
475
    </para>
585
476
    <para>
 
477
      Currently, if a client is disabled due to having timed out, the
 
478
      server does not record this fact onto permanent storage.  This
 
479
      has some security implications, see <xref linkend="clients"/>.
 
480
    </para>
 
481
    <para>
586
482
      There is no fine-grained control over logging and debug output.
587
483
    </para>
588
484
    <para>
 
485
      Debug mode is conflated with running in the foreground.
 
486
    </para>
 
487
    <para>
 
488
      The console log messages do not show a time stamp.
 
489
    </para>
 
490
    <para>
589
491
      This server does not check the expire time of clients’ OpenPGP
590
492
      keys.
591
493
    </para>
592
 
    <xi:include href="bugs.xml"/>
593
494
  </refsect1>
594
495
  
595
496
  <refsect1 id="example">
605
506
    <informalexample>
606
507
      <para>
607
508
        Run the server in debug mode, read configuration files from
608
 
        the <filename class="directory">~/mandos</filename> directory,
609
 
        and use the Zeroconf service name <quote>Test</quote> to not
610
 
        collide with any other official Mandos server on this host:
 
509
        the <filename>~/mandos</filename> directory, and use the
 
510
        Zeroconf service name <quote>Test</quote> to not collide with
 
511
        any other official Mandos server on this host:
611
512
      </para>
612
513
      <para>
613
514
 
662
563
        compromised if they are gone for too long.
663
564
      </para>
664
565
      <para>
 
566
        If a client is compromised, its downtime should be duly noted
 
567
        by the server which would therefore disable the client.  But
 
568
        if the server was ever restarted, it would re-read its client
 
569
        list from its configuration file and again regard all clients
 
570
        therein as enabled, and hence eligible to receive their
 
571
        passwords.  Therefore, be careful when restarting servers if
 
572
        it is suspected that a client has, in fact, been compromised
 
573
        by parties who may now be running a fake Mandos client with
 
574
        the keys from the non-encrypted initial <acronym>RAM</acronym>
 
575
        image of the client host.  What should be done in that case
 
576
        (if restarting the server program really is necessary) is to
 
577
        stop the server program, edit the configuration file to omit
 
578
        any suspect clients, and restart the server program.
 
579
      </para>
 
580
      <para>
665
581
        For more details on client-side security, see
666
582
        <citerefentry><refentrytitle>mandos-client</refentrytitle>
667
583
        <manvolnum>8mandos</manvolnum></citerefentry>.
672
588
  <refsect1 id="see_also">
673
589
    <title>SEE ALSO</title>
674
590
    <para>
675
 
      <citerefentry><refentrytitle>intro</refentrytitle>
676
 
      <manvolnum>8mandos</manvolnum></citerefentry>,
677
 
      <citerefentry><refentrytitle>mandos-clients.conf</refentrytitle>
678
 
      <manvolnum>5</manvolnum></citerefentry>,
679
 
      <citerefentry><refentrytitle>mandos.conf</refentrytitle>
680
 
      <manvolnum>5</manvolnum></citerefentry>,
681
 
      <citerefentry><refentrytitle>mandos-client</refentrytitle>
682
 
      <manvolnum>8mandos</manvolnum></citerefentry>,
683
 
      <citerefentry><refentrytitle>sh</refentrytitle>
684
 
      <manvolnum>1</manvolnum></citerefentry>
 
591
      <citerefentry>
 
592
        <refentrytitle>mandos-clients.conf</refentrytitle>
 
593
        <manvolnum>5</manvolnum></citerefentry>, <citerefentry>
 
594
        <refentrytitle>mandos.conf</refentrytitle>
 
595
        <manvolnum>5</manvolnum></citerefentry>, <citerefentry>
 
596
        <refentrytitle>mandos-client</refentrytitle>
 
597
        <manvolnum>8mandos</manvolnum></citerefentry>, <citerefentry>
 
598
        <refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum>
 
599
      </citerefentry>
685
600
    </para>
686
601
    <variablelist>
687
602
      <varlistentry>
708
623
      </varlistentry>
709
624
      <varlistentry>
710
625
        <term>
711
 
          <ulink url="https://gnutls.org/">GnuTLS</ulink>
 
626
          <ulink url="http://www.gnu.org/software/gnutls/"
 
627
          >GnuTLS</ulink>
712
628
        </term>
713
629
      <listitem>
714
630
        <para>
752
668
      </varlistentry>
753
669
      <varlistentry>
754
670
        <term>
755
 
          RFC 5246: <citetitle>The Transport Layer Security (TLS)
756
 
          Protocol Version 1.2</citetitle>
 
671
          RFC 4346: <citetitle>The Transport Layer Security (TLS)
 
672
          Protocol Version 1.1</citetitle>
757
673
        </term>
758
674
      <listitem>
759
675
        <para>
760
 
          TLS 1.2 is the protocol implemented by GnuTLS.
 
676
          TLS 1.1 is the protocol implemented by GnuTLS.
761
677
        </para>
762
678
      </listitem>
763
679
      </varlistentry>
773
689
      </varlistentry>
774
690
      <varlistentry>
775
691
        <term>
776
 
          RFC 6091: <citetitle>Using OpenPGP Keys for Transport Layer
777
 
          Security (TLS) Authentication</citetitle>
 
692
          RFC 5081: <citetitle>Using OpenPGP Keys for Transport Layer
 
693
          Security</citetitle>
778
694
        </term>
779
695
      <listitem>
780
696
        <para>