Apache服务器的保护(2)

服务器访问控制

access.conf文件包含一些指令控制允许什么用户访问Apache目录。应该把deny from all作为初始化指令,然后使用allow from指令打开访问权限。你可以允许来自某个域、IP地址或者IP段的访问。例如:

1<directory docs="" http="" local="" private="" usr="">
2<limit>   
3order deny,allow   
4deny from all   
5allow from sans.org   
6</limit>
7</directory>

密码保护

使用.htaccess文件,可以把某个目录的访问权限赋予某个用户。系统管理员需要在httpd.conf或者srm.conf文件中使用AccessFileName指令打开目录的访问控制。以下是一个.htaccess示例文件:

AuthName PrivateFiles
AuthType Basic
AuthUserFile /path/to/httpd/users
require foo <---一个有效的用户名

然后,使用如下命令填加一个用户:

htpasswd -c /path/to/httpd/users foo

Apache日志文件

系统管理员可以使用日志格式指令来控制日志文件的信息。使用LogFormat "%a %l"指令,可以把发出HTTP请求浏览器的IP地址和主机名记录到日志文件。出于安全的考虑,你至少应该那些验证失败的WEB用户,在http.conf文件中加入LogFormat "%401u"指令可以实现这个目的。这个指令还有其它的许多参数,用户可以参考Apache的文档。另外,Apache的错误日志文件对于系统管理员来说也是非常重要的,错误日志文件中包括服务器的启动、停止以及CGI执行失败等信息。

安全相关的指令

在Apache配置文件中,有一些安全相关的指令可以使用。

使用以下指令可以帮助你减小拒绝服务的威胁:

LimitRequestbody: 数字参数,控制HTTP请求的大小。
LimitRequestFields: 数字参数,控制请求头的数目。
KeepAlive: 设置连接的生存期。
KeepAliveTimeout: 限制等待请求的时间。

使用以下指令可以帮助你叫嚣缓冲区溢出的危险:

LimitRequestFieldSize: 限制每个请求头的大小。
LimitRequestLine: 限制每个请求行的大小。

CGI(ommon Gateway Interface,通用网关接口)的安全威胁

CGI的安全性非常重要,攻击者可以利用CGI的缺陷获得系统信息、执行系统命令、占用系统资源。如果一个CGI程序使用静态分配的内存,就可能为缓冲区溢出攻击提供机会。为了减少这种风险,程序员应该在CGI代码中使用动态分配内存。除了CGI编写人员应该注意外,系统管理员可以采取对CGI进行封装(例如:suEXEC或者CGI Wrap)的办法加强CGI的安全性。通过这种方式可以使CGI程序以某个独立的用户权限运行,即使发生缓冲区溢出,也只影响那个用户的目录/文件。

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus