TODO 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. Future plans are currently hanging on what people want out of this.
  2. It appears
  3. ^^^^^ ROAD MAP ^^^^^
  4. \/\/\/ CURRENT VERSION \/\/\/
  5. Version 0.7.0-beta
  6. ------------------
  7. * Renamed/relabled things to be consistent with a general PPPd service
  8. * Total revamp of the configuration interface
  9. - More abstract. Seperated the dialog (glade) details
  10. from behaviour considerable. Implementation now simply
  11. requires a glade file and a few lines of rather declarative
  12. code.
  13. * Add configuration options to select alternative ptys
  14. - though only PPTP is actually defined at the moment
  15. - Dial-up has been put in to the configuration as a
  16. "feature preview" but it doesn't actually do anything
  17. at present.
  18. * Runs pppd asynchronously (allows pppd to fork)
  19. * Crash on disconnect fixed.
  20. * Added "debug mode" to show more detailed output.
  21. Bugs:
  22. * Does not seem to remember you login information even if
  23. told to do so. (FIXED)
  24. * Still only support for CHAP authentication.
  25. Version 0.6.9
  26. --------------------------------
  27. Bugs:
  28. * Possible NetworkManager crash on disconnect from VPN! (FIXED)
  29. * Add dialog option to select different authentication methods
  30. * Add dialog options for the rest of the 'hard coded' pppd options. (FIXED)
  31. --------------------------------
  32. PREHISTORY
  33. Version 0.1.0 -> 0.5.0
  34. Hi Nikolaus,
  35. Yes, I've did quite a bit of work on it. Infact I totally revamped it to use a pppd plugin as it's helper. (Thus is can do the DNS + routing without modifications to your local /etc/ppp files)
  36. Actually there is one exception... Many distros have an ip-up script which implements usepeerdns functionality thus replacing resolve.conf... This conflicts with NetworkManager's actions so may need to be removed. Sadly there appears to be no way to tell pppd NOT to execute /etc/ppp/ip-up if it exists!
  37. Uses a pppd plugin to handle CHAP authentication (not sure of the V2 implications...) and ip-up functionality... It explicitly resolves the IP of the vpn server before starting pppd. And starts pppd with the pty option rather than letting pptp start pppd (as recomented by the pptp maintainer).
  38. Sadly, I haven't quite figured out how I'm gonna get the username and password from the vpn-daemon to the pppd helper plugin infact I've just got my credentials hard coded in the plugin for testing!
  39. The reason I haven't fixed that is that there is another strange behaviour where by the pptp vpn daemon (sometimes!) takes NM down when it exits!! It seems to seg fault but I can't find the cause. I've been really busy but would love somone to take a look at this. I can upload it in it's present state with instructions for where to insert your credentials if you/anyone else would be willing to try it and perhaps assist me.
  40. tOnY
  41. Nikolaus Filus wrote:
  42. > Hi,
  43. >
  44. > I just managed to get your pptp plugin "working" for my university setup. It was a hard piece of work, since I'm not familiar with NM or pptp details. There are several issues to be fixed and I hope this report will be usefull for you. I don't attach patches as my modifications are just hacks :)
  45. >
  46. > 1. nm-pptp-service-pptp-helper
  47. > The while-loop doesn't work, as I wasn't able to find a place, where
  48. > foreign_option_%i shall be defined. It seems to me as if this code is incomplete and you wanted to scan through the whole environment and
  49. > analyse the options. I had to manually add parsing of DNS, DNS1 and DNS2 which are set in my environment, or my resolv.conf is empty after connecting to the vpn.
  50. >
  51. > 2. nm-pptp-service
  52. > encrypt-mppe was never attached to my pppd options and I had to add
  53. >
  54. > g_ptr_array_add (pptp_argv, (gpointer) "require-mschap-v2");
  55. > g_ptr_array_add (pptp_argv, (gpointer) "mppe");
  56. > g_ptr_array_add (pptp_argv, (gpointer) "required,stateless");
  57. >
  58. > outside the for-loop. As you can see, I also need the "require-mschap-v2" option. For this to work I need to specify a special remotename, which is NOT the hostname, as used in your code. This also requires a second line
  59. > in chap-secrets.
  60. >
  61. > 3. configuration
  62. > By default a new default route to ppp0 is specified, deleting the old one. I need to preserve it (by setting vpn-routes to 0.0.0.0/0) and add
  63. >
  64. > route add -host vpn-gw dev eth1
  65. > route add default dev ppp0
  66. >
  67. > manually.
  68. >
  69. >
  70. > With this modifications, I was able to connect the vpn at my university "using" networkmanager.
  71. >
  72. >
  73. > Are you working on the pppd plugin as announced on the mailinglist? I would be glad to test it :)
  74. >
  75. >
  76. > Thanks for your work
  77. >
  78. > Nikolaus Filus
  79. >
  80. >
  81. >
  82. Dan Williams wrote:
  83. > But in your case, the pppd-vpn-service daemon could just do whatever it
  84. > does to start the connection, but provide a dbus service that when
  85. > called, returns the password and username. The pppd plugin would then
  86. > call this dbus service and request the pass & user.
  87. >
  88. >
  89. >
  90. That is precisely what I intend and started implementing it. I just wanted to fix the strange and 'intermittent' segfault before
  91. adding anymore complexity.
  92. I only hesitated when naming the dbus service.
  93. > There are some things to think hard about here though, namely the
  94. > security of it. If you have a daemon providing a dbus service, unless
  95. > you lock it down anyone can call its methods. So you'd have to make
  96. > sure that you lock down the dbus policy for the service-daemon pretty
  97. > tight. If you restrict it to just 'root'/uid 0, any root app could ask
  98. > for the user and password. But then again, any 'root' app can do
  99. > horrible things to your system anyway. So this might be an acceptable
  100. > course of action.
  101. >
  102. >
  103. I imagined that root access would be sufficient in this case too. I suppose
  104. the only other way is for the vpn-daemon to pass some secret cookie to the
  105. pppd on start up that the plugin then uses when asking for the user/pass later
  106. but that too would open all kinds of security holes I suppose.
  107. Anyway... A root process could overwrite the pppd plugin in /usr/lib with
  108. something malicious so I can't see any possible gain. Just as a root process could
  109. overwrite the vpnc binary with a script which 'tee' s the standard input to a file :-)
  110. > Ideally this could be solved upstream in pppd. But at some point you
  111. > simply do best-effort to hide the username & password from view, keep
  112. > investigating how to do it better, and fix it a bit later.
  113. >
  114. >
  115. Exactly. "Just works" not "Will at some future time just work" right :-)
  116. tOnY