[apparmor] RFC: Patch [Bug 1207424] Re: mod_apparmor should let me use ServerName as default hat name
John Johansen
john.johansen at canonical.com
Sat Aug 10 00:13:10 UTC 2013
On 08/09/2013 05:03 PM, Seth Arnold wrote:
> On Fri, Aug 02, 2013 at 01:41:37AM -0700, John Johansen wrote:
>> This is a first pass at providing the feature requested in Bug 1207424
>>
>> It leverages the appache config option
>>
>> AADefaultHatName
>>
>> and when its value is specified as
>> <hostname>
>>
>> the hostname will be looked up and used. Obviously this patch isn't
>> complete, but its a first pass and I wanted feedback before I put any
>> more work into it.
>
> I don't think this is it; this will use whatever the machine thinks its
> hostname is, rather than the virtual host that apache is currently
> serving a request for.
>
right, the question now is do we want to support <hostname> and <vhostname>?
> It might be "too dynamic", but if we modify immunix_enter_hat() to
> follow r->server_rec->server_hostname, I believe that's the data we
> need when we need it. Populating the scfg->hat_name with this data might
> also work, and be less dynamic (lower overhead) but that'd require more
> reading...
>
yep, I was going to try updating the patch this weekend
> Thanks
>
>> ---
>>
>> === modified file 'changehat/mod_apparmor/mod_apparmor.c'
>> --- changehat/mod_apparmor/mod_apparmor.c 2011-02-08 16:18:36 +0000
>> +++ changehat/mod_apparmor/mod_apparmor.c 2013-08-02 08:36:24 +0000
>> @@ -48,6 +48,7 @@
>> typedef struct {
>> const char * hat_name;
>> int is_initialized;
>> + char hostname[HOST_NAME_MAX + 1];
>> } immunix_srv_cfg;
>>
>> /* immunix_init() gets invoked in the post_config stage of apache.
>> @@ -235,6 +236,17 @@
>> parm1 ? parm1 : "DEFAULT");
>> immunix_srv_cfg * scfg = mconfig;
>> if (parm1 != NULL) {
>> + if (strcmp(parm1, "<hostname>") == 0) {
>> + if (gethostname(scfg->hostname, HOST_NAME_MAX+1)) {
>> + ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, NULL,
>> + "AADefaultHatName could not obtain hostname "
>> + " required by config");
>> + /* TODO: what is the correct behavior for a failure here */
>> + scfg->hat_name = "DEFAULT";
>> + } else {
>> + scfg->hat_name = scfg->hostname;
>> + }
>> + } else
>> scfg->hat_name = parm1;
>> } else {
>> scfg->hat_name = "DEFAULT";
>>
>>
>> --
>> AppArmor mailing list
>> AppArmor at lists.ubuntu.com
>> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor
>>
>>
>>
More information about the AppArmor
mailing list