我最近在运行一个 Web 服务器,网上有很多信息,但这些信息可能有点令人困惑。我最近打开了我的 logwatch 日志,发现我经常受到各种机器人的攻击。
现在我对一份清单很感兴趣,上面列出了我现在绝对应该注意的事情,以及可能的预防方法。我读过关于服务器因洪水崩溃、因电子邮件崩溃以及各种疯狂事情的故事。
我已经做的事情:
我最近封锁了除 http 和电子邮件端口之外的所有端口。
我禁用了 IPv6,这导致了很多命名错误
我已经打开垃圾邮件 DNS 黑洞列表来对抗垃圾邮件
- sbl.spamhaus.org;
- zen.spamhaus.org;
- b.barracudacentral.org;我在 apache 上安装并配置了 mod_security2
无法远程访问我的数据库
到目前为止,我所做的就是这些,而且我还没有发现任何其他威胁。我想知道是否需要保护以下事项。
- 我会被电子邮件淹没吗?我该如何避免这种情况
- 我的数据库会不会被入侵或被淹没
- 是否存在类似 http 洪水之类的问题
- 在公开我的服务器之前我还应该知道什么其他事情吗?
我还想知道是否有某种包含必备安全保护措施的清单。我知道编写良好 Web 应用程序的 OWASP 列表,是否有用于配置服务器的内容。
答案1
服务 X 会被淹没吗?
是的。您必须确保服务的配置正确,这样即使服务被淹没,您的系统资源(CPU、内存等)也不会过度使用。由于您使用的是 mod_security,我假设您正在运行 Apache 和 MySQL。
对于 Apache,您需要查看每个 Apache 进程的平均内存利用率。调整 MaxClients 设置以便...
MaxClients * 平均内存利用率 < 总物理内存 - 系统开销
如果数据库服务位于同一系统上,则需要考虑这一点。如果你使用的是 MySQL,我的一个朋友写道MySQLTuner。虽然它肯定不是万能的,但它将为您提供一个起点,以调整您的 MySQL 配置以适应您的内存限制。
对于 MySQL/Apache,您需要确保让它们在正常负载下运行一两天,以便内存利用率稳定到您认为的正常生产水平。您还需要随着时间的推移监控系统,因为代码的更改和流量的增加将对您的资源利用率产生各种影响。
所有这些都与安全性无关,因为它们与服务可用性有关。在大多数情况下,安全性并不难。保持你的资料更新,使用好的密码,不要有压力。大多数情况下,暴力破解会杀死你,通过适当的资源规划,可以在一定程度上减轻这种情况。
答案2
我同意 Rugmonster 的观点,不过,只是作为休闲读物而已。;)
http://msdn.microsoft.com/en-us/library/aa302351.aspx http://windows.stanford.edu/docs/IISsecchecklist.htm
答案3
我在这里用一些通用的安全最佳实践回答了类似的问题: