/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 [#A] Clean up /tmp directory on signal
5
 
** TODO [#B] Temporarily lower kernel log level
6
 
   for less printouts during sucessfull boot.
7
 
   klogctl(6, NULL, 0); klogctl(7, NULL, 0);
8
 
** TODO [#C] IPv4 support
 
9
** TODO A --server option which only adds to the server list.
 
10
   (Unlike --connect, which implicitly disables zeroconf.)
 
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))
 
16
 
 
17
* splashy
 
18
** TODO [#B] use scandir(3) instead of readdir(3)
 
19
 
 
20
* usplash (Deprecated)
 
21
** TODO [#B] Make it work again
 
22
** TODO [#B] use scandir(3) instead of readdir(3)
 
23
 
 
24
* askpass-fifo
 
25
 
 
26
* password-prompt
 
27
** TODO [#B] lock stdin (with flock()?)
 
28
 
 
29
* plymouth
 
30
 
 
31
* TODO [#B] passdev
9
32
 
10
33
* plugin-runner
11
 
** 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]"
 
36
** TODO [#C] use same file name rules as run-parts(8)
 
37
** kernel command line option for debug info
12
38
 
13
39
* mandos (server)
14
 
** TODO [#B] Log level                          :bugs:
15
 
** TODO /etc/mandos/clients.d/*.conf
16
 
   Watch this directory and add/remove/update clients?
17
 
** TODO config for TXT record
18
 
** TODO [#B] Run-time communication with server :bugs:
19
 
   Probably using D-Bus
20
 
   See also [[*Mandos-tools]]
21
 
*** Client class
22
 
*** Main server
23
 
    + SetLogLevel
24
 
      syslogger.setLevel(logging.WARNING)
25
 
    + Quit
26
 
    + [[http://log.ometer.com/2007-05.html][Best D-Bus practices]]
27
 
** TODO Implement --foreground                  :bugs:
28
 
   [[info:standards:Option%20Table][Table of Long Options]]
29
 
** TODO Implement --socket
30
 
   [[info:standards:Option%20Table][Table of Long Options]]
31
 
** TODO Date+time on console log messages       :bugs:
32
 
   Is this the default?
33
 
** TODO delete hook when clients fall out by timeout
34
 
   This will not be strictly necessary when the D-Bus interface is
35
 
   implemented.
36
 
 
37
 
* mandos.xml
38
 
** [[file:mandos.xml::XXX][Document D-Bus interface]]
39
 
 
40
 
* Provide and install /etc/dbus-1/system.d/mandos.conf
41
 
 
42
 
* mandos-list
 
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()
 
78
 
 
79
* mandos-ctl
43
80
*** Handle "no D-Bus server" and/or "no Mandos server found" better
44
81
*** [#B] --dump option
45
 
** TODO Disable client
46
 
** TODO Enable client
47
 
** TODO Reset timer
48
 
 
49
 
* Curses interface
 
82
** TODO Remove old string_to_delta format                                 :2:
 
83
 
 
84
* TODO mandos-dispatch
 
85
  Listens for specified D-Bus signals and spawns shell commands with
 
86
  arguments.
 
87
 
 
88
* mandos-monitor
 
89
** TODO --servicename                                                  :BUGS:
 
90
** TODO help should be toggleable
 
91
** Urwid client data displayer
 
92
   Better view of client data in the listing
 
93
*** Properties popup
 
94
** Print a nice "We are sorry" message, save stack trace to log.
50
95
 
51
96
* mandos-keygen
52
97
** TODO "--secfile" option
56
101
 
57
102
* Package
58
103
** /usr/share/initramfs-tools/hooks/mandos
 
104
*** TODO [#C] use same file name rules as run-parts(8)
59
105
*** TODO [#C] Do not install in initrd.img if configured not to.
60
 
    Use "/etc/initramfs-tools/conf.d/mandos"?  Definitely a debconf
61
 
    question.
62
 
** TODO [#C] /etc/bash_completion.d/mandos
 
106
    Use "/etc/initramfs-tools/hooksconf.d/mandos"?
 
107
** TODO [#C] $(pkg-config --variable=completionsdir bash-completion)
63
108
   From XML sources directly?
64
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
 
65
116
 
66
117
#+STARTUP: showall