|
知识路径: > 网络信息安全概述 > 网络信息安全目标与功能 > 网站安全需求分析与安全保护工程 > Apache Web安全分析与增强 >
|
相关知识点:22个
|
|
|
|
|
|
Apache安装后默认设置的文件属主和权限是比较合理与安全的,具体如下。如果本地用户比较多,可以按照手册的要求稍做修改。
|
|
|
|
|
Apache软件体系采用模块化结构,这使得Apache的功能可以灵活配置。当Apache服务不需要某项功能时,就可以通过配置方式,禁止相应的模块。例如,通过配置可以关闭SSL模块功能,具体如下:
|
|
|
|
在Apache安全配置过程中,Apache模块化控制机制可以非常好地适应安全需求的变化,用户可以卸载或增强某项功能。
|
|
|
|
Apache提供了非常简单方便的用户认证机制。比如,若要对/user/local/apache/htdocs/secret目录进行访问控制,则认证启用过程如下。
|
|
|
第一步,在Apache的配置文件httpd.conf里加入以下内容:
|
|
|
|
第二步,在/user/local/apache/htdocs/secret目录下建立文件.htaccess,文件内容如下:
|
|
|
|
第三步,用Apache提供的htpasswd命令来创建用户,具体如下:
|
|
|
|
其中,-c表示是新建口令文件,另外再添加用户就不需要使用-c参数了。上面的.htaccess文件最后一行定义了Require valid-user,它的意思是允许所有合法用户。
|
|
|
|
网站最容易受到攻击,当攻击者发起大量http连接,但不发送任何数据,而是等待超时,将造成Apache服务器达到最大客户连接限制,从而造成其他正常的用户无法再正常访问网站。此时Apache的access_log里会出现大量错误信息,出错408(请求超时)的日志,内容如下。如果网站服务器的内存和swap空间比较少,甚至会导致一些服务器崩溃。
|
|
|
|
针对这种类型的攻击,Apache软件提供以下几种解决方法:
|
|
|
(1)减少Apache超时(Timeout)设置、增大MaxClients设置。例如,修改httpd.conf配置文件,具体如下:
|
|
|
|
但是,MaxClients设置得越大,则要求内存也越大,否则可能会由于进程过多导致内存占满。
|
|
|
|
除了用防火墙流量限制功能来完成这项工作外,还可以使用xinetd来启动Apache,xinetd中有一个参数per_source可以进行设置。但是,对于访问量大的Web服务器,使用xinetd可能会造成性能下降。由于这种全连接攻击无法伪造IP,源IP总是真实的,所以,可以通过防火墙或路由器来屏蔽该攻击源IP的访问。
|
|
|
|
用户多线程下载对服务器的负载非常重,可能会导致服务器僵死。比较简单的解决方法是根据User_Agent判断,把已知的多线程工具都禁止掉。
|
|
|
|
基于IP地址或域名的访问控制是Apache提供的一种根据客户机的IP地址或域名信息进行网站访问授权控制的措施。Apache的access.conf文件负责设置文件的访问权限,可以实现互联网域名和IP地址的访问控制。它包含一些指令,控制允许什么用户访问Apache目录。最佳安全配置首先把deny from all设为初始化指令,然后再使用allow from指令打开访问权限。例如,如果允许192.168.X.Y到192.168.X.X的主机访问,则可以配置如下:
|
|
|
|
|
Apache提供一个记录所有访问请求的机制,而且错误的请求也会记录。这些请求记录存放在access.log和error.log两个文件中,其中:
|
|
|
. access.log记录对Web站点的每个进入请求。
|
|
|
|
|
Apache服务器对拒绝服务攻击的防范主要通过软件Apache DoS Evasive Maneuvers Module来实现。该软件可以快速拒绝来自相同地址对同一URL的重复请求,通过查询内部一张各个子进程的Hash表来实现。
|
|
|