浅谈Linux系统Apache安全配置

蜗牛 vps教程 2022-08-05 165 0

浅谈Linux系统Apache安全配置

0x00 Apache应用介绍

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。

 

0x01 为什么要做安全配置

之前我们讨论了数据库的安全配置,web中间件同样也存在因为安全配置不合适导致的安全问题。Apache的默认配置中存在一些安全问题,例如版本号信息泄露、未配置使用SSL协议等。因此安全配置Apache服务器能有效的减少安全威胁,下面将对Apache的安全配置进行讨论。

 

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指令用于设置错误日志的严重级别。ErrorLog指令设置错误日志文件名称。日志级别值为emerg,alert,crit,error,warn,notice,info和debug的标准syslog级别。推荐级别为notice,以便记录从emerg到notice级别的所有错误。core模块建议设置为info,以便任何"not found"请求包含在错误日志中。

加固方法:

a.在Apache配置中添加或修改LogLevel的值,core模块设置为info或更低,所有其他模块设置为notice或更低。如果需要更详细的日志,并且存储和监视进程能够处理额外的负载,那么也可以设置为info或debug。建议值是 notice core:info。

LogLevel notice core:info

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

ErrorLog "logs/error_log"

c.如果虚拟主机有不同的人负责网站,为每个配置的虚拟主机添加一个类似ErrorLog的指令。每个负责的个人或组织都需要访问他们自己的网络日志,并需要技能/训练/工具来监控日志。

 

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应被限制

为了Web服务器与OpenSSL 0.9.8m或更高版本连接,在Apache 2.2.15中添加了SSLInsecureRenegotiation指令,允许不安全的重新协商为使用较早的未修补SSL实现客户端提供向后兼容性。在提供向后兼容性的同时,启用SSLInsecureRenegotiation指令会使服务器容易遭受中间人重新协商攻击(CVE-2009-3555)。因此,不应启用SSLInsecureRenegotiation指令。

加固方法:在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。

 

 

 

 

')免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram