关于Apache的安全配置问题

网友投稿 300 2022-11-09

关于Apache的安全配置问题

0x00 Apache应用介绍

0x01 为什么要做安全配置

0x02 如何进行安全配置

1.Apache用户账号Shell无效

apache账号不能用作常规登录帐户,应该分配一个无效或nologin shell确保帐号不能用于登录。apache账号shell应为:/sbin/nologin或/dev/null。

加固方法:修改apache账号使用 nologin shell或例如 /dev/null 的无效shell,

# chsh -s /sbin/nologin apache

2.锁定Apache用户账号

Apache运行的用户帐号不应该有有效的密码,应该被锁定。

加固方法:使用passwd命令锁定apache账号

# passwd -l apache

3.配置错误日志

加固方法:

LogLevel notice core:info

b.如果尚未配置,则添加ErrorLog指令。 文件路径可能是相对的或绝对的,或者日志可能被配置为发送到系统日志服务器。

ErrorLog “logs/error_log”

4.禁用弱SSL协议

Apache SSLProtocol指令指定允许的SSL和TLS协议。由于SSLv2和SSLv3协议已经过时并且易受信息泄露的攻击,所以都应该禁用。应只启用TLS协议。

加固方法:在Apache配置文件中查找SSLProtocol指令;如果不存在,则添加该指令,或修改该值以匹配以下值之一。如果还可以禁用TLSv1.0协议,则首选设置“TLSv1.1 TLS1.2”。

SSLProtocol TLSv1.1 TLSv1.2 SSLProtocol TLSv1

5.不安全的SSL Renegotiation应被限制

加固方法:在Apache配置文件中查找SSLInsecureRenegotiation指令。如果存在,将该值修改为off。

SSLInsecureRenegotiation off

6.TimeOut应设置为小于等于10

TimeOut指令控制Apache HTTP服务器等待输入/输出调用完成的最长时间(以秒为单位)。建议将TimeOut指令设置为10或更小。

加固方法:修改Apache配置文件,将TimeOut设置为10秒或更小。

Timeout 10

7.KeepAlive应设置为On

KeepAlive指令决定当处理完用户发起的 HTTP 请求后是否立即关闭 TCP 连接。

加固方法:修改Apache配置文件,将KeepAlive设置为On,以启用KeepAlive连接。

KeepAlive On

8.MaxKeepAliveRequests应设置为大于等于100

当KeepAlive启用时,MaxKeepAliveRequests指令限制每个连接允许的请求数量。如果设置为0,则允许无限制的请求。建议将MaxKeepAliveRequests设置为100或更大。

加固方法:修改Apache配置文件,将MaxKeepAliveRequests设置为100或更大。

MaxKeepAliveRequests 100

9.KeepAliveTimeout应设置为小于等于15

KeepAliveTimeout指令指定在关闭持久连接前等待下一个请求的秒数。

加固方法:修改Apache配置文件,将KeepAliveTimeout设置为15或更小。

KeepAliveTimeout 15

10.禁用WebDAV模块

Apache mod_dav和mod_dav_fs模块支持Apache的WebDAV(网络分布式创作与版本管理)功能。 WebDAV是HTTP协议的扩展,允许客户端创建,移动和删除Web服务器上的文件和资源。

加固方法:

a.对于静态模块的源码版本,运行Apache 。/configure脚本时在--enable-modules=configure选项中不包括mod_dav和mod_dav_fs。

b.对于动态加载的模块,在apache配置文件中注释掉或删除mod_dav和mod_dav_fs模块的LoadModule指令。

# LoadModule dav_module modules/mod_dav.so # LoadModule dav_fs_module modules/mod_dav_fs.so

11.隐藏Apache版本号及其他敏感信息

配置Apache ServerTokens指令提供最少的信息。通过将该值设置为Prod或ProductOnly,服务器HTTP响应头中给出的唯一版本信息将是“Apache”,而不是提供已安装的模块和版本的详细信息。禁用在服务器生成文档(如错误页面)底部生成签名行作为页脚的服务器签名。

12.防止默认Apache内容的泄漏信息

在之前的建议中,删除了默认内容,如Apache手册和默认CGI程序。但是,如果要进一步限制有关Web服务器的信息泄露,例如图标等默认内容不留在Web服务器上也很重要。

加固方法:

b.或者,可以将图标alias指令和目录访问控制注释掉,如下:

13.禁用HTTP TRACE方法

使用Apache TraceEnable禁用HTTP TRACE请求方法。因HTTP TRACE存在跨站攻击漏洞。

14.限制所有目录覆盖

加固方法:Apache配置文件中的《Directory》中应设置:AllowOverride None

大多数Web服务器(包括Apache安装)都带有不需要或不适合生产使用的默认CGI内容。这些示例程序的主要作用是展示Web服务器的功能。apache安装的一个常见的默认CGI内容是脚本test-cgi。这个脚本将打印回请求者的CGI环境变量,其中包括许多服务器配置细节。

加固方法:

a.通过Script,ScriptAlias,ScriptAliasMatch或ScriptInterpreterSource指令找到在Apache配置中启用的cgi-bin文件和目录。

b.删除cgi-bin目录中的printenv默认CGI(如果已安装)。

0x03 总结

对Apache进行安全配置可以有效的防范一些常见安全问题,按照基线标准做好安全配置能够减少安全事件的发生。国内常见的基线标准有中国信息安全等级保护、电信网和互联网安全防护基线配置要求及检测要求,美国CIS基线也有详细的Apache基线标准,不同的企业也可以根据自身企业业务制定符合自己企业的安全基线标准。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Linux系统配置及服务管理
下一篇:如何选择linux系统安装类型
相关文章

 发表评论

暂时没有评论,来抢沙发吧~