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">
4
5
<!ENTITY COMMANDNAME "mandos-client">
5
<!ENTITY TIMESTAMP "2010-09-26">
6
<!ENTITY % common SYSTEM "../common.ent">
6
<!ENTITY TIMESTAMP "2008-09-06">
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>
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 received.
141
130
This program is not meant to be run directly; it is really meant
198
<term><option>--interface=<replaceable
199
>NAME</replaceable></option></term>
187
<term><option>--interface=
188
<replaceable>NAME</replaceable></option></term>
201
190
<replaceable>NAME</replaceable></option></term>
204
193
Network interface that will be brought up and scanned for
205
Mandos servers to connect to. The default is the empty
206
string, which will automatically choose an appropriate
194
Mandos servers to connect to. The default it
195
<quote><literal>eth0</literal></quote>.
210
198
If the <option>--connect</option> option is used, this
211
199
specifies the interface to use to connect to the address
215
Note that since this program will normally run in the
216
initial RAM disk environment, the interface must be an
217
interface which exists at that stage. Thus, the interface
218
can not be a pseudo-interface such as <quote>br0</quote>
219
or <quote>tun0</quote>; such interfaces will not exist
220
until much later in the boot process, and can not be used
224
<replaceable>NAME</replaceable> can be the string
225
<quote><literal>none</literal></quote>; this will not use
226
any specific interface, and will not bring up an interface
227
on startup. This is not recommended, and only meant for
282
<term><option>--delay=<replaceable
283
>SECONDS</replaceable></option></term>
286
After bringing the network interface up, the program waits
287
for the interface to arrive in a <quote>running</quote>
288
state before proceeding. During this time, the kernel log
289
level will be lowered to reduce clutter on the system
290
console, alleviating any other plugins which might be
291
using the system console. This option sets the upper
292
limit of seconds to wait. The default is 2.5 seconds.
298
254
<term><option>--debug</option></term>
454
410
<informalexample>
456
412
Run in debug mode, with a custom key, and do not use Zeroconf
457
to locate a server; connect directly to the IPv6 link-local
458
address <quote><systemitem class="ipaddress"
459
>fe80::aede:48ff:fe71:f6f2</systemitem></quote>, port 4711,
460
using interface eth2:
413
to locate a server; connect directly to the IPv6 address
414
<quote><systemitem class="ipaddress"
415
>2001:db8:f983:bd0b:30de:ae4a:71f2:f672</systemitem></quote>,
416
port 4711, using interface eth2:
464
420
<!-- do not wrap this line -->
465
<userinput>&COMMANDNAME; --debug --pubkey keydir/pubkey.txt --seckey keydir/seckey.txt --connect fe80::aede:48ff:fe71:f6f2:4711 --interface eth2</userinput>
421
<userinput>&COMMANDNAME; --debug --pubkey keydir/pubkey.txt --seckey keydir/seckey.txt --connect 2001:db8:f983:bd0b:30de:ae4a:71f2:f672:4711 --interface eth2</userinput>
468
424
</informalexample>
471
427
<refsect1 id="security">
472
428
<title>SECURITY</title>
493
449
The only remaining weak point is that someone with physical
494
450
access to the client hard drive might turn off the client
495
451
computer, read the OpenPGP keys directly from the hard drive,
496
and communicate with the server. To safeguard against this, the
497
server is supposed to notice the client disappearing and stop
498
giving out the encrypted data. Therefore, it is important to
499
set the timeout and checker interval values tightly on the
500
server. See <citerefentry><refentrytitle
452
and communicate with the server. The defense against this is
453
that the server is supposed to notice the client disappearing
454
and will stop giving out the encrypted data. Therefore, it is
455
important to set the timeout and checker interval values tightly
456
on the server. See <citerefentry><refentrytitle
501
457
>mandos</refentrytitle><manvolnum>8</manvolnum></citerefentry>.