我收到来自 SELinux 的审计消息,说它拒绝 Apache 执行 execmem:
type=AVC msg=audit(05/06/16 19:51:43.058:181060) : avc: denied { execmem } for pid=123456 comm=httpd scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:system_r:httpd_t:s0 tclass=process
Run Code Online (Sandbox Code Playgroud)
PID 是 Apache PID 之一,它在进程之间不断循环。
从我读到的内容来看,Apache 的 execmem 通常不正常并且是一个坏主意™,这是有道理的。
我已经尝试通过用 Apache 日志记录时间戳来跟踪来源,但是如果影响到各个站点的各种请求(基于 PHP 的有和没有 MySQL,基于 Python/mod_wsgi,加上内部 Apache“OPTION”请求),我不能找到任何一致的东西。
与其试图解释我的设置以让人们对其进行调试,我想知道的是如何确定 execmem 调用的来源,以便我可以确定它是否重要?
(注意:我知道有一个 SELinux 布尔值可以设置为允许它,但我不想在没有先了解它为什么要尝试它的情况下这样做。如果您要将 SELinux 变成一个筛子,就像没有必要拥有防火墙然后打开每个抱怨的端口而不检查它是否重要)。