2. 概述

本文档将尝试解释一些步骤和常用软件,以帮助您的 Linux 系统更加安全。在开始之前,务必先讨论一些基本概念并建立安全基础。

2.1. 为什么我们需要安全?

在瞬息万变的全球数据通信世界、廉价的互联网连接和快节奏的软件开发中,安全性正变得越来越重要。由于全球计算本质上是不安全的,因此安全现在是一项基本要求。例如,当您的数据从互联网上的 A 点传输到 B 点时,它可能会沿途经过其他几个点,从而使其他用户有机会拦截甚至更改它。即使您系统上的其他用户也可能恶意地将您的数据转换为您不希望的内容。入侵者(也称为“黑客”)可能会获得对您系统的未授权访问权限,然后他们利用高级知识来冒充您、窃取您的信息,甚至拒绝您访问自己的资源。如果您想知道“黑客”和“黑客”之间的区别,请参阅 Eric Raymond 的文档“如何成为一名黑客”,网址为 http://www.catb.org/~esr/faqs/hacker-howto.html

2.2. 安全到什么程度才算安全?

首先,请记住,没有计算机系统可以做到完全安全。您所能做的只是让别人越来越难以攻破您的系统。对于普通的家庭 Linux 用户来说,不需要太多措施就可以阻止随意的黑客。但是,对于备受瞩目的 Linux 用户(银行、电信公司等)来说,则需要做更多的工作。

另一个需要考虑的因素是,您的系统越安全,您的安全措施就越具侵入性。您需要决定在这种平衡中,您的系统在何处仍然可用,并且对于您的目的而言是安全的。例如,您可以要求每个拨入您系统的人都使用回拨调制解调器,以便在他们的家庭电话号码上回拨他们。这更安全,但如果有人不在家,则登录会变得困难。您还可以设置没有网络或互联网连接的 Linux 系统,但这会限制其可用性。

如果您是中型到大型站点,则应制定安全策略,说明您的站点需要多少安全性以及有哪些审计措施来检查它。您可以在 http://www.faqs.org/rfcs/rfc2196.html 找到一个著名的安全策略示例。它最近已更新,并包含一个为您的公司建立安全策略的良好框架。

2.3. 您试图保护什么?

在尝试保护您的系统之前,您应该确定您必须防范的威胁级别、您应该或不应该承担的风险以及您的系统因此而变得多么脆弱。您应该分析您的系统,以了解您要保护什么、为什么要保护它、它有什么价值,以及谁对您的数据和其他资产负责。

2.4. 制定安全策略

为您的系统创建用户可以轻松理解和遵循的简单通用策略。它应该保护您正在保护的数据以及用户的隐私。一些需要考虑添加的内容包括:谁可以访问系统(我的朋友可以使用我的帐户吗?),谁可以安装系统上的软件,谁拥有什么数据,灾难恢复以及系统的适当使用。

普遍接受的安全策略以短语开头

凡未许可的,皆禁止

这意味着除非您授予用户对某项服务的访问权限,否则该用户不应使用该服务,直到您授予访问权限为止。确保策略在您的常规用户帐户上有效。说“啊,我无法解决这个权限问题,我将以 root 身份执行它”可能会导致非常明显的安全漏洞,甚至可能导致尚未被利用的漏洞。

rfc1244 是一份描述如何创建自己的网络安全策略的文档。

rfc1281 是一份文档,其中显示了包含每个步骤的详细描述的示例安全策略。

最后,您可能想查看 COAST 策略存档,网址为 ftp://coast.cs.purdue.edu/pub/doc/policy,以了解一些真实的安全策略是什么样的。

2.5. 保护您站点的方式

本文档将讨论您可以使用的各种方式来保护您辛勤工作的资产:您的本地机器、您的数据、您的用户、您的网络,甚至您的声誉。如果入侵者删除了您的一些用户数据会怎样?或者破坏了您的网站?或者发布了您公司的下季度公司项目计划?如果您正在计划网络安装,则在向网络添加单台机器之前,您必须考虑许多因素。

即使您只有一个拨号 PPP 帐户,或者只是一个小站点,这并不意味着入侵者不会对您的系统感兴趣。大型、备受瞩目的站点不是唯一的目标——许多入侵者只是想尽可能多地利用站点,而不管其规模大小。此外,他们可能会利用您站点中的安全漏洞来访问您连接的其他站点。

入侵者有大量的时间,并且可以通过尝试所有可能性来避免猜测您是如何混淆您的系统的。入侵者可能对您的系统感兴趣的原因也有很多,我们将在后面讨论。

2.5.1. 主机安全

管理员最关注的安全领域可能是基于主机的安全性。这通常涉及确保您自己的系统是安全的,并希望您网络上的每个人都这样做。选择好的密码、保护主机本地网络服务、保持良好的会计记录以及升级具有已知安全漏洞的程序是本地安全管理员负责执行的任务。虽然这绝对必要,但一旦您的网络变得大于几台机器,它就会成为一项艰巨的任务。

2.5.2. 局域网安全

网络安全与本地主机安全一样必要。在同一网络上有数百、数千甚至更多台计算机的情况下,您不能依赖于所有这些系统都是安全的。确保只有授权用户可以使用您的网络、构建防火墙、使用强加密以及确保您的网络上没有“流氓”(即不安全的)机器都是网络安全管理员职责的一部分。

本文档将讨论用于保护您的站点的一些技术,并希望向您展示一些防止入侵者访问您试图保护的内容的方法。

2.5.3. 通过隐蔽实现安全

必须讨论的一种安全类型是“通过隐蔽实现安全”。这意味着,例如,将具有已知安全漏洞的服务移动到非标准端口,希望攻击者不会注意到它在那里,因此不会利用它。请放心,他们可以确定它在那里并会利用它。通过隐蔽实现安全根本不是安全。仅仅因为您可能有一个小型站点或相对较低的知名度,并不意味着入侵者不会对您拥有的东西感兴趣。我们将在接下来的部分讨论您要保护什么。

2.6. 本文档的组织结构

本文档分为多个部分。它们涵盖了几个广泛的安全问题。第一部分,第 3 节,介绍了您需要如何保护您的物理机器免受篡改。第二部分,第 4 节,描述了如何保护您的系统免受本地用户的篡改。第三部分,第 5 节,向您展示了如何设置您的文件系统和文件权限。下一部分,第 6 节,讨论了如何使用加密来更好地保护您的机器和网络。第 7 节讨论了为了更安全的系统,您应该设置或注意哪些内核选项。第 8 节,描述了如何更好地保护您的 Linux 系统免受网络攻击。第 9 节,讨论了在将您的机器上线之前如何准备它们。接下来,第 10 节,讨论了当您检测到正在进行的系统入侵或检测到最近发生的系统入侵时该怎么办。在第 11 节中,列举了一些主要的安全性资源。问答部分 第 13 节,回答了一些常见问题,最后在 第 14 节 中给出了结论

阅读本文档时要意识到的两个要点是