我知道Hardened Linux from Scratch项目,该项目为您提供了完全从源代码构建您自己的定制和强化 Linux 系统的分步说明。我想知道BSD中的等价物是什么?
4 回答
正如 Richard 所说,OpenBSD 绝对值得一试,对于防火墙和网关专用的一切,它是我的第一选择。对于其他服务,我倾向于坚持使用 FreeBSD,尽管没有明显的原因,这只是个人喜好。
但我想指出,如果您想要更安全地托管服务,那么使用Jails可以更好地完成“从头开始”的概念。实质上,您在完整的 FreeBSD 安装上创建了一个受限的 FreeBSD 环境。在那个有限的环境中,您只复制/链接服务需要运行的那些二进制文件和文件。
因为托管服务无法访问任何其他文件/二进制文件,所以这些东西中的所有潜在安全漏洞都不会被利用。如果您的应用程序偶然被“扎根”,它不会超出监狱的界限。
将其视为类固醇沙盒,性能损失可忽略不计。
OpenBSD 在“默认情况下”从安装中得到强化。只有管理员打开它...逐个组件。
[更新] 虽然我还没有阅读加固 linux 的文档……但可能适用一些相同的事情……例如,它们都使用 OpenSSH,因此策略是相同的。因此,如果有模块重叠,同样适用。
你并没有真正从头开始做 bsd。所有主要项目都在单一源代码库中提供了一个完整的系统,因此您无需从这里获取内核,从那里获取 binutils 和编译器,从其他地方获取 c 库和标准实用程序,从另一个地方获取 X。
与一般的 Linux 发行版相比,它们通常更容易获得所有源代码并重建整个系统,但这并不是真正定制任何东西。
您可以尝试做一些疯狂的事情,例如尝试让 OpenBSD 用户空间在带有 FreeBSD 端口的 NetBSD 内核上运行,但您只能靠自己,而且它肯定不会被“强化”。
HardenedBSD 是 FreeBSD 项目的一个分支,旨在实现 PIE、RELRO、SAFESTACK、CFIHARDEN。有些目标在那里,有些则是极端的在制品。我不认为它是“准备好生产”,但可以用作桌面(也取决于生产环境要求)。
回购:https ://github.com/HardenedBSD
包括“make buildworld/buildkernel”在内的所有内容都与 FreeBSD 上的相同,并且手册很好地解释了这一点。即使来自 linux-land,您也需要阅读一些内容。构建自己的端口本身就是一个完整的主题。
重新入狱,这个说法并不完全正确。虽然肯定会添加一个重要的安全层,但 Unix 系统(关于 Linux 的 IDK)[在此处引用]“缺乏内核漏洞缓解措施。如果攻击者获得了对监狱的访问权,那么转向其他监狱或通过内核提升权限并不是太多工作开发。” 不要误会我,我几乎把所有的服务都放在监狱里。
至于“默认硬化”评论:这一切都在 sysctl 设置中,可以在每个 *BSD 风格上进行调整,但如果系统管理员不花时间阅读文档,那么安全措施几乎毫无用处。
如果你有兴趣,你的功课:https ://www.freebsd.org/doc/handbook/