apache服务器:保障Web服务器Apache安全的 5项措施

毋庸讳言令Apache占领Web服务器半壁江山个重要原因就是它可以提供个安全Web操作环境Apache团体为保证其安全性做了大量工作想当年在此产品被发现存在个安全缺陷时Apache开发人员就尽快地搞出了个补丁

然而即管Apache已经堪称安全产品如果你在构建你服务器时没有采取些安全预防措施这种Web服务器仍易于受到很多攻击

在本文中笔者将为你提供10个窍门技巧借此你可以保护自己Apache Web服务器免于受到许多攻击不过必须谨记你需要仔细地评估每个窍门技巧以确保其适合于你组织

只安装所需要

Apache个最大特点是其灵活性和大量可选择安装模块这在涉及到安全问题时可成为个极大弱点你安装越多也就为潜在攻击者创造了越大攻击面个标准Apache安装包含20多个模块包括CGI特性以及些身份验证机制如果你不打算采用CGI并且你只想采用静态Web站点不需要用户身份验证你可能就不需要这些模块所提供任何服务因此在安装Apache时请禁用这些模块

如果你沿用了个正在运行Apache服务器并且不想重新安装它就应当仔细检查httpd.conf配置文件查找以LoadModule开头请检查Apache文档(也可以用Google、Yahoo等搜索)查找每个模块信息找出那些你并不需要模块然后重新启动Apache

暴露程度最小化

Apache易于安装并且相当容易管理不幸许多Apache安装由于为完全陌生者提供了有关自己服务器太多“有帮助”信息例如Apache版本号和和操作系统相关信息通过这种信息个潜在攻击者就可以追踪特定可以影响你系统破坏性漏洞特别是你没有能够保持所有补丁更新话情况更为严重如此攻击者无需反复试验就可以确切地知道你在运行什么从而可以调整其攻击思路方法

要防止服务器广播敏感信息定要保证将httpd.conf中“ServerSignature”指令设置为“off”次默认Apache安装会将此指令设置为“off”不过许多管理员却启用了它

同样地禁用目录浏览也是个不错注意在目录浏览被启用时访问个并不包含其所需要文档目录用户会看到此目录中完整内容列表无疑你不应当将敏感材料以纯文本形式存储到个Web服务器上除非你必须这样做你也不应该允许人们看到超过其需要内容

目录浏览默认地是被启用要禁用这个特性应编辑http.conf文件而且对每个“Directory”指令应清除“Indexs”引用

例如在笔者做实验用Apache 2.2.4服务器上这是默认目录命令:


<Directory "/usr/local/apache/htdocs">
           Options Indexes FollowSymLinks
           AllowOverrride None
           Order allow,deny
           Allow from all
</Directory>
 

清除Indexes引用后样子:


<Directory "/usr/local/apache/htdocs">
           Options FollowSymLinks
           AllowOverrride None
           Order allow,deny
           Allow from all
</Directory>
 

你也可以保留Indexes指令并用个破折号引导从而禁用此指令(也就是“-Indexes”)

禁用符号连接追踪

如果你是唯个校对Web内容人员而你在创建新符号连接时又几乎不犯你可能不会担心此措施不过如果你有很多人员能够向你站点增加内容并非所有人都像你样谨慎从事那么就会有种风险即某个用户可能偶然会创建个符号连接指向你文件系统部分而你又确实不想让人们看到这些文件例如如果你Apache服务器根目录中某人创建了个指向 “/”文件夹符号连接你该如何办?

为了取消Apache服务器允许用户追踪符号连接请求应该在Directory命令中清除FollowSymlinks指令

例如在笔者试验性Apache 2.2.4服务器中Directory命令如下:


<Directory "/usr/local/apache/htdocs">
           Options Indexes FollowSymLinks
           AllowOverrride None
           Order allow,deny
           Allow from all
</Directory>
 

在清除了FollowSymLinks引用后就成为如下样子:


<Directory "/usr/local/apache/htdocs">
           Options Indexes
           AllowOverrride None
           Order allow,deny
           Allow from all
</Directory>
 

如果些用户需要跟踪符号连接能力可以考虑使用SymLinksIfOwnerMatch代替

Listen指令具体化

在你第次安装Apache时httpd.conf包含个“Listen 80”指令应将其改变为“Listen mn.xx.yy.zz:80”在这里“mn.xx.yy.zz”是你想让Apache监听其请求IP地址如果你Apache运行在个拥有多个IP地址服务器上时点尤其重要如果你不采取预防措施默认“Listen 80”指令告诉Apache监听每个IP地址80端口

不过这项措施有可能不适用于你环境应根据需要而定

从httpd.conf中清除默认注释

Apache 2.2.4中默认httpd.conf文件有400多行在这400行中只有小部分是实际Apache指令其余仅是帮助用户如何恰当地在httpd.conf中放置指令注释根据笔者经验这些注释有时起负面作用甚至将危险指令留存于文件中笔者在所管理许多Apache服务器上将httpd.conf文件复制为其它文件如httpd.conf.orig等然后完全清除多余注释文件变得更加容易阅读从而更好地解决了潜在安全问题或者地配置文件


Tags:  apache应用服务器 apache服务器安装 apache服务器配置 apache服务器

延伸阅读

最新评论

发表评论