/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 plugins.d/mandos-client.xml

* plugin-runner.c (main): Bug fix: Do setgid before setuid.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<?xml version="1.0" encoding="UTF-8"?>
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
 
<!ENTITY VERSION "1.0">
5
 
<!ENTITY COMMANDNAME "password-request">
6
 
<!ENTITY TIMESTAMP "2008-09-04">
 
4
<!ENTITY COMMANDNAME "mandos-client">
 
5
<!ENTITY TIMESTAMP "2009-01-24">
 
6
<!ENTITY % common SYSTEM "../common.ent">
 
7
%common;
7
8
]>
8
9
 
9
10
<refentry xmlns:xi="http://www.w3.org/2001/XInclude">
10
11
  <refentryinfo>
11
12
    <title>Mandos Manual</title>
12
 
    <!-- Nwalsh’s docbook scripts use this to generate the footer: -->
 
13
    <!-- NWalsh’s docbook scripts use this to generate the footer: -->
13
14
    <productname>Mandos</productname>
14
 
    <productnumber>&VERSION;</productnumber>
 
15
    <productnumber>&version;</productnumber>
15
16
    <date>&TIMESTAMP;</date>
16
17
    <authorgroup>
17
18
      <author>
31
32
    </authorgroup>
32
33
    <copyright>
33
34
      <year>2008</year>
 
35
      <year>2009</year>
34
36
      <holder>Teddy Hogeborn</holder>
35
37
      <holder>Björn Påhlsson</holder>
36
38
    </copyright>
37
39
    <xi:include href="../legalnotice.xml"/>
38
40
  </refentryinfo>
39
 
 
 
41
  
40
42
  <refmeta>
41
43
    <refentrytitle>&COMMANDNAME;</refentrytitle>
42
44
    <manvolnum>8mandos</manvolnum>
45
47
  <refnamediv>
46
48
    <refname><command>&COMMANDNAME;</command></refname>
47
49
    <refpurpose>
48
 
      Client for mandos
 
50
      Client for <application>Mandos</application>
49
51
    </refpurpose>
50
52
  </refnamediv>
51
 
 
 
53
  
52
54
  <refsynopsisdiv>
53
55
    <cmdsynopsis>
54
56
      <command>&COMMANDNAME;</command>
91
93
      </arg>
92
94
      <sbr/>
93
95
      <arg>
 
96
        <option>--delay <replaceable>SECONDS</replaceable></option>
 
97
      </arg>
 
98
      <sbr/>
 
99
      <arg>
94
100
        <option>--debug</option>
95
101
      </arg>
96
102
    </cmdsynopsis>
113
119
      </group>
114
120
    </cmdsynopsis>
115
121
  </refsynopsisdiv>
116
 
 
 
122
  
117
123
  <refsect1 id="description">
118
124
    <title>DESCRIPTION</title>
119
125
    <para>
120
126
      <command>&COMMANDNAME;</command> is a client program that
121
127
      communicates with <citerefentry><refentrytitle
122
128
      >mandos</refentrytitle><manvolnum>8</manvolnum></citerefentry>
123
 
      to get a password.  It uses IPv6 link-local addresses to get
124
 
      network connectivity, Zeroconf to find servers, and TLS with an
125
 
      OpenPGP key to ensure authenticity and confidentiality.  It
126
 
      keeps running, trying all servers on the network, until it
127
 
      receives a satisfactory reply or a TERM signal is received.
 
129
      to get a password.  In slightly more detail, this client program
 
130
      brings up a network interface, uses the interface’s IPv6
 
131
      link-local address to get network connectivity, uses Zeroconf to
 
132
      find servers on the local network, and communicates with servers
 
133
      using TLS with an OpenPGP key to ensure authenticity and
 
134
      confidentiality.  This client program keeps running, trying all
 
135
      servers on the network, until it receives a satisfactory reply
 
136
      or a TERM signal is received.  If no servers are found, or after
 
137
      all servers have been tried, it waits indefinitely for new
 
138
      servers to appear.
128
139
    </para>
129
140
    <para>
130
141
      This program is not meant to be run directly; it is really meant
199
210
            specifies the interface to use to connect to the address
200
211
            given.
201
212
          </para>
 
213
          <para>
 
214
            Note that since this program will normally run in the
 
215
            initial RAM disk environment, the interface must be an
 
216
            interface which exists at that stage.  Thus, the interface
 
217
            can not be a pseudo-interface such as <quote>br0</quote>
 
218
            or <quote>tun0</quote>; such interfaces will not exist
 
219
            until much later in the boot process, and can not be used
 
220
            by this program.
 
221
          </para>
202
222
        </listitem>
203
223
      </varlistentry>
204
224
      
215
235
          </para>
216
236
        </listitem>
217
237
      </varlistentry>
218
 
 
 
238
      
219
239
      <varlistentry>
220
240
        <term><option>--seckey=<replaceable
221
241
        >FILE</replaceable></option></term>
238
258
                      xpointer="priority"/>
239
259
        </listitem>
240
260
      </varlistentry>
241
 
 
 
261
      
242
262
      <varlistentry>
243
263
        <term><option>--dh-bits=<replaceable
244
264
        >BITS</replaceable></option></term>
249
269
          </para>
250
270
        </listitem>
251
271
      </varlistentry>
 
272
 
 
273
      <varlistentry>
 
274
        <term><option>--delay=<replaceable
 
275
        >SECONDS</replaceable></option></term>
 
276
        <listitem>
 
277
          <para>
 
278
            After bringing the network interface up, the program waits
 
279
            for the interface to arrive in a <quote>running</quote>
 
280
            state before proceeding.  During this time, the kernel log
 
281
            level will be lowered to reduce clutter on the system
 
282
            console, alleviating any other plugins which might be
 
283
            using the system console.  This option sets the upper
 
284
            limit of seconds to wait.  The default is 2.5 seconds.
 
285
          </para>
 
286
        </listitem>
 
287
      </varlistentry>
252
288
      
253
289
      <varlistentry>
254
290
        <term><option>--debug</option></term>
284
320
          </para>
285
321
        </listitem>
286
322
      </varlistentry>
287
 
 
 
323
      
288
324
      <varlistentry>
289
325
        <term><option>--version</option></term>
290
326
        <term><option>-V</option></term>
296
332
      </varlistentry>
297
333
    </variablelist>
298
334
  </refsect1>
299
 
 
 
335
  
300
336
  <refsect1 id="overview">
301
337
    <title>OVERVIEW</title>
302
338
    <xi:include href="../overview.xml"/>
311
347
      <filename>/etc/crypttab</filename>, but it would then be
312
348
      impossible to enter a password for the encrypted root disk at
313
349
      the console, since this program does not read from the console
314
 
      at all.  This is why a separate plugin (<citerefentry>
315
 
      <refentrytitle>password-prompt</refentrytitle>
316
 
      <manvolnum>8mandos</manvolnum></citerefentry>) does that, which
317
 
      will be run in parallel to this one by the plugin runner.
 
350
      at all.  This is why a separate plugin runner (<citerefentry>
 
351
      <refentrytitle>plugin-runner</refentrytitle>
 
352
      <manvolnum>8mandos</manvolnum></citerefentry>) is used to run
 
353
      both this program and others in in parallel,
 
354
      <emphasis>one</emphasis> of which will prompt for passwords on
 
355
      the system console.
318
356
    </para>
319
357
  </refsect1>
320
358
  
327
365
      program will exit with a non-zero exit status only if a critical
328
366
      error occurs.  Otherwise, it will forever connect to new
329
367
      <application>Mandos</application> servers as they appear, trying
330
 
      to get a decryptable password.
 
368
      to get a decryptable password and print it.
331
369
    </para>
332
370
  </refsect1>
333
371
  
341
379
    </para>
342
380
  </refsect1>
343
381
  
344
 
  <refsect1 id="file">
 
382
  <refsect1 id="files">
345
383
    <title>FILES</title>
346
384
    <variablelist>
347
385
      <varlistentry>
366
404
<!--     <para> -->
367
405
<!--     </para> -->
368
406
<!--   </refsect1> -->
369
 
 
 
407
  
370
408
  <refsect1 id="example">
371
409
    <title>EXAMPLE</title>
372
410
    <para>
421
459
      </para>
422
460
    </informalexample>
423
461
  </refsect1>
424
 
 
 
462
  
425
463
  <refsect1 id="security">
426
464
    <title>SECURITY</title>
427
465
    <para>
447
485
      The only remaining weak point is that someone with physical
448
486
      access to the client hard drive might turn off the client
449
487
      computer, read the OpenPGP keys directly from the hard drive,
450
 
      and communicate with the server.  The defense against this is
451
 
      that the server is supposed to notice the client disappearing
452
 
      and will stop giving out the encrypted data.  Therefore, it is
453
 
      important to set the timeout and checker interval values tightly
454
 
      on the server.  See <citerefentry><refentrytitle
 
488
      and communicate with the server.  To safeguard against this, the
 
489
      server is supposed to notice the client disappearing and stop
 
490
      giving out the encrypted data.  Therefore, it is important to
 
491
      set the timeout and checker interval values tightly on the
 
492
      server.  See <citerefentry><refentrytitle
455
493
      >mandos</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
456
494
    </para>
457
495
    <para>
468
506
      confidential.
469
507
    </para>
470
508
  </refsect1>
471
 
 
 
509
  
472
510
  <refsect1 id="see_also">
473
511
    <title>SEE ALSO</title>
474
512
    <para>
599
637
      </varlistentry>
600
638
    </variablelist>
601
639
  </refsect1>
602
 
 
603
640
</refentry>
 
641
 
604
642
<!-- Local Variables: -->
605
643
<!-- time-stamp-start: "<!ENTITY TIMESTAMP [\"']" -->
606
644
<!-- time-stamp-end: "[\"']>" -->