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

  • Committer: Teddy Hogeborn
  • Date: 2009-01-27 00:07:26 UTC
  • Revision ID: teddy@fukt.bsnet.se-20090127000726-4cafcfy35g8kh2b8
* INSTALL (Prerequisites/Mandos Server): Added "PyGObject".

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-03">
 
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>
55
57
      <group>
56
58
        <arg choice="plain"><option>--connect
57
 
        <replaceable>IPADDR</replaceable><literal>:</literal
 
59
        <replaceable>ADDRESS</replaceable><literal>:</literal
58
60
        ><replaceable>PORT</replaceable></option></arg>
59
61
        <arg choice="plain"><option>-c
60
 
        <replaceable>IPADDR</replaceable><literal>:</literal
 
62
        <replaceable>ADDRESS</replaceable><literal>:</literal
61
63
        ><replaceable>PORT</replaceable></option></arg>
62
64
      </group>
63
65
      <sbr/>
64
66
      <group>
65
 
        <arg choice="plain"><option>--keydir
66
 
        <replaceable>DIRECTORY</replaceable></option></arg>
67
 
        <arg choice="plain"><option>-d
68
 
        <replaceable>DIRECTORY</replaceable></option></arg>
69
 
      </group>
70
 
      <sbr/>
71
 
      <group>
72
67
        <arg choice="plain"><option>--interface
73
68
        <replaceable>NAME</replaceable></option></arg>
74
69
        <arg choice="plain"><option>-i
120
115
      </group>
121
116
    </cmdsynopsis>
122
117
  </refsynopsisdiv>
123
 
 
 
118
  
124
119
  <refsect1 id="description">
125
120
    <title>DESCRIPTION</title>
126
121
    <para>
127
122
      <command>&COMMANDNAME;</command> is a client program that
128
123
      communicates with <citerefentry><refentrytitle
129
124
      >mandos</refentrytitle><manvolnum>8</manvolnum></citerefentry>
130
 
      to get a password.  It uses IPv6 link-local addresses to get
131
 
      network connectivity, Zeroconf to find servers, and TLS with an
132
 
      OpenPGP key to ensure authenticity and confidentiality.  It
133
 
      keeps running, trying all servers on the network, until it
134
 
      receives a satisfactory reply or a TERM signal is recieved.
 
125
      to get a password.  In slightly more detail, this client program
 
126
      brings up a network interface, uses the interface’s IPv6
 
127
      link-local address to get network connectivity, uses Zeroconf to
 
128
      find servers on the local network, and communicates with servers
 
129
      using TLS with an OpenPGP key to ensure authenticity and
 
130
      confidentiality.  This client program keeps running, trying all
 
131
      servers on the network, until it receives a satisfactory reply
 
132
      or a TERM signal is received.  If no servers are found, or after
 
133
      all servers have been tried, it waits indefinitely for new
 
134
      servers to appear.
135
135
    </para>
136
136
    <para>
137
137
      This program is not meant to be run directly; it is really meant
191
191
      </varlistentry>
192
192
      
193
193
      <varlistentry>
194
 
        <term><option>--keydir=<replaceable
195
 
        >DIRECTORY</replaceable></option></term>
196
 
        <term><option>-d
197
 
        <replaceable>DIRECTORY</replaceable></option></term>
198
 
        <listitem>
199
 
          <para>
200
 
            Directory to read the OpenPGP key files
201
 
            <filename>pubkey.txt</filename> and
202
 
            <filename>seckey.txt</filename> from.  The default is
203
 
            <filename>/conf/conf.d/mandos</filename> (in the initial
204
 
            <acronym>RAM</acronym> disk environment).
205
 
          </para>
206
 
        </listitem>
207
 
      </varlistentry>
208
 
 
209
 
      <varlistentry>
210
194
        <term><option>--interface=
211
195
        <replaceable>NAME</replaceable></option></term>
212
196
        <term><option>-i
222
206
            specifies the interface to use to connect to the address
223
207
            given.
224
208
          </para>
 
209
          <para>
 
210
            Note that since this program will normally run in the
 
211
            initial RAM disk environment, the interface must be an
 
212
            interface which exists at that stage.  Thus, the interface
 
213
            can not be a pseudo-interface such as <quote>br0</quote>
 
214
            or <quote>tun0</quote>; such interfaces will not exist
 
215
            until much later in the boot process, and can not be used
 
216
            by this program.
 
217
          </para>
225
218
        </listitem>
226
219
      </varlistentry>
227
220
      
232
225
        <replaceable>FILE</replaceable></option></term>
233
226
        <listitem>
234
227
          <para>
235
 
            OpenPGP public key file base name.  This will be combined
236
 
            with the directory from the <option>--keydir</option>
237
 
            option to form an absolute file name.  The default name is
238
 
            <quote><literal>pubkey.txt</literal></quote>.
 
228
            OpenPGP public key file name.  The default name is
 
229
            <quote><filename>/conf/conf.d/mandos/pubkey.txt</filename
 
230
            ></quote>.
239
231
          </para>
240
232
        </listitem>
241
233
      </varlistentry>
242
 
 
 
234
      
243
235
      <varlistentry>
244
236
        <term><option>--seckey=<replaceable
245
237
        >FILE</replaceable></option></term>
247
239
        <replaceable>FILE</replaceable></option></term>
248
240
        <listitem>
249
241
          <para>
250
 
            OpenPGP secret key file base name.  This will be combined
251
 
            with the directory from the <option>--keydir</option>
252
 
            option to form an absolute file name.  The default name is
253
 
            <quote><literal>seckey.txt</literal></quote>.
 
242
            OpenPGP secret key file name.  The default name is
 
243
            <quote><filename>/conf/conf.d/mandos/seckey.txt</filename
 
244
            ></quote>.
254
245
          </para>
255
246
        </listitem>
256
247
      </varlistentry>
263
254
                      xpointer="priority"/>
264
255
        </listitem>
265
256
      </varlistentry>
266
 
 
 
257
      
267
258
      <varlistentry>
268
259
        <term><option>--dh-bits=<replaceable
269
260
        >BITS</replaceable></option></term>
309
300
          </para>
310
301
        </listitem>
311
302
      </varlistentry>
312
 
 
 
303
      
313
304
      <varlistentry>
314
305
        <term><option>--version</option></term>
315
306
        <term><option>-V</option></term>
321
312
      </varlistentry>
322
313
    </variablelist>
323
314
  </refsect1>
324
 
 
 
315
  
325
316
  <refsect1 id="overview">
326
317
    <title>OVERVIEW</title>
327
318
    <xi:include href="../overview.xml"/>
336
327
      <filename>/etc/crypttab</filename>, but it would then be
337
328
      impossible to enter a password for the encrypted root disk at
338
329
      the console, since this program does not read from the console
339
 
      at all.  This is why a separate plugin (<citerefentry>
340
 
      <refentrytitle>password-prompt</refentrytitle>
341
 
      <manvolnum>8mandos</manvolnum></citerefentry>) does that, which
342
 
      will be run in parallell to this one by the plugin runner.
 
330
      at all.  This is why a separate plugin runner (<citerefentry>
 
331
      <refentrytitle>plugin-runner</refentrytitle>
 
332
      <manvolnum>8mandos</manvolnum></citerefentry>) is used to run
 
333
      both this program and others in in parallel,
 
334
      <emphasis>one</emphasis> of which will prompt for passwords on
 
335
      the system console.
343
336
    </para>
344
337
  </refsect1>
345
338
  
352
345
      program will exit with a non-zero exit status only if a critical
353
346
      error occurs.  Otherwise, it will forever connect to new
354
347
      <application>Mandos</application> servers as they appear, trying
355
 
      to get a decryptable password.
 
348
      to get a decryptable password and print it.
356
349
    </para>
357
350
  </refsect1>
358
351
  
366
359
    </para>
367
360
  </refsect1>
368
361
  
369
 
  <refsect1 id="file">
 
362
  <refsect1 id="files">
370
363
    <title>FILES</title>
371
364
    <variablelist>
372
365
      <varlistentry>
391
384
<!--     <para> -->
392
385
<!--     </para> -->
393
386
<!--   </refsect1> -->
394
 
 
 
387
  
395
388
  <refsect1 id="example">
396
389
    <title>EXAMPLE</title>
397
390
    <para>
411
404
    </informalexample>
412
405
    <informalexample>
413
406
      <para>
414
 
        Search for Mandos servers on another interface:
 
407
        Search for Mandos servers (and connect to them) using another
 
408
        interface:
415
409
      </para>
416
410
      <para>
417
411
        <!-- do not wrap this line -->
420
414
    </informalexample>
421
415
    <informalexample>
422
416
      <para>
423
 
        Run in debug mode, and use a custom key directory:
 
417
        Run in debug mode, and use a custom key:
424
418
      </para>
425
419
      <para>
426
 
        <!-- do not wrap this line -->
427
 
        <userinput>&COMMANDNAME; --debug --keydir keydir</userinput>
 
420
 
 
421
<!-- do not wrap this line -->
 
422
<userinput>&COMMANDNAME; --debug --pubkey keydir/pubkey.txt --seckey keydir/seckey.txt</userinput>
 
423
 
428
424
      </para>
429
425
    </informalexample>
430
426
    <informalexample>
431
427
      <para>
432
 
        Run in debug mode, with a custom key directory, and do not use
433
 
        Zeroconf to locate a server; connect directly to the IPv6
434
 
        address <quote><systemitem class="ipaddress"
 
428
        Run in debug mode, with a custom key, and do not use Zeroconf
 
429
        to locate a server; connect directly to the IPv6 address
 
430
        <quote><systemitem class="ipaddress"
435
431
        >2001:db8:f983:bd0b:30de:ae4a:71f2:f672</systemitem></quote>,
436
432
        port 4711, using interface eth2:
437
433
      </para>
438
434
      <para>
439
435
 
440
436
<!-- do not wrap this line -->
441
 
<userinput>&COMMANDNAME; --debug --keydir keydir --connect 2001:db8:f983:bd0b:30de:ae4a:71f2:f672:4711 --interface eth2</userinput>
 
437
<userinput>&COMMANDNAME; --debug --pubkey keydir/pubkey.txt --seckey keydir/seckey.txt --connect 2001:db8:f983:bd0b:30de:ae4a:71f2:f672:4711 --interface eth2</userinput>
442
438
 
443
439
      </para>
444
440
    </informalexample>
445
441
  </refsect1>
446
 
 
 
442
  
447
443
  <refsect1 id="security">
448
444
    <title>SECURITY</title>
449
445
    <para>
469
465
      The only remaining weak point is that someone with physical
470
466
      access to the client hard drive might turn off the client
471
467
      computer, read the OpenPGP keys directly from the hard drive,
472
 
      and communicate with the server.  The defense against this is
473
 
      that the server is supposed to notice the client disappearing
474
 
      and will stop giving out the encrypted data.  Therefore, it is
475
 
      important to set the timeout and checker interval values tightly
476
 
      on the server.  See <citerefentry><refentrytitle
 
468
      and communicate with the server.  To safeguard against this, the
 
469
      server is supposed to notice the client disappearing and stop
 
470
      giving out the encrypted data.  Therefore, it is important to
 
471
      set the timeout and checker interval values tightly on the
 
472
      server.  See <citerefentry><refentrytitle
477
473
      >mandos</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
478
474
    </para>
479
475
    <para>
490
486
      confidential.
491
487
    </para>
492
488
  </refsect1>
493
 
 
 
489
  
494
490
  <refsect1 id="see_also">
495
491
    <title>SEE ALSO</title>
496
492
    <para>
621
617
      </varlistentry>
622
618
    </variablelist>
623
619
  </refsect1>
624
 
 
625
620
</refentry>
 
621
 
626
622
<!-- Local Variables: -->
627
623
<!-- time-stamp-start: "<!ENTITY TIMESTAMP [\"']" -->
628
624
<!-- time-stamp-end: "[\"']>" -->