/mandos/release

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/release

« back to all changes in this revision

Viewing changes to TODO

  • Committer: Teddy Hogeborn
  • Date: 2008-09-02 17:42:53 UTC
  • Revision ID: teddy@fukt.bsnet.se-20080902174253-p3wxrq7z6ccnv7fs
* plugins.d/password-request.c (main): Change default GnuTLS priority
                                       string to
                             "SECURE256":!CTYPE-X.509:+CTYPE-OPENPGP".

* plugins.d/password-request.xml (DESCRIPTION): Improve wording.
  (PURPOSE, OVERVIEW): New sections.
  (OPTIONS): Improved wording.
  (EXIT STATUS): Add text.
  (ENVIRONMENT): Commented out.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
-*- org -*-
2
2
 
3
 
* GIT
4
 
** General: [[https://www.atlassian.com/git/workflows][Git Workflows]], [[http://gitimmersion.com/][Git Immersion]], [[https://news.ycombinator.com/item?id=7036628][Simple git workflow is simple]]
5
 
** Intro: [[http://www.eyrie.org/~eagle/notes/debian/git.html#combine][Using Git for Debian Packaging]]
6
 
** Use: [[https://honk.sigxcpu.org/piki/projects/git-buildpackage/][git-buildpackage]]
7
 
** Migration
8
 
   tailor?
9
 
   Using bzr-fastimport: [[http://www.fusonic.net/en/blog/2013/03/26/migrating-from-bazaar-to-git/][Migrating from Bazaar to Git]]
10
 
** Unresolved: [[http://jameswestby.net/bzr/builddeb/user_manual/split.html][bzr builddeb split mode]]
11
 
   Maybe: [[http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.import.html#GBP.IMPORT.UPSTREAM.GIT.NOTARBALL][git-buildpackage - No upstream tarballs]]
12
 
   [[http://www.python.org/dev/peps/pep-0374/][PEP 374 - Choosing a distributed VCS for the Python project]]
13
 
   [[http://www.emacswiki.org/emacs/GitForEmacsDevs][Git For Emacs Devs]]
14
 
 
15
 
* [[http://www.undeadly.org/cgi?action=article&sid=20110530221728][OpenBSD]]
16
 
 
17
 
* Testing
18
 
** python-nemu
19
 
 
20
 
* mandos-applet
21
 
 
22
 
* mandos-client
23
 
** TODO [#B] Use capabilities instead of seteuid().
24
 
   https://forums.grsecurity.net/viewtopic.php?f=7&t=2522
25
 
** TODO [#B] Use getaddrinfo(hints=AI_NUMERICHOST) instead of inet_pton()
26
 
** TODO [#C] Make start_mandos_communication() take "struct server".
27
 
** TODO [#C] --interfaces=regex,eth*,noregex (bridge-utils-interfaces(5))
28
 
 
29
 
* splashy
30
 
** TODO [#B] use scandir(3) instead of readdir(3)
31
 
 
32
 
* usplash (Deprecated)
33
 
** TODO [#A] Make it work again
34
 
** TODO [#B] use scandir(3) instead of readdir(3)
35
 
 
36
 
* askpass-fifo
 
3
* [#A] README file
 
4
 
 
5
* plugin-runner
 
6
** [#B] Add more comments to code
 
7
** [#B] Add more if(debug) calls
 
8
** [#B] Seperate more code to function for more readability
 
9
 
 
10
* password-request
 
11
** [#A] Man page: man8/password-request.8mandos
 
12
*** DESCRIPTION
 
13
    State that this command is not meant to be invoked directly, but
 
14
    is run as a plugin from mandos-client(8) and only run in the
 
15
    initrd environment, not the real system.
 
16
*** PURPOSE
 
17
    As in mandos.xml
 
18
*** OVERVIEW
 
19
    As in mandos.xml
 
20
*** EXIT STATUS
 
21
*** ENVIRONMENT
 
22
    Note that it does *not* currently use cryptsource or crypttarget.
 
23
*** FILES
 
24
    Describe the key files and the key ring files.  Also note that
 
25
    they should normally have been automatically created.
 
26
*** BUGS
 
27
*** EXAMPLE
 
28
    Examples of normal usage, debug usage, debugging by connecting
 
29
    directly, etc.
 
30
*** SECURITY
 
31
*** SEE ALSO
 
32
    Update from mandos.xml
 
33
** [#B] Temporarily lower kernel log level
 
34
   for less printouts during sucessfull boot.
 
35
** IPv4 support
 
36
** use strsep instead of strtok?
 
37
** Do not depend on GnuPG key rings on disk
 
38
   This would mean creating new GnuPG key rings with GPGME by
 
39
   importing the key files from scratch on every program start.
 
40
** Keydir move: /etc/mandos -> /etc/keys/mandos
 
41
   Must create in preinst if not pre-depending on cryptsetup
37
42
 
38
43
* password-prompt
39
 
** TODO [#B] lock stdin (with flock()?)
40
 
 
41
 
* plymouth
42
 
 
43
 
* TODO [#B] passdev
44
 
 
45
 
* plugin-runner
46
 
** TODO handle printing for errors for plugins
47
 
*** Hook up stderr of plugins, buffer them, and prepend "Mandos Plugin [plugin name]"
48
 
** TODO [#C] use same file name rules as run-parts(8)
49
 
** kernel command line option for debug info
 
44
** [#C] Use getpass(3)?
 
45
   Man page says "obsolete", but [[info:libc:getpass][GNU LibC Manual: Reading Passwords]]
 
46
   does not.  See also [[http://sources.redhat.com/ml/libc-alpha/2003-05/msg00251.html][Marcus Brinkmann: Re: getpass obsolete?]] and
 
47
   [[http://article.gmane.org/gmane.comp.lib.glibc.alpha/4906][Petter Reinholdtsen: Re: getpass obsolete?]], and especially also
 
48
   [[http://www.steve.org.uk/Reference/Unix/faq_4.html#SEC48][Unix Programming FAQ 3.1 How can I make my program not echo input?]]
50
49
 
51
50
* mandos (server)
52
 
** TODO [#B] Work around Avahi issue
53
 
   Avahi does not announce link-local addresses if any global
54
 
   addresses exist: http://lists.freedesktop.org/archives/avahi/2010-March/001863.html
55
 
** TODO [#B] Log level                                                    :BUGS:
56
 
*** TODO /etc/mandos/clients.d/*.conf
57
 
    Watch this directory and add/remove/update clients?
58
 
** TODO [#C] config for TXT record
59
 
** TODO Log level dbus option
60
 
   SetLogLevel D-Bus call
61
 
** TODO [#C] DBusServiceObjectUsingSuper
62
 
** TODO [#B] Global enable/disable flag
63
 
** TODO [#B] By-client countdown on number of secrets given
64
 
** D-Bus Client method NeedsPassword(50) - Timeout, default disapprove
65
 
    + SetPass(u"gazonk", True) -> Approval, persistent
66
 
    + Approve(False) -> Close client connection immediately
67
 
** TODO [#C] python-parsedatetime
68
 
** TODO Separate logging logic to own object
69
 
** TODO [#A] Limit approval_delay to max gnutls/tls timeout value
70
 
** TODO [#B] break the wait on approval_delay if connection dies
71
 
** TODO Generate Client.runtime_expansions from client options + extra
72
 
** TODO Allow %%(checker)s as a runtime expansion
73
 
** TODO Use python-tlslite?
74
 
** TODO D-Bus AddClient() method on server object
75
 
** TODO Use org.freedesktop.DBus.Method.NoReply annotation on async methods. :2:
76
 
** TODO Support [[http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager][org.freedesktop.DBus.ObjectManager]] interface on server object :2:
77
 
   Deprecate methods GetAllClients(), GetAllClientsWithProperties()
78
 
   and signals ClientAdded and ClientRemoved.
79
 
** TODO Save state periodically to recover better from hard shutdowns
80
 
** TODO CheckerCompleted method, deprecate CheckedOK
81
 
** TODO Secret Service API?
82
 
   http://standards.freedesktop.org/secret-service/
83
 
** TODO Remove D-Bus interfaces with old domain name                      :2:
84
 
** TODO Remove old string_to_delta format                                    :2:
85
 
** TODO http://0pointer.de/blog/projects/stateless.html
86
 
*** tmpfiles snippet to create /var/lib/mandos with right user+perms
87
 
*** File in /usr/lib/sysusers.d to create user+group "_mandos"
88
 
** TODO Error handling on error parsing config files
89
 
** TODO init.d script error handling
90
 
** TODO D-Bus server properties; address, port, interface, etc.              :2:
91
 
 
92
 
* mandos.xml
93
 
** Add mandos contact info in manual pages
94
 
 
95
 
* mandos-ctl
96
 
*** Handle "no D-Bus server" and/or "no Mandos server found" better
97
 
*** [#B] --dump option
98
 
** TODO Remove old string_to_delta format                                    :2:
99
 
 
100
 
* TODO mandos-dispatch
101
 
  Listens for specified D-Bus signals and spawns shell commands with
102
 
  arguments.
103
 
 
104
 
* mandos-monitor
105
 
** TODO help should be toggleable
106
 
** Urwid client data displayer
107
 
   Better view of client data in the listing
108
 
*** Properties popup
109
 
** Print a nice "We are sorry" message, save stack trace to log.
110
 
** Rename module "gobject" to "GObject".
111
 
 
112
 
* mandos-keygen
113
 
** TODO "--secfile" option
114
 
   Using the "secfile" option instead of "secret"
115
 
** TODO [#B] "--test" option
116
 
   For testing decryption before rebooting.
117
 
 
118
 
* Package
 
51
** [#A] /etc/init.d/mandos-server               :teddy:
 
52
** [#B] Log level                               :bugs:
 
53
** /etc/mandos/clients.d/*.conf
 
54
   Watch this directory and add/remove/update clients?
 
55
** config for TXT record
 
56
** [#B] Run-time communication with server      :bugs:
 
57
   Probably using D-Bus
 
58
   See also [[*Mandos-tools]]
 
59
** Implement --foreground                       :bugs:
 
60
   [[info:standards:Option%20Table][Table of Long Options]]
 
61
** Implement --socket
 
62
   [[info:standards:Option%20Table][Table of Long Options]]
 
63
** Date+time on console log messages            :bugs:
 
64
   Is this the default?
 
65
 
 
66
* Mandos-tools/utilities
 
67
  All of this probably using D-Bus
 
68
** List clients
 
69
** Disable client
 
70
** Enable client
 
71
 
 
72
* Man pages
 
73
** Use xinclude for common sections
 
74
   Like authors, etc.
 
75
 
 
76
 
 
77
* Installer
 
78
** Client-side
 
79
*** Update initrd.img after installation
 
80
    This seems to use some kind of "trigger" system
 
81
    [[file:/usr/share/doc/dpkg/triggers.txt.gz]]
 
82
    dpkg-trigger(1), deb-triggers(5)
 
83
*** Keydir move: /etc/mandos -> /etc/keys/mandos
 
84
    Must create in preinst if not pre-depending on cryptsetup
 
85
*** mandos-keygen
 
86
**** "--passfile" option
 
87
     Using the "secfile" option instead of "secret"
 
88
**** [#A] "--test" option
 
89
     For testing decryption before rebooting.
 
90
** Server-side
 
91
*** [#A] Create mandos user and group for server
 
92
*** [#A] Create /var/run/mandos directory with perm and ownership
 
93
 
 
94
* [#A] Package
119
95
** /usr/share/initramfs-tools/hooks/mandos
120
 
*** TODO [#C] use same file name rules as run-parts(8)
121
 
*** TODO [#C] Do not install in initrd.img if configured not to.
122
 
    Use "/etc/initramfs-tools/hooksconf.d/mandos"?
123
 
** TODO [#C] /etc/bash_completion.d/mandos
 
96
*** Do not install in initrd.img if configured not to.
 
97
    Use "/etc/initramfs-tools/conf.d/mandos"?  Definitely a debconf
 
98
    question.
 
99
** /etc/bash_completion.d/mandos
124
100
   From XML sources directly?
125
 
 
126
 
* Side Stuff
127
 
** TODO Locate which package moves the other bin/sh when busybox is deactivated
128
 
** TODO contact owner of package, and ask them to have that shell static in position regardless of busybox
 
101
** unperish
 
102
** bzr-builddeb
 
103
 
 
104
* INSTALL file
 
105
 
 
106
* Web site
 
107
 
 
108
* Mailing list
 
109
 
 
110
* Announce project on news
 
111
  [[news:comp.os.linux.announce]]
129
112
 
130
113
 
131
114
#+STARTUP: showall