在互联网上锁定一个盒子

cor*_*iKa 0 security hosting web-applications

我是一名开发人员,希望在 Internet 上提供一项新服务。我是管理系统的新手,坦率地说,我似乎有点迷茫,应该从哪里开始在网络上放一些东西。

我的应用程序在我的机器上运行良好,而且我确信我可以让它在我放置的任何盒子上运行良好。但是那个盒子的安全性非常重要。

为了防止我的服务被黑客入侵,我需要知道哪些事情?链接到我很好的可靠资源!我可以接受非特定的答案。我什至会喜欢一个起点。

如果我注册了一个标准的托管包(比如说来自 GoDaddy 或其他东西),我可以简单地告诉他们“打开端口 12345 进行通信”并让他们处理其余的安全细节吗?

谢谢!

Zor*_*che 6

我不确定大多数供应商提供什么,我个人认为让您验证所有内容是个好主意,即使他们为您做了一些工作。这是您也许可以用作清单的一般答案。它涵盖了几乎所有标准安全参考中的大部分主要主题。

另请记住,虽然保护操作系统/平台很重要,但大多数安全问题实际上发生在您将要公开的服务中的应用程序级别。这篇SANS 文章表明,至少 60% 的事件是面向 Internet 的服务遭到破坏的结果。因此,确保您的应用程序没有问题对您来说非常重要。

安全检查表

更改默认值

  • 更改密码
  • 更改任何远程管理界面的端口
  • 在支持重命名的系统上调整任何众所周知的用户名。

删除任何不需要的服务和包

  • 找出正在运行的内容,并禁用和/或删除您不需要的任何内容。
    • 某些服务器将启用基于 Web 的管理界面。禁用它们,或者至少确保它们只能由您访问。

启用基于主机的防火墙

  • 您也可能受到网络防火墙的保护,但安全性应该分层完成。在主机上设置防火墙并限制对所需内容的访问。
  • 使用默认拒绝规则集。您的防火墙应该阻止一切,并且只允许您明确知道是好的流量。

设置任何入侵检测和阻止工具

  • 如果您的系统正在运行 SSH,请查看设置诸如 denyhosts 或 fail2ban 之类的内容。
  • 在防火墙中设置速率限制,这样字典/暴力攻击是不可能的。

设置系统来监控您的可用性

  • 您希望在出现问题时收到通知。设置远程监控器或订阅将为您监控的服务。

设置系统,以便您收到任何日志和错误

  • 将任何系统日志或事件日志数据传送到远程站点。或者至少设置类似 logcheck 的东西,以便异常行为导致发送通知。

制定一个关于如何更新系统的计划

  • 安全不是可以完成然后被遗忘的事情。你需要更新东西。您可能应该有一个开发/测试服务器(VM?)来复制您的生产环境,以便您可以测试更新,然后计划何时/如何更新生产盒。

设置备份系统,以便在最坏的情况发生时进行恢复

  • 故障和系统受损将会发生。设置一个好的备份是你用来检测你是否被破坏并修复系统(如果你已经被破坏)的方法。

请咨询您的 ISP,了解如果您遭到 DoS 攻击会发生什么,以及在最坏的情况发生时他们可以提供什么帮助

  • 并非所有破坏性行为都会导致您的盒子遭到破坏。您的服务可以远程离线。弄清楚您的 ISP 是否能够帮助您,以及在这种情况发生时您将如何获得帮助。

在适当的地方设置加密

  • 配置 SSL/TLS 以传输任何PII
  • 确保任何应用程序安全地存储任何PII