IBM HTTP服务器安全与加固指南
调整IBM HTTP服务器(IHS)以用于生产环境
IBM的HTTP服务器通常与IBM的WebSphere Application Server结合使用。一些使用IBM HTTP Server的popular sites是:
- Airtel.in
- Marriott.com
- Hsbc.co.uk
- Mercedes-benz.com.eg
- Argos.co.uk
IHS基于Apache HTTP服务器,但由IBM进行了调整以支持企业应用程序和维护支持。它在Web服务器世界中所占份额很小,但在与WebSphere应用服务器广泛使用。
默认的IHS配置提供了很多敏感信息,这可以帮助黑客为攻击做准备并中断业务运营。作为管理员,您应该了解如何加固IHS配置以保持安全和secure the web applications。
在本文中,我将解释如何使IHS成为可用于生产环境的环境,以保持安全和secure。
一些事项:–
- 如果尚未安装IHS,则您已在Linux环境中安装了IHS,如果没有,可以参考installation guide here。
- 建议您备份配置文件。
- 您的浏览器中具有HTTP头extensions,或者您可以使用在线工具Header Checker。
- 由于文章长度较长,我将在下一篇文章中讨论SSL配置。
隐藏HTTP头中的服务器标识和产品信息
在设置生产环境时,可能是要执行的第一项任务之一是掩盖HTTP头中的IHS版本和服务器标识。这不是关键问题,但被认为是信息泄漏漏洞的低风险,并且对于符合PCI DSS的应用程序来说是必须的。
让我们看一下在默认配置中不存在(404)请求的响应。
哦,不,它透露了我正在使用IBM HTTP服务器以及服务器IP和端口号,这很不好看。让我们隐藏它们。
解决方案:–
- 在IHS的httpd.conf文件中添加以下三个指令。
AddServerHeader Off ServerTokens Prod ServerSignature Off
- 保存文件并重新启动IHS。
通过访问一个不存在的文件来验证。您也可以使用HTTP Header tool来验证响应。
好多了!现在它不会给出产品、服务器和端口信息。
禁用Etag
Etag头可以透露文件的完整性并帮助黑客执行NFS攻击。默认情况下,IHS会公开etag,以下是如何消除这个漏洞的方法。
解决方案:–
- 在根目录中添加以下指令。
FileETag none
例如:
Options FollowSymLinks AllowOverride None FileETag none
- 重新启动IHS服务器以生效。
以非root帐户运行IHS
默认配置以root和nobody用户运行Web服务器,这是不可取的,因为通过特权帐户运行可能会在发生安全漏洞时影响整个服务器。为了降低风险,您可以创建一个专用用户来运行IHS实例。
解决方案:–
- 创建名为ihsadmin的用户和组。
groupadd ihsadmin useradd –g ihsadmin ihsadmin
现在,将IHS文件夹的所有权更改为ihsadmin,以便新创建的用户对其具有完全权限。假设您已经安装在默认位置– /opt/IBM/HTTPServer
chown –R ihsadmin:ihsadmin /opt/IBM/HTTPServer
让我们修改httpd.conf中的User & Group值
User ihsadmin Group ihsadmin
保存httpd.conf并重新启动IHS服务器。这将帮助IHS以ihsadmin用户启动。
在Cookie中实施HttpOnly和Secure标志
拥有cookie secured and httponly将有助于降低XSS攻击的风险。
解决方案:–
为了实施这个解决方案,您必须确保在httpd.conf中启用了mod_headers.so。
如果没有,请取消在httpd.conf中的以下行的注释
LoadModule headers_module modules/mod_headers.so
并添加以下标头参数
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
保存配置文件并重新启动Web服务器。
缓解点击劫持攻击
The clickjacking技术是一个众所周知的攻击方式,攻击者可以欺骗用户点击链接并执行嵌入的代码,而用户对此一无所知。
解决方案: –
- 确保mod_headers.so已启用,并在httpd.conf文件中添加以下标头参数
Header always append X-Frame-Options SAMEORIGIN
- 保存文件并重新启动服务器。
让我们通过访问URL来验证,它应该具有如下所示的X-Frame-Options。
配置Listen指令
如果服务器上有多个以太网接口/IP,则适用此操作。建议通过在Listen指令中配置绝对IP和端口,以避免DNS请求被转发。这在共享环境中经常见到。
解决方案: –
- 在Listen指令下的httpd.conf中添加预期的IP和端口。例如:
Listen 10.0.0.9:80
添加X-XSS-Protection
如果用户在浏览器中禁用了跨站脚本(XSS)保护,您可以通过实施以下标头来应用保护。
Header set X-XSS-Protection "1; mode=block"
禁用Trace HTTP请求
在Web服务器中启用Trace方法可能会导致跨站跟踪攻击,并可能窃取Cookie信息。默认情况下,此选项已启用,您可以使用以下参数禁用它们。
解决方案: –
- 修改httpd.con文件并添加以下行
TraceEnable off
- 保存文件并重新启动IHS实例以使其生效。
希望以上提示有助于您加固生产环境中的IBM HTTP服务器。