/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)
 
41
    + GnuTLS 2.4          http://www.gnutls.org/
 
42
      Note: GnuTLS 3 will only work with Python-GnuTLS 2
43
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
61
    + initramfs-tools 0.85i
62
62
                        https://tracker.debian.org/pkg/initramfs-tools
63
 
    + GnuTLS 3.3        https://www.gnutls.org/
64
 
      (but not 3.6.0 or later, until 3.6.6 which works)
 
63
    + GnuTLS 2.4        http://www.gnutls.org/
65
64
    + Avahi 0.6.16      http://www.avahi.org/
66
65
    + GnuPG 1.4.9       https://www.gnupg.org/
67
66
    + GPGME 1.1.6       https://www.gnupg.org/related_software/gpgme/
68
 
    + pkg-config https://www.freedesktop.org/wiki/Software/pkg-config/
 
67
    + pkg-config  http://www.freedesktop.org/wiki/Software/pkg-config/
69
68
    
70
69
    Strongly recommended:
71
70
    + OpenSSH           http://www.openssh.com/
72
71
    
73
72
    Package names:
74
 
    initramfs-tools libgnutls-dev gnutls-bin libavahi-core-dev gnupg
 
73
    initramfs-tools libgnutls-dev libavahi-core-dev gnupg
75
74
    libgpgme11-dev pkg-config ssh
76
75
 
77
76
* Installing the Mandos server
125
124
     
126
125
        # /usr/lib/mandos/plugins.d/mandos-client \
127
126
                --pubkey=/etc/keys/mandos/pubkey.txt \
128
 
                --seckey=/etc/keys/mandos/seckey.txt \
129
 
                --tls-privkey=/etc/keys/mandos/tls-privkey.pem \
130
 
                --tls-pubkey=/etc/keys/mandos/tls-pubkey.pem; echo
 
127
                --seckey=/etc/keys/mandos/seckey.txt; echo
131
128
     
132
129
     This command should retrieve the password from the server,
133
130
     decrypt it, and output it to standard output.