* apache_content_template
@ 2008-02-27 12:04 Stefan Schulze Frielinghaus
2008-02-27 15:49 ` apache_content_template Daniel J Walsh
0 siblings, 1 reply; 8+ messages in thread
From: Stefan Schulze Frielinghaus @ 2008-02-27 12:04 UTC (permalink / raw)
To: selinux
I wanted to fix a problem with awstats and httpd_t but I ran into a
problem and just wanted to hear some other ideas.
Awstats uses the apache content template:
apache_content_template(awstats)
And a few awstats icons are labeled as httpd_awstats_content_t. When the
awstats CGI script is executed it generates a HTML file which includes
links to these icons. As soon as the httpd receives a query from the
client to download these icons an AVC is generated and the request is
denied. To allow this I would have to include a rule like:
allow httpd_t httpd_awstats_content_t:dir getattr;
allow httpd_t httpd_awstats_content_t:file { getattr read };
But then I would have to write a require statement for my awstats module
to include the type httpd_t as a dependency. While reading the apache.te
file I recognized three lines:
allow httpd_t httpd_sys_content_t:dir list_dir_perms;
read_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
read_lnk_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
Why aren't these ones included in the apache_content_template like these
ones:
allow httpd_t httpd_$1_content_t:dir list_dir_perms;
read_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
read_lnk_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
This would solve my problem with awstats and what my interpretation of
the httpd_$1_content_t type is that only these files should be red by
the httpd_t directly. I think other ones will run into the same problem
too.
Any thoughts?
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: apache_content_template
2008-02-27 12:04 apache_content_template Stefan Schulze Frielinghaus
@ 2008-02-27 15:49 ` Daniel J Walsh
2008-02-27 16:23 ` apache_content_template Stefan Schulze Frielinghaus
0 siblings, 1 reply; 8+ messages in thread
From: Daniel J Walsh @ 2008-02-27 15:49 UTC (permalink / raw)
To: Stefan Schulze Frielinghaus; +Cc: selinux
Stefan Schulze Frielinghaus wrote:
> I wanted to fix a problem with awstats and httpd_t but I ran into a
> problem and just wanted to hear some other ideas.
>
> Awstats uses the apache content template:
> apache_content_template(awstats)
>
> And a few awstats icons are labeled as httpd_awstats_content_t. When the
> awstats CGI script is executed it generates a HTML file which includes
> links to these icons. As soon as the httpd receives a query from the
> client to download these icons an AVC is generated and the request is
> denied. To allow this I would have to include a rule like:
>
> allow httpd_t httpd_awstats_content_t:dir getattr;
> allow httpd_t httpd_awstats_content_t:file { getattr read };
>
> But then I would have to write a require statement for my awstats module
> to include the type httpd_t as a dependency. While reading the apache.te
> file I recognized three lines:
>
> allow httpd_t httpd_sys_content_t:dir list_dir_perms;
> read_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
> read_lnk_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
>
> Why aren't these ones included in the apache_content_template like these
> ones:
>
> allow httpd_t httpd_$1_content_t:dir list_dir_perms;
> read_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
> read_lnk_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
>
> This would solve my problem with awstats and what my interpretation of
> the httpd_$1_content_t type is that only these files should be red by
> the httpd_t directly. I think other ones will run into the same problem
> too.
>
> Any thoughts?
>
>
> --
> This message was distributed to subscribers of the selinux mailing list.
> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
> the words "unsubscribe selinux" without quotes as the message.
>
Making that change would eliminate any possibility of separation of cgi
data from php data. IE If I only want my cgi scrips/processes to be
able to read my data, it ie easy to do now. But with your change, any
script that does not cause a transition can now access my data.
I would prefer an
apache_can_read(httpd_awstats_content_t)
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: apache_content_template
2008-02-27 15:49 ` apache_content_template Daniel J Walsh
@ 2008-02-27 16:23 ` Stefan Schulze Frielinghaus
2008-02-27 18:07 ` apache_content_template Daniel J Walsh
0 siblings, 1 reply; 8+ messages in thread
From: Stefan Schulze Frielinghaus @ 2008-02-27 16:23 UTC (permalink / raw)
To: Daniel J Walsh; +Cc: selinux
On Wed, 2008-02-27 at 10:49 -0500, Daniel J Walsh wrote:
> Stefan Schulze Frielinghaus wrote:
> > I wanted to fix a problem with awstats and httpd_t but I ran into a
> > problem and just wanted to hear some other ideas.
> >
> > Awstats uses the apache content template:
> > apache_content_template(awstats)
> >
> > And a few awstats icons are labeled as httpd_awstats_content_t. When the
> > awstats CGI script is executed it generates a HTML file which includes
> > links to these icons. As soon as the httpd receives a query from the
> > client to download these icons an AVC is generated and the request is
> > denied. To allow this I would have to include a rule like:
> >
> > allow httpd_t httpd_awstats_content_t:dir getattr;
> > allow httpd_t httpd_awstats_content_t:file { getattr read };
> >
> > But then I would have to write a require statement for my awstats module
> > to include the type httpd_t as a dependency. While reading the apache.te
> > file I recognized three lines:
> >
> > allow httpd_t httpd_sys_content_t:dir list_dir_perms;
> > read_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
> > read_lnk_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
> >
> > Why aren't these ones included in the apache_content_template like these
> > ones:
> >
> > allow httpd_t httpd_$1_content_t:dir list_dir_perms;
> > read_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
> > read_lnk_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
> >
> > This would solve my problem with awstats and what my interpretation of
> > the httpd_$1_content_t type is that only these files should be red by
> > the httpd_t directly. I think other ones will run into the same problem
> > too.
> >
> > Any thoughts?
> >
> >
> > --
> > This message was distributed to subscribers of the selinux mailing list.
> > If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
> > the words "unsubscribe selinux" without quotes as the message.
> >
> Making that change would eliminate any possibility of separation of cgi
> data from php data. IE If I only want my cgi scrips/processes to be
> able to read my data, it ie easy to do now. But with your change, any
> script that does not cause a transition can now access my data.
>
> I would prefer an
>
> apache_can_read(httpd_awstats_content_t)
But if you want to hide data from other scripts you normally use
httpd_$1_script_ro_t or httpd_$1_script_rw_t. The policy of the template
does not have any allow rules to read httpd_$1_content_t (except two
search_dir_perms which does not count). This means that even
httpd_$1_script_t can't read httpd_$1_content_t. So whats the purpose of
httpd_$1_content_t really? I can't see it.
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: apache_content_template
2008-02-27 16:23 ` apache_content_template Stefan Schulze Frielinghaus
@ 2008-02-27 18:07 ` Daniel J Walsh
2008-02-27 19:25 ` apache_content_template Stefan Schulze Frielinghaus
0 siblings, 1 reply; 8+ messages in thread
From: Daniel J Walsh @ 2008-02-27 18:07 UTC (permalink / raw)
To: Stefan Schulze Frielinghaus; +Cc: selinux
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Stefan Schulze Frielinghaus wrote:
> On Wed, 2008-02-27 at 10:49 -0500, Daniel J Walsh wrote:
>> Stefan Schulze Frielinghaus wrote:
>>> I wanted to fix a problem with awstats and httpd_t but I ran into a
>>> problem and just wanted to hear some other ideas.
>>>
>>> Awstats uses the apache content template:
>>> apache_content_template(awstats)
>>>
>>> And a few awstats icons are labeled as httpd_awstats_content_t. When the
>>> awstats CGI script is executed it generates a HTML file which includes
>>> links to these icons. As soon as the httpd receives a query from the
>>> client to download these icons an AVC is generated and the request is
>>> denied. To allow this I would have to include a rule like:
>>>
>>> allow httpd_t httpd_awstats_content_t:dir getattr;
>>> allow httpd_t httpd_awstats_content_t:file { getattr read };
>>>
>>> But then I would have to write a require statement for my awstats module
>>> to include the type httpd_t as a dependency. While reading the apache.te
>>> file I recognized three lines:
>>>
>>> allow httpd_t httpd_sys_content_t:dir list_dir_perms;
>>> read_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
>>> read_lnk_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
>>>
>>> Why aren't these ones included in the apache_content_template like these
>>> ones:
>>>
>>> allow httpd_t httpd_$1_content_t:dir list_dir_perms;
>>> read_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
>>> read_lnk_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
>>>
>>> This would solve my problem with awstats and what my interpretation of
>>> the httpd_$1_content_t type is that only these files should be red by
>>> the httpd_t directly. I think other ones will run into the same problem
>>> too.
>>>
>>> Any thoughts?
>>>
>>>
>>> --
>>> This message was distributed to subscribers of the selinux mailing list.
>>> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
>>> the words "unsubscribe selinux" without quotes as the message.
>>>
>> Making that change would eliminate any possibility of separation of cgi
>> data from php data. IE If I only want my cgi scrips/processes to be
>> able to read my data, it ie easy to do now. But with your change, any
>> script that does not cause a transition can now access my data.
>>
>> I would prefer an
>>
>> apache_can_read(httpd_awstats_content_t)
>
> But if you want to hide data from other scripts you normally use
> httpd_$1_script_ro_t or httpd_$1_script_rw_t. The policy of the template
> does not have any allow rules to read httpd_$1_content_t (except two
> search_dir_perms which does not count). This means that even
> httpd_$1_script_t can't read httpd_$1_content_t. So whats the purpose of
> httpd_$1_content_t really? I can't see it.
>
You are right. Those rules are missing and should be added.
read_files_pattern(httpd_$1_script_t, httpdcontent, httpd_$1_content_t)
read_lnk_files_pattern(httpd_$1_script_t, httpdcontent, httpd_$1_content_t)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
iEYEARECAAYFAkfFpuIACgkQrlYvE4MpobN7rQCeNvTr1StM8WbwV5YHrZozWBcw
5dMAnjP9k8TaHOo7zNG/KB4vuUVoHB6q
=GBsr
-----END PGP SIGNATURE-----
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: apache_content_template
2008-02-27 18:07 ` apache_content_template Daniel J Walsh
@ 2008-02-27 19:25 ` Stefan Schulze Frielinghaus
2008-02-27 19:31 ` apache_content_template Daniel J Walsh
0 siblings, 1 reply; 8+ messages in thread
From: Stefan Schulze Frielinghaus @ 2008-02-27 19:25 UTC (permalink / raw)
To: Daniel J Walsh; +Cc: selinux
On Wed, 2008-02-27 at 13:07 -0500, Daniel J Walsh wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Stefan Schulze Frielinghaus wrote:
> > On Wed, 2008-02-27 at 10:49 -0500, Daniel J Walsh wrote:
> >> Stefan Schulze Frielinghaus wrote:
> >>> I wanted to fix a problem with awstats and httpd_t but I ran into a
> >>> problem and just wanted to hear some other ideas.
> >>>
> >>> Awstats uses the apache content template:
> >>> apache_content_template(awstats)
> >>>
> >>> And a few awstats icons are labeled as httpd_awstats_content_t. When the
> >>> awstats CGI script is executed it generates a HTML file which includes
> >>> links to these icons. As soon as the httpd receives a query from the
> >>> client to download these icons an AVC is generated and the request is
> >>> denied. To allow this I would have to include a rule like:
> >>>
> >>> allow httpd_t httpd_awstats_content_t:dir getattr;
> >>> allow httpd_t httpd_awstats_content_t:file { getattr read };
> >>>
> >>> But then I would have to write a require statement for my awstats module
> >>> to include the type httpd_t as a dependency. While reading the apache.te
> >>> file I recognized three lines:
> >>>
> >>> allow httpd_t httpd_sys_content_t:dir list_dir_perms;
> >>> read_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
> >>> read_lnk_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
> >>>
> >>> Why aren't these ones included in the apache_content_template like these
> >>> ones:
> >>>
> >>> allow httpd_t httpd_$1_content_t:dir list_dir_perms;
> >>> read_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
> >>> read_lnk_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
> >>>
> >>> This would solve my problem with awstats and what my interpretation of
> >>> the httpd_$1_content_t type is that only these files should be red by
> >>> the httpd_t directly. I think other ones will run into the same problem
> >>> too.
> >>>
> >>> Any thoughts?
> >>>
> >>>
> >>> --
> >>> This message was distributed to subscribers of the selinux mailing list.
> >>> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
> >>> the words "unsubscribe selinux" without quotes as the message.
> >>>
> >> Making that change would eliminate any possibility of separation of cgi
> >> data from php data. IE If I only want my cgi scrips/processes to be
> >> able to read my data, it ie easy to do now. But with your change, any
> >> script that does not cause a transition can now access my data.
> >>
> >> I would prefer an
> >>
> >> apache_can_read(httpd_awstats_content_t)
> >
> > But if you want to hide data from other scripts you normally use
> > httpd_$1_script_ro_t or httpd_$1_script_rw_t. The policy of the template
> > does not have any allow rules to read httpd_$1_content_t (except two
> > search_dir_perms which does not count). This means that even
> > httpd_$1_script_t can't read httpd_$1_content_t. So whats the purpose of
> > httpd_$1_content_t really? I can't see it.
> >
> You are right. Those rules are missing and should be added.
>
> read_files_pattern(httpd_$1_script_t, httpdcontent, httpd_$1_content_t)
> read_lnk_files_pattern(httpd_$1_script_t, httpdcontent, httpd_$1_content_t)
I'm sorry but I'm still not convinced.
This would mean we have two types:
- httpd_$1_content_t
- httpd_$1_script_ro_t
which have the same allow rules and the same meaning. No real difference
(after adding your allow rules).
And a comment from the apache_content_template indicates that there is
something wrong with your definition:
# The following three are the only areas that
# scripts can read, read/write, or append to
After this comment allow rules follow for ro/rw and append types.
I still believe that the initial purpose of httpd_$1_content_t was to
allow httpd_t to read files/dirs. Otherwise httpd_$1_script_ro_t could
be used. Or even httpd_$1_content_t is a duplicate and could be removed.
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: apache_content_template
2008-02-27 19:25 ` apache_content_template Stefan Schulze Frielinghaus
@ 2008-02-27 19:31 ` Daniel J Walsh
2008-02-27 20:40 ` apache_content_template Stefan Schulze Frielinghaus
2008-02-29 7:57 ` apache_content_template Stefan Schulze Frielinghaus
0 siblings, 2 replies; 8+ messages in thread
From: Daniel J Walsh @ 2008-02-27 19:31 UTC (permalink / raw)
To: Stefan Schulze Frielinghaus; +Cc: selinux
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Stefan Schulze Frielinghaus wrote:
> On Wed, 2008-02-27 at 13:07 -0500, Daniel J Walsh wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Stefan Schulze Frielinghaus wrote:
>>> On Wed, 2008-02-27 at 10:49 -0500, Daniel J Walsh wrote:
>>>> Stefan Schulze Frielinghaus wrote:
>>>>> I wanted to fix a problem with awstats and httpd_t but I ran into a
>>>>> problem and just wanted to hear some other ideas.
>>>>>
>>>>> Awstats uses the apache content template:
>>>>> apache_content_template(awstats)
>>>>>
>>>>> And a few awstats icons are labeled as httpd_awstats_content_t. When the
>>>>> awstats CGI script is executed it generates a HTML file which includes
>>>>> links to these icons. As soon as the httpd receives a query from the
>>>>> client to download these icons an AVC is generated and the request is
>>>>> denied. To allow this I would have to include a rule like:
>>>>>
>>>>> allow httpd_t httpd_awstats_content_t:dir getattr;
>>>>> allow httpd_t httpd_awstats_content_t:file { getattr read };
>>>>>
>>>>> But then I would have to write a require statement for my awstats module
>>>>> to include the type httpd_t as a dependency. While reading the apache.te
>>>>> file I recognized three lines:
>>>>>
>>>>> allow httpd_t httpd_sys_content_t:dir list_dir_perms;
>>>>> read_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
>>>>> read_lnk_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
>>>>>
>>>>> Why aren't these ones included in the apache_content_template like these
>>>>> ones:
>>>>>
>>>>> allow httpd_t httpd_$1_content_t:dir list_dir_perms;
>>>>> read_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
>>>>> read_lnk_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
>>>>>
>>>>> This would solve my problem with awstats and what my interpretation of
>>>>> the httpd_$1_content_t type is that only these files should be red by
>>>>> the httpd_t directly. I think other ones will run into the same problem
>>>>> too.
>>>>>
>>>>> Any thoughts?
>>>>>
>>>>>
>>>>> --
>>>>> This message was distributed to subscribers of the selinux mailing list.
>>>>> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
>>>>> the words "unsubscribe selinux" without quotes as the message.
>>>>>
>>>> Making that change would eliminate any possibility of separation of cgi
>>>> data from php data. IE If I only want my cgi scrips/processes to be
>>>> able to read my data, it ie easy to do now. But with your change, any
>>>> script that does not cause a transition can now access my data.
>>>>
>>>> I would prefer an
>>>>
>>>> apache_can_read(httpd_awstats_content_t)
>>> But if you want to hide data from other scripts you normally use
>>> httpd_$1_script_ro_t or httpd_$1_script_rw_t. The policy of the template
>>> does not have any allow rules to read httpd_$1_content_t (except two
>>> search_dir_perms which does not count). This means that even
>>> httpd_$1_script_t can't read httpd_$1_content_t. So whats the purpose of
>>> httpd_$1_content_t really? I can't see it.
>>>
>> You are right. Those rules are missing and should be added.
>>
>> read_files_pattern(httpd_$1_script_t, httpdcontent, httpd_$1_content_t)
>> read_lnk_files_pattern(httpd_$1_script_t, httpdcontent, httpd_$1_content_t)
>
> I'm sorry but I'm still not convinced.
>
> This would mean we have two types:
> - httpd_$1_content_t
> - httpd_$1_script_ro_t
> which have the same allow rules and the same meaning. No real difference
> (after adding your allow rules).
>
> And a comment from the apache_content_template indicates that there is
> something wrong with your definition:
>
> # The following three are the only areas that
> # scripts can read, read/write, or append to
>
> After this comment allow rules follow for ro/rw and append types.
>
> I still believe that the initial purpose of httpd_$1_content_t was to
> allow httpd_t to read files/dirs. Otherwise httpd_$1_script_ro_t could
> be used. Or even httpd_$1_content_t is a duplicate and could be removed.
>
Yes you might be right.
I would say httpd_$1_script_ro_t should go away and be an alias of
httpd_$1_content_t. Then allow httpd_$1_script_t read on all
files/directories/lnk_files. Labeling a directory httpd_$1_script_ro_t
and putting rw_t content in is seems strange.
But there is a boolean to allow httpd to read script specific content.
httpd_builtin_scripting
Which if we changed the httpd_$1_script_ro_t would fix the problem.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
iEYEARECAAYFAkfFuqQACgkQrlYvE4MpobMBYQCgtO3951Eg0gyq84wlE+H8FKTu
Xf8AoKLJeYBhJ96mcwyMBYI9aoLK0NE+
=vU6O
-----END PGP SIGNATURE-----
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: apache_content_template
2008-02-27 19:31 ` apache_content_template Daniel J Walsh
@ 2008-02-27 20:40 ` Stefan Schulze Frielinghaus
2008-02-29 7:57 ` apache_content_template Stefan Schulze Frielinghaus
1 sibling, 0 replies; 8+ messages in thread
From: Stefan Schulze Frielinghaus @ 2008-02-27 20:40 UTC (permalink / raw)
To: Daniel J Walsh; +Cc: selinux
On Wed, 2008-02-27 at 14:31 -0500, Daniel J Walsh wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Stefan Schulze Frielinghaus wrote:
> > On Wed, 2008-02-27 at 13:07 -0500, Daniel J Walsh wrote:
> >> -----BEGIN PGP SIGNED MESSAGE-----
> >> Hash: SHA1
> >>
> >> Stefan Schulze Frielinghaus wrote:
> >>> On Wed, 2008-02-27 at 10:49 -0500, Daniel J Walsh wrote:
> >>>> Stefan Schulze Frielinghaus wrote:
> >>>>> I wanted to fix a problem with awstats and httpd_t but I ran into a
> >>>>> problem and just wanted to hear some other ideas.
> >>>>>
> >>>>> Awstats uses the apache content template:
> >>>>> apache_content_template(awstats)
> >>>>>
> >>>>> And a few awstats icons are labeled as httpd_awstats_content_t. When the
> >>>>> awstats CGI script is executed it generates a HTML file which includes
> >>>>> links to these icons. As soon as the httpd receives a query from the
> >>>>> client to download these icons an AVC is generated and the request is
> >>>>> denied. To allow this I would have to include a rule like:
> >>>>>
> >>>>> allow httpd_t httpd_awstats_content_t:dir getattr;
> >>>>> allow httpd_t httpd_awstats_content_t:file { getattr read };
> >>>>>
> >>>>> But then I would have to write a require statement for my awstats module
> >>>>> to include the type httpd_t as a dependency. While reading the apache.te
> >>>>> file I recognized three lines:
> >>>>>
> >>>>> allow httpd_t httpd_sys_content_t:dir list_dir_perms;
> >>>>> read_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
> >>>>> read_lnk_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
> >>>>>
> >>>>> Why aren't these ones included in the apache_content_template like these
> >>>>> ones:
> >>>>>
> >>>>> allow httpd_t httpd_$1_content_t:dir list_dir_perms;
> >>>>> read_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
> >>>>> read_lnk_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
> >>>>>
> >>>>> This would solve my problem with awstats and what my interpretation of
> >>>>> the httpd_$1_content_t type is that only these files should be red by
> >>>>> the httpd_t directly. I think other ones will run into the same problem
> >>>>> too.
> >>>>>
> >>>>> Any thoughts?
> >>>>>
> >>>>>
> >>>>> --
> >>>>> This message was distributed to subscribers of the selinux mailing list.
> >>>>> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
> >>>>> the words "unsubscribe selinux" without quotes as the message.
> >>>>>
> >>>> Making that change would eliminate any possibility of separation of cgi
> >>>> data from php data. IE If I only want my cgi scrips/processes to be
> >>>> able to read my data, it ie easy to do now. But with your change, any
> >>>> script that does not cause a transition can now access my data.
> >>>>
> >>>> I would prefer an
> >>>>
> >>>> apache_can_read(httpd_awstats_content_t)
> >>> But if you want to hide data from other scripts you normally use
> >>> httpd_$1_script_ro_t or httpd_$1_script_rw_t. The policy of the template
> >>> does not have any allow rules to read httpd_$1_content_t (except two
> >>> search_dir_perms which does not count). This means that even
> >>> httpd_$1_script_t can't read httpd_$1_content_t. So whats the purpose of
> >>> httpd_$1_content_t really? I can't see it.
> >>>
> >> You are right. Those rules are missing and should be added.
> >>
> >> read_files_pattern(httpd_$1_script_t, httpdcontent, httpd_$1_content_t)
> >> read_lnk_files_pattern(httpd_$1_script_t, httpdcontent, httpd_$1_content_t)
> >
> > I'm sorry but I'm still not convinced.
> >
> > This would mean we have two types:
> > - httpd_$1_content_t
> > - httpd_$1_script_ro_t
> > which have the same allow rules and the same meaning. No real difference
> > (after adding your allow rules).
> >
> > And a comment from the apache_content_template indicates that there is
> > something wrong with your definition:
> >
> > # The following three are the only areas that
> > # scripts can read, read/write, or append to
> >
> > After this comment allow rules follow for ro/rw and append types.
> >
> > I still believe that the initial purpose of httpd_$1_content_t was to
> > allow httpd_t to read files/dirs. Otherwise httpd_$1_script_ro_t could
> > be used. Or even httpd_$1_content_t is a duplicate and could be removed.
> >
> Yes you might be right.
> I would say httpd_$1_script_ro_t should go away and be an alias of
> httpd_$1_content_t. Then allow httpd_$1_script_t read on all
> files/directories/lnk_files. Labeling a directory httpd_$1_script_ro_t
> and putting rw_t content in is seems strange.
>
> But there is a boolean to allow httpd to read script specific content.
>
> httpd_builtin_scripting
>
> Which if we changed the httpd_$1_script_ro_t would fix the problem.
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.8 (GNU/Linux)
> Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
>
> iEYEARECAAYFAkfFuqQACgkQrlYvE4MpobMBYQCgtO3951Eg0gyq84wlE+H8FKTu
> Xf8AoKLJeYBhJ96mcwyMBYI9aoLK0NE+
> =vU6O
> -----END PGP SIGNATURE-----
Yeah I think this is quite OK. To be consistent when changing
httpd_$1_script_ro_t to httpd_$1_content_t (and alias it back)
shouldn't we add a type httpd_$1_content_rw_t and alias it to
httpd_$1_script_rw_t (and the same for a_t)?
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: apache_content_template
2008-02-27 19:31 ` apache_content_template Daniel J Walsh
2008-02-27 20:40 ` apache_content_template Stefan Schulze Frielinghaus
@ 2008-02-29 7:57 ` Stefan Schulze Frielinghaus
1 sibling, 0 replies; 8+ messages in thread
From: Stefan Schulze Frielinghaus @ 2008-02-29 7:57 UTC (permalink / raw)
To: Daniel J Walsh; +Cc: selinux
On Wed, 2008-02-27 at 14:31 -0500, Daniel J Walsh wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Stefan Schulze Frielinghaus wrote:
> > On Wed, 2008-02-27 at 13:07 -0500, Daniel J Walsh wrote:
> >> -----BEGIN PGP SIGNED MESSAGE-----
> >> Hash: SHA1
> >>
> >> Stefan Schulze Frielinghaus wrote:
> >>> On Wed, 2008-02-27 at 10:49 -0500, Daniel J Walsh wrote:
> >>>> Stefan Schulze Frielinghaus wrote:
> >>>>> I wanted to fix a problem with awstats and httpd_t but I ran into a
> >>>>> problem and just wanted to hear some other ideas.
> >>>>>
> >>>>> Awstats uses the apache content template:
> >>>>> apache_content_template(awstats)
> >>>>>
> >>>>> And a few awstats icons are labeled as httpd_awstats_content_t. When the
> >>>>> awstats CGI script is executed it generates a HTML file which includes
> >>>>> links to these icons. As soon as the httpd receives a query from the
> >>>>> client to download these icons an AVC is generated and the request is
> >>>>> denied. To allow this I would have to include a rule like:
> >>>>>
> >>>>> allow httpd_t httpd_awstats_content_t:dir getattr;
> >>>>> allow httpd_t httpd_awstats_content_t:file { getattr read };
> >>>>>
> >>>>> But then I would have to write a require statement for my awstats module
> >>>>> to include the type httpd_t as a dependency. While reading the apache.te
> >>>>> file I recognized three lines:
> >>>>>
> >>>>> allow httpd_t httpd_sys_content_t:dir list_dir_perms;
> >>>>> read_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
> >>>>> read_lnk_files_pattern(httpd_t,httpd_sys_content_t,httpd_sys_content_t)
> >>>>>
> >>>>> Why aren't these ones included in the apache_content_template like these
> >>>>> ones:
> >>>>>
> >>>>> allow httpd_t httpd_$1_content_t:dir list_dir_perms;
> >>>>> read_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
> >>>>> read_lnk_files_pattern(httpd_t,httpd_$1_content_t,httpd_$1_content_t)
> >>>>>
> >>>>> This would solve my problem with awstats and what my interpretation of
> >>>>> the httpd_$1_content_t type is that only these files should be red by
> >>>>> the httpd_t directly. I think other ones will run into the same problem
> >>>>> too.
> >>>>>
> >>>>> Any thoughts?
> >>>>>
> >>>>>
> >>>>> --
> >>>>> This message was distributed to subscribers of the selinux mailing list.
> >>>>> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
> >>>>> the words "unsubscribe selinux" without quotes as the message.
> >>>>>
> >>>> Making that change would eliminate any possibility of separation of cgi
> >>>> data from php data. IE If I only want my cgi scrips/processes to be
> >>>> able to read my data, it ie easy to do now. But with your change, any
> >>>> script that does not cause a transition can now access my data.
> >>>>
> >>>> I would prefer an
> >>>>
> >>>> apache_can_read(httpd_awstats_content_t)
> >>> But if you want to hide data from other scripts you normally use
> >>> httpd_$1_script_ro_t or httpd_$1_script_rw_t. The policy of the template
> >>> does not have any allow rules to read httpd_$1_content_t (except two
> >>> search_dir_perms which does not count). This means that even
> >>> httpd_$1_script_t can't read httpd_$1_content_t. So whats the purpose of
> >>> httpd_$1_content_t really? I can't see it.
> >>>
> >> You are right. Those rules are missing and should be added.
> >>
> >> read_files_pattern(httpd_$1_script_t, httpdcontent, httpd_$1_content_t)
> >> read_lnk_files_pattern(httpd_$1_script_t, httpdcontent, httpd_$1_content_t)
> >
> > I'm sorry but I'm still not convinced.
> >
> > This would mean we have two types:
> > - httpd_$1_content_t
> > - httpd_$1_script_ro_t
> > which have the same allow rules and the same meaning. No real difference
> > (after adding your allow rules).
> >
> > And a comment from the apache_content_template indicates that there is
> > something wrong with your definition:
> >
> > # The following three are the only areas that
> > # scripts can read, read/write, or append to
> >
> > After this comment allow rules follow for ro/rw and append types.
> >
> > I still believe that the initial purpose of httpd_$1_content_t was to
> > allow httpd_t to read files/dirs. Otherwise httpd_$1_script_ro_t could
> > be used. Or even httpd_$1_content_t is a duplicate and could be removed.
> >
> Yes you might be right.
> I would say httpd_$1_script_ro_t should go away and be an alias of
> httpd_$1_content_t. Then allow httpd_$1_script_t read on all
> files/directories/lnk_files. Labeling a directory httpd_$1_script_ro_t
> and putting rw_t content in is seems strange.
>
> But there is a boolean to allow httpd to read script specific content.
>
> httpd_builtin_scripting
>
> Which if we changed the httpd_$1_script_ro_t would fix the problem.
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.8 (GNU/Linux)
> Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
>
> iEYEARECAAYFAkfFuqQACgkQrlYvE4MpobMBYQCgtO3951Eg0gyq84wlE+H8FKTu
> Xf8AoKLJeYBhJ96mcwyMBYI9aoLK0NE+
> =vU6O
> -----END PGP SIGNATURE-----
Another problem raised up. httpd_t should have at least search
permissions for httpd_$1_content_t because otherwise httpd_t could not
read httpd_$1_htaccess_t files. The following rules exists:
allow httpd_t httpd_$1_htaccess_t:file read_file_perms;
I would suggest to change this allow rule to read_files_pattern()
A small example should summaries the problem:
/var/www.myWiki <- is labeled as httpd_myWiki_content_t
/var/www.myWiki/config/.htaccess <- is labeled as
httpd_myWiki_htaccess_t
httpd_t could not read the htaccess file because it does not have search
permissions for /var/www.myWiki.
Another example would be:
/usr/share/awstats/wwwroot <- labeled as httpd_awstats_content_t
/usr/share/awstats/wwwroot/cgi-bin <- labeled as
httpd_awstats_script_exec_t
/usr/share/awstats/wwwroot/icon <- labeled as httpd_sys_content_t
This would work if httpd_t has search permissions because httpd_t can
scroll through /usr/share/awstats/wwwroot and then into icon.
The search permissions and the correct labeling of
e.g. /usr/share/awstats/wwwroot/icon as httpd_sys_content_t would also
eliminate the need of apache_can_read()
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2008-02-29 7:58 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-27 12:04 apache_content_template Stefan Schulze Frielinghaus
2008-02-27 15:49 ` apache_content_template Daniel J Walsh
2008-02-27 16:23 ` apache_content_template Stefan Schulze Frielinghaus
2008-02-27 18:07 ` apache_content_template Daniel J Walsh
2008-02-27 19:25 ` apache_content_template Stefan Schulze Frielinghaus
2008-02-27 19:31 ` apache_content_template Daniel J Walsh
2008-02-27 20:40 ` apache_content_template Stefan Schulze Frielinghaus
2008-02-29 7:57 ` apache_content_template Stefan Schulze Frielinghaus
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.