最近发现 的 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链接
- HTTPOXY网站https://httpoxy.org/
- 感谢Jesse的Debian 8Recipe 。