Apache HTTP Server从2.4.25升级到2.4.33工作记录
1 背景
1.1 环境
1.2 历史情况
最早已经部署了一版Apache2.2(2.2.15),目的应该是做外网到内网的映射,配置应该是临时安排我来做的(以前没有相关经验)。后续又做了一次升级(原因已经记不清了),升级到目前的2.4.25。
1.3 升级到2.4.33的原因
为了解决以下漏洞(在2.4.33以前版本,相应的已经处理了这些漏洞):
Apache HTTP Server mod_ssl空指针间接引用漏洞(CVE-2017-3169)
Apache HTTP Server ap_get_basic_auth_pw身份验证绕过漏洞(CVE-2017-3167)
Apache HTTP Server 缓冲区溢出漏洞(CVE-2017-7668)
Apache HTTP Server mod_mime缓冲区溢出漏洞(CVE-2017-7679)
Apache HTTP Server 内存破坏漏洞(CVE-2017-9788)
Apache HTTP Server mod_http2 空指针间接引用漏洞(CVE-2017-7659)
Apache httpd 信息泄露漏洞(CVE-2017-9798)
OpenSSL 安全漏洞(CVE-2017-3735)
OpenSSL 信息泄露漏洞(CVE-2017-3736)
OpenSSL安全限制绕过漏洞(CVE-2017-3737)
2 实施
2.1 下载2.4.33版本
2.1.1 进入apache官网:https://httpd.apache.org/download.cgi
2.1.2 选择2.4的版本,点击 Files for Microsoft Windows (windows安装版本)
2.1.3 选择前三个网站中的任意一下进入下载,(推荐Apache Lounge镜像站点快)
2.1.4 不同的VC对应不同的vc++版本,服务器环境安装了VS2015所以选择VC14
2.2 安装及配置
2.2.1 安装
2.2.1.1 此版本无需安装,将压缩文件解压到相应目录即可(D:/apache/httpd-2.4.33)
2.2.2 配置
2.2.2.1 打开主配置文件(conf\httpd.conf)
2.2.2.2 把文件中的所有 ”c:/Apache24″ 替换为自己的安装目录(D:/apache/httpd-2.4.33/Apache24)
2.2.2.3 因为目前仅需要Apache的代理功能,需要保证mod_proxy.so、mod_proxy_http.so的引入(去掉相应LoadModule前的#)
2.2.2.4 配置代理路径(以下仅为示例,真实配置内容请查阅现场配置文件)
ProxyPass /xxxx http://192.168.43.158:8080/xxxx
ProxyPassReverse /xxxx http://192.168.43.158:8080/xxxx
注:Apache HTTP Server在此项目中的应用仅作为反向代理服务器,ProxyPassReverse的作用防止重定向造成的绕过反向代理服务器。
2.2.2.5 以管理员身份运行CMD,进入Apache24\bin 目录(httpd.exe所在目录)
2.2.2.6 输入 httpd.exe -k install -n "Apache2.4.33" 安装服务(注:Apache2.4.33为安装服务名称)
2.2.2.7 将apache24(2.4.25)服务启动类型改为手动
2.2.2.8 使用 ApacheMonitor.exe ,切换apache服务为2.4.33版本
2.4.33运行一段时间,若无任何异常,可将其他版本服务卸载,卸载服务前先要停止这个服务,然后输入httpd.exe -k uninstall –n “服务名”卸载这个服务。
当然也可不处理,因为其他版本服务已停止运行。
2.2.2.9 验证
先验证apache是否正常运行。
在验证代理的应用是否可正常访问。
2.2.3 解决"可通过HTTP获取远端WWW服务信息"
2.2.3.1 在httpd.conf文件添加如下配置,重启服务
#隐藏版本号及操作系统版本信息
serversignature off
servertokens prod
配置前
配置后
3 说明
3.1 考虑到后续仍有可能升级,固整理此文档,留给下次操作参考。
3.2 之前的配置或升级(时间太紧)均没做详细记录或描述,固补一版。
3.3 以上实施过程均在本地环境经过验证。
下载安装参考:https://www.cnblogs.com/zhaoqingqing/p/4969675.html