Re: Func and kerberos

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





Yep. The question *very quickly* becomes, "is func useful enough in the general case to even bother solving that problem?" Which, I think, is the *first* question to figure out. Until we know that func is a viable codebase and something that people will rally to and use, overdeveloping the security model isn't useful.

Of course, the minute that people decide that func *is* useful, then the security model becomes *extremely* important, and there's nothing fundamental to the func design that precludes this work later, AIUI.

Yes. Adding a lot of complexity too soon has killed many a project, and we are still in the early stages. That kind of thing can definitely be added later. And it's definitely important :)


* Another security concern - is the funcd on the clients trusted to
perform all of the actions? This will make it a huge target for attacks.
Could you instead exec helper applications? This would also allow you to
run the helper applications with lower privileges - either in an
specific selinux context, have it drop some capabilities before exec of
the script, or even as an unprivileged user.

Again: first let's validate that people find func (a) useful and (b) something they would want to extend with a community of modules. *Then* worry about things like "helper scripts with dropped privs." I think everyone's pretty well aware that, to start, func is nothing but a big ol' rootkit. *For now*, that's perfectly okay.


Fundamentally, anything that is remotely useful for systems control and management in this broad sort of way needs to have magic powers to be able to do what it needs to do. So, as long as we have an uber-module (like command.py), having less restricted modules is kind of pointless.

One problem (not saying it's unsolveable) with splitting out things into helper apps is that you lose the ability of your program to do native exception handling (tracebacks all the way down) and you can't exchange variables without extra serialization. This complicates things and gets all enterprisey really fast. Again, I'm not saying we couldn't do it, but it smells of "big architecture" and I think we need to crush that impulse until we start to see how the community wants to use the project. Simplicity drives adoption and keeps developers happy.

The aforementioned SSH equivalency command module, which is pretty much required to make func usable around non-Python coders, needs to be able to do, arbitrary,
whatever it needs to do.

While we aren't a configuration management system, the same is true of things like cfengine that need to modify the system arbitrarily.

I think concentrating on the way we manage certs is fine, but the privelege level stuff needs to come from user demand from a community perspective, before we create
something too complicated to develop for.

My two cents on the simplicity goal, anyway...

I definitely understand the arguments in the "more secure" direction, I'm sure it will drift there, and it's a good conversation to have -- I'm just worried about the cost of that kind of system in our goals of being really simple architecturally and really easy for projects and people to get engaged with func.

--Michael





[Index of Archives]     [Fedora Users]     [Linux Networking]     [Fedora Legacy List]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux