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 COMMANDNAME "mandos-client">
5
<!ENTITY TIMESTAMP "2009-01-24">
6
<!ENTITY % common SYSTEM "../common.ent">
4
<!ENTITY VERSION "1.0">
5
<!ENTITY COMMANDNAME "password-request">
6
<!ENTITY TIMESTAMP "2008-09-03">
10
9
<refentry xmlns:xi="http://www.w3.org/2001/XInclude">
12
11
<title>Mandos Manual</title>
13
<!-- NWalsh’s docbook scripts use this to generate the footer: -->
12
<!-- Nwalsh’s docbook scripts use this to generate the footer: -->
14
13
<productname>Mandos</productname>
15
<productnumber>&version;</productnumber>
14
<productnumber>&VERSION;</productnumber>
16
15
<date>&TIMESTAMP;</date>
36
34
<holder>Teddy Hogeborn</holder>
37
35
<holder>Björn Påhlsson</holder>
39
37
<xi:include href="../legalnotice.xml"/>
43
41
<refentrytitle>&COMMANDNAME;</refentrytitle>
44
42
<manvolnum>8mandos</manvolnum>
48
46
<refname><command>&COMMANDNAME;</command></refname>
50
Client for <application>Mandos</application>
56
54
<command>&COMMANDNAME;</command>
58
56
<arg choice="plain"><option>--connect
59
<replaceable>ADDRESS</replaceable><literal>:</literal
57
<replaceable>IPADDR</replaceable><literal>:</literal
60
58
><replaceable>PORT</replaceable></option></arg>
61
59
<arg choice="plain"><option>-c
62
<replaceable>ADDRESS</replaceable><literal>:</literal
60
<replaceable>IPADDR</replaceable><literal>:</literal
63
61
><replaceable>PORT</replaceable></option></arg>
121
115
</refsynopsisdiv>
123
117
<refsect1 id="description">
124
118
<title>DESCRIPTION</title>
126
120
<command>&COMMANDNAME;</command> is a client program that
127
121
communicates with <citerefentry><refentrytitle
128
122
>mandos</refentrytitle><manvolnum>8</manvolnum></citerefentry>
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
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 recieved.
141
130
This program is not meant to be run directly; it is really meant
210
199
specifies the interface to use to connect to the address
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
274
<term><option>--delay=<replaceable
275
>SECONDS</replaceable></option></term>
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.
290
254
<term><option>--debug</option></term>
347
311
<filename>/etc/crypttab</filename>, but it would then be
348
312
impossible to enter a password for the encrypted root disk at
349
313
the console, since this program does not read from the console
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
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 parallell to this one by the plugin runner.
365
327
program will exit with a non-zero exit status only if a critical
366
328
error occurs. Otherwise, it will forever connect to new
367
329
<application>Mandos</application> servers as they appear, trying
368
to get a decryptable password and print it.
330
to get a decryptable password.
485
446
The only remaining weak point is that someone with physical
486
447
access to the client hard drive might turn off the client
487
448
computer, read the OpenPGP keys directly from the hard drive,
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
449
and communicate with the server. The defense against this is
450
that the server is supposed to notice the client disappearing
451
and will stop giving out the encrypted data. Therefore, it is
452
important to set the timeout and checker interval values tightly
453
on the server. See <citerefentry><refentrytitle
493
454
>mandos</refentrytitle><manvolnum>8</manvolnum></citerefentry>.