Hi,

Here's the summary of the previous community meeting.

---

COMMUNITY MEETING

Place: #openvpn-devel on irc.freenode.net
List-Post: openvpn-devel@lists.sourceforge.net
Date: Thursday, 15th March 2010
Time: 18:00 UTC

Planned meeting topics for this meeting were on this page:

<http://www.secure-computing.net/wiki/index.php/OpenVPN/IRC_meetings/Topics-2010-04-15>

Next meeting next week, same place, same time. Your local meeting time
is easy to check from services such as

<http://www.timeanddate.com/worldclock>

or with

$ date -u


SUMMARY

Mattock gave an update on status of the community site/services. Trac is
publicly available here:

<https://community.openvpn.net/openvpn>

Decided to start using Trac instead of Secure-computing Wiki for
developer documentation. Agreed that moving trackers or user content
does not make sense until users can register themselves.

Trac git-plugin browsing performance / CPU consumption seems pretty bad
and something has to be done about it. Using (and linking to)
Sourceforge's git browser was one option.

The user self-service registration service (pwm) is in pretty good shape
with Java/Tomcat/LDAP directory issues mostly sorted out. Forum server
is waiting for the user registration service before work on it continues.

Discussed migrating user accounts from ovpnforums.com to
forums.openvpn.net when it's up. Given phpbb's custom hashing scheme
agreed that it makes sense to migrate user accounts to LDAP, but send
the users new random passwords which they can then change.


Discussed the "Openvpn dies on boot with "Out of Memory" error when
using mlock" issue:

<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=406895>

As this bug is Linux-specific, agreed that a reasonable solution is to
add a default limits file to /etc/security/ and let users modify it if
they need. Agi is working on this.

Discussed the "Possibly symlink attack due to client-connect script" issue:

<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=534908>

Agreed that temporary file creation needs some hardening. Dazo already
provided a patch.

Discussed the "--multihome broken in latest version" issue:

<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562099>

This should be fixed, but mattock will verify this from our users
mailinglist.

---

Full chatlog as an attachment

-- 
Samuli Seppänen
Community Manager
OpenVPN Technologies, Inc

irc freenode net: mattock


13:05 < agi> hiya!
13:05 <@dazo> agi:  hi!
13:05 <@dazo> uh ... 20:05 already ...
13:06 < agi> yep
13:06  * dazo need to quickly grab some food
13:06 <@mattock> hi
13:06 <@mattock> james, where art thou? ;)
13:07 < ecrist> good afternoon
13:08 <@mattock> hi eric
13:09 -!- jamesyonan [~jamesy...@c-76-120-71-74.hsd1.co.comcast.net] has joined 
#openvpn-devel
13:09 <@dazo> \o/
13:10 <@mattock> hi james!
13:10 <@dazo> mattock:  JJK would join today as well
13:10 <@mattock> that's great!
13:10 <@dazo> (he's hopefully soon here)
13:10 <@mattock> perhaps we can discuss the duplicate-cn issue
13:10 <@mattock> if he has any further input on that
13:11 < jamesyonan> Hi
13:11 <@dazo> I've updated the agenda with 2 of JJK's issues as well
13:11 <@mattock> shall I begin with a brief community site status update?
13:11 <@dazo> please! :)
13:12 <@mattock> ok, so the Trac instance is public as you probably know: 
https://community.openvpn.net/openvpn/wiki
13:12 < vpnHelper> Title: OpenVPN (at community.openvpn.net)
13:12 <@mattock> there's not any content there yet, and I don't think there 
should be until users can register themselves
13:12 <@mattock> what do you think?
13:13 <@mattock> I managed to sort out the Java Security Manager issues with 
Tomcat + pwm (the user self-service registration service) 
13:13 <@dazo> we could probably begin to move over some of the more "static" 
wiki stuff
13:13 <@dazo> bug trackers, etc need to wait
13:14 <@mattock> yep, that's doable
13:14 <@mattock> how many people have been writing to secure-computing wiki?
13:14 <@mattock> me, dazo, who else?
13:14 < ecrist> half dozen or so
13:14 <@mattock> to the OpenVPN section?
13:14 <@dazo> 
http://www.secure-computing.net/wiki/index.php/Special:RecentChanges
13:15 < vpnHelper> Title: Recent changes - Secure Computing Wiki (at 
www.secure-computing.net)
13:15  * agi just used it to write possible bugs/issues for this meeting
13:15 < jamesyonan> re: wiki -- looks pretty good.  I see that you integrated 
it with source control.
13:15 <@mattock> we _could_ move the -devel documentation stuff to trac 
13:16 <@dazo> definitely
13:16 <@mattock> jamesyonan: git integration is pretty slow, drains 50% of the 
CPU
13:16 <@mattock> and takes a couple of seconds
13:16 < ecrist> mattock: you and dazo use the wiki mostly for devel related 
stuff, krzee and I have most of the 'meat'
13:17 <@dazo> ecrist:  so devel stuff is not juicy enough for you to be called 
meat? :-P
13:17 < ecrist> nope. 
13:17 < ecrist> I'm looking at it more from  a user standpoint
13:17 <@dazo> boring guy :-P
13:17 <@dazo> :)
13:18 <@mattock> anyways, the self-service registration service is in pretty 
good shape, I'm currently debugging what LDAP operations it actually tries to do
13:18 <@mattock> meaning it does not work yet, but tomcat + security manager 
are in pretty good shape 
13:19 <@mattock> if I'm lucky, it might take 1-2 full workdays to configure pwm 
properly
13:19 <@dazo> great! ... so hopefully ready until next meeting then?
13:19 <@mattock> the forum server is partially configured, but there's little 
point in doing more work until pwm is up
13:19 <@mattock> dazo: possibly, depending on how many distractions there are
13:19 <@mattock> if I don't open IRC or email then perhaps ;)
13:20 <@dazo> okay, a couple of more weeks then :)
13:20 <@mattock> that's more probable
13:20 <@mattock> ecrist: so you run ovpnforums? 
13:20 < ecrist> yes
13:21 <@mattock> I don't think we've discussed whether you'd be willing to 
migrate them to forums.openvpn.net... so would you? ;)
13:22 <@mattock> given root of course
13:23 <@mattock> and if possible, migrate the user accounts to LDAP, too
13:23 < ecrist> we had discussed that and iirc, I was fine with it.
13:23 <@mattock> oh, good
13:23 <@mattock> any ideas how to do the user migration?
13:24 <@mattock> I'm guessing some nasty scripting is required
13:24 < ecrist> we'd just have to figure out how passwords are stored in mysql 
and migrate them to ldap
13:24 < ecrist> there aren't that many users
13:24 <@mattock> how many?
13:24 < ecrist> gimme a sec and I'll get a number
13:25 <@dazo> I'd suggest not migrating the passwords ... rather send them a 
new temp password which they can change ... the password hashing might be too 
different to be able to migrate that
13:25 <@mattock> I noticed you haven't got account on forums yet, I'll create 
one
13:25 <@dazo> only exception is if both uses the exact same implementation
13:25 <@mattock> dazo: yes, that might become a problem
13:26 < ecrist> 133 users with more than 0 posts
13:26 <@mattock> definitely worth migrating, though
13:27 <@mattock> unless it becomes extremely difficult for some reason
13:27 <@dazo> migrating user accounts without passwords makes sense
13:27 <@dazo> (or rather, with new passwords, that is)
13:27 <@mattock> if the user accounts are not migrated, there might be problems 
with the database
13:28 < ecrist> phpbb3 uses a custom-written password hash based on urandom and 
md5
13:28 <@mattock> if a non-existent user is referenced in the tables
13:28 < ecrist> there are other dependency accounts within phpbb that are 
required, such as google bot and other accounts
13:29 <@mattock> so in a nutshell we (or I?) need to do some more research
13:29 < ecrist> indeed
13:30 <@dazo> ecrist:  does phpbb3 do more magic?  hash=md5(salt + password) or 
does it do some looping as well?  or other trickery like 
hash=md5(md5(salt+password)+salt)
13:30 <@mattock> ecrist: do you want to be "ecrist" on forums.openvpn.net?
13:31 < ecrist> entire function is here: http://www.pastebin.org/152553
13:31 < ecrist> mattock: ecrist is fine
13:32 <@mattock> ok
13:32 <@dazo> mattock:  btw ... the source browser in trac, is not so useful 
when it doesn't show all branches - only the master branch ... and what it 
shows is a mixture between last commits and what's found in the master tree 
index 
13:33 <@dazo> it will work fine though from tracker items where the commit ID 
is referenced, as that is unique among all commits
13:33 <@mattock> dazo: ok... and it might DOS the server if more than one user 
clicks on "Browse source" at once ;)
13:33 <@mattock> simultaneously I mean
13:33 -!- d12fk_ [~quassel@88.130.201.135] has joined #openvpn-devel
13:33 <@dazo> mattock:  I'm suggesting to rather use cgit or git-web for 
browsing the code ... or redirect that to sf.net site ...
13:34 <@mattock> perhaps redirecting SF.net would be best
13:34 < ecrist> then there's no point in using trac, really
13:34 < d12fk_> re
13:34 <@mattock> except as a bug tracker and wiki
13:34 < ecrist> sure, but there's a working bugtracker on sf.net and other wiki 
software.
13:34 <@mattock> I think it's possible to do some git->svn trickery to get 
better performance
13:34 <@dazo> yes, it is ... because if you reference commit IDs in tracker 
items, it can do commit lookups better ... but when browsing the source, it's 
not efficient (and wrong)
13:34  * ecrist feels like we're back where we left off
13:35 <@dazo> no, not at all :)  we just need to tune the pieces we have better
13:36 <@dazo> or to put a proxy-server like varnish in from
13:36 <@mattock> dazo: so the git integration does serve some purpose even if 
browsing is slow?
13:37 <@dazo> yes, because you can reference commits in tracker items ... and 
then you can click on those refs and see the actual commit ... I do find that 
useful
13:37 <@mattock> does that work properly even now?
13:38 < ecrist> you could do that with a custom wiki markup, though
13:38 <@dazo> yes!  Because the commit ID's are unique, across all branches
13:38 <@mattock> great
13:38 < ecrist> [id]foobean1[/id]
13:38 <@mattock> ok, so need to throw in the towel ;)
13:39 <@dazo> ecrist:  could be useful, and could work as well ... and then 
that could lead to the sf.net git-web instead
13:39 <@mattock> so let's start moving/copying the developer content to Trac 
and see how it holds together
13:39 <@mattock> bug reports and "user" content needs to wait
13:40 <@dazo> agreed :)
13:40 <@mattock> shall we move on?
13:40 <@dazo> agi:  what about your stuff now?
13:41 <@dazo> (as JJK has not arrived yet)
13:42 < agi> dazo: sure, fine
13:43 <@mattock> ecrist: do you have OpenPGP support in your mail client?
13:43 < agi> re: debian ipv6 patch, no news (I still have to ping the reporter)
13:43 < agi> next :)
13:43 < ecrist> mattock: no
13:43 <@mattock> ok
13:43 < ecrist> Apple Mail fails at PGP integration
13:44 < agi> OOM when using mlock, no idea, wanted to bring it here since it 
seems to be reproduceable by other user in the latests version
13:44 < agi> should I ask them for dumps just like with the ipv6 report?
13:44 < ecrist> mattock: if you're looking to send me a password, stick it in 
the upload directory of the backup server in a text file via ssh
13:46 <@dazo> agi:  the OOM is most probably caused due to the init scripts not 
having ulimit values high enough
13:46 <@dazo> (we're talking about: 
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=574164 )
13:46 < vpnHelper> Title: #574164 - openvpn: Assertion fails in socket.c:429 in 
p2p mode due to Debian ipv6 patch - Debian Bug report logs (at bugs.debian.org)
13:46 <@dazo> nah
13:46 <@dazo> wrong link
13:47 <@dazo> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=406895
13:47 <@dazo> this one
13:47 < vpnHelper> Title: #406895 - openvpn dies on boot with "Out of Memory" 
error when using "mlock" - Debian Bug report logs (at bugs.debian.org)
13:48 <@dazo> agi: as far as I can see, the implementation in OpenVPN is 
correct ... so it's not a programming error, but it is system dependent
13:48 < agi> dazo: I could add a recommended value to the README.Debian file, 
or a suggestion could be made in openvpn's README
13:48 <@dazo> jamesyonan:  what would you say would be a proper RLIMIT_MEMLOCK 
value?
13:49 <@dazo> agi:  or you could even add the needed 'ulimit -l' line in the 
startup script ... or have a change to /etc/security/limits.conf 
13:50 <@dazo> agi:  f.ex. Fedora got a /etc/security/limits.d/ directory where 
you could create a openvpn.conf ... which would be set upon startup, afaik
13:51 < jamesyonan> difficult to say.  I would take a base memory size (a few 
megs) + n_bytes_per_client * number_of_expected_clients
13:51 < agi> dazo: there's limits.d in Debian too
13:51 < jamesyonan> n_bytes_per_client tends to be around 200KB
13:52 <@dazo> agi:  and then you could give the openvpn user/group ... a decent 
amount of memlock
13:52 < agi> since it depends greatly on the number of clients
13:52 < agi> i'd rather document that, and let the users set a value for 
themselfs
13:53 < agi> *selves
13:54 <@dazo> agi:  I'd probably suggest adding a default file, which then can 
be modified on need ... the config line could be hashed out, of course
13:54 < agi> ok, sounds good
13:55 < agi> next is http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=534908
13:55 < vpnHelper> Title: #534908 - possibly symlink attack due to 
client-connect script - Debian Bug report logs (at bugs.debian.org)
13:55 <@dazo> I struggle to see how this one could be misused, except if the 
sysadmin really messes up his own config file ....
13:56 <@dazo> there is no way, afaik, that a client connection could make this 
happen ... or am I wrong?
13:57 < agi> looks a bit paranoid to me, but could be doable
13:58 <@dazo> well, then I just don't really see how ....
13:59 < agi> being faster in creating the temp's file as a symlink to something 
else than the script called by --client-connect
13:59 <@dazo> but that already means you have a config on the server side which 
are already messed up, right?
14:00 < agi> why?
14:01 < agi> your config just calls a script, the temporary file name is not 
specified in it
14:01 <@dazo> because, if you look at  misc.c:1168:create_temp_filename() ... 
here it's a counter which can't be messed up which is used in addition to the 
filename ... so already here we should have a safe filename 
14:01 <@dazo> this filename is then passed on to the script .... whatever that 
script does, is IMHO, out of OpenVPN's control ....
14:02 < jamesyonan> I think this issue would only be of concern if OpenVPN is 
being run to use /tmp as the temporary directory (which is world writable -- 
hence the concern)
14:02 < agi> right
14:03 <@dazo> jamesyonan:  would it be an better solution to make use of 
mkstemp() as well?
14:04 < jamesyonan> dazo: not really
14:04 < agi> if the temp file is just to let the script write some parms
14:04 < jamesyonan> the problem is not with the temp filename generation
14:05 < agi> wouldn't it be possible to read the script's stdout for those 
parms?
14:05 < jamesyonan> it's that the temp filename is then passed on the command 
line to the script, so ps can see it
14:05 <@dazo> I know ... but mkstemp(3) would not make use of an already 
existing file name
14:05 <@dazo> aha
14:06 < jamesyonan> so if the temp filename is in a world-writable directory, a 
malicious process could quickly create the link before the script has a chance 
to create the file
14:07 < jamesyonan> the solution is not to point --tmp-dir at a world writable 
directory
14:08 < jamesyonan> I believe by default, OpenVPN does NOT set --tmp-dir to 
point to /tmp
14:09 <@dazo> mm
14:10 <@dazo> jamesyonan:  but would it also make sense to add a check that it 
does not try to create a temp filename which already have an existing file in 
that directory?
14:11 < jamesyonan> it wouldn't hurt, but the chances of a filename collision 
is vanishingly small -- create_temp_filename uses 16 bytes of entropy to create 
the filename
14:12 < agi> maybe issue a warning when tmp_dir is world writeable?
14:12 < jamesyonan> that makes sense
14:13 <@dazo> agreed, it's not a big chance ... but still 16 bytes random is 
not making it impossible ... and if an external malicious process tries to 
quickly create a link before the script manages ... it would fail, as long as 
umask() is set correctly
14:14 <@dazo> (and unless, the malicious process runs with the same privileges 
as openvpn ... excluding root, as if this malicious process is running as root, 
you got a completely different problem on the server)
14:15 < agi> uninvited guess
14:15 < agi> guest
14:15 <@dazo> yeah
14:15 < jamesyonan> dazo: are you saying that OpenVPN should pre-create the 
temp file?
14:15 <@dazo> yes
14:16 <@dazo> that's what mkstemp() does, which makes it race safe as well
14:16  * agi has to leave
14:16 < agi> I couldn't test next bug report yet, we can leave it for next 
meeting if you want to
14:17 < jamesyonan> right, that makes sense... as long as the file is 
pre-created before the filename is placed on a command line that ps can see, 
we're safe
14:17 <@dazo> agi:  sounds good to me ... it's good to have you involved in 
these things, as you know more about it
14:17 <@dazo> jamesyonan:  want me to poke into a patch here?
14:18 < jamesyonan> sure
14:18 < agi> dazo: actually I don't think I know much about anything compared 
to anyone here :)
14:18 <@dazo> agi:  I meant ... you might know ;-)
14:18 < agi> gotta go now :)
14:18 <@dazo> agi:  have fun!
14:19 < agi> see you next week!
14:19 <@mattock> next one? :)
14:19 <@mattock> bye agi!
14:19  * dazo begins to run out of time as well
14:20 <@mattock> how about a quickie: 
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562099
14:20 < vpnHelper> Title: #562099 - openvpn: --multihome broken in latest 
version - Debian Bug report logs (at bugs.debian.org)
14:20 <@mattock> or is it a quickie?
14:20 <@dazo> heh :)
14:20 <@dazo> let's see! :)
14:21 <@mattock> james: any idea whether this is still an issue?
14:21 <@mattock> I remember seeing this first many moons ago
14:23 < jamesyonan> I haven't exhaustively tested it, but I do believe it's 
working
14:24 <@mattock> I can send a mail to -users and ask if people use this
14:24 <@mattock> if they do, we can then close the bug report
14:24 < jamesyonan> sounds good
14:25 <@mattock> ok, that was pretty quick...
14:25 <@mattock> enough for today, everyone?
14:26 <@dazo> think so!
14:26 <@dazo> jamesyonan:  I'll have a patch for you during tomorrow or so
14:26 < jamesyonan> great
14:27 <@mattock> ok, that concludes our meeting for today
14:27 <@mattock> I'll summarize the meeting tomorrow and link to the email from 
our new, shiny Trac instance
14:28 <@mattock> when we manage to discuss the roadmap, we could perhaps start 
creating tasks to Trac
14:28 <@dazo> mattock:  yes ... and it would be great to use the 
roadmap/milestone module in Trac for that as well
14:29 <@mattock> so it's more advanced than the one installed by default?
14:30 <@dazo> I honestly don't remember which one does what ... the important 
thing is the feature :)
14:30 <@mattock> I may have disabled the "Roadmap" feature for authenticated 
users (God knows why :)
14:30 <@dazo> one of them gives you possibility to set deadlines as well, and 
to see how the progress is going for each of the milestones, based on task 
status
14:31 <@mattock> then we only need somebody who can meet the deadlines :)
14:31 <@mattock> and will
14:31 <@dazo> :)
14:32 <@mattock> ok, but let's use Trac from now on for devel docs
14:32 <@mattock> without using it it's difficult to improve it
14:33 <@mattock> anything else?
14:35 <@dazo> Sounds like that's it :)
14:36 <@mattock> ok, bye all!
14:36 <@dazo> bye!

Reply via email to