Apache Webserver安全性和优化技巧

时间:2008-10-05 00:19:23

标签: apache security optimization webserver

我即将处理管理和运行我的第一个连接互联网的Apache网络服务器,我想知道是否有任何系统管理员和开发人员希望分享他们关于运行Apache的安全性和优化技巧的一些知识网络服务器。

也许你可以分享你在安装Apache网络服务器(在Linux机器上)后立即做的事情的前五(或十)个列表。

非常感谢任何帮助。

6 个答案:

答案 0 :(得分:9)

基本

  1. 请务必安装最新的稳定版。运行旧的或不稳定的Apache版本可能会使您的系统面临安全漏洞或未经测试的解决方案
  2. 确保仅实际处理了预期的请求。您应该考虑必须访问Apache公开的Web资源和如何
  3. 避免以root身份运行Apache 。这是必须的。
  4. 处理日志。日志往往越来越大;考虑设置logrotate或定期清理日志。
  5. 使用监控系统监控Apache运行状况。我喜欢将munin和monit结合起来,既易于塞通又能维持。 Nagios和其他人值得一看。
  6. 如果Apache正在提供Web应用程序(即PHP,Perl,Rails)请确保正确的模块按正确的顺序处理请求
  7. 撰写精彩的404和500邮件。您的访客迟早会发现错误。
  8. 停止并重新启动Apache ,这样您就可以确定shoutdown和启动过程都是完美无缺的。
  9. 使用 mod_security
  10. 安全

    1. 保护Apache免受DOS攻击。
    2. 仅加载真正需要的模块。
    3. 监控您的日志以确定是否发生了奇怪的事情。
    4. 效果

      1. 如果您是从源代码编译Apache,请务必使用MPM(多处理模块)。
      2. 仅加载真正需要的模块。
      3. 检查MaxClients设置,以便您的服务器不会产生这么多孩子,它开始交换。
      4. 使用mod_deflate模块,它提供DEFLATE输出过滤器,允许服务器的输出在通过网络发送到客户端之前进行压缩。

答案 1 :(得分:3)

  • 确保Apache进程未以root用户身份运行。
  • 请务必使用最新的稳定版本
  • 如果是的话 直接连接到互联网 确保你已经考虑过所有 其他服务,如ssh。
  • 仔细检查本地防火墙规则,将其拧紧。 (见iptables)
  • 请勿打开您不理解或不打算使用的选项
  • 考虑订阅Apache安全邮件列表,以便您立即了解任何关键补丁

答案 2 :(得分:3)

  1. Chroot网络服务器
  2. 禁用您不需要的任何模块
  3. 您需要的是mod_security
  4. 为您的webroot设置file integrity checker
  5. 保护同一服务器上的所有其他内容并关闭所有未使用的内容
  6. 使用nmapMetasploit
  7. 等工具对您的服务器运行测试

答案 3 :(得分:1)

我将解释“在一个盒子上安装Apache后”作为“为生产使用准备一个新的服务器安装”,因为当然这将在开发服务器上完成,并致力于SCM或内置到自动化安装。

您要优化的一切都必须基于真实的测量来完成。使用您打算运行的实际应用程序设置测试环境,尽可能逼真。需要考虑的一些要点是:

  • 不要将MaxClients设置得太高。你可以耗尽大量的RAM,尤其是嵌入了大型应用程序的prefork服务器(例如mod_perl,PHP等)。使用太多内存会适得其反。客户等待服务成功比服务错误更好。
  • 仔细考虑是否有Keepalive。根据您的环境,这些都可以加速和减速。如果您选择启用它们,则应根据实际用例考虑keepalive超时。
  • 如果您在生产中使用HTTPS,则启用HTTPS进行性能测试
  • 在不经常更改的对象上适当地设置“Last-modified”和“Expires”标头(以最大化客户端缓存)。在各种浏览器中测试客户端缓存。
  • 确保您的应用程序正确使用HTTPS,而不是导致浏览器生成安全警告的方式(这是您在测试期间需要使用HTTPS的另一个好理由)

答案 4 :(得分:0)

如果您正在运行标准LAMP(Linux,Apache,MySQL,PHP / PEARL / PYTHON)环境:将MySQL放在除Apache之外的其他计算机上。只有少数并发进程(由于网络延迟)会稍慢一些,但是对于许多并发进程来说会更快。

答案 5 :(得分:0)

确保已将其配置为检测DOS(拒绝服务)攻击。