75
54
<command>&COMMANDNAME;</command>
76
<arg choice='opt'>--connect<arg choice='plain'>IP</arg></arg>
77
<arg choice='opt'>--keydir<arg choice='plain'>KEYDIR</arg></arg>
78
<arg choice='opt'>--interface<arg choice='plain'>INTERFACE</arg></arg>
79
<arg choice='opt'>--pubkey<arg choice='plain'>PUBKEY</arg></arg>
80
<arg choice='opt'>--seckey<arg choice='plain'>SECKEY</arg></arg>
81
<arg choice='opt'>--priority<arg choice='plain'>PRIORITY</arg></arg>
82
<arg choice='opt'>--dh-bits<arg choice='plain'>BITS</arg></arg>
83
<arg choice='opt'>--debug</arg>
86
<command>&COMMANDNAME;</command>
87
<arg choice='plain'>--help</arg>
90
<command>&COMMANDNAME;</command>
91
<arg choice='plain'>--usage</arg>
94
<command>&COMMANDNAME;</command>
95
<arg choice='plain'>--version</arg>
56
<arg choice="plain"><option>--connect
57
<replaceable>IPADDR</replaceable><literal>:</literal
58
><replaceable>PORT</replaceable></option></arg>
59
<arg choice="plain"><option>-c
60
<replaceable>IPADDR</replaceable><literal>:</literal
61
><replaceable>PORT</replaceable></option></arg>
65
<arg choice="plain"><option>--keydir
66
<replaceable>DIRECTORY</replaceable></option></arg>
67
<arg choice="plain"><option>-d
68
<replaceable>DIRECTORY</replaceable></option></arg>
72
<arg choice="plain"><option>--interface
73
<replaceable>NAME</replaceable></option></arg>
74
<arg choice="plain"><option>-i
75
<replaceable>NAME</replaceable></option></arg>
79
<arg choice="plain"><option>--pubkey
80
<replaceable>FILE</replaceable></option></arg>
81
<arg choice="plain"><option>-p
82
<replaceable>FILE</replaceable></option></arg>
86
<arg choice="plain"><option>--seckey
87
<replaceable>FILE</replaceable></option></arg>
88
<arg choice="plain"><option>-s
89
<replaceable>FILE</replaceable></option></arg>
93
<option>--priority <replaceable>STRING</replaceable></option>
97
<option>--dh-bits <replaceable>BITS</replaceable></option>
101
<option>--debug</option>
105
<command>&COMMANDNAME;</command>
107
<arg choice="plain"><option>--help</option></arg>
108
<arg choice="plain"><option>-?</option></arg>
112
<command>&COMMANDNAME;</command>
113
<arg choice="plain"><option>--usage</option></arg>
116
<command>&COMMANDNAME;</command>
118
<arg choice="plain"><option>--version</option></arg>
119
<arg choice="plain"><option>-V</option></arg>
99
124
<refsect1 id="description">
100
125
<title>DESCRIPTION</title>
102
<command>&COMMANDNAME;</command> is a mandos plugin that works
103
like a client program that through avahi detects mandos servers,
104
sets up a gnutls connect and request a encrypted password. Any
105
passwords given is automaticly decrypted and passed to
127
<command>&COMMANDNAME;</command> is a client program that
128
communicates with <citerefentry><refentrytitle
129
>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 the server, and TLS with
132
an OpenPGP key to ensure authenticity and confidentiality. It
133
keeps running, trying all servers on the network, until it
134
receives a satisfactory reply.
137
This program is not meant to be run directly; it is really meant
138
to run as a plugin of the <application>Mandos</application>
139
<citerefentry><refentrytitle>plugin-runner</refentrytitle>
140
<manvolnum>8mandos</manvolnum></citerefentry>, which in turn
141
runs as a <quote>keyscript</quote> specified in the
142
<citerefentry><refentrytitle>crypttab</refentrytitle>
143
<manvolnum>5</manvolnum></citerefentry> file.
147
<refsect1 id="purpose">
148
<title>PURPOSE</title>
150
The purpose of this is to enable <emphasis>remote and unattended
151
rebooting</emphasis> of client host computer with an
152
<emphasis>encrypted root file system</emphasis>. See <xref
153
linkend="overview"/> for details.
157
<refsect1 id="overview">
158
<title>OVERVIEW</title>
159
<xi:include href="overview.xml"/>
161
This program is the client part. It is a plugin started by
162
<citerefentry><refentrytitle>plugin-runner</refentrytitle>
163
<manvolnum>8mandos</manvolnum></citerefentry> which will run in
164
an initial <acronym>RAM</acronym> disk environment.
167
This program could, theoretically, be used as a keyscript in
168
<filename>/etc/crypttab</filename>, but it would then be
169
impossible to enter the encrypted root disk password at the
170
console, since this program does not read from the console at
171
all. This is why a separate plugin does that, which will be run
172
in parallell to this one.
110
176
<refsect1 id="options">
111
177
<title>OPTIONS</title>
113
Commonly not invoked as command lines but from configuration
114
file of plugin runner.
179
This program is commonly not invoked from the command line; it
180
is normally started by the <application>Mandos</application>
181
plugin runner, see <citerefentry><refentrytitle
182
>plugin-runner</refentrytitle><manvolnum>8mandos</manvolnum>
183
</citerefentry>. Any command line options this program accepts
184
are therefore normally provided by the plugin runner, and not
119
<term><literal>-c</literal>, <literal>--connect=<replaceable>
120
IP</replaceable></literal></term>
123
Connect directly to a specified mandos server
129
<term><literal>-d</literal>, <literal>--keydir=<replaceable>
130
KEYDIR</replaceable></literal></term>
133
Directory where the openpgp keyring is
139
<term><literal>-i</literal>, <literal>--interface=
140
<replaceable>INTERFACE</replaceable></literal></term>
143
Interface that Avahi will conntect through
149
<term><literal>-p</literal>, <literal>--pubkey=<replaceable>
150
PUBKEY</replaceable></literal></term>
153
Public openpgp key for gnutls authentication
159
<term><literal>-s</literal>, <literal>--seckey=<replaceable>
160
SECKEY</replaceable></literal></term>
163
Secret openpgp key for gnutls authentication
169
<term><literal>--priority=<replaceable>PRIORITY</replaceable>
179
<term><literal>--dh-bits=<replaceable>BITS</replaceable>
183
dh-bits to use in gnutls communication
189
<term><literal>--debug</literal></term>
198
<term><literal>-?</literal>, <literal>--help</literal></term>
207
<term><literal>--usage</literal></term>
210
Gives a short usage message
216
<term><literal>-V</literal>, <literal>--version</literal></term>
219
Prints the program version
190
<term><option>--connect=<replaceable
191
>IPADDR</replaceable><literal>:</literal><replaceable
192
>PORT</replaceable></option></term>
194
<replaceable>IPADDR</replaceable><literal>:</literal
195
><replaceable>PORT</replaceable></option></term>
198
Do not use Zeroconf to locate servers. Connect directly
199
to only one specified <application>Mandos</application>
200
server. Note that an IPv6 address has colon characters in
201
it, so the <emphasis>last</emphasis> colon character is
202
assumed to separate the address from the port number.
205
This option is normally only useful for debugging.
211
<term><option>--keydir=<replaceable
212
>DIRECTORY</replaceable></option></term>
214
<replaceable>DIRECTORY</replaceable></option></term>
217
Directory to read the OpenPGP key files
218
<filename>pubkey.txt</filename> and
219
<filename>seckey.txt</filename> from. The default is
220
<filename>/conf/conf.d/mandos</filename> (in the initial
221
<acronym>RAM</acronym> disk environment).
227
<term><option>--interface=
228
<replaceable>NAME</replaceable></option></term>
230
<replaceable>NAME</replaceable></option></term>
233
Network interface that will be brought up and scanned for
234
Mandos servers to connect to. The default it
235
<quote><literal>eth0</literal></quote>.
241
<term><option>--pubkey=<replaceable
242
>FILE</replaceable></option></term>
244
<replaceable>FILE</replaceable></option></term>
247
OpenPGP public key file name. This will be combined with
248
the directory from the <option>--keydir</option> option to
249
form an absolute file name. The default name is
250
<quote><literal>pubkey.txt</literal></quote>.
256
<term><option>--seckey=<replaceable
257
>FILE</replaceable></option></term>
259
<replaceable>FILE</replaceable></option></term>
262
OpenPGP secret key file name. This will be combined with
263
the directory from the <option>--keydir</option> option to
264
form an absolute file name. The default name is
265
<quote><literal>seckey.txt</literal></quote>.
271
<term><option>--priority=<replaceable
272
>STRING</replaceable></option></term>
274
<xi:include href="mandos-options.xml" xpointer="priority"/>
279
<term><option>--dh-bits=<replaceable
280
>BITS</replaceable></option></term>
283
Sets the number of bits to use for the prime number in the
284
TLS Diffie-Hellman key exchange. Default is 1024.
290
<term><option>--debug</option></term>
293
Enable debug mode. This will enable a lot of output to
294
standard error about what the program is doing. The
295
program will still perform all other functions normally.
298
It will also enable debug mode in the Avahi and GnuTLS
299
libraries, making them print large amounts of debugging
306
<term><option>--help</option></term>
307
<term><option>-?</option></term>
310
Gives a help message about options and their meanings.
316
<term><option>--usage</option></term>
319
Gives a short usage message.
325
<term><option>--version</option></term>
326
<term><option>-V</option></term>
329
Prints the program version.
226
336
<refsect1 id="exit_status">
227
337
<title>EXIT STATUS</title>
339
This program will exit with a successful (zero) exit status if a
340
server could be found and the password received from it could be
341
successfully decrypted and output on standard output. The
342
program will exit with a non-zero exit status only if a critical
343
error occurs. Otherwise, it will forever connect to new
344
<application>Mandosservers</application> servers as they appear,
345
trying to get a decryptable password.
232
<refsect1 id="environment">
233
<title>ENVIRONMENT</title>
349
<!-- <refsect1 id="environment"> -->
350
<!-- <title>ENVIRONMENT</title> -->
352
<!-- This program does not use any environment variables. -->
238
356
<refsect1 id="file">
239
357
<title>FILES</title>
244
362
<refsect1 id="bugs">
245
363
<title>BUGS</title>
250
368
<refsect1 id="example">
251
369
<title>EXAMPLE</title>