HTTPOXY漏洞:如何保护和测试您的Web服务器

最近发现 HTTPOXY 漏洞是一个影响在 cgi cgi- like环境中运行的应用程序 的漏洞。 这意味着这个问题几乎影响所有的Web服务器,包括Apache和Nginx以及大多数PHP应用程序。 即使apache上的mod_php模式也受到影响。

本教程将向您展示如何保护您的Web服务器免受HTTPOXY的影响。 它包含最常用的Linux发行版CentOS + RHEL,Debian和Ubuntu的部分。 这些步骤也可以应用于其他Linux发行版,但配置文件的路径可能不同。

有关HTTPOXY漏洞的详细说明,请访问https://httpoxy.org/

本教程中描述的步骤与ISPConfig完美服务器教程兼容。

1 HTTP HTTP如何影响我的服务器?

HTTPOXY影响符合HTTP_PROXY变量的客户端,并将其用于其代理配置和服务器端应用程序,该应用程序在其环境中使用HTTP_PROXY作为实际或模拟变量。 攻击的结果可以是由Web应用程序代理到攻击者选择的目标系统的流量,或者应用程序打开到其他系统的传出连接。 该漏洞易于远程利用,可以扫描服务器,因此强烈建议您采取措施将其关闭在服务器上。

1.1一般解决方案

此时推荐的解决方案是取消设置或过滤HTTP_PROXY头变量。 这是在apache中使用mod_headers模块和此配置语句完成的:

RequestHeader unset Proxy early

在Nginx上,您可以使用此行来取消设置HTTP_PROXY变量。

fastcgi_param HTTP_PROXY "";

下一章将介绍不同Linux发行版的详细过程。

2 Debian

本章介绍了依靠HTTPOXY保护Apache和Nginx在Debian 8(Jessie)和Debian 7(Wheezy))服务器上的配置。 接下来的步骤假定您以root用户身份登录到shell。 如果您以不同的用户身份登录,则使用su命令(如果您配置sudo,则使用sudo)成为root用户。

2.2 Debian 8(Jessie)与Apache

启用apache标头模块

a2enmod headers

添加全局配置文件/etc/apache2/conf-available/httpoxy.conf。 我会在这里使用nano编辑器:

nano /etc/apache2/conf-available/httpoxy.conf

并将以下内容粘贴到该文件:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

保存文件。 然后在配置中使用a2enconf命令启动它并重新启动apache。

a2enconf httpoxy
service apache2 restart

2.2 Debian 7(Wheezy)与Apache

启用apache标头模块:

a2enmod headers

添加一个全局配置文件/etc/apache2/conf.d/httpoxy.conf。 我会在这里使用nano编辑器:

nano /etc/apache2/conf.d/httpoxy.conf

并将以下内容粘贴到该文件:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

保存文件。 然后重新启动apache。

service apache2 restart

2.3 Debian与Nginx

以下命令将添加一个fastcgi_param,将HTTP_PROXY变量设置为空字符串到/ etc / nginx / fastcgi_params文件。

echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

然后重新启动nginx来应用配置更改。

service nginx restart

3 Ubuntu

本章介绍了基于HTTPOXY的Ubuntu 14.04 - 16.04服务器上保护Apache和Nginx的配置。

3.1 Ubuntu与Apache

启用apache标头模块。

sudo a2enmod headers

添加全局配置文件/etc/apache2/conf-available/httpoxy.conf。 我会在这里使用nano编辑器:

sudo nano /etc/apache2/conf-available/httpoxy.conf

并将以下内容粘贴到该文件:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

保存文件。 然后在配置中使用a2enconf命令启动它并重新启动apache。

sudo a2enconf httpoxy
sudo service apache2 restart

3.2 Ubuntu与Nginx

保护Ubuntu免受HTTPOXY的步骤与Debian类似。 我们只需要确保使用sudo运行命令。 此echo命令将添加一个fastcgi_param行,将HTTP_PROXY变量设置为空字符串。 文件/ etc / nginx / fastcgi_params包含在nginx vhost文件的默认@PHP和cgi-bin部分以及由ISPConfig创建的vhost中。 如果您添加了自定义vhosts,那么它们包含的checj“包含/ etc / nginx / fastcgi_params;” 在php和其他cgi或fastcgi连接器的配置部分。

运行以下命令添加空的HTTP_PROXY变量。

sudo echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

然后重新启动Nginx来应用配置更改。

sudo service nginx restart

4 CentOS,RHEL和Fedora

本章介绍了根据HTTPOXY保护CentOS服务器上的Apache和Nginx的配置。 同样的步骤也适用于Fedora服务器。 在执行以下命令之前,以shell用户身份登录。

4.1 Apache

CentOS上的Apache(httpd)配置文件是/etc/httpd/conf/httpd.conf。 我将使用此命令在httpd.conf文件的末尾添加apache标题规则:

echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

然后重新启动httpd以应用配置更改。

service httpd restart

4.2 Nginx

CentOS上的Nginx Web服务器将fastcgi_params包含到默认vhost的PHP和CGI部分,因此我们可以添加规则来设置空的HTTP_PROXY变量。 运行此命令添加空的HTTP_PROXY变量。

echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params

然后重新启动nginx来应用配置更改。

service nginx restart

5测试

最后,您应该测试您的服务器现在是否安全。 Luke Rehman开发了一个很好的在线测试工具,可以在这里找到: https//httpoxy.rehmann.co/

在工具中输入您的服务器或网站的URL,然后单击“测试”按钮。

这是youcl.com的结果。 如您所见,我们的网站是安全的。

6链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏