> That is a major security issue. I cannot recommend Puppet to my
> clients if I get different results on my filesystem than from my
> manifest.
>
> Is there a consistent culture or policy in the Puppet community to
> override explicit security configurations? It must be explicitly
> avoided in an audit, if that's the case. If there is no policy,
> perhaps we should define one?
the only existing culture is that for file resources directories
automatically get the execute bit. I don't yet see why you'd like to
have a directory without the execute flag set, maybe you can explain?
This "feature" is one side very helpfull if you have recursive
directories to manage, maybe you know the other side where it isn't that
helpfull.
Could you outline what you'd like to have in this policy. Not explicitly
for this question you raised but more in general. Maybe it's indeed
interesting to have one.
cheers pete
Peter Meier wrote:
> Could you outline what you'd like to have in this policy. Not explicitly
> for this question you raised but more in general. Maybe it's indeed
> interesting to have one.
As someone who works as a security professional and has spent the
last week interacting with a small army of auditors I vote that
security policy is often a pain in the arse. :)
There are some examples of FOSS security policies:
http://www.debian.org/security/
http://www.netbsd.org/support/security/
And of course Google will show a few more up - I believe Mozilla has
one.
Generally speaking they define a few basics:
1. Who is accountable for security
2. What to do if you find a security issue and where to report
security issues
3. How security patches are handled
4. The project's disclosure policy
Regards
James Turnbull
- --
Author of:
* Pro Linux Systems Administration
(http://tinyurl.com/linuxadmin)
* Pulling Strings with Puppet
(http://tinyurl.com/pupbook)
* Pro Nagios 2.0
(http://tinyurl.com/pronagios)
* Hardening Linux
(http://tinyurl.com/hardeninglinux)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iD8DBQFKbhjH9hTGvAxC30ARAjGMAJwKwXqm6RdMsaz9MG2vwMxL4eqBCQCgkra9
LnbnMMfBjRQeS0fE386tiko=
=fuo7
-----END PGP SIGNATURE-----
> the only existing culture is that for file resources directories
> automatically get the execute bit. I don't yet see why you'd like to
> have a directory without the execute flag set, maybe you can explain?
>
> This "feature" is one side very helpfull if you have recursive
> directories to manage, maybe you know the other side where it isn't that
> helpfull.
ok
http://www.wellho.net/mouth/2300_What-does-x-on-a-linux-directory-mean-.html
gave me some reasons, why you'd like to have the more strict way. I
outlined further things in the bug report:
http://projects.reductivelabs.com/issues/2451
> Could you outline what you'd like to have in this policy. Not explicitly
> for this question you raised but more in general. Maybe it's indeed
> interesting to have one.
still interested.
cheers pete
>> Could you outline what you'd like to have in this policy. Not explicitly
>> for this question you raised but more in general. Maybe it's indeed
>> interesting to have one.
>
> As someone who works as a security professional and has spent the
> last week interacting with a small army of auditors I vote that
> security policy is often a pain in the arse. :)
>
> There are some examples of FOSS security policies:
>
> http://www.debian.org/security/
> http://www.netbsd.org/support/security/
>
> And of course Google will show a few more up - I believe Mozilla has
> one.
>
> Generally speaking they define a few basics:
>
> 1. Who is accountable for security
> 2. What to do if you find a security issue and where to report
> security issues
> 3. How security patches are handled
> 4. The project's disclosure policy
ic, thought it's going into this direction, but wasn't sure. thanks!
cheers pete
On a slight tangent, how about having 755 on a directory but (for
example) having 700 or 600 recursively on all the managed directories
and files underneath it (and maybe different ownership as well). There
are valid reasons for wanting to do this but the last time I tried it, I
found it impossible with puppet. Maybe I should look again to see what
I missed.
--
Bruce
I object to intellect without discipline. I object to power without
constructive purpose. -- Spock
This sounds like a page for the wiki no? Any security issues ideally
should be reported privately first (at least with white hats).
-L
--
Larry Ludwig
Reductive Labs
Personally, I'm not too worried about the security aspects of this,
but I would certainly expect Puppet to do what its told. If I fluff
my permissions, more fool me. However if I do, for whatever reason,
want a particular mode then Puppet should respect that.
With the current operation, there's very little flexibility. If we
add a 'dirmode' or something similar, as suggested by Luke in Bug
#2451, then Puppet can handle both cases. This seems like a no
brainer to me?
Cheers,
Bryan
> On a slight tangent, how about having 755 on a directory but (for
> example) having 700 or 600 recursively on all the managed directories
> and files underneath it (and maybe different ownership as well). There
> are valid reasons for wanting to do this but the last time I tried it, I
> found it impossible with puppet. Maybe I should look again to see what
> I missed.
it is possible, but not that directly in one statement:
file{
'/a':
ensure => directory,
mode => 0755;
[ '/a/b', '/a/c' ]:
ensure => directory,
recurse => true
owner => user1, mode => 0600;
[ '/a/d', '/a/e' ]:
ensure => directory,
recurse => true,
owner => user2, mode => 0600;
}
and this is exactly the case where this automatic x-bit is really
nice. Do you envision any easier/more direct way to do it?
For sure you have to manage the content of each subdirectory
separately as they're managed on their own. But every other behavior
would simply lead to a too big headache.
cheers pete
I'm sorry, but that fails as far as I'm concerned. I shouldn't be
having to specify common behaviour multiple times.
--
Bruce
Those who cast the votes decide nothing. Those who count the
votes decide everything. -- Joseph Stalin
I tend to agree that the current behaviour meets 99% of the functional
requirements but I do understand where the original poster is coming from.
Like Luke, I don't see why an additional attribute can't be added but I
don't see it as a critical security issue. Not to say it should not be
developed but IMHO I see the risk of a compromise through this as low
and hence feel there is a low ROI in fixing it. If someone wants to
pony up some code and tests...
Regards
James Turnbull
>> For sure you have to manage the content of each subdirectory separately
>> as they're managed on their own.
>
> I'm sorry, but that fails as far as I'm concerned. I shouldn't be
> having to specify common behaviour multiple times.
well either your managing a resource or you're not. Something between
will just lead to too many problems and conflicts. or which easier way
do you envision without having these problems?
cheers pete
A problem shared brings the consolation that someone else is now
feeling as miserable as you.
> OK, maybe I didn't express it clearly enough. Puppet won't let me
> specify one behaviour for /a and another for /a/**. As I said, there
> are valid reasons for wanting that.
I understood it that way and I also understand the reasons. My problem
is to see a valid way to describe that within the (existing or future)
puppet language, as well to fit it into the resource model, which
puppet is committed to.
so something like?
file{
'/a:
mode => 0755;
"/a/**":
mode => 0600;
}
but I'm not sure whether this wildcard resource is a good idea.
cheers pete