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

  • Committer: Teddy Hogeborn
  • Date: 2016-06-03 17:27:03 UTC
  • Revision ID: teddy@recompile.se-20160603172703-mc6tjor6rhq4xy74
mandos: Bug fix: Do multiprocessing cleanup correctly on exit

* mandos (main): Save module "multiprocessing" and open file "wnull"
                 as scope variables accessible by function cleanup(),
                 since the module and global variable may not be
                 accessible when the cleanup() function is run as
                 scheduled by atexit().

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
-*- org -*-
2
2
 
 
3
* Testing
 
4
** python-nemu
 
5
 
 
6
* mandos-applet
 
7
 
3
8
* mandos-client
4
 
** TODO [#B] use scandir(3) instead of readdir(3)
5
 
** TODO [#B] Prefix all debug output with argv[0]
6
 
** TODO [#B] Retry a server which has a non-definite reply:
7
 
*** A closed connection during the TLS handshake
8
 
*** A TCP timeout
 
9
** TODO A --server option which only adds to the server list.
 
10
   (Unlike --connect, which implicitly disables zeroconf.)
9
11
** TODO [#B] Use capabilities instead of seteuid().
 
12
   https://forums.grsecurity.net/viewtopic.php?f=7&t=2522
 
13
** TODO [#B] Use getaddrinfo(hints=AI_NUMERICHOST) instead of inet_pton()
 
14
** TODO [#C] Make start_mandos_communication() take "struct server".
 
15
** TODO [#C] --interfaces=regex,eth*,noregex (bridge-utils-interfaces(5))
10
16
 
11
17
* splashy
12
18
** TODO [#B] use scandir(3) instead of readdir(3)
13
 
** TODO [#B] Prefix all debug output with "Mandos plugin " + argv[0]
14
19
 
15
 
* usplash
 
20
* usplash (Deprecated)
 
21
** TODO [#B] Make it work again
16
22
** TODO [#B] use scandir(3) instead of readdir(3)
17
 
** TODO [#B] Prefix all debug output with "Mandos plugin " + argv[0]
18
23
 
19
24
* askpass-fifo
20
 
** TODO [#B] Prefix all debug output with "Mandos plugin " + argv[0]
21
 
** TODO [#B] Drop privileges after opening FIFO.
22
25
 
23
26
* password-prompt
24
 
** TODO [#B] Prefix all debug output with "Mandos plugin " + argv[0]
25
 
 
26
 
* TODO passdev
 
27
** TODO [#B] lock stdin (with flock()?)
 
28
 
 
29
* plymouth
 
30
 
 
31
* TODO [#B] passdev
27
32
 
28
33
* plugin-runner
29
 
** TODO [#B] use scandir(3) instead of readdir(3)
 
34
** TODO handle printing for errors for plugins
 
35
*** Hook up stderr of plugins, buffer them, and prepend "Mandos Plugin [plugin name]"
30
36
** TODO [#C] use same file name rules as run-parts(8)
 
37
** kernel command line option for debug info
31
38
 
32
39
* mandos (server)
33
 
** TODO [#B] Log level                          :BUGS:
34
 
** TODO /etc/mandos/clients.d/*.conf
35
 
   Watch this directory and add/remove/update clients?
36
 
** TODO config for TXT record
37
 
** TODO [#B] Run-time communication with server :BUGS:
38
 
   Probably using D-Bus
39
 
*** Client class
40
 
*** Main server
41
 
    + SetLogLevel
42
 
      syslogger.setLevel(logging.WARNING)
43
 
    + [[http://log.ometer.com/2007-05.html][Best D-Bus practices]]
44
 
** TODO Implement --foreground                  :BUGS:
45
 
   [[info:standards:Option%20Table][Table of Long Options]]
46
 
** TODO Implement --socket
47
 
   [[info:standards:Option%20Table][Table of Long Options]]
48
 
** TODO Date+time on console log messages       :BUGS:
49
 
   Is this the default?
50
 
** TODO DBusServiceObjectUsingSuper
51
 
** TODO Global enable/disable flag
52
 
** TODO By-client countdown on secrets given
53
 
** TODO Fix problem with fsck taking a really long time
54
 
   Whenever a client successfully gets a secret it could get a
55
 
   one-time timeout boost to allow for an fsck-incurred delay
56
 
** TODO Delay before client receives key
57
 
   This would give an operator opportunity to cancel the request if
58
 
   desired.
59
 
** TODO Client manual approval mode
60
 
   A client needs manual approval on the server before it gets the
61
 
   secret
62
 
** TODO Persistent state
63
 
   /var/lib/mandos/*
64
 
 
65
 
* mandos.xml
66
 
** [[file:mandos.xml::XXX][Document D-Bus interface]]
67
 
** Add mandos contact info in manual pages
68
 
 
69
 
* Provide and install /etc/dbus-1/system.d/mandos.conf
 
40
** TODO [#B] --notify-command
 
41
   This would allow the mandos.service to use
 
42
   --notify-command="systemd-notify --pid --ready"
 
43
** TODO [#B] python-systemd
 
44
*** import systemd.daemon; systemd.daemon.notify()
 
45
** TODO [#B] Log level                                                    :BUGS:
 
46
*** TODO /etc/mandos/clients.d/*.conf
 
47
    Watch this directory and add/remove/update clients?
 
48
** TODO [#C] config for TXT record
 
49
** TODO Log level dbus option
 
50
   SetLogLevel D-Bus call
 
51
** TODO [#C] DBusServiceObjectUsingSuper
 
52
** TODO [#B] Global enable/disable flag
 
53
** TODO [#B] By-client countdown on number of secrets given
 
54
** D-Bus Client method NeedsPassword(50) - Timeout, default disapprove
 
55
    + SetPass(u"gazonk", True) -> Approval, persistent
 
56
    + Approve(False) -> Close client connection immediately
 
57
** TODO [#C] python-parsedatetime
 
58
** TODO Separate logging logic to own object
 
59
** TODO [#B] Limit approval_delay to max gnutls/tls timeout value
 
60
** TODO [#B] break the wait on approval_delay if connection dies
 
61
** TODO Generate Client.runtime_expansions from client options + extra
 
62
** TODO Allow %%(checker)s as a runtime expansion
 
63
** TODO D-Bus AddClient() method on server object
 
64
** TODO Use org.freedesktop.DBus.Method.NoReply annotation on async methods. :2:
 
65
** TODO Save state periodically to recover better from hard shutdowns
 
66
** TODO CheckerCompleted method, deprecate CheckedOK
 
67
** TODO Secret Service API?
 
68
   http://standards.freedesktop.org/secret-service/
 
69
** TODO Remove D-Bus interfaces with old domain name                      :2:
 
70
** TODO Remove old string_to_delta format                                 :2:
 
71
** TODO http://0pointer.de/blog/projects/stateless.html
 
72
*** File in /usr/lib/sysusers.d to create user+group "_mandos"
 
73
** TODO Error handling on error parsing config files
 
74
** TODO init.d script error handling
 
75
** TODO D-Bus server properties; address, port, interface, etc.           :2:
 
76
** Python 3                                                               :2:
 
77
*** TODO [#C] In Python 3.3, use shlex.quote() instead of re.escape()
70
78
 
71
79
* mandos-ctl
72
80
*** Handle "no D-Bus server" and/or "no Mandos server found" better
73
81
*** [#B] --dump option
 
82
** TODO Remove old string_to_delta format                                 :2:
74
83
 
75
84
* TODO mandos-dispatch
76
85
  Listens for specified D-Bus signals and spawns shell commands with
77
86
  arguments.
78
87
 
79
88
* mandos-monitor
80
 
** D-Bus mail loop w/ signal receiver
81
 
** Snack/Newt client data displayer
82
 
*** Client Widgets
 
89
** TODO --servicename                                                  :BUGS:
 
90
** TODO help should be toggleable
 
91
** Urwid client data displayer
 
92
   Better view of client data in the listing
83
93
*** Properties popup
 
94
** Print a nice "We are sorry" message, save stack trace to log.
84
95
 
85
96
* mandos-keygen
86
 
** TODO Loop until passwords match when run interactively
87
97
** TODO "--secfile" option
88
98
   Using the "secfile" option instead of "secret"
89
99
** TODO [#B] "--test" option
90
100
   For testing decryption before rebooting.
91
101
 
92
 
* Makefile
93
 
** Implement DEB_BUILD_OPTIONS
94
 
   http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules-options
95
 
 
96
102
* Package
97
103
** /usr/share/initramfs-tools/hooks/mandos
98
104
*** TODO [#C] use same file name rules as run-parts(8)
99
105
*** TODO [#C] Do not install in initrd.img if configured not to.
100
106
    Use "/etc/initramfs-tools/hooksconf.d/mandos"?
101
 
** TODO [#C] /etc/bash_completion.d/mandos
 
107
** TODO [#C] $(pkg-config --variable=completionsdir bash-completion)
102
108
   From XML sources directly?
103
109
 
 
110
* Side Stuff
 
111
** TODO Locate which package moves the other bin/sh when busybox is deactivated
 
112
** TODO contact owner of package, and ask them to have that shell static in position regardless of busybox
 
113
 
 
114
* [[http://www.undeadly.org/cgi?action=article&sid=20110530221728][OpenBSD]]
 
115
 
104
116
 
105
117
#+STARTUP: showall