本文档将尝试解释一些步骤和常用软件,以帮助您的 Linux 系统更加安全。在开始之前,务必先讨论一些基本概念并建立安全基础。
在瞬息万变的全球数据通信世界、廉价的互联网连接和快节奏的软件开发中,安全性正变得越来越重要。由于全球计算本质上是不安全的,因此安全现在是一项基本要求。例如,当您的数据从互联网上的 A 点传输到 B 点时,它可能会沿途经过其他几个点,从而使其他用户有机会拦截甚至更改它。即使您系统上的其他用户也可能恶意地将您的数据转换为您不希望的内容。入侵者(也称为“黑客”)可能会获得对您系统的未授权访问权限,然后他们利用高级知识来冒充您、窃取您的信息,甚至拒绝您访问自己的资源。如果您想知道“黑客”和“黑客”之间的区别,请参阅 Eric Raymond 的文档“如何成为一名黑客”,网址为 http://www.catb.org/~esr/faqs/hacker-howto.html。
首先,请记住,没有计算机系统可以做到完全安全。您所能做的只是让别人越来越难以攻破您的系统。对于普通的家庭 Linux 用户来说,不需要太多措施就可以阻止随意的黑客。但是,对于备受瞩目的 Linux 用户(银行、电信公司等)来说,则需要做更多的工作。
另一个需要考虑的因素是,您的系统越安全,您的安全措施就越具侵入性。您需要决定在这种平衡中,您的系统在何处仍然可用,并且对于您的目的而言是安全的。例如,您可以要求每个拨入您系统的人都使用回拨调制解调器,以便在他们的家庭电话号码上回拨他们。这更安全,但如果有人不在家,则登录会变得困难。您还可以设置没有网络或互联网连接的 Linux 系统,但这会限制其可用性。
如果您是中型到大型站点,则应制定安全策略,说明您的站点需要多少安全性以及有哪些审计措施来检查它。您可以在 http://www.faqs.org/rfcs/rfc2196.html 找到一个著名的安全策略示例。它最近已更新,并包含一个为您的公司建立安全策略的良好框架。
在尝试保护您的系统之前,您应该确定您必须防范的威胁级别、您应该或不应该承担的风险以及您的系统因此而变得多么脆弱。您应该分析您的系统,以了解您要保护什么、为什么要保护它、它有什么价值,以及谁对您的数据和其他资产负责。
风险是指入侵者可能成功访问您的计算机的可能性。入侵者可以读取或写入文件,或执行可能造成损害的程序吗?他们可以删除关键数据吗?他们可以阻止您或您的公司完成重要的工作吗?别忘了:有人获得对您的帐户或系统的访问权限,也可以冒充您。
此外,您的系统上有一个不安全的帐户可能会导致您的整个网络受到威胁。如果您允许单个用户使用.rhosts文件登录,或使用不安全的服务,例如tftp,您可能会冒着入侵者“登堂入室”的风险。一旦入侵者在您的系统或他人的系统上拥有用户帐户,就可以使用它来获得对另一个系统或另一个帐户的访问权限。
威胁通常来自有动机对您的网络或计算机进行未授权访问的人。您必须决定您信任谁可以访问您的系统,以及他们可能构成什么威胁。
入侵者有几种类型,在保护您的系统时,记住他们的不同特征很有用。
好奇者 - 这种类型的入侵者基本上对了解您拥有的系统和数据类型感兴趣。
恶意者 - 这种类型的入侵者旨在破坏您的系统,或破坏您的网页,或以其他方式迫使您花费时间和金钱来从他造成的损害中恢复。
高调入侵者 - 这种类型的入侵者试图利用您的系统来获得知名度和恶名。他可能会利用您的高调系统来宣传他的能力。
竞争者 - 这种类型的入侵者对您系统上的数据感兴趣。可能是有人认为您拥有可以让他受益的东西,无论是经济上还是其他方面。
借用者 - 这种类型的入侵者有兴趣在您的系统上建立商店并将其资源用于自己的目的。他通常会运行聊天或 irc 服务器、色情档案站点,甚至 DNS 服务器。
跳跳者 - 这种类型的入侵者只对您的系统感兴趣,以便利用它进入其他系统。如果您的系统连接良好或通往许多内部主机的网关,您很可能会看到这种类型的人试图攻破您的系统。
漏洞描述了您的计算机免受另一个网络的保护程度,以及某人获得未授权访问的潜力。
如果有人闯入您的系统,会发生什么?当然,动态 PPP 家庭用户的担忧与将他们的机器连接到互联网或另一个大型公司的担忧不同。
检索/重新创建丢失的任何数据需要多长时间?现在的初始时间投入可以节省以后十倍的时间,如果您必须重新创建丢失的数据。您检查过您的备份策略并验证过您的数据吗?
为您的系统创建用户可以轻松理解和遵循的简单通用策略。它应该保护您正在保护的数据以及用户的隐私。一些需要考虑添加的内容包括:谁可以访问系统(我的朋友可以使用我的帐户吗?),谁可以安装系统上的软件,谁拥有什么数据,灾难恢复以及系统的适当使用。
普遍接受的安全策略以短语开头
“ 凡未许可的,皆禁止”
这意味着除非您授予用户对某项服务的访问权限,否则该用户不应使用该服务,直到您授予访问权限为止。确保策略在您的常规用户帐户上有效。说“啊,我无法解决这个权限问题,我将以 root 身份执行它”可能会导致非常明显的安全漏洞,甚至可能导致尚未被利用的漏洞。
rfc1244 是一份描述如何创建自己的网络安全策略的文档。
rfc1281 是一份文档,其中显示了包含每个步骤的详细描述的示例安全策略。
最后,您可能想查看 COAST 策略存档,网址为 ftp://coast.cs.purdue.edu/pub/doc/policy,以了解一些真实的安全策略是什么样的。
本文档将讨论您可以使用的各种方式来保护您辛勤工作的资产:您的本地机器、您的数据、您的用户、您的网络,甚至您的声誉。如果入侵者删除了您的一些用户数据会怎样?或者破坏了您的网站?或者发布了您公司的下季度公司项目计划?如果您正在计划网络安装,则在向网络添加单台机器之前,您必须考虑许多因素。
即使您只有一个拨号 PPP 帐户,或者只是一个小站点,这并不意味着入侵者不会对您的系统感兴趣。大型、备受瞩目的站点不是唯一的目标——许多入侵者只是想尽可能多地利用站点,而不管其规模大小。此外,他们可能会利用您站点中的安全漏洞来访问您连接的其他站点。
入侵者有大量的时间,并且可以通过尝试所有可能性来避免猜测您是如何混淆您的系统的。入侵者可能对您的系统感兴趣的原因也有很多,我们将在后面讨论。
管理员最关注的安全领域可能是基于主机的安全性。这通常涉及确保您自己的系统是安全的,并希望您网络上的每个人都这样做。选择好的密码、保护主机本地网络服务、保持良好的会计记录以及升级具有已知安全漏洞的程序是本地安全管理员负责执行的任务。虽然这绝对必要,但一旦您的网络变得大于几台机器,它就会成为一项艰巨的任务。
本文档分为多个部分。它们涵盖了几个广泛的安全问题。第一部分,第 3 节,介绍了您需要如何保护您的物理机器免受篡改。第二部分,第 4 节,描述了如何保护您的系统免受本地用户的篡改。第三部分,第 5 节,向您展示了如何设置您的文件系统和文件权限。下一部分,第 6 节,讨论了如何使用加密来更好地保护您的机器和网络。第 7 节讨论了为了更安全的系统,您应该设置或注意哪些内核选项。第 8 节,描述了如何更好地保护您的 Linux 系统免受网络攻击。第 9 节,讨论了在将您的机器上线之前如何准备它们。接下来,第 10 节,讨论了当您检测到正在进行的系统入侵或检测到最近发生的系统入侵时该怎么办。在第 11 节中,列举了一些主要的安全性资源。问答部分 第 13 节,回答了一些常见问题,最后在 第 14 节 中给出了结论
阅读本文档时要意识到的两个要点是
注意您的系统。检查系统日志,例如/var/log/messages并密切关注您的系统,以及
通过确保您已安装最新版本的软件并根据安全警报进行升级,使您的系统保持最新。仅仅这样做就将有助于使您的系统明显更安全。