允许OCSP中的Apache Web服务器与装订SELinux策略

大多数Linux发行版与执行安全增强型Linux(SELinux)的政策不会允许的Apache Web服务器连接到OCSP默认情况下,响应的服务器。这里是你如何调整你的SELinux策略允许Apache的执行OCSP吻合,这意味着什么为您的服务器的安全性。

本教程假设你正在运行一个Linux发行版默认的SELinux策略集类似于那些来自参照策略通过Tresys技术。(包括CentOS的,Fedora的,红帽企业Linux(RHEL)的最新版本,以及可选大多数人。)

OCSP装订是一个过程,你的服务器会从你的证书的当前有效期到您的证书OCSP服务器连接多达最新和加密签名响应。参观者将同时接收您的域名证书,并从您的Web服务器在签署OCSP响应一去,而不是发送一个单独的OCSP请求自己。这样可以加快网站加载时间特别适用于移动或高延迟连接的游客。

没有权限

引起麻烦OCSP装订该政策旨在通过在Web应用程序中的漏洞,以防止代码,可能是从注入脚本,被允许开放的插座和连接到网络位置。如CGI或PHP解释器在Web服务器上运行的东西可以用来下载远程代码或发送数据从系统中。

Apache的错误日志消息将显示Apache的过程(的httpd在这个例子中)未能获得权限连接到OCSP响应(让我们加密,在这个例子中):

[SSL:错误]权限被拒绝:AH01974:无法连接到OCSP响应 'ocsp.int-x3.letsencrypt.org'[SSL:错误] AH01941:stapling_renew_response:应答错误

这将表现为误差“SEC_ERROR_OCSP_TRY_SERVER_LATER”在Firefox谁就会看到Apache和块访客访问网站装订OCSP错误响应。你会发现在表明阿帕奇拒绝的权限连接到远程端口80通过TCP套接字SELinux的审计日志匹配的消息:

对于PID = 1856 COMM = “httpd的” DEST = 80 scontext = system_u否认{name_connect}::system_r:httpd_t:秒0 tcontext = system_u:object_r:http_port_t:S0 tclass键入= AVC味精=审计(1514069285.431:489):AVC= TCP_SOCKET容许= 0

授予访问权限

在这一点上,你可以使用audit2allow从上面的日志条目产生一个新的政策,允许Apache访问到一个开放TCP_SOCKET。然而,有它在参照策略覆盖这种特定情况下有现成的布尔开关。您可以启用httpd_can_network_connect布尔以允许Apache以连接到与下面的命令网络位置:yabo亚博体育下载

setsebool -P httpd_can_network_connect 1

您必须发出此命令后,重新启动Web服务器为它取上运行的服务器实例的效果。这是你会使用允许反向或中介代理服务器连接,或者允许来自于Apache的用户执行的脚本的网络连接相同的布尔值。

谁所信任装订OCSP响应,如Firefox浏览器,将无法重试错误的条件对自己的一个OCSP请求。就个人而言,我认为这是最好不要装订错误响应(在这样的服务器配置问题或网络问题的情况下),并让客户重新尝试自己。这可能增加对OCSP响应的负荷,但至少客户不会放弃在连接到您的网站。您可以通过修改Apache配置下列选项更改此行为:yabo亚博体育下载

SSLStaplingReturnResponderErrors关闭

再次锁定下来的网络访问

你已经修改了上面的选项后,你还开辟了您的Web服务器某些类型的攻击。但是,请注意,这不会使你的系统比任何不执行任何SELinux策略的系统上运行的Apache的一个实例,不太安全。

您可以通过配置系统防火墙重新实行更具体的限制,只允许在系统上发起去一个允许上市的地址设置传出的连接,包括OCSP响应您的证书(具体地址嵌入到个人证书文件)。在防火墙中允许维护远程主机的允许列表也将有助于保护其他攻击向量的系统,但它可以是复杂的管理。

实事求是地讲,您必须接受让你的网络服务器来启动远程连接或禁用OCSP装订,除去制作远程连接的需求的风险。请注意,移除装订OCSP可能产生负面影响您的访客您的网站的性能,每个客户都会有自己做OCSP请求,而不是。

没有这“只是作品”过吗?

是的,它的工作外的开箱有时在CentOS,Fedora和RHEL。这些分布有一个名为额外的SELinux策略布尔httpd_graceful_shutdown其允许端口80的TCP连接(这不是从名字全部清除)。许多证书带有OCSP响应服务器侦听端口80,所以他们不会有事的工作在默认配置。

默认值httpd_graceful_shutdown改为拒绝,导致所有OCSP装订请求和检查默认情况下开始在Fedora 27和以后的版本中失败。这不会影响正在从旧的策略集更新的系统,但改变后安装的任何系统都会有新的默认策略。

启用httpd_can_network_connect政策布尔代替httpd_graceful_shutdown将确保所有OCSP应答器将不管他们监听哪个TCP端口的工作。该政策还具有比更暧昧地命名更清楚后果httpd_graceful_shutdown政策。