/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 INSTALL

  • Committer: Teddy Hogeborn
  • Date: 2015-03-10 18:03:38 UTC
  • Revision ID: teddy@recompile.se-20150310180338-pcxw6r2qmw9k6br9
Add ":!RSA" to GnuTLS priority string, to disallow non-DHE kx.

If Mandos was somehow made to use a non-ephemeral Diffie-Hellman key
exchange algorithm in the TLS handshake, any saved network traffic
could then be decrypted later if the Mandos client key was obtained.
By default, Mandos uses ephemeral DH key exchanges which does not have
this problem, but a non-ephemeral key exchange algorithm was still
enabled by default.  The simplest solution is to simply turn that off,
which ensures that Mandos will always use ephemeral DH key exchanges.

There is a "PFS" priority string specifier, but we can't use it because:

1. Security-wise, it is a mix between "NORMAL" and "SECURE128" - it
   enables a lot more algorithms than "SECURE256".

2. It is only available since GnuTLS 3.2.4.

Thanks to Andreas Fischer <af@bantuX.org> for reporting this issue.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
  
5
5
** Operating System
6
6
   
7
 
   Debian 8.0 "jessie" or Ubuntu 15.10 "Wily Werewolf" (or later).
 
7
   Debian 6.0 "squeeze" or Ubuntu 10.10 "Maverick Meerkat" (or later).
8
8
   
9
9
   This is mostly for the support scripts which make sure that the
10
10
   client is installed and started in the initial RAM disk environment
38
38
    "man -l mandos.8".
39
39
    
40
40
*** Mandos Server
41
 
    + GnuTLS 3.3          https://www.gnutls.org/
42
 
      (but not 3.6.0 or later, until 3.6.6, which works)
43
 
    + Avahi 0.6.16        https://www.avahi.org/
 
41
    + GnuTLS 2.4          http://www.gnutls.org/
 
42
      Note: GnuTLS 3 will only work with Python-GnuTLS 2
 
43
    + Avahi 0.6.16        http://www.avahi.org/
44
44
    + Python 2.7          https://www.python.org/
45
 
    + dbus-python 0.82.4 https://dbus.freedesktop.org/doc/dbus-python/
46
 
    + PyGObject 3.7.1     https://wiki.gnome.org/Projects/PyGObject
47
 
    + pkg-config https://www.freedesktop.org/wiki/Software/pkg-config/
 
45
    + Python-GnuTLS 1.1.5 https://pypi.python.org/pypi/python-gnutls/
 
46
    + dbus-python 0.82.4  http://dbus.freedesktop.org/doc/dbus-python/
 
47
    + PyGObject 2.14.2    https://developer.gnome.org/pygobject/
 
48
    + pkg-config  http://www.freedesktop.org/wiki/Software/pkg-config/
48
49
    + Urwid 1.0.1         http://urwid.org/
49
50
      (Only needed by the "mandos-monitor" tool.)
50
51
    
53
54
    + ssh-keyscan from OpenSSH http://www.openssh.com/
54
55
    
55
56
    Package names:
56
 
    avahi-daemon python python-dbus python-gi python-urwid pkg-config
57
 
    fping ssh-client
 
57
    python-gnutls avahi-daemon python python-avahi python-dbus
 
58
    python-gobject python-urwid pkg-config fping ssh-client
58
59
    
59
60
*** Mandos Client
60
 
    + GNU C Library 2.17 https://gnu.org/software/libc/
61
 
    + GnuTLS 3.3        https://www.gnutls.org/
62
 
      (but not 3.6.0 or later, until 3.6.6 which works)
63
 
    + Avahi 0.6.16      https://www.avahi.org/
 
61
    + initramfs-tools 0.85i
 
62
                        https://tracker.debian.org/pkg/initramfs-tools
 
63
    + GnuTLS 2.4        http://www.gnutls.org/
 
64
    + Avahi 0.6.16      http://www.avahi.org/
64
65
    + GnuPG 1.4.9       https://www.gnupg.org/
65
66
    + GPGME 1.1.6       https://www.gnupg.org/related_software/gpgme/
66
 
    + pkg-config https://www.freedesktop.org/wiki/Software/pkg-config/
67
 
    + libnl-route 3     https://www.infradead.org/~tgr/libnl/
68
 
    + GLib 2.40         http://www.gtk.org/
69
 
    
70
 
    One of:
71
 
    + initramfs-tools 0.85i
72
 
                        https://tracker.debian.org/pkg/initramfs-tools
73
 
    + dracut 044+241
74
 
         http://www.kernel.org/pub/linux/utils/boot/dracut/dracut.html
 
67
    + pkg-config  http://www.freedesktop.org/wiki/Software/pkg-config/
75
68
    
76
69
    Strongly recommended:
77
70
    + OpenSSH           http://www.openssh.com/
78
71
    
79
72
    Package names:
80
 
    initramfs-tools dracut libgnutls-dev gnutls-bin libavahi-core-dev
81
 
    gnupg libgpgme11-dev pkg-config ssh libnl-route-3-dev
82
 
    libglib2.0-dev
 
73
    initramfs-tools libgnutls-dev libavahi-core-dev gnupg
 
74
    libgpgme11-dev pkg-config ssh
83
75
 
84
76
* Installing the Mandos server
85
77
  
132
124
     
133
125
        # /usr/lib/mandos/plugins.d/mandos-client \
134
126
                --pubkey=/etc/keys/mandos/pubkey.txt \
135
 
                --seckey=/etc/keys/mandos/seckey.txt \
136
 
                --tls-privkey=/etc/keys/mandos/tls-privkey.pem \
137
 
                --tls-pubkey=/etc/keys/mandos/tls-pubkey.pem; echo
 
127
                --seckey=/etc/keys/mandos/seckey.txt; echo
138
128
     
139
129
     This command should retrieve the password from the server,
140
130
     decrypt it, and output it to standard output.