首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何允许apache为rsyAdd.1-d (selinux)编写的文件提供服务

如何允许apache为rsyAdd.1-d (selinux)编写的文件提供服务
EN

Unix & Linux用户
提问于 2017-07-17 04:47:12
回答 1查看 753关注 0票数 1

我有一个应用程序,它作为一个系统服务在RHEL7上运行,它利用系统日志进行日志记录。为了简化对此应用程序的监视,我将rsyslogd配置为将日志从该服务(仅)写入专用日志文件。

现在我想使用httpd提供这个日志文件,这样用户就可以轻松地监视应用程序了。

我面临的问题是,无论我如何设置文件上下文,selinux似乎都会阻止我做我想做的事情:

  • 允许rsyslog写入var_log_t
  • 允许httpdhttpd_sys_content_t读取

据我所知,没有任何上下文允许rsyslogd编写和从httpd读取。

我能做些什么来解决这个问题?我最终会需要创建一个自定义策略模块吗?

EN

回答 1

Unix & Linux用户

发布于 2017-09-13 21:48:29

您可以检查是否存在布尔值以允许使用audit2why进行访问,在这种情况下,您不需要创建自定义策略模块。

如果不存在这样的布尔值,则允许apache读取附加策略所需的日志。使用audit2allow,您可以直接创建策略模块,也可以创建所需的规则,可以用作模块的模板。

首先,您需要生成包含访问冲突的日志。若要在正常使用期间获取所有的访问冲突,请将httpd_t设置为允许模式。在允许模式下,指定类型( SELinux )不强制执行httpd_t策略,但将像往常一样生成日志:

代码语言:javascript
复制
semanage permissive -a httpd_t

在验证了您的配置工作并可以使用Apache访问日志之后,请重新打开强制执行模式:

代码语言:javascript
复制
semanage permissive -d httpd_t

现在使用audit2allow生成新模块并插入它:

代码语言:javascript
复制
audit2allow -a -M apache_logs
semodule -i apache_logs.pp

如果希望确保只使用与httpd_t相关的审计消息来创建模块,请将审计日志中的相关行作为audit2allow的输入。例如:

代码语言:javascript
复制
grep "httpd_t" /var/log/audit/audit.log | audit2allow -M apache_logs

如果要手动验证或修改audit2allow生成的规则,请使用-m选项以源格式生成模块。如果愿意,可以验证和编辑生成的模块源。完成之后,您需要构建模块。步骤在手册页示例中演示。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/378934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档