/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: 2019-03-30 07:03:04 UTC
  • Revision ID: teddy@recompile.se-20190330070304-dqgch62lsaaygg46
mandos-ctl: Refactor D-Bus operations

* mandos-ctl (dbus): Rename imported module to "dbus_python".
  (main): Only create a bus object and do everything via that object.
  (get_mandos_dbus_object): Remove and move code into dbus or
                            dbus_python_adapter namespaces.
  (if_dbus_exception_log_with_exception_and_exit): - '' -
  (SilenceLogger): - '' -
  (dbus): New; move everything dbus-specific into this module-like
          namespace.
  (dbus_python_adapter): New; move everything specific to the
                         dbus-python D-Bus module into this
                         module-like namespace.
  (command.Base.run): Take only a bus argument; use only that.  Pass
                      "client" argument as a D-Bus object path string,
                      not a dbus-python proxy object.  All derivatives
                      adjusted.
  (command.IsEnabled.is_enabled): Remove.
  (command.Approve, command.Deny, command.Remove,
  command.PropertySetter): Do no logging of D-Bus commands, and use
  only bus, not client, to do D-Bus calls.
  (command.DumpJSON.dbus_boolean_to_bool): Remove; move filtering to
                                           dbus_python_adapter.
  (command.Enable, command.Disable, command.StopChecker,
  command.ApproveByDefault): Use normal Python booleans instead of
  dbus-python's special Boolean types.
  (Unique): New; move here out from inside TestPropertySetterCmd.
  (Test_get_mandos_dbus_object): Remove.
  (Test_get_managed_objects): - '' -
  (Test_dbus_exceptions): New.
  (Test_dbus_MandosBus): - '' -
  (Test_dbus_python_adapter_SystemBus): - '' -
  (Test_dbus_python_adapter_CachingBus): - '' -
  (Test_commands_from_options): Don't create mock client proxy
  objects, define dict of client properties and use a mock dbus to
  verify that the correct D-Bus calls are made.  Also remove any types
  specific to dbus-python.
  (TestEnableCmd, TestDisableCmd, TestStartCheckerCmd,
  TestStopCheckerCmd, TestApproveByDefaultCmd, TestDenyByDefaultCmd):
  Use normal Python booleans instead of dbus-python's special Boolean
  types.
  (TestPropertySetterValueCmd.runTest): Remove; unnecessary.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
  
5
5
** Operating System
6
6
   
7
 
   Debian 6.0 "squeeze" or Ubuntu 10.10 "Maverick Meerkat" (or later).
 
7
   Debian 8.0 "jessie" or Ubuntu 15.10 "Wily Werewolf" (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 2.4          http://www.gnutls.org/
42
 
      Note: GnuTLS 3 will only work with Python-GnuTLS 2
 
41
    + GnuTLS 3.3          https://www.gnutls.org/
 
42
      (but not 3.6.0 or later, until 3.6.6, which works)
43
43
    + Avahi 0.6.16        http://www.avahi.org/
44
 
    + Python 2.6          https://www.python.org/
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/
49
 
    + Python-argparse     https://pypi.python.org/pypi/argparse
 
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/
50
48
    + Urwid 1.0.1         http://urwid.org/
51
49
      (Only needed by the "mandos-monitor" tool.)
52
50
    
55
53
    + ssh-keyscan from OpenSSH http://www.openssh.com/
56
54
    
57
55
    Package names:
58
 
    python-gnutls avahi-daemon python python-avahi python-dbus
59
 
    python-gobject python-urwid pkg-config fping ssh-client
 
56
    avahi-daemon python python-dbus python-gi python-urwid pkg-config
 
57
    fping ssh-client
60
58
    
61
59
*** Mandos Client
 
60
    + GNU C Library 2.16 https://gnu.org/software/libc/
62
61
    + initramfs-tools 0.85i
63
62
                        https://tracker.debian.org/pkg/initramfs-tools
64
 
    + GnuTLS 2.4        http://www.gnutls.org/
 
63
    + GnuTLS 3.3        https://www.gnutls.org/
 
64
      (but not 3.6.0 or later, until 3.6.6 which works)
65
65
    + Avahi 0.6.16      http://www.avahi.org/
66
66
    + GnuPG 1.4.9       https://www.gnupg.org/
67
67
    + GPGME 1.1.6       https://www.gnupg.org/related_software/gpgme/
68
 
    + pkg-config  http://www.freedesktop.org/wiki/Software/pkg-config/
 
68
    + pkg-config https://www.freedesktop.org/wiki/Software/pkg-config/
69
69
    
70
70
    Strongly recommended:
71
71
    + OpenSSH           http://www.openssh.com/
72
72
    
73
73
    Package names:
74
 
    initramfs-tools libgnutls-dev libavahi-core-dev gnupg
 
74
    initramfs-tools libgnutls-dev gnutls-bin libavahi-core-dev gnupg
75
75
    libgpgme11-dev pkg-config ssh
76
76
 
77
77
* Installing the Mandos server
125
125
     
126
126
        # /usr/lib/mandos/plugins.d/mandos-client \
127
127
                --pubkey=/etc/keys/mandos/pubkey.txt \
128
 
                --seckey=/etc/keys/mandos/seckey.txt; echo
 
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
129
131
     
130
132
     This command should retrieve the password from the server,
131
133
     decrypt it, and output it to standard output.
141
143
  If IPsec is not used and SSH is not installed, it is suggested that
142
144
  a more cryptographically secure checker program is used and
143
145
  configured, since, without IPsec, ping packets can be faked.
 
146
 
 
147
#+STARTUP: showall