我运行的是 CentOS 5.5(带有 Parallels Power Panel 和 Plesk 的基本 LAMP),到目前为止,我忽略了安全性(因为这不是我的全职工作,我的待办事项清单上总是有更重要的事情)。我的服务器不包含任何机密数据,也没有人的生命依赖于它 - 基本上我想要的是确保它不会成为僵尸网络的一部分,在我看来,这就是“足够好”的安全性。
无论如何,我不想成为一名全职的偏执管理员(比如因为一些模糊的问题而不断地监视和修补所有东西),我也不关心大多数安全问题,比如 DOS 攻击或仅在使用某些神秘设置时存在的问题。
我正在寻找一个“折衷方案”,例如 CentOS 5.5 默认安装中已知的重要问题列表和/或实际已被利用的安全问题列表 - 而不是典型的无休止的缓冲区溢出列表,在某些特殊情况下“可能”会出现问题。
我对通常推荐的方法(加入邮件列表等)存在的问题是,真正重要的问题(存在漏洞的问题,在常见设置中可被利用,攻击者可以做一些真正有用的事情 - 即不是 DOS)完全被数百万个微小的安全警报淹没,这些警报对于高安全性服务器来说肯定很重要,但对我来说却并非如此。
感谢所有建议!
答案1
你可能会做得更糟,而不是从sans 安全检查表。
您可能不太关心您的服务器被(滥用)用于什么用途,但是如果警方调查的线索指向您,那么您系统的不安全性可能会非常昂贵。我建议您留出至少 3 天时间来使您的系统达到规格。
一旦您删除了所有不需要的服务,然后将所有补丁应用到您需要的东西上,那么真正重要的东西是:
- ssh-限制对指定组/个人的访问-不是root
- 为 ssh 添加额外的保护,例如端口敲击或 fail2ban
- 确保您没有运行开放的 http 代理
- 计划每月至少检查并应用一次安全补丁
这应该会给你一个基本且可维护的安全级别。
高血压
答案2
我认为最基本的原则是,
- 实现 iptables(无论你觉得最简单的是什么,手工制作的或小型或大型预构建包之一)并将对非公共服务的访问锁定到特定的源列表(例如,允许每个人访问 Web 服务,但只有你控制的 IP 地址子集才能访问 ssh)。使用 DenyHosts、Fail2Ban 等产品。
- 定期修补所有问题。许多人已经为您关注安全问题,并将安全补丁推送到操作系统和应用程序中,利用这些经验,并随时掌握更新。
- 使用一些标准日志监控或入侵检测产品,它们会向你发出可疑行为的警报(LogWatch、AIDE等)
我不知道 CentOS 的安全版本是什么样的,我通常使用 Debian,它在该领域有着良好的记录。