1
<?xml version='1.0' encoding='UTF-8'?>
2
<?xml-stylesheet type="text/xsl"
3
href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"?>
1
<?xml version="1.0" encoding="UTF-8"?>
4
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
5
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
3
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
6
4
<!ENTITY VERSION "1.0">
7
5
<!ENTITY COMMANDNAME "mandos">
6
<!ENTITY OVERVIEW SYSTEM "overview.xml">
12
11
<title>&COMMANDNAME;</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>&COMMANDNAME;</productname>
15
14
<productnumber>&VERSION;</productnumber>
76
75
<command>&COMMANDNAME;</command>
77
<arg choice='opt'>--interface<arg choice='plain'>IF</arg></arg>
78
<arg choice='opt'>--address<arg choice='plain'>ADDRESS</arg></arg>
79
<arg choice='opt'>--port<arg choice='plain'>PORT</arg></arg>
80
<arg choice='opt'>--priority<arg choice='plain'>PRIORITY</arg></arg>
81
<arg choice='opt'>--servicename<arg choice='plain'>NAME</arg></arg>
82
<arg choice='opt'>--configdir<arg choice='plain'>DIRECTORY</arg></arg>
83
<arg choice='opt'>--debug</arg>
86
<command>&COMMANDNAME;</command>
87
<arg choice='opt'>-i<arg choice='plain'>IF</arg></arg>
88
<arg choice='opt'>-a<arg choice='plain'>ADDRESS</arg></arg>
89
<arg choice='opt'>-p<arg choice='plain'>PORT</arg></arg>
90
<arg choice='opt'>--priority<arg choice='plain'>PRIORITY</arg></arg>
91
<arg choice='opt'>--servicename<arg choice='plain'>NAME</arg></arg>
92
<arg choice='opt'>--configdir<arg choice='plain'>DIRECTORY</arg></arg>
93
<arg choice='opt'>--debug</arg>
96
<command>&COMMANDNAME;</command>
97
<arg choice='plain'>--help</arg>
100
<command>&COMMANDNAME;</command>
101
<arg choice='plain'>--version</arg>
104
<command>&COMMANDNAME;</command>
105
<arg choice='plain'>--check</arg>
76
<arg choice="opt">--interface<arg choice="plain">IF</arg></arg>
77
<arg choice="opt">--address<arg choice="plain">ADDRESS</arg></arg>
78
<arg choice="opt">--port<arg choice="plain">PORT</arg></arg>
79
<arg choice="opt">--priority<arg choice="plain">PRIORITY</arg></arg>
80
<arg choice="opt">--servicename<arg choice="plain">NAME</arg></arg>
81
<arg choice="opt">--configdir<arg choice="plain">DIRECTORY</arg></arg>
82
<arg choice="opt">--debug</arg>
85
<command>&COMMANDNAME;</command>
86
<arg choice="opt">-i<arg choice="plain">IF</arg></arg>
87
<arg choice="opt">-a<arg choice="plain">ADDRESS</arg></arg>
88
<arg choice="opt">-p<arg choice="plain">PORT</arg></arg>
89
<arg choice="opt">--priority<arg choice="plain">PRIORITY</arg></arg>
90
<arg choice="opt">--servicename<arg choice="plain">NAME</arg></arg>
91
<arg choice="opt">--configdir<arg choice="plain">DIRECTORY</arg></arg>
92
<arg choice="opt">--debug</arg>
95
<command>&COMMANDNAME;</command>
96
<arg choice="plain">--help</arg>
99
<command>&COMMANDNAME;</command>
100
<arg choice="plain">--version</arg>
103
<command>&COMMANDNAME;</command>
104
<arg choice="plain">--check</arg>
107
106
</refsynopsisdiv>
112
111
<command>&COMMANDNAME;</command> is a server daemon which
113
112
handles incoming request for passwords for a pre-defined list of
114
113
client host computers. The Mandos server uses Zeroconf to
115
announce itself on the local network, and uses GnuTLS to
116
communicate securely with and to authenticate the clients.
117
Mandos uses IPv6 link-local addresses, since the clients are
118
assumed to not have any other addresses configured. Any
119
authenticated client is then given the pre-encrypted password
120
for that specific client.
114
announce itself on the local network, and uses TLS to
115
communicate securely with and to authenticate the clients. The
116
Mandos server uses IPv6 to allow Mandos clients to use IPv6
117
link-local addresses, since the clients will probably not have
118
any other addresses configured (see <xref linkend="overview"/>).
119
Any authenticated client is then given the stored pre-encrypted
120
password for that specific client.
129
129
The purpose of this is to enable <emphasis>remote and unattended
130
rebooting</emphasis> of any client host computer with an
131
<emphasis>encrypted root file system</emphasis>. The client
132
host computer should start a Mandos client in the initial RAM
133
disk environment, the Mandos client program communicates with
134
this server program to get an encrypted password, which is then
135
decrypted and used to unlock the encrypted root file system.
136
The client host computer can then continue its boot sequence
130
rebooting</emphasis> of client host computer with an
131
<emphasis>encrypted root file system</emphasis>. See <xref
132
linkend="overview"/> for details.
222
217
GnuTLS priority string for the TLS handshake with the
224
<citerefentry><refentrytitle>gnutls_priority_init
218
clients. The default is
219
<quote><literal>SECURE256:!CTYPE-X.509:+CTYPE-OPENPGP</literal></quote>.
220
See <citerefentry><refentrytitle>gnutls_priority_init
225
221
</refentrytitle><manvolnum>3</manvolnum></citerefentry>
226
for the syntax. The default is
227
<quote><literal>SECURE256:!CTYPE-X.509:+CTYPE-OPENPGP</literal></quote>.
228
<emphasis>Warning</emphasis>: changing this may make the
229
TLS handshake fail, making communication with clients
222
for the syntax. <emphasis>Warning</emphasis>: changing
223
this may make the TLS handshake fail, making communication
224
with clients impossible.
244
238
which would not normally be useful. If there are name
245
239
collisions on the same <emphasis>network</emphasis>, the
246
240
newer server will automatically rename itself to
247
<quote><literal>Mandos #2</literal></quote>, and so on,
248
therefore this option is not needed in that case.
241
<quote><literal>Mandos #2</literal></quote>, and so on;
242
therefore, this option is not needed in that case.
341
345
are still up. If a client has not been confirmed as being up
342
346
for some time, the client is assumed to be compromised and is no
343
347
longer eligible to receive the encrypted password. The timeout,
344
checker program and interval between checks can be configured
348
checker program, and interval between checks can be configured
345
349
both globally and per client; see <citerefentry>
346
350
<refentrytitle>mandos.conf</refentrytitle>
347
351
<manvolnum>5</manvolnum></citerefentry> and <citerefentry>
437
441
</informalexample>
438
442
<informalexample>
440
Run the server in debug mode and read configuration files from
441
the <filename>~/mandos</filename> directory:
444
Run the server in debug mode, read configuration files from
445
the <filename>~/mandos</filename> directory, and use the
446
Zeroconf service name <quote>Test</quote> to not collide with
447
any other official Mandos server on this host:
481
489
itself and looks up the fingerprint in its list of
482
490
clients. The <filename>clients.conf</filename> file (see
483
491
<citerefentry><refentrytitle>mandos-clients.conf</refentrytitle>
484
<manvolnum>5</manvolnum></citerefentry>) must be non-readable
485
by anyone except the user running the server.
492
<manvolnum>5</manvolnum></citerefentry>)
493
<emphasis>must</emphasis> be made non-readable by anyone
494
except the user running the server.
497
As detailed in <xref linkend="checking"/>, the status of all
498
client computers will continually be checked and be assumed
499
compromised if they are gone for too long.
488
502
For more details on client-side security, see
495
509
<refsect1 id="see_also">
496
510
<title>SEE ALSO</title>
497
<itemizedlist spacing="compact">
499
<citerefentry><refentrytitle>password-request</refentrytitle>
500
<manvolnum>8mandos</manvolnum></citerefentry>
504
<citerefentry><refentrytitle>plugin-runner</refentrytitle>
505
<manvolnum>8mandos</manvolnum></citerefentry>
509
<ulink url="http://www.zeroconf.org/">Zeroconf</ulink>
513
<ulink url="http://www.avahi.org/">Avahi</ulink>
518
url="http://www.gnu.org/software/gnutls/">GnuTLS</ulink>
522
<citation>RFC 4880: <citetitle>OpenPGP Message
523
Format</citetitle></citation>
527
<citation>RFC 5081: <citetitle>Using OpenPGP Keys for
528
Transport Layer Security</citetitle></citation>
532
<citation>RFC 4291: <citetitle>IP Version 6 Addressing
533
Architecture</citetitle>, section 2.5.6, Link-Local IPv6
534
Unicast Addresses</citation>
515
<refentrytitle>password-request</refentrytitle>
516
<manvolnum>8mandos</manvolnum>
521
This is the actual program which talks to this server.
522
Note that it is normally not invoked directly, and is only
523
run in the initial RAM disk environment, and not on a
524
fully started system.
530
<ulink url="http://www.zeroconf.org/">Zeroconf</ulink>
534
Zeroconf is the network protocol standard used by clients
535
for finding this Mandos server on the local network.
541
<ulink url="http://www.avahi.org/">Avahi</ulink>
545
Avahi is the library this server calls to implement
546
Zeroconf service announcements.
553
url="http://www.gnu.org/software/gnutls/">GnuTLS</ulink>
557
GnuTLS is the library this server uses to implement TLS for
558
communicating securely with the client, and at the same time
559
confidently get the client’s public OpenPGP key.
565
<citation>RFC 4291: <citetitle>IP Version 6 Addressing
566
Architecture</citetitle>, section 2.5.6, Link-Local IPv6
567
Unicast Addresses</citation>
571
The clients use IPv6 link-local addresses, which are
572
immediately usable since a link-local addresses is
573
automatically assigned to a network interfaces when it is
580
<citation>RFC 4346: <citetitle>The Transport Layer Security
581
(TLS) Protocol Version 1.1</citetitle></citation>
585
TLS 1.1 is the protocol implemented by GnuTLS.
591
<citation>RFC 4880: <citetitle>OpenPGP Message
592
Format</citetitle></citation>
596
The data sent to clients is binary encrypted OpenPGP data.
602
<citation>RFC 5081: <citetitle>Using OpenPGP Keys for
603
Transport Layer Security</citetitle></citation>
607
This is implemented by GnuTLS and used by this server so
608
that OpenPGP keys can be used.