Initial version.
[udpkey] / debian / README.Debian
1 udpkey in Debian
2
3 The =udpkey= program itself is described in a traditional manual page.
4 It makes few assumptions about the environment in which it's run, so it
5 needs some work to integrate it with any particular system.
6
7 * Running as a server
8
9 To get =udpkey= to run as a server:
10
11 + Create a user to run the server, e.g., =adduser --system --group
12 udpkey=.
13
14 + Create =/etc/udpkey/keyring=, and populate it with key fragments and
15 client public keys as described in the manual. The keyring file
16 must be readable by the user created above.
17
18 + Create =/etc/default/udpkey=. This must at the very least set
19 =UDPKEY_DAEMON=yes= if the daemon is to be run at all. I chose port
20 59274 arbitrarily; if you want to use a different one, set
21 =PORT=12345= or whatever.
22
23 * Running as a client in initramfs
24
25 Some simple scripts for integrating =udpkey= with =cryptsetup= are
26 provided in =/usr/share/doc/udpkey/examples=. See the comments in those
27 files for details. Here's the brief version.
28
29 + Copy =udpkey.initramfs-hook= into =/etc/initramfs-tools/hooks=.
30 Install =udpkey.keyscript= somewhere, say =/usr/local/sbin=.
31
32 + Create =/etc/udpkey/keyring= and generate a private key. See the
33 manual for details of how to do this. Extract the public key and
34 transport it to the server.
35
36 + Add a line to =/etc/crypttab= of the form
37 : cvolume /dev/md/encrypted keytag/192.0.2.69:59274 luks,keyscript=/usr/local/sbin/udpkey.keyscript
38 to =/etc/crypttab=.
39
40 + Generate a key fragment at your chosen server, here 192.0.2.69.
41 Import the client's public key and grant it access to the key
42 fragment.
43
44 + Generate a random string of the same length and write it to
45 =/etc/udpkey/keytag.local=.
46
47 + Run
48 : udpkey keytag 192.0.2.69:59274 /etc/udpkey/keytag.local | sha256sum
49 to make sure that everything's actually working. Add the key to
50 your LUKS superblock.