保护 Apache 服务器的最佳实践、建议和必读内容有哪些?
Apache Server 加固的最佳实践?
获取 Internet 安全中心 (CIS) 指南以保护 Apache(它详细描述了如何增强安全性):
编辑:更新链接 CIS Apache HTTP Server 2.2.x Benchmark
如果您有Nessus的许可证,那么您可以通过获取他们的审核模板来运行自动检查:
- 使用基于 SSH 密钥的登录
- 保护 MySQL
- 禁用 phpMyAdmin、webmin 等
- 关闭所有不需要的端口/进程
- 使用文件完整性检查器
- 使用 mod_security
- 设置适当的权限/组
这是一个很好的指南:
https ://serverfault.com/questions/212269/tips-for-securing-a-lamp-server
加固基本指南:http: //www.wpsecure.net/server-guide/
如果您正在运行 php: http ://www.madirish.net/?article=229
在 apache 日志中查找 404(或其他状态代码)
awk '$9 == 404 {print $7}' access_log | uniq -c | sort -rn | head
最初对这个问题的高度投票被接受的答案被删除了,因为它直接抄袭了20 种保护 Apache 配置的方法。该页面是一个很棒的资源。
@RoryMcCune 还将其作为该答案的链接发布:有一个 OWASP 项目可以在此处开发一个 ModSecurity 核心规则集,这可能是有用的。
这里有很多好的建议,所以我不会重复已经提到的内容。但我要说的是:
不要忘记将默认错误页面替换为不会泄露您的 Web 服务器版本或内核版本的内容。我倾向于用 1 个类似于“错误 400”的衬里替换每个默认的 html。它几乎没有提供有关系统的信息。此原则适用于所有能够显示自定义错误页面的 Web 服务器,它们几乎都默认提供太多不必要的信息。您会认为 ServerSignature 会隐藏这一点,但在许多情况下它不会。
另外,不要忘记删除所有默认的 HTML 内容(特定语言等),因此指纹识别要困难得多。
就好的阅读而言,有一份来自 Apcon 2008的白皮书值得一读。
多次提到Mod_Security,这更适合 Web 应用程序,因此如果您只提供静态内容,它不会对您有太大帮助,尽管在请求处理期间它有助于防御一些可能影响静态内容的攻击网络服务器。
我要提到的另一件事是良好的日志管理,如果您不关闭日志并密切关注系统,您将面临攻击者在没有任何意识的情况下猛烈攻击它的风险。