让我用一些信息作为这个问题的序言——我是一名为一家小型初创公司工作的开发人员。公司目前无法聘请合适的 *nix 系统管理员;随后,我的任务是设置一个运行 CentOS 的 LAMP 服务器,该服务器将由我们的首席开发人员远程管理。所述开发人员每周都在不同的时区。安全性在我的议程上非常重要。
该服务器将用于测试我们旗舰产品的新版本。Beta 测试人员(消费者,而非 QA 人员)将通过标准端口 80 http 和 SSL 访问服务器。我们的开发人员将通过 SSH 访问它 - 以及对 Subversion 的 ssl 访问以进行源代码控制和端口 21 用于 FTP。
这是我迄今为止实施的...
旅行笔记本电脑:
- “Keepass”密码管理应用的数据库文件被远程备份到mozy。主密码为 198 位密钥。数据库文件位于“IronKey”硬件加密加密狗上。
- Windows 登录是 132 位密钥。空闲 5 分钟后工作站锁定。
- 所有代码、文档和应用程序设置都存储在硬件加密的驱动器上。
CentOS LAMP 服务器:
- 通过 SSH 的根访问被禁用。SU - 代表根。
- 按照本教程 (cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html) 锁定 OpenSSH。
- 以下是开放端口的 nmap 扫描报告:
在 2009-08-31 10:56 EDT启动 Nmap 4.11 ( http://www.insecure.org/nmap/
)
localhost.localdomain (127.0.0.1) 上的有趣端口:
未显示:1668 个关闭端口
PORT STATE SERVICE
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# 开发人员更有资格的人来处理。
提前致谢!
我有几点建议:
在所有情况下避免使用FTP。SSH 内置了对文件传输的支持,所以根本不要使用 FTP。它以明文形式发送凭据(用户名/密码)和文件,因此同一网络上的任何人都可以拦截所有数据。
考虑这是您有趣旅程的起点:)。
还要考虑由国家安全局提供的指南,这些人负责诸如 Security Enhanced Linux 之类的事情。它们涵盖 RedHat(和 CentOS)5.3、Mac、Windows、Solaris。使用该指南:http ://www.nsa.gov/ia/_files/ 。(偏执:在浏览器中输入网址,而不是点击链接。)
本指南未涵盖的内容是访问控制列表的使用。在 . Google "red hat acl。这从根本上改进了基于 *nix 的访问控制,让您在允许或禁止访问方面更加灵活。这需要一些时间来适应,但非常值得。
“未使用的端口” 您的帖子没有说明您是否需要这些应用程序。但是,除非绝对需要(例如,没有其他方法可以做到),否则我会禁用对所有内容的访问。听起来您需要 http 和 ssh,但如果您确实需要,其他一切都应该有解决方法。(即 mysql 可以在 ssh 进入机器后通过命令行访问。如果您需要更多内容,可以使用 SSH 端口转发等。)
其他注意事项:
如果系统或驱动器的物理安全存在任何问题,请考虑在安装过程中使用易于使用的 LUKS 加密选项。然后是备份安全性。旅行愉快。
埃里克·乔万斯基
考虑使用诸如Bastille之类的硬化工具。CentOS 本质上是一个重新命名的 RedHat,因此二进制兼容,所以在大多数情况下,相同版本号的 RHEL 的任何指令都应该适用于 CentOS。
另一个很好的 CentOS 特定资源是OS Protection wiki 页面。
最深入的分析将遵循CIS 基准。