LAMP架构调优(一)——隐藏Apache版本信息

简介: LAMP架构调优(一)——隐藏Apache版本信息

今天继续给大家介绍Linux运维相关知识,本文主要内容是LAMP架构调优。

一、Apache版本信息简介
在我们安装好LAMP架构之后,我们就可以正常使用了。但是,在默认情况下,Apache会在Http响应头中,附加Server字段,在该字段中显示本地Aapche服务器和版本信息,PHP的版本信息,如下所示:

实际上,这是一个存在风险的行为,暴露LAMP的版本信息,有利于攻击者对症下药,对LAMP系统实行攻击。因此,对Apache和PHP版本信息的隐藏就是今天我们要优化的点。
在生产环境中,一般而言都要进行服务器和版本信息的隐藏,我们来看一下国内知名互联网公司的Http响应头:

二、修改Apache版本信息
接下来,我们就来进行适当的配置,对Apache的版本信息进行隐藏。首先,打开conf目录下的Apache的主配置文件httpd.conf,找到如下第479行处:

删除该行的#号,使得conf/extra目录下的httpd-default.conf文件被主配置文件包括进去。
然后,打开httpd-default.conf配置文件,找到其中的ServerTokens和ServerSignature参数,大概在配置文件的55和65行,如下所示:

将这两个参数的值改为:

ServerTokens Prod
ServerSignature Off
1
2
ServerTokens表示显示的信息,信息的信息从多到少依次为:FULL——OS——MIN——MINOR——MAJOR——PROD。
然后,重启服务器,之后,我们尝试访问Apache,发现在HTTP的Server头部字段中,Apache服务的版本号消失了,如下所示:

三、修改服务器信息
值得一提的是,在上述修改中,我们虽然修改了Apache服务器的版本信息,但是却没有能够彻底的隐藏服务器的信息,还是会显示Apache字段,接下来,我就来介绍可以彻底修改Server字段显示服务器的方法。
想要彻底的隐藏服务器的相关信息,需要在编译之前,就对Apache的编译文件进行设置,如果是Apache服务已经安装,那么就需要删除Apache之后,重新进行编译、安装。同时,由于预编译文件会对编译的结果造成影响,我们也需要对预编译的目录进行删除后,重新解压、预编译。
首先,删除Apache的安装目录和解压后的目录:

rm -rf /usr/local/httpd
rm -rf /opt/
1
2
然后重新解压,解压后,打开include目录下的ap_release.h文件,找到该文件的第40行处,如下所示:

第40行到47行一共有7个参数,这些参数的含义分别是:
AP_SERVER_BASEVENDOR:服务的供应商名称
AP_SERVER_BASEPROJECT:服务的项目名称
AP_SERVER_BASEPRODUCT:服务的产品名称
AP_SERVER_MAJORVERSION_NUMBER:Apache主要版本号
AP_SERVER_MINORVERSION_NUMBER:Apache小版本号
AP_SERVER_PATCHLEVEL_NUMBER:补丁级别
AP_SERVER_DEVBUILD_BOOLEAN:开发版本
在这里,我们仅修改AP_SERVER_BASEPRODUCT,将其修改为keep_secret,完成修改后,对Apache进行预编译,执行命令:

./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-utils --with-pcre=/usr/local/pcre --enable-so --enable-ssl --enable-rewrite --enable-mpms-shared=all --enable-modules=most
1
然后进行编译和安装,执行命令:

make -j 4 && make install
1
之后,重复本文第二章的内容,隐藏Apache的版本号,发现最终结果如下:

在Server头中,显示了keep_secret,而不是Apache的原有名称,显然,本次实战成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/122524399

目录
相关文章
|
5月前
|
Dubbo Java 应用服务中间件
Apache ShenYu 架构学习指南
Apache ShenYu 是一款高性能、插件化的微服务API网关,基于Spring WebFlux + Reactor 构建,支持多协议、动态配置与实时数据同步。本指南以通俗类比和实战路径,带你深入理解其架构设计、核心流程与源码实现,助力快速掌握并参与贡献。
885 12
|
5月前
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(二):核心架构
原文:https://jack-vanlightly.com/blog/2025/9/2/understanding-apache-fluss 作者:Jack Vanlightly 翻译:Wayne Wang@腾讯 译注:Jack Vanlightly 是一位专注于数据系统底层架构的知名技术博主,他的文章以篇幅长、细节丰富而闻名。目前 Jack 就职于 Confluent,担任首席技术架构师,因此这篇 Fluss 深度分析文章,具备一定的客观参考意义。译文拆成了三篇文章,本文是第二篇。
677 19
【YashanDB知识库】如何排查YMP报错:”OCI版本为空或OCI的架构和本地系统的架构不符“
【YashanDB知识库】如何排查YMP报错:”OCI版本为空或OCI的架构和本地系统的架构不符“
【YashanDB知识库】如何排查YMP报错:”OCI版本为空或OCI的架构和本地系统的架构不符“
|
7月前
|
SQL 存储 JSON
Apache Doris 2.1.10 版本正式发布
亲爱的社区小伙伴们,Apache Doris 2.1.10 版本已正式发布。2.1.10 版本对湖仓一体、半结构化数据类型、查询优化器、执行引擎、存储管理进行了若干改进优化。欢迎大家下载使用。
329 5
|
8月前
|
达摩院 安全 Anolis
Anolis OS 23 架构支持家族新成员:Anolis OS 23.3 版本及 RISC-V 预览版发布
Anolis OS 23.3在保障基础功能持续演进、完善安全漏洞的修复的同时,实现了对 RISC-V 的初步支持。
|
11月前
|
SQL 分布式数据库 Apache
网易游戏 x Apache Doris:湖仓一体架构演进之路
网易游戏 Apache Doris 集群超 20 个 ,总节点数百个,已对接内部 200+ 项目,日均查询量超过 1500 万,总存储数据量 PB 级别。
1001 3
网易游戏 x Apache Doris:湖仓一体架构演进之路
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
1044 117
|
11月前
|
存储 SQL Java
Apache Doris 2.1.9 版本正式发布
Apache Doris 2.1.9 版本正式发布,欢迎使用~
354 4
【YashanDB 知识库】如何排查 YMP 报错:”OCI 版本为空或 OCI 的架构和本地系统的架构不符“
在迁移预检查的版本检查阶段报错“OCI 版本为空”,原因是 OCI 架构与本地系统不符或依赖库缺失。排查发现 `libdrv_oracle.so` 缺少 `libnsl.so.1` 库,尽管 OCI 客户端路径已正确加入 `LD_LIBRARY_PATH`。解决方法包括下载安装相应动态库版本,或通过软链接指向更高版本库(如 `libnsl.so.2`)。总结:确保动态库路径正确配置,并使用 `ldd` 查看依赖库,必要时创建软链接以解决问题。

热门文章

最新文章

推荐镜像

更多