首先,我想先介绍一些信息 - 我是一家小型初创公司的开发人员。目前,该公司无法负担聘请合适的 *nix 系统管理员的费用;因此,我被委托设置一个运行 CentOS 的 LAMP 服务器,该服务器将由我们的首席开发人员进行远程管理。该开发人员每周都在不同的时区工作。安全性在我的议程中占据非常重要的位置。
该服务器将用于测试我们旗舰产品的新版本。测试人员(消费者,而非 QA 人员)将通过标准端口 80 http 和 SSL 访问该服务器。我们的开发人员将通过 SSH 访问该服务器 - 以及通过 SSL 访问 Subversion 进行源代码控制和通过端口 21 进行 FTP。
以下是我迄今为止所实施的……
旅行笔记本电脑:
- “Keepass”密码管理应用程序的数据库文件远程备份到mozy。主密码是198位密钥。数据库文件驻留在“IronKey”硬件加密狗上。
- Windows 登录是 132 位密钥。工作站闲置 5 分钟后锁定。
- 所有代码、文档和应用程序设置都存储在硬件密钥加密的驱动器上。
CentOS LAMP 服务器:
- 通过 SSH 的 Root 访问已被禁用。SU – 代表 root。
- 按照本教程(cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html)来锁定 OpenSSH。
- 以下是nmap开放端口的扫描报告:
启动 Nmap 4.11 (http://www.insecure.org/nmap/) 于 2009-08-31 10:56 EDT
localhost.localdomain (127.0.0.1) 上的有趣端口:
未显示:1668 关闭端口
港口国服务
21/tcp 打开 ftp
22/tcp 打开 ssh
25/tcp 打开 smtp
80/tcp 打开 http
110/tcp 打开 pop3
143/tcp 打开 imap
225/tcp 打开未知
443/tcp 打开 https
631/tcp 打开 ipp
993/tcp 打开 imaps
995/tcp 打开 pop3s
3306/tcp 打开 mysql
所以你看,我知道在目前的状态下,它不是很安全。我已经研究了好几天了,在我实施或更改此配置的任何其他内容之前,我希望得到专业人士的反馈。希望我们的经济能够反弹,这项压力很大的安全工作将由比低级 C# 开发人员更有资格的人来处理。
提前致谢!
答案1
我有以下几点建议:
- 我会首先禁用所有未使用的服务(例如 pop3 和 imap)。这将大大减少您的攻击面。如果您必须保留某些服务,请通过防火墙阻止任何外部来源。
- 此外,预先填充 SSH 服务器密钥指纹或以某种方式将其提供给负责人。确保他/她不会连接到机器,除非指纹确实匹配,否则可能会发生中间人攻击。
- 考虑使用 sudo 而不是普通的 su,并限制开发主管可以做的事情。只有在有正当理由的情况下才放宽安全策略。
在任何情况下避免FTP。SSH 内置了对文件传输的支持,因此根本不要使用 FTP。它以明文形式发送凭证(用户名/密码)和文件,因此同一网络上的任何人都可以拦截所有数据。
将此视为您有趣旅程的起点:)。
答案2
还可以考虑国家安全局提供的指南,该机构负责安全增强型 Linux 等事务。它们涵盖 RedHat(和 CentOS)5.3、Mac、Windows、Solaris。使用以下指南:http://www.nsa.gov/ia/_files/。(请谨慎:在浏览器中输入 URL,而不是点击链接。)
本指南未涵盖访问控制列表的使用。可在 上找到。谷歌搜索“red hat acl”。这从根本上改善了基于 *nix 的访问控制,让您在允许或禁止访问方面拥有更大的灵活性。这需要一些时间来适应,但非常值得。
“未使用的端口”你的帖子没有说如果你需要那些应用程序。但是,除非绝对需要(例如,没有其他方法可以做到这一点),否则我会禁用对所有内容的访问。听起来您需要 http 和 ssh,但如果您确实需要,其他所有内容都应该有解决方法。(即,在 ssh 进入机器后,可以通过命令行访问 mysql。如果您需要更多,您可以使用 SSH 端口转发。等等。)
其他考虑因素:
- 我不知道 subversion,但是 GIT(分布式源代码控制)使用 SSH。
- 与 ftp 相比,有多种使用更安全的文件传输的方法。
- 根据研究,几乎可以肯定 Windows 机器已经受到威胁,因此永远不要完全信任机器或用户。
- 如果您拥有硬件资源(例如足够的 CPU 和 RAM),请使用虚拟机进一步分区服务(然后在这些主机上运行 SELinux)。
- NSA 指南建议修改防火墙以锁定端口。其他选项由您自己决定(即基于 Linux 文档项目中的伪装指南)。
如果对系统或驱动器的物理安全性有任何疑问,请考虑在安装过程中使用易于使用的 LUKS 加密选项。然后是备份安全性。享受旅程。
艾瑞克·乔万斯基