/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:
40
40
*** Mandos Server
41
41
    + GnuTLS 3.3          https://www.gnutls.org/
42
42
      (but not 3.6.0 or later, until 3.6.6, which works)
43
 
    + Avahi 0.6.16        https://www.avahi.org/
44
 
    + Python 3           https://www.python.org/
45
 
      Note: Python 2.7 is still supported, if the "mandos",
46
 
      "mandos-ctl", and "mandos-monitor" files are edited to contain
47
 
      "#!/usr/bin/python" instead of python3.
 
43
    + Avahi 0.6.16        http://www.avahi.org/
 
44
    + Python 2.7          https://www.python.org/
48
45
    + dbus-python 0.82.4 https://dbus.freedesktop.org/doc/dbus-python/
49
 
    + PyGObject 3.8      https://wiki.gnome.org/Projects/PyGObject
 
46
    + PyGObject 3.7.1     https://wiki.gnome.org/Projects/PyGObject
50
47
    + pkg-config https://www.freedesktop.org/wiki/Software/pkg-config/
51
48
    + Urwid 1.0.1         http://urwid.org/
52
49
      (Only needed by the "mandos-monitor" tool.)
56
53
    + ssh-keyscan from OpenSSH http://www.openssh.com/
57
54
    
58
55
    Package names:
59
 
    avahi-daemon python3 python3-dbus python3-gi python3-urwid
60
 
    pkg-config fping ssh-client
 
56
    avahi-daemon python python-dbus python-gi python-urwid pkg-config
 
57
    fping ssh-client
61
58
    
62
59
*** Mandos Client
63
 
    + GNU C Library 2.17 https://gnu.org/software/libc/
 
60
    + GNU C Library 2.16 https://gnu.org/software/libc/
 
61
    + initramfs-tools 0.85i
 
62
                        https://tracker.debian.org/pkg/initramfs-tools
64
63
    + GnuTLS 3.3        https://www.gnutls.org/
65
64
      (but not 3.6.0 or later, until 3.6.6 which works)
66
 
    + Avahi 0.6.16      https://www.avahi.org/
 
65
    + Avahi 0.6.16      http://www.avahi.org/
67
66
    + GnuPG 1.4.9       https://www.gnupg.org/
68
67
    + GPGME 1.1.6       https://www.gnupg.org/related_software/gpgme/
69
68
    + pkg-config https://www.freedesktop.org/wiki/Software/pkg-config/
70
 
    + libnl-route 3     https://www.infradead.org/~tgr/libnl/
71
 
    + GLib 2.40         http://www.gtk.org/
72
 
    
73
 
    One of:
74
 
    + initramfs-tools 0.85i
75
 
                        https://tracker.debian.org/pkg/initramfs-tools
76
 
    + dracut 044+241
77
 
         http://www.kernel.org/pub/linux/utils/boot/dracut/dracut.html
78
69
    
79
70
    Strongly recommended:
80
71
    + OpenSSH           http://www.openssh.com/
81
72
    
82
73
    Package names:
83
 
    initramfs-tools dracut libgnutls-dev gnutls-bin libavahi-core-dev
84
 
    gnupg libgpgme11-dev pkg-config ssh libnl-route-3-dev
85
 
    libglib2.0-dev
 
74
    initramfs-tools libgnutls-dev gnutls-bin libavahi-core-dev gnupg
 
75
    libgpgme11-dev pkg-config ssh
86
76
 
87
77
* Installing the Mandos server
88
78
  
90
80
  
91
81
  2. On the computer to run as a Mandos server, run the following
92
82
     command:
93
 
     For Debian: su - -c 'make install-server'
 
83
     For Debian: su -c 'make install-server'
94
84
     For Ubuntu: sudo make install-server
95
85
     
96
86
     (This creates a configuration without any clients configured; you
102
92
  
103
93
  2. On the computer to run as a Mandos client, run the following
104
94
     command:
105
 
     For Debian: su - -c 'make install-client'
 
95
     For Debian: su -c 'make install-client'
106
96
     For Ubuntu: sudo make install-client
107
97
     
108
98
     This will also create an OpenPGP key, which will take some time
109
99
     and entropy, so be patient.
110
100
  
111
101
  3. Run the following command:
112
 
     For Debian: su - -c 'mandos-keygen --password'
 
102
     For Debian: su -c 'mandos-keygen --password'
113
103
     For Ubuntu: sudo mandos-keygen --password
114
104
     
115
105
     When prompted, enter the password/passphrase for the encrypted
127
117
        # update-initramfs -k all -u
128
118
  
129
119
  5. On the server computer, start the server by running the command
130
 
     For Debian: su - -c 'invoke-rc.d mandos start'
 
120
     For Debian: su -c 'invoke-rc.d mandos start'
131
121
     For Ubuntu: sudo service mandos start
132
122
     
133
123
     At this point, it is possible to verify that the correct password