15 Nov 2021
生产环境中的apache服务器(2.4.x),需要进行一定的安全配置,来保护服务器的安全,其中就包含以下方面
# 关闭服务器页脚信息,详细用途见下面文档,默认是off ServerSignature Off # 关闭Server版本号的显示 ServerTokens Prod
经过上面的配置,我们依然还可以看到”Server: Apache”的字符串,此时我们有两种方法来去掉Apache
关于ModSecurity的解决办法,网上很多演示,这边就不赘述。况且,我也不是太喜欢这种方法,其一是因为这个解决办法有点重,其二是因为引入了一个不可控风险,和我们的目标相悖。所以这里说明以下修改源码的方案。
PATH:./include/ap_release.h
#define AP_SERVER_BASEVENDOR "Apache Software Foundation" #define AP_SERVER_BASEPROJECT "Apache HTTP Server" #define AP_SERVER_BASEPRODUCT "Apache"
将上面的三个变量改成空字符串即可。
sed -i \ -e 's|AP_SERVER_BASEVENDOR "Apache Software Foundation"|AP_SERVER_BASEVENDOR "Security Server"|g' \ -e 's|AP_SERVER_BASEPROJECT "Apache HTTP Server"|AP_SERVER_BASEPROJECT "Security Server"|g' \ -e 's|AP_SERVER_BASEPRODUCT "Apache"|AP_SERVER_BASEPRODUCT "Security Server"|g' \ ./include/ap_release.h
禁用掉GET和POST之外的HTTP方法,详细配置见apache rewrite: 扩展6 - 配置禁止的HTTP METHOD,并配置自定义的返回码