我曾多次使用 Fedora 托管服务器。我从未遇到任何问题。但所有新用户仍然会说 Fedora 不安全。我们应该使用 Ubuntu / CentOS 或其他发行版,而不是 Fedora。我永远不明白 Fedora 的问题是什么。是什么让其他发行版更安全。
几点:1. Fedora 附带配置为仅允许 SSH 的 iptables。另外,如果我们愿意,我们总是可以配置 iptables 甚至阻止 SSH。因此防火墙不会出现问题。
Fedora 定期发布更新(安全补丁和常规补丁)。
人们说发行版 X 每 5 年发布一次新版本,而 Fedora 每 6 个月发布一次。为什么每 5 年发布一次就能保证安全呢?如果你觉得 5 年前的东西是安全的,那就安装 5 年前的操作系统,或者即使有新版本发布,5 年内也不要升级。我个人认为 5 年内不发布新版本并不能增加安全性。你必须在检测到错误时每 5 年发布补丁。因此,使用非常旧的操作系统只意味着更多的补丁。如果我们使用最近发布的版本,那么我们必须应用更少的更新/补丁。我一直不明白每 5 年发布一次怎么能保证安全。
所有操作系统都使用类似的软件包,如 Gnome、Open-Office、KDE、Open-SSH、Apache。其他发行版开发人员是否会花时间阅读这些软件包的源代码并纠正安全错误(如果有)?即使他们这样做,他们也不会公布这些缺陷,而所有其他发行版都会发布补丁,包括 Fedora。或者他们会保护自己的发行版而不通知其他人。所有这些都假设他们确实阅读了像 apache、gcc、Open-Office 这样的大型软件包的数百万行代码。如果这些事情在每个发行版中都一样,那么 Fedora 更容易受到攻击。
Fedora 预装了 seLinux,并且配置良好。
在 Fedora 中,Bind 默认在 chroot 中运行。现在 Fedora 11 中也默认提供 DNSSEC 支持。请参阅问题Fedora 11 上的 DNS 服务器有人指出 Fedora 不适合托管 DNS。我不知道为什么。
事实上,一位新管理员在其中一台测试机器上安装了 Cent-OS 5.3。我使用它来 ping 一个不存在的 IP。我得到了 ping 回复。我很惊讶,因为这是不可能的。我试图找出回复来自的位置,但失败了。最后,在尝试了一个多小时后,我从 CentOS 机器上拔下了网线。我仍然可以 ping 通 IP。然后我尝试 ping 机器的 IP 地址。我也能 ping 通。因此,当机器配置了一个 IP 并且没有别名(eth0:1 等)时,我可以 ping 两个 IP(不是其他 IP,我也试过了)。我也检查了 ifconfig 输出。我完全不再信任所谓的服务器发行版,并在所有测试机器上安装了 Fedora 11。现在,我再也不会遇到像 ping 这样基本的问题了。
如果我能得到现实生活中的例子来表明 Fedora 不安全,并且在这种情况下,任何其他发行版都会没事,我将不胜感激。不要给出管理员犯错的例子。我们不能为此责怪发行版。也不要给出非常旧的 Fedora 1、2 或 Fedora 3 的例子。Fedora 项目现在非常成熟,尤其是最近的两个版本 10、11。如果您遇到过特定于它们的安全问题,请分享您的经验。
答案1
没有任何规定说 Fedora 不适合在服务器上使用,也没有规定说“服务器发行版”是服务器的唯一选择。这取决于你的特殊需求。
使用“服务器发行版”可以获得以下好处:
- 长期支持
- 稳定的 API(库和应用程序的版本升级很少或没有)
- 反向移植的安全修复和错误修复
- 付费支持
我对服务器发行版的主要“抱怨”是软件/库往往有些旧,并且支持的软件包范围比社区驱动的努力要小得多。
也就是说,长期支持和不变的 API 是商业软件供应商喜欢的,他们不必因为 API 突然改变而为最新的库重建应用程序。他们可以为供应商 Y Release X 进行开发,并且知道这个平台将在未来几年内存在。
答案2
我以为我没有什么可以补充的,但是在生产中运行 Fedora 近两年之后 - 对于我非常重要的 Zabbix 监控系统! - 似乎我确实有几件事要说。
首先,它不是我的首选。通常,对于任何稍微重要的事情,我都会选择 CentOS/RHEL,因为这些发行版提供了长期稳定性优势。然而,对于这个特定的部署,我绝对需要 Zabbix 2.0 中的功能,而电力供应处repo 仅提供 1.8。(EPEL 现在除了 1.8 之外还拥有 Zabbix 2.0 和 2.2 软件包,尽管当时没有。如果有的话,我永远不会尝试这个。)
因此,这里的权衡是:Fedora 拥有最新的软件,但其发布周期非常短,只有 13 个月,大约每六个月发布一次新版本。这意味着除了通常的定期安装更新外,我还必须计划每年两次升级 Fedora 的维护窗口。
对于一个应该跟踪的监控系统其他一切,至关重要的是,这种维护期应尽可能少且尽可能短。由于需要如此频繁地升级,这通常会排除这种发行版,但请记住,我有更紧迫的担忧;如果没有我需要的功能,它将毫无用处。所以这是我在(几乎)完全了解后果的情况下做出的权衡。
不久前,我使用 Fedora 的新 fedup 升级工具在这台服务器上升级了 Fedora 18-19。我计划停机两小时,另外两小时可能用于处理可能已死掉的受监控服务,而由于 Zabbix 停机,这一事实被忽略了。
这实际的服务停机时间为 11 分钟。这是从 Zabbix 在重启前停止到升级完成后重新启动并监控服务的时间。我没有意识到停机时间会这么短!我以为会有更多麻烦,尽管我从经验中知道,重大升级问题在 Fedora 中并不常见。(而且它得到了进一步的改进:当我进行 Fedora 19-20 升级时,完全停机时间令人惊叹六分钟。20-21年时间相同。)
这项服务几乎肯定会在 RHEL 7 可用时转移到它上面。经过这次经历,我对 Fedora 作为服务器更加有信心了,现在我打算继续使用它,即使每六个月进行一次重大升级。由于以下原因,转移到 RHEL 会更加混乱,并且可能会限制我:
不幸的是,Red Hat 的主要版本发布间隔太长;EL5 和 EL6 之间的类似延迟导致我实际上将 Ubuntu 安装投入生产,直到今天我仍然为此感到懊悔。(对于该系统,我考虑过 Fedora,但奇怪的是,它当时根本没有打包我需要的软件,尽管 EPEL 中有一个旧版本。)
没有人提到运行 Fedora 的一个“问题”是,您将看到许多新事物,包括大型软件项目和微小的增强功能,而这些功能远早于它们被纳入 RHEL。因此,当您去管理 RHEL/CentOS 系统时,您会错过它们。例如,Fedora 有大量 bash 补全功能,而默认情况下 RHEL 中尚未提供这些功能;一个值得注意的是命令yum
行中软件包名称的制表符补全。
因此,只要您能够接受以下权衡,在生产中使用 Fedora 是完全可能的:
- 没有支持合同。您必须拥有足够的内部专业知识来管理服务器及其服务并处理可能出现的任何问题;只有社区支持可用,并且没有任何保证。RHEL 经验会有所帮助,因为它们非常相似。
- 您必须有维护窗口才能至少每年升级一次。虽然每六个月升级一次更好;但是如果您每年升级一次,那么您将不得不同时升级两个版本,这将使您在凌晨 3 点必须处理的潜在问题数量增加一倍。
- 更新可能会带来新版本的软件,您必须处理这些更新;但是这些将是小版本,而不是主要版本。在极少数情况下,可能会添加重要的新功能(例如BZ#319901)。但通常情况下,软件在发布的整个生命周期内都保持相同的版本号,并修复反向移植;只有一些软件包(例如 PHP)跟踪上游点发布。
- 虽然安全更新的速度没有显著差异,但它们可能并不总是与错误修复更新隔离(再次强调,例如 PHP)。这是否是一个问题取决于您计划运行的服务。
综合考虑,Fedora 仍然不是我的首选服务器平台,而且可能永远不会是。(虽然我一直很高兴使用 Fedora桌面用户在其整个存在期间。)如果您绝对需要更多“企业”发行版中没有的当前版本的软件,并且您可以接受权衡,那么使用 Fedora 没有错。
最后,既然您特别询问了安全性问题,我就说几句。
如前所述,Fedora 和其他发行版的安全更新速度没有太大区别。Fedora 软件包制作者特别努力靠近上游并尽快发布此类更新,有时甚至比上游项目发布得更早。
与其企业版老大哥一样,Fedora 也附带了相当严格的安全配置:服务(ssh 除外)默认关闭;默认拒绝防火墙对 IPv4 和 IPv6 均默认启用;SELinux 默认强制执行。此外,Fedora 还通过其他多种方式进行了强化。
另一方面,你可以很早就看到新的安全技术;一个例子就是最近推出的防火墙D但它还没有准备好在黄金时段播出切换回以前的防火墙很容易。
答案3
从本质上讲,它更多的是关注稳定性和变化速度,而不是安全性。Fedora 是 Red Hat 推出新功能和应用程序以验证其相关性、提供实验平台和解决集成问题的平台。
这通常不是您希望服务器执行的操作——您通常希望服务器以最稳定的方式执行功能。
根据你正在做的事情,Fedora 可能就足够了。如果你正在开发 Linux 桌面应用程序,使用最前沿的技术可能是理想的选择。同样,如果你正在做一个为期一学期的学校项目或其他一些有限时间的项目,而不需要担心频繁的变化,那么 Fedora 也很好。
答案4
没有支持。
Fedora 没有像 Red Hat 企业版那样的技术支持合同。如果你遇到了紧急问题,没人可以求助。