![在互联网上锁定一个盒子](https://linux22.com/image/542772/%E5%9C%A8%E4%BA%92%E8%81%94%E7%BD%91%E4%B8%8A%E9%94%81%E5%AE%9A%E4%B8%80%E4%B8%AA%E7%9B%92%E5%AD%90.png)
我是一名开发人员,希望在互联网上推出一项新服务。我是系统管理方面的新手,坦白说,我似乎有点不知道应该从哪里开始在网络上推出一些东西。
我的应用程序在我的机器上运行良好,而且我确信我可以让它在我放置它的任何机器上正常运行。但该机器的安全性非常重要。
我需要知道哪些事情才能防止我的服务被黑客攻击?我很乐意提供可靠的资源链接!我可以接受不明确的答案。即使只是一个起点,我也很乐意。
如果我注册了一个标准托管包(比如说来自 GoDaddy 或类似的东西),我可以简单地告诉他们“使端口 12345 开放用于通信”并让他们处理其余的安全细节吗?
谢谢!
答案1
我不确定大多数供应商提供什么,我个人认为验证所有内容是个好主意,即使他们为你做了一些工作。这里有一个通用答案,你可以将其用作检查表。它涵盖了几乎每个标准安全参考资料中都会找到的大多数主要主题。
另外请记住,虽然保护操作系统/平台很重要,但大多数安全问题实际上发生在您将要公开的服务中的应用程序级别。这SANS 文章研究表明,至少 60% 的事件都是由于面向互联网的服务受到攻击而导致的。因此,确保问题不出在您的应用程序上非常重要。
安全检查表
更改默认设置
- 更改密码
- 更改任何远程管理接口的端口
- 在支持重命名的系统上调整任何常见的用户名。
删除所有不需要的服务和包
- 找出正在运行的程序,并禁用和/或删除任何您不需要的程序。
- 某些服务器会启用基于 Web 的管理界面。请禁用它们,或者至少确保只有您才能访问它们。
启用基于主机的防火墙
- 您可能也受到网络防火墙的保护,但安全应该分层次进行。在主机上设置防火墙,并限制仅访问必要的内容。
- 使用默认拒绝规则集。您的防火墙应阻止所有内容,并且仅允许您明确知道是良好的流量。
设置任何入侵检测和预防工具
- 如果您的系统正在运行 SSH,请考虑设置类似denyhosts或fail2ban之类的东西。
- 在防火墙中设置速率限制,这样字典/暴力攻击就不可能实现。
设置系统来监控你的可用性
- 您希望在出现故障时收到通知。设置远程监控器或订阅可为您监控的服务。
设置一个系统以便任何日志和错误都可以发送给你
- 将任何系统日志或事件日志数据发送到远程站点。或者至少设置类似 logcheck 的程序,这样异常行为就会发送通知。
制定系统更新计划
- 安全不是可以做完然后就忘掉的事情。你需要更新一些东西。你可能应该有一个开发/测试服务器(VM?)来复制你的生产环境,这样你就可以测试更新,然后计划何时/如何更新生产环境。
设置备份系统,以便在最坏的情况发生时可以恢复
- 故障和系统漏洞随时可能发生。设置良好的备份可以检测系统是否受到漏洞影响,并修复系统漏洞。
请咨询您的 ISP,了解如果您遭受 DoS 攻击会发生什么,以及在最坏的情况下他们可以提供什么帮助
- 并非所有破坏行为都会导致您的设备受到损害。您的服务可以远程离线。弄清楚您的 ISP 是否能够帮助您,以及当这种情况发生时您将如何获得帮助。
在适当的情况下设置加密