/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
1
<?xml version="1.0" encoding="UTF-8"?>
24.1.23 by Björn Påhlsson
Added manual pages for:
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
3
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
24.1.23 by Björn Påhlsson
Added manual pages for:
4
<!ENTITY VERSION "1.0">
5
<!ENTITY COMMANDNAME "mandos">
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
6
<!ENTITY OVERVIEW SYSTEM "overview.xml">
24.1.23 by Björn Påhlsson
Added manual pages for:
7
]>
8
9
<refentry>
10
  <refentryinfo>
11
    <title>&COMMANDNAME;</title>
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
12
    <!-- NWalsh’s docbook scripts use this to generate the footer: -->
24.1.23 by Björn Påhlsson
Added manual pages for:
13
    <productname>&COMMANDNAME;</productname>
14
    <productnumber>&VERSION;</productnumber>
15
    <authorgroup>
16
      <author>
17
	<firstname>Björn</firstname>
18
	<surname>Påhlsson</surname>
19
	<address>
20
	  <email>belorn@fukt.bsnet.se</email>
21
	</address>
22
      </author>
23
      <author>
24
	<firstname>Teddy</firstname>
25
	<surname>Hogeborn</surname>
26
	<address>
27
	  <email>teddy@fukt.bsnet.se</email>
28
	</address>
29
      </author>
30
    </authorgroup>
31
    <copyright>
32
      <year>2008</year>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
33
      <holder>Teddy Hogeborn</holder>
34
      <holder>Björn Påhlsson</holder>
24.1.23 by Björn Påhlsson
Added manual pages for:
35
    </copyright>
36
    <legalnotice>
37
      <para>
38
	This manual page is free software: you can redistribute it
39
	and/or modify it under the terms of the GNU General Public
40
	License as published by the Free Software Foundation,
41
	either version 3 of the License, or (at your option) any
42
	later version.
43
      </para>
44
45
      <para>
46
	This manual page is distributed in the hope that it will
47
	be useful, but WITHOUT ANY WARRANTY; without even the
48
	implied warranty of MERCHANTABILITY or FITNESS FOR A
49
	PARTICULAR PURPOSE.  See the GNU General Public License
50
	for more details.
51
      </para>
52
53
      <para>
54
	You should have received a copy of the GNU General Public
55
	License along with this program; If not, see
56
	<ulink url="http://www.gnu.org/licenses/"/>.
57
      </para>
58
    </legalnotice>
59
  </refentryinfo>
60
61
  <refmeta>
62
    <refentrytitle>&COMMANDNAME;</refentrytitle>
24.1.24 by Björn Påhlsson
minor edits
63
    <manvolnum>8</manvolnum>
24.1.23 by Björn Påhlsson
Added manual pages for:
64
  </refmeta>
65
  
66
  <refnamediv>
67
    <refname><command>&COMMANDNAME;</command></refname>
68
    <refpurpose>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
69
      Sends encrypted passwords to authenticated Mandos clients
24.1.23 by Björn Påhlsson
Added manual pages for:
70
    </refpurpose>
71
  </refnamediv>
72
73
  <refsynopsisdiv>
74
    <cmdsynopsis>
75
      <command>&COMMANDNAME;</command>
85 by Teddy Hogeborn
* mandos.xml (SYNOPSIS): Removed unnecessary 'choice="opt"' from <arg>
76
      <arg>--interface<arg choice="plain">IF</arg></arg>
77
      <arg>--address<arg choice="plain">ADDRESS</arg></arg>
78
      <arg>--port<arg choice="plain">PORT</arg></arg>
79
      <arg>--priority<arg choice="plain">PRIORITY</arg></arg>
80
      <arg>--servicename<arg choice="plain">NAME</arg></arg>
81
      <arg>--configdir<arg choice="plain">DIRECTORY</arg></arg>
82
      <arg>--debug</arg>
83
    </cmdsynopsis>
84
    <cmdsynopsis>
85
      <command>&COMMANDNAME;</command>
86
      <arg>-i<arg choice="plain">IF</arg></arg>
87
      <arg>-a<arg choice="plain">ADDRESS</arg></arg>
88
      <arg>-p<arg choice="plain">PORT</arg></arg>
89
      <arg>--priority<arg choice="plain">PRIORITY</arg></arg>
90
      <arg>--servicename<arg choice="plain">NAME</arg></arg>
91
      <arg>--configdir<arg choice="plain">DIRECTORY</arg></arg>
92
      <arg>--debug</arg>
93
    </cmdsynopsis>
94
    <cmdsynopsis>
95
      <command>&COMMANDNAME;</command>
96
      <group choice="req">
97
	<arg choice="plain">-h</arg>
98
	<arg choice="plain">--help</arg>
99
      </group>
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
100
    </cmdsynopsis>
101
    <cmdsynopsis>
102
      <command>&COMMANDNAME;</command>
103
      <arg choice="plain">--version</arg>
104
    </cmdsynopsis>
105
    <cmdsynopsis>
106
      <command>&COMMANDNAME;</command>
107
      <arg choice="plain">--check</arg>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
108
    </cmdsynopsis>
24.1.23 by Björn Påhlsson
Added manual pages for:
109
  </refsynopsisdiv>
110
111
  <refsect1 id="description">
112
    <title>DESCRIPTION</title>
113
    <para>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
114
      <command>&COMMANDNAME;</command> is a server daemon which
115
      handles incoming request for passwords for a pre-defined list of
116
      client host computers.  The Mandos server uses Zeroconf to
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
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.
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
124
    </para>
125
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
126
  </refsect1>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
127
  
128
  <refsect1 id="purpose">
129
    <title>PURPOSE</title>
130
131
    <para>
132
      The purpose of this is to enable <emphasis>remote and unattended
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
133
      rebooting</emphasis> of client host computer with an
134
      <emphasis>encrypted root file system</emphasis>.  See <xref
135
      linkend="overview"/> for details.
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
136
    </para>
137
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
138
  </refsect1>
24.1.55 by Björn Påhlsson
updated some partial manual pages
139
  
140
  <refsect1 id="options">
141
    <title>OPTIONS</title>
24.1.23 by Björn Påhlsson
Added manual pages for:
142
143
    <variablelist>
144
      <varlistentry>
145
	<term><literal>-h</literal>, <literal>--help</literal></term>
146
	<listitem>
147
	  <para>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
148
	    Show a help message and exit
24.1.23 by Björn Påhlsson
Added manual pages for:
149
	  </para>
150
	</listitem>
151
      </varlistentry>
152
153
      <varlistentry>
154
	<term><literal>-i</literal>, <literal>--interface <replaceable>
155
	IF</replaceable></literal></term>
156
	<listitem>
157
	  <para>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
158
	    Only announce the server and listen to requests on network
159
	    interface <replaceable>IF</replaceable>.  Default is to
85 by Teddy Hogeborn
* mandos.xml (SYNOPSIS): Removed unnecessary 'choice="opt"' from <arg>
160
	    use all available interfaces.  <emphasis>Note:</emphasis>
161
	    a failure to bind to the specified interface is not
162
	    considered critical, and the server does not exit.
24.1.23 by Björn Påhlsson
Added manual pages for:
163
	  </para>
164
	</listitem>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
165
      </varlistentry>
24.1.23 by Björn Påhlsson
Added manual pages for:
166
167
      <varlistentry>
168
	<term><literal>-a</literal>, <literal>--address <replaceable>
169
	ADDRESS</replaceable></literal></term>
170
	<listitem>
171
	  <para>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
172
	    If this option is used, the server will only listen to a
173
	    specific address.  This must currently be an IPv6 address;
174
	    an IPv4 address can be specified using the
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
175
	    <quote><literal>::FFFF:192.0.2.3</literal></quote> syntax.
176
	    Also, if a link-local address is specified, an interface
177
	    should be set, since a link-local address is only valid on
178
	    a single interface.  By default, the server will listen to
179
	    all available addresses.
24.1.23 by Björn Påhlsson
Added manual pages for:
180
	  </para>
181
	</listitem>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
182
      </varlistentry>
24.1.23 by Björn Påhlsson
Added manual pages for:
183
184
      <varlistentry>
185
	<term><literal>-p</literal>, <literal>--port <replaceable>
186
	PORT</replaceable></literal></term>
187
	<listitem>
188
	  <para>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
189
	    If this option is used, the server to bind to that
190
	    port. By default, the server will listen to an arbitrary
191
	    port given by the operating system.
24.1.23 by Björn Påhlsson
Added manual pages for:
192
	  </para>
193
	</listitem>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
194
      </varlistentry>
24.1.23 by Björn Påhlsson
Added manual pages for:
195
196
      <varlistentry>
197
	<term><literal>--check</literal></term>
198
	<listitem>
199
	  <para>
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
200
	    Run the server’s self-tests.  This includes any unit
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
201
	    tests, etc.
24.1.23 by Björn Påhlsson
Added manual pages for:
202
	  </para>
203
	</listitem>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
204
      </varlistentry>
24.1.23 by Björn Påhlsson
Added manual pages for:
205
206
      <varlistentry>
207
	<term><literal>--debug</literal></term>
208
	<listitem>
209
	  <para>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
210
	    If the server is run in debug mode, it will run in the
211
	    foreground and print a lot of debugging information.  The
212
	    default is <emphasis>not</emphasis> to run in debug mode.
24.1.23 by Björn Påhlsson
Added manual pages for:
213
	  </para>
214
	</listitem>
215
      </varlistentry>
216
217
      <varlistentry>
218
	<term><literal>--priority <replaceable>
219
	PRIORITY</replaceable></literal></term>
220
	<listitem>
221
	  <para>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
222
	    GnuTLS priority string for the TLS handshake with the
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
223
	    clients.  The default is
224
	    <quote><literal>SECURE256:!CTYPE-X.509:+CTYPE-OPENPGP</literal></quote>.
225
	    See <citerefentry><refentrytitle>gnutls_priority_init
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
226
	    </refentrytitle><manvolnum>3</manvolnum></citerefentry>
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
227
	    for the syntax.  <emphasis>Warning</emphasis>: changing
228
	    this may make the TLS handshake fail, making communication
229
	    with clients impossible.
24.1.23 by Björn Påhlsson
Added manual pages for:
230
	  </para>
231
	</listitem>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
232
      </varlistentry>
24.1.23 by Björn Påhlsson
Added manual pages for:
233
234
      <varlistentry>
235
	<term><literal>--servicename <replaceable>NAME</replaceable>
236
	</literal></term>
237
	<listitem>
238
	  <para>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
239
	    Zeroconf service name.  The default is
86 by Teddy Hogeborn
* mandos-keygen.xml: Removed <?xml-stylesheet>. New entity
240
	    <quote><literal>Mandos</literal></quote>.  This only needs
241
	    to be changed this if it, for some reason, is necessary to
242
	    run more than one server on the same
243
	    <emphasis>host</emphasis>, which would not normally be
244
	    useful.  If there are name collisions on the same
245
	    <emphasis>network</emphasis>, the newer server will
246
	    automatically rename itself to <quote><literal>Mandos
247
	    #2</literal></quote>, and so on; therefore, this option is
248
	    not needed in that case.
24.1.23 by Björn Påhlsson
Added manual pages for:
249
	  </para>
250
	</listitem>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
251
      </varlistentry>
24.1.23 by Björn Påhlsson
Added manual pages for:
252
253
      <varlistentry>
254
	<term><literal>--configdir <replaceable>DIR</replaceable>
255
	</literal></term>
256
	<listitem>
257
	  <para>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
258
	    Directory to search for configuration files.  Default is
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
259
	    <quote><literal>/etc/mandos</literal></quote>.  See
260
	    <citerefentry><refentrytitle>mandos.conf</refentrytitle>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
261
	    <manvolnum>5</manvolnum></citerefentry> and <citerefentry>
262
	    <refentrytitle>mandos-clients.conf</refentrytitle>
263
	    <manvolnum>5</manvolnum></citerefentry>.
24.1.23 by Björn Påhlsson
Added manual pages for:
264
	  </para>
265
	</listitem>
266
      </varlistentry>
24.1.35 by Björn Påhlsson
version 1.0
267
268
      <varlistentry>
269
	<term><literal>--version</literal></term>
270
	<listitem>
271
	  <para>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
272
	    Prints the program version and exit.
24.1.35 by Björn Påhlsson
version 1.0
273
	  </para>
274
	</listitem>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
275
      </varlistentry>
24.1.23 by Björn Påhlsson
Added manual pages for:
276
    </variablelist>
277
  </refsect1>
24.1.55 by Björn Påhlsson
updated some partial manual pages
278
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
279
  <refsect1 id="overview">
280
    <title>OVERVIEW</title>
281
    &OVERVIEW;
282
    <para>
283
      This program is the server part.  It is a normal server program
284
      and will run in a normal system environment, not in an initial
285
      RAM disk environment.
286
    </para>
287
  </refsect1>
288
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
289
  <refsect1 id="protocol">
290
    <title>NETWORK PROTOCOL</title>
291
    <para>
292
      The Mandos server announces itself as a Zeroconf service of type
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
293
      <quote><literal>_mandos._tcp</literal></quote>.  The Mandos
294
      client connects to the announced address and port, and sends a
295
      line of text where the first whitespace-separated field is the
296
      protocol version, which currently is
297
      <quote><literal>1</literal></quote>.  The client and server then
298
      start a TLS protocol handshake with a slight quirk: the Mandos
299
      server program acts as a TLS <quote>client</quote> while the
300
      connecting Mandos client acts as a TLS <quote>server</quote>.
301
      The Mandos client must supply an OpenPGP certificate, and the
302
      fingerprint of this certificate is used by the Mandos server to
303
      look up (in a list read from <filename>clients.conf</filename>
304
      at start time) which binary blob to give the client.  No other
305
      authentication or authorization is done by the server.
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
306
    </para>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
307
    <table>
308
      <title>Mandos Protocol (Version 1)</title><tgroup cols="3"><thead>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
309
      <row>
310
	<entry>Mandos Client</entry>
311
	<entry>Direction</entry>
312
	<entry>Mandos Server</entry>
313
      </row>
314
      </thead><tbody>
315
      <row>
316
	<entry>Connect</entry>
317
	<entry>-><!-- &rarr; --></entry>
318
      </row>
319
      <row>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
320
	<entry><quote><literal>1\r\en</literal></quote></entry>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
321
	<entry>-><!-- &rarr; --></entry>
322
      </row>
323
      <row>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
324
	<entry>TLS handshake <emphasis>as TLS <quote>server</quote>
325
	</emphasis></entry>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
326
	<entry>&lt;-><!-- &xharr; --></entry>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
327
	<entry>TLS handshake <emphasis>as TLS <quote>client</quote>
328
	</emphasis></entry>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
329
      </row>
330
      <row>
331
	<entry>OpenPGP public key (part of TLS handshake)</entry>
332
	<entry>-><!-- &rarr; --></entry>
333
      </row>
334
      <row>
335
	<entry/>
336
	<entry>&lt;-<!-- &larr; --></entry>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
337
	<entry>Binary blob (client will assume OpenPGP data)</entry>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
338
      </row>
339
      <row>
340
	<entry/>
341
	<entry>&lt;-<!-- &larr; --></entry>
342
	<entry>Close</entry>
343
      </row>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
344
    </tbody></tgroup></table>
345
  </refsect1>
346
347
  <refsect1 id="checking">
348
    <title>CHECKING</title>
349
    <para>
350
      The server will, by default, continually check that the clients
351
      are still up.  If a client has not been confirmed as being up
352
      for some time, the client is assumed to be compromised and is no
353
      longer eligible to receive the encrypted password.  The timeout,
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
354
      checker program, and interval between checks can be configured
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
355
      both globally and per client; see <citerefentry>
356
      <refentrytitle>mandos.conf</refentrytitle>
357
      <manvolnum>5</manvolnum></citerefentry> and <citerefentry>
358
      <refentrytitle>mandos-clients.conf</refentrytitle>
359
      <manvolnum>5</manvolnum></citerefentry>.
360
    </para>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
361
  </refsect1>
362
363
  <refsect1 id="logging">
364
    <title>LOGGING</title>
365
    <para>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
366
      The server will send log messaged with various severity levels
367
      to <filename>/dev/log</filename>.  With the
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
368
      <option>--debug</option> option, it will log even more messages,
369
      and also show them on the console.
370
    </para>
371
  </refsect1>
372
24.1.55 by Björn Påhlsson
updated some partial manual pages
373
  <refsect1 id="exit_status">
374
    <title>EXIT STATUS</title>
375
    <para>
81 by Teddy Hogeborn
* Makefile (GNUTLS_CFLAGS, GNUTLS_LIBS, AVAHI_CFLAGS, AVAHI_LIBS,
376
      The server will exit with a non-zero exit status only when a
377
      critical error is encountered.
24.1.55 by Björn Påhlsson
updated some partial manual pages
378
    </para>
379
  </refsect1>
380
85 by Teddy Hogeborn
* mandos.xml (SYNOPSIS): Removed unnecessary 'choice="opt"' from <arg>
381
  <refsect1 id="environment">
382
    <title>ENVIRONMENT</title>
383
    <variablelist>
384
      <varlistentry>
385
	<term><varname>PATH</varname></term>
386
	<listitem>
387
	  <para>
388
	    To start the configured checker (see <xref
389
	    linkend="checking"/>), the server uses
390
	    <filename>/bin/sh</filename>, which in turn uses
391
	    <varname>PATH</varname> to search for matching commands if
392
	    an absolute path is not given.  See <citerefentry>
393
	    <refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum>
394
	  </citerefentry>
395
	  </para>
396
	</listitem>
397
      </varlistentry>
398
    </variablelist>
399
  </refsect1>
400
24.1.55 by Björn Påhlsson
updated some partial manual pages
401
  <refsect1 id="file">
402
    <title>FILES</title>
403
    <para>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
404
      Use the <option>--configdir</option> option to change where
405
      <command>&COMMANDNAME;</command> looks for its configurations
406
      files.  The default file names are listed here.
24.1.55 by Björn Påhlsson
updated some partial manual pages
407
    </para>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
408
    <variablelist>
409
      <varlistentry>
410
	<term><filename>/etc/mandos/mandos.conf</filename></term>
411
	<listitem>
412
	  <para>
413
	    Server-global settings.  See
414
	    <citerefentry><refentrytitle>mandos.conf</refentrytitle>
415
	    <manvolnum>5</manvolnum></citerefentry> for details.
416
	  </para>
417
	</listitem>
418
      </varlistentry>
419
      <varlistentry>
420
	<term><filename>/etc/mandos/clients.conf</filename></term>
421
	<listitem>
422
	  <para>
423
	    List of clients and client-specific settings.  See
424
	    <citerefentry><refentrytitle>mandos-clients.conf</refentrytitle>
425
	    <manvolnum>5</manvolnum></citerefentry> for details.
426
	  </para>
427
	</listitem>
428
      </varlistentry>
429
      <varlistentry>
430
	<term><filename>/var/run/mandos/mandos.pid</filename></term>
431
	<listitem>
432
	  <para>
433
	    The file containing the process id of
434
	    <command>&COMMANDNAME;</command>.
435
	  </para>
436
	</listitem>
437
      </varlistentry>
438
      <varlistentry>
439
	<term><filename>/dev/log</filename></term>
440
	<listitem>
441
	  <para>
442
	    The Unix domain socket to where local syslog messages are
443
	    sent.
444
	  </para>
445
	</listitem>
446
      </varlistentry>
85 by Teddy Hogeborn
* mandos.xml (SYNOPSIS): Removed unnecessary 'choice="opt"' from <arg>
447
      <varlistentry>
448
	<term><filename>/bin/sh</filename></term>
449
	<listitem>
450
	  <para>
451
	    This is used to start the configured checker command for
452
	    each client.  See <citerefentry>
453
	    <refentrytitle>mandos-clients.conf</refentrytitle>
454
	    <manvolnum>5</manvolnum></citerefentry> for details.
455
	  </para>
456
	</listitem>
457
      </varlistentry>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
458
    </variablelist>
459
  </refsect1>
85 by Teddy Hogeborn
* mandos.xml (SYNOPSIS): Removed unnecessary 'choice="opt"' from <arg>
460
  
24.1.55 by Björn Påhlsson
updated some partial manual pages
461
  <refsect1 id="bugs">
462
    <title>BUGS</title>
463
    <para>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
464
      This server might, on especially fatal errors, emit a Python
465
      backtrace.  This could be considered a feature.
24.1.55 by Björn Påhlsson
updated some partial manual pages
466
    </para>
85 by Teddy Hogeborn
* mandos.xml (SYNOPSIS): Removed unnecessary 'choice="opt"' from <arg>
467
    <para>
468
      Currently, if a client is declared <quote>invalid</quote> due to
469
      having timed out, the server does not record this fact onto
470
      permanent storage.  This has some security implications, see
471
      <xref linkend="CLIENTS"/>.
472
    </para>
473
    <para>
474
      There is currently no way of querying the server of the current
475
      status of clients, other than analyzing its <systemitem
476
      class="service">syslog</systemitem> output.
477
    </para>
478
    <para>
479
      There is no fine-grained control over logging and debug output.
480
    </para>
481
    <para>
482
      Debug mode is conflated with running in the foreground.
483
    </para>
484
    <para>
485
      The console log messages does not show a timestamp.
486
    </para>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
487
  </refsect1>
85 by Teddy Hogeborn
* mandos.xml (SYNOPSIS): Removed unnecessary 'choice="opt"' from <arg>
488
  
489
  <refsect1 id="example">
490
    <title>EXAMPLE</title>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
491
    <informalexample>
492
      <para>
493
	Normal invocation needs no options:
494
      </para>
495
      <para>
496
	<userinput>mandos</userinput>
497
      </para>
498
    </informalexample>
499
    <informalexample>
500
      <para>
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
501
	Run the server in debug mode, read configuration files from
502
	the <filename>~/mandos</filename> directory, and use the
503
	Zeroconf service name <quote>Test</quote> to not collide with
504
	any other official Mandos server on this host:
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
505
      </para>
506
      <para>
507
508
<!-- do not wrap this line -->
509
<userinput>mandos --debug --configdir ~/mandos --servicename Test</userinput>
510
511
      </para>
512
    </informalexample>
513
    <informalexample>
514
      <para>
515
	Run the server normally, but only listen to one interface and
516
	only on the link-local address on that interface:
517
      </para>
518
      <para>
519
520
<!-- do not wrap this line -->
521
<userinput>mandos --interface eth7 --address fe80::aede:48ff:fe71:f6f2</userinput>
522
523
      </para>
524
    </informalexample>
24.1.55 by Björn Påhlsson
updated some partial manual pages
525
  </refsect1>
526
527
  <refsect1 id="security">
528
    <title>SECURITY</title>
85 by Teddy Hogeborn
* mandos.xml (SYNOPSIS): Removed unnecessary 'choice="opt"' from <arg>
529
    <refsect2 id="SERVER">
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
530
      <title>SERVER</title>
531
      <para>
85 by Teddy Hogeborn
* mandos.xml (SYNOPSIS): Removed unnecessary 'choice="opt"' from <arg>
532
	Running this <command>&COMMANDNAME;</command> server program
533
	should not in itself present any security risk to the host
534
	computer running it.  The program does not need any special
535
	privileges to run, and is designed to run as a non-root user.
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
536
      </para>
537
    </refsect2>
85 by Teddy Hogeborn
* mandos.xml (SYNOPSIS): Removed unnecessary 'choice="opt"' from <arg>
538
    <refsect2 id="CLIENTS">
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
539
      <title>CLIENTS</title>
540
      <para>
541
	The server only gives out its stored data to clients which
542
	does have the OpenPGP key of the stored fingerprint.  This is
543
	guaranteed by the fact that the client sends its OpenPGP
544
	public key in the TLS handshake; this ensures it to be
545
	genuine.  The server computes the fingerprint of the key
546
	itself and looks up the fingerprint in its list of
547
	clients. The <filename>clients.conf</filename> file (see
548
	<citerefentry><refentrytitle>mandos-clients.conf</refentrytitle>
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
549
	<manvolnum>5</manvolnum></citerefentry>)
550
	<emphasis>must</emphasis> be made non-readable by anyone
551
	except the user running the server.
552
      </para>
553
      <para>
554
	As detailed in <xref linkend="checking"/>, the status of all
555
	client computers will continually be checked and be assumed
556
	compromised if they are gone for too long.
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
557
      </para>
558
      <para>
85 by Teddy Hogeborn
* mandos.xml (SYNOPSIS): Removed unnecessary 'choice="opt"' from <arg>
559
	If a client is compromised, its downtime should be duly noted
560
	by the server which would therefore declare the client
561
	invalid.  But if the server was ever restarted, it would
562
	re-read its client list from its configuration file and again
563
	regard all clients therein as valid, and hence eligible to
564
	receive their passwords.  Therefore, be careful when
86 by Teddy Hogeborn
* mandos-keygen.xml: Removed <?xml-stylesheet>. New entity
565
	restarting servers if it is suspected that a client has, in
566
	fact, been compromised by parties who may now be running a
567
	fake Mandos client with the keys from the non-encrypted
568
	initial RAM image of the client host.  What should be done in
569
	that case (if restarting the server program really is
570
	necessary) is to stop the server program, edit the
571
	configuration file to omit any suspect clients, and restart
572
	the server program.
85 by Teddy Hogeborn
* mandos.xml (SYNOPSIS): Removed unnecessary 'choice="opt"' from <arg>
573
      </para>
574
      <para>
83 by Teddy Hogeborn
* Makefile (MANPOST): Bug fix: do not replace *all* "een" with "en".
575
	For more details on client-side security, see
576
	<citerefentry><refentrytitle>password-request</refentrytitle>
577
	<manvolnum>8mandos</manvolnum></citerefentry>.
578
      </para>
579
    </refsect2>
24.1.55 by Björn Påhlsson
updated some partial manual pages
580
  </refsect1>
581
582
  <refsect1 id="see_also">
583
    <title>SEE ALSO</title>
84 by Teddy Hogeborn
* Makefile (DOCBOOKTOMAN): Use the local manpages/docbook.xsl file, do
584
    <variablelist>
585
      <varlistentry>
586
	<term>
587
	  <citerefentry>
588
	    <refentrytitle>password-request</refentrytitle>
589
	    <manvolnum>8mandos</manvolnum>
590
	  </citerefentry>
591
	</term>
592
	<listitem>
593
	  <para>
594
	    This is the actual program which talks to this server.
595
	    Note that it is normally not invoked directly, and is only
596
	    run in the initial RAM disk environment, and not on a
597
	    fully started system.
598
	  </para>
599
	</listitem>
600
      </varlistentry>
601
      <varlistentry>
602
	<term>
603
	  <ulink url="http://www.zeroconf.org/">Zeroconf</ulink>
604
	</term>
605
	<listitem>
606
	  <para>
607
	    Zeroconf is the network protocol standard used by clients
608
	    for finding this Mandos server on the local network.
609
	  </para>
610
	</listitem>
611
      </varlistentry>
612
      <varlistentry>
613
	<term>
614
	  <ulink url="http://www.avahi.org/">Avahi</ulink>
615
	</term>
616
      <listitem>
617
	<para>
618
	  Avahi is the library this server calls to implement
619
	  Zeroconf service announcements.
620
	</para>
621
      </listitem>
622
      </varlistentry>
623
      <varlistentry>
624
	<term>
625
	  <ulink
626
	      url="http://www.gnu.org/software/gnutls/">GnuTLS</ulink>
627
	</term>
628
      <listitem>
629
	<para>
630
	  GnuTLS is the library this server uses to implement TLS for
631
	  communicating securely with the client, and at the same time
632
	  confidently get the client’s public OpenPGP key.
633
	</para>
634
      </listitem>
635
      </varlistentry>
636
      <varlistentry>
637
	<term>
638
	  <citation>RFC 4291: <citetitle>IP Version 6 Addressing
639
	  Architecture</citetitle>, section 2.5.6, Link-Local IPv6
640
	  Unicast Addresses</citation>
641
	</term>
642
	<listitem>
643
	  <para>
644
	    The clients use IPv6 link-local addresses, which are
645
	    immediately usable since a link-local addresses is
646
	    automatically assigned to a network interfaces when it is
647
	    brought up.
648
	  </para>
649
	</listitem>
650
      </varlistentry>
651
      <varlistentry>
652
	<term>
653
	  <citation>RFC 4346: <citetitle>The Transport Layer Security
654
	  (TLS) Protocol Version 1.1</citetitle></citation>
655
	</term>
656
      <listitem>
657
	<para>
658
	  TLS 1.1 is the protocol implemented by GnuTLS.
659
	</para>
660
      </listitem>
661
      </varlistentry>
662
      <varlistentry>
663
	<term>
664
	  <citation>RFC 4880: <citetitle>OpenPGP Message
665
	  Format</citetitle></citation>
666
	</term>
667
      <listitem>
668
	<para>
669
	  The data sent to clients is binary encrypted OpenPGP data.
670
	</para>
671
      </listitem>
672
      </varlistentry>
673
      <varlistentry>
674
	<term>
675
	  <citation>RFC 5081: <citetitle>Using OpenPGP Keys for
676
	  Transport Layer Security</citetitle></citation>
677
	</term>
678
      <listitem>
679
	<para>
680
	  This is implemented by GnuTLS and used by this server so
681
	  that OpenPGP keys can be used.
682
	</para>
683
      </listitem>
684
      </varlistentry>
685
    </variablelist>
24.1.55 by Björn Påhlsson
updated some partial manual pages
686
  </refsect1>
24.1.23 by Björn Påhlsson
Added manual pages for:
687
</refentry>