Apache服务器的保护(2)_Windows教程
access.conf文件包含一些指令控制允许什么用户访问Apache目录。应该把deny from all作为初始化指令,然后使用allow from指令打开访问权限。你可以允许来自某个域、IP地址或者IP段的访问。例如:
<directory /usr/local/http/docs/private>
<limit>
order deny,allow
deny from all
allow from sans.org
</limit>
</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程序以某个独立的用户权限运行,即使发生缓冲区溢出,也只影响那个用户的目录/文件。
- 相关链接:
- 教程说明:
Windows教程-Apache服务器的保护(2)。