/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to plugins.d/mandos-client.xml

  • Committer: Teddy Hogeborn
  • Date: 2009-02-09 02:01:13 UTC
  • Revision ID: teddy@fukt.bsnet.se-20090209020113-726hq380zvp8zt97
Four new interrelated features:

1. Support using a different network interface via both initramfs.conf
   (the DEVICE setting) and the kernel command line (sixth field of
   the "ip=" option as in Linux' Documentation/nfsroot.txt).

2. Support connecting to a specified Mandos server directly using a
   kernel command line option ("mandos=connect:<ADDRESS>:<PORT>").

3. Support connecting directly to an IPv4 address (and port) using the
   "--connect" option of mandos-client.

4. Support an empty string to the --interface option to mandos-client.

* Makefile (WARN): Increase strictness by changing to
                   "-Wstrict-aliasing=1".

* debian/mandos-client.README.Debian (Use the Correct Network
  Interface): Changed to refer to initramfs.conf and nfsroot.txt.
  (Test the Server): Improve wording.
  (Non-local Connection): New section.
* initramfs-tools-script: Obey DEVICE environment variable and setting
                          from "/conf/initramfs.conf".  Also let any
                          "ip=" kernel command line option override
                          it.  Support new "mandos=connect" option.
                          Call "configure_networking" to set up IP
                          address on interface if necessary.
* plugin-runner.conf: Change example.
* plugins.d/mandos-client.c: Some whitespace and comment changes.
  (start_mandos_communication): Take an additional argument for
                                address family, all callers changed.
                                Connect to an IPv4 address if address
                                family is AF_INET.  Only set IPv6
                                scope_id for link-local addresses.
  (main): Accept empty interface name; this will not bring up any
         interface and leave the interface as unspecified.  Also do
         not restore kernel log level if lowering it failed.
* plugins.d/mandos-client.xml (OPTIONS): Document that the
                                         "--interface" option accepts
                                         an empty string.
  (EXAMPLE): Change example IPv6 address to a link-local address.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
4
<!ENTITY COMMANDNAME "mandos-client">
5
 
<!ENTITY TIMESTAMP "2008-10-03">
 
5
<!ENTITY TIMESTAMP "2009-02-09">
6
6
<!ENTITY % common SYSTEM "../common.ent">
7
7
%common;
8
8
]>
32
32
    </authorgroup>
33
33
    <copyright>
34
34
      <year>2008</year>
 
35
      <year>2009</year>
35
36
      <holder>Teddy Hogeborn</holder>
36
37
      <holder>Björn Påhlsson</holder>
37
38
    </copyright>
92
93
      </arg>
93
94
      <sbr/>
94
95
      <arg>
 
96
        <option>--delay <replaceable>SECONDS</replaceable></option>
 
97
      </arg>
 
98
      <sbr/>
 
99
      <arg>
95
100
        <option>--debug</option>
96
101
      </arg>
97
102
    </cmdsynopsis>
121
126
      <command>&COMMANDNAME;</command> is a client program that
122
127
      communicates with <citerefentry><refentrytitle
123
128
      >mandos</refentrytitle><manvolnum>8</manvolnum></citerefentry>
124
 
      to get a password.  It uses IPv6 link-local addresses to get
125
 
      network connectivity, Zeroconf to find servers, and TLS with an
126
 
      OpenPGP key to ensure authenticity and confidentiality.  It
127
 
      keeps running, trying all servers on the network, until it
128
 
      receives a satisfactory reply or a TERM signal is received.
 
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
 
138
      servers to appear.
129
139
    </para>
130
140
    <para>
131
141
      This program is not meant to be run directly; it is really meant
185
195
      </varlistentry>
186
196
      
187
197
      <varlistentry>
188
 
        <term><option>--interface=
189
 
        <replaceable>NAME</replaceable></option></term>
 
198
        <term><option>--interface=<replaceable
 
199
        >NAME</replaceable></option></term>
190
200
        <term><option>-i
191
201
        <replaceable>NAME</replaceable></option></term>
192
202
        <listitem>
193
203
          <para>
194
204
            Network interface that will be brought up and scanned for
195
 
            Mandos servers to connect to.  The default it
 
205
            Mandos servers to connect to.  The default is
196
206
            <quote><literal>eth0</literal></quote>.
197
207
          </para>
198
208
          <para>
200
210
            specifies the interface to use to connect to the address
201
211
            given.
202
212
          </para>
 
213
          <para>
 
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
 
220
            by this program.
 
221
          </para>
 
222
          <para>
 
223
            <replaceable>NAME</replaceable> can be the empty string;
 
224
            this will not use any specific interface, and will not
 
225
            bring up an interface on startup.  This is not
 
226
            recommended, and only meant for advanced users.
 
227
          </para>
203
228
        </listitem>
204
229
      </varlistentry>
205
230
      
250
275
          </para>
251
276
        </listitem>
252
277
      </varlistentry>
 
278
 
 
279
      <varlistentry>
 
280
        <term><option>--delay=<replaceable
 
281
        >SECONDS</replaceable></option></term>
 
282
        <listitem>
 
283
          <para>
 
284
            After bringing the network interface up, the program waits
 
285
            for the interface to arrive in a <quote>running</quote>
 
286
            state before proceeding.  During this time, the kernel log
 
287
            level will be lowered to reduce clutter on the system
 
288
            console, alleviating any other plugins which might be
 
289
            using the system console.  This option sets the upper
 
290
            limit of seconds to wait.  The default is 2.5 seconds.
 
291
          </para>
 
292
        </listitem>
 
293
      </varlistentry>
253
294
      
254
295
      <varlistentry>
255
296
        <term><option>--debug</option></term>
411
452
    <informalexample>
412
453
      <para>
413
454
        Run in debug mode, with a custom key, and do not use Zeroconf
414
 
        to locate a server; connect directly to the IPv6 address
415
 
        <quote><systemitem class="ipaddress"
416
 
        >2001:db8:f983:bd0b:30de:ae4a:71f2:f672</systemitem></quote>,
417
 
        port 4711, using interface eth2:
 
455
        to locate a server; connect directly to the IPv6 link-local
 
456
        address <quote><systemitem class="ipaddress"
 
457
        >fe80::aede:48ff:fe71:f6f2</systemitem></quote>, port 4711,
 
458
        using interface eth2:
418
459
      </para>
419
460
      <para>
420
461
 
421
462
<!-- do not wrap this line -->
422
 
<userinput>&COMMANDNAME; --debug --pubkey keydir/pubkey.txt --seckey keydir/seckey.txt --connect 2001:db8:f983:bd0b:30de:ae4a:71f2:f672:4711 --interface eth2</userinput>
 
463
<userinput>&COMMANDNAME; --debug --pubkey keydir/pubkey.txt --seckey keydir/seckey.txt --connect fe80::aede:48ff:fe71:f6f2:4711 --interface eth2</userinput>
423
464
 
424
465
      </para>
425
466
    </informalexample>