Linux安全原理简介
Linux安全原理简介
介绍
在设置Linux计算机的所有阶段,安全性应是首要考虑之一。要在计算机上实施良好的安全策略,需要对Linux的基础知识以及所使用的某些应用程序和协议有充分的了解。
Linux的安全性是一个非常重要的主题,并且有许多有关此主题的完整书籍。我不能在本教程中介绍所有内容,但这确实对安全性进行了基本介绍,并介绍了如何使用技术和工具在Linux计算机上提供附加安全性。希望这将提供足够的信息,以便能够调查其他信息来源。
为什么我们需要安全性?
尽管Linux用户必须比其他一些主要操作系统更不容易受到病毒的感染,但是Linux用户和管理员仍然面临许多安全问题。
任何任务中最重要的步骤之一就是确定执行此操作的原因。不仅仅是说我们需要确保系统安全,还需要考虑安全的含义,与任何可用数据相关的风险,安全措施对用户的影响。在不首先考虑任何这些因素的情况下,如果您已经实现了确保系统安全的目标,您还将如何知道。
安全要求
在确定了为什么要实施安全性之后,您应该考虑所需的安全性方面。主要的安全要求是:
授权 -只允许那些需要访问数据的人
真实性 -确认自己是谁,说他们是
隐私/机密性 -确保个人信息不被泄露
完整性 -确保数据未被
不可否认性篡改-确认数据收到。在法庭上证明它的能力
可用性 -确保系统可以执行其必需的功能
强制要求
某些安全要求不是直接由您控制的,而是强加于您的。这些可能是法律要求(例如1998年《数据保护法》),符合标准(例如ISO 7984-2国际标准组织安全标准)或公司政策。如果您处理信用卡交易,则可能需要遵守支付卡行业(PCI)所述的最低安全标准。
这些标准中的一些非常模糊(例如,《数据保护法》仅规定了适当的安全性),而另一些则更为具体(例如,公司策略可能要求密码的最小长度等)。
认识敌人
在能够有效保护计算机系统之前,您需要知道是谁在试图攻击您的系统以及他们试图做什么。我通过回答一些有关可能攻击计算机系统的人的问题,展示了一些示例。
- 谁想要?
- 他们为什么要这样做?
- 他们试图实现什么?
- 他们是如何做到的呢?
黑客,饼干和窃贼
这些词在指代安全攻击时通常被使用,但是其含义经常被误解或理解。我按照术语解释的难易程度进行了排序,以免将它们混淆在一起。请注意,其他人使用这些术语时可能会有不同的含义。
Phreakers-也称为电话Phreakers,该术语起源于被认为是对电子系统的最早攻击形式。最早的做法是绕过电话系统中使用的系统,从而允许免费或降低价格的国际电话通话。最早的一种形式是美国的付费电话系统使用某个频率信号来表示硬币已经放入电话中。据发现,该信号的频率为2600 Hz,也与分发有流行谷物的玩具口哨发出的频率相同。通过在发出付款请求时将哨子吹入电话,Phreaker可能会欺骗操作人员以为钱已经存放在公用电话中。
饼干 -这些人未经授权即可使用计算机。当人们提到黑客闯入计算机时,他们实际上是在指黑客。
黑客 -使用“ 黑客 ”一词的传统含义并不意味着暗示任何非法或不道德的活动。真正的含义是计算机爱好者,他们了解系统的内部工作原理,并使用该知识将程序等“黑”在一起以执行功能。这与传统技术或编程不同,传统技术或编程旨在按照固定的结构和过程来生产完整的软件。由于不正确的使用,包括媒体的使用,黑客一词现在具有两种含义。一个是它的本义,另一个是试图侵入计算机的任何人(饼干)或对计算机系统造成故意破坏或损坏(无物理影响)的人。
在本教程中,我通常将肇事者称为攻击者,无论她属于哪种类别,但是在提到黑客时,我通常指的是这些含义的较新含义。
尽管有些人可能反对我使用“黑客”一词,但我的理由是转向牛津英语词典中的定义,该定义描述了该语言的流行用法,被认为是英语的
权威指南:“黑客-计算机爱好者,尤其是其中之一获得了对文件的未授权访问”
,牛津流行词典,Parragon,1995年
刻板印象-为什么要成为黑客?
通过了解攻击的原因,可以确定可以使用哪些保护来保护数据的基础。因此,我列举了一些黑客原因的例子。这包括陈规定型的例子,还有一些您可能不必考虑的例子。这绝不是完整的,但是它确实强调了有人要攻击您的系统有多种原因。
仅出于娱乐目的 -通常是接受进一步教育或高等教育的人,他们使用学院或大学的计算机设施通过Internet攻击另一台计算机。尽管确实有许多符合此描述的攻击者,但重要的是要认识到这些并不是唯一的黑客类型。这个人通常只有有限的资源,通常只是为了娱乐而这样做;或证明他们的才智等。但是,他们可能是使用Internet团结在一起的一个较大团体的一部分。尽管许多人不打算造成恶意损害,但它们可能会损害您的公司名称,但可能会造成意外损害,并可能为他人敞开大门。
商业间谍活动/破坏活动 -尽管间谍活动通常会融合詹姆斯·邦德(James Bond)与许多坏人作斗争的形象,但实际情况却不那么戏剧性。竞争者想要获得竞争优势可能会带来风险。例如,如果您正在竞标合同,而您的竞争对手能够找到您的竞标细节,那么他们很可能会削弱您的利益并赢得合同。或者,通过使您的网页停止运行,可以鼓励客户参加比赛。
这类攻击者通常拥有很多资源,包括财力和人力资源,并且有非常具体的目标。如果您的组织参与了军事合同,那么可能会有真正的恩斯特·斯塔夫罗·布洛费尔德(Ernst Stavro Blofeld)试图窃取这项技术来占领世界。
为事业而战 -可能为您的公司而战的其他团体则是为事业而战或捍卫信念的人。尽管有许多明显的极端主义团体,例如恐怖分子或极端主义动物权利团体,但它们同样可以适用于争议较小,有人持不同意见的地区。
心怀不满的员工-到目前为止,我已经提到了组织外部的攻击者,但是有时情况是更大的风险来自组织内部的员工。这些可能已经具有对计算机的授权访问权,并且已经在防火墙内部。然后,他们可以对组织使用该访问权限,并利用系统中的其他漏洞。尽管这些人可能有不同的动机,但最明显的原因之一是对于那些被开除,纪律处分或对组织目前的状况不满意的人。为内部员工辩护可能更具挑战性,因为需要找到在不阻止他人执行工作的情况下限制访问的方法。将安全性加强到员工无法正确完成工作的程度是间接拒绝服务。
意外的用户错误 -尽管普通用户可能不会试图对系统造成任何损坏,但他们可能会导致数据意外损坏。通过限制用户访问,可以在合理范围内限制用户错误。这可能是编程错误以及在程序中错误键入指令的形式。
对系统的攻击类型
发生了许多不同类型的攻击。这些可能会有所不同,具体取决于您提供的服务或针对您的攻击者的类型。这些领域将在以后确定保护方法。该列表并非完整列表,但确实可以让您了解需要关注的领域。新方法仍在开发中,安全管理员必须确保它们不会被遗忘。
读取数据 -通常与间谍活动或盗窃有关,计算机系统通常包含需要保密或安全的信息。这可能与讨论项目投标价格的电子邮件,个人信息或银行详细信息不同。披露这些信息可能会严重损害公司或具有法律影响。在英国,个人数据的存储受《数据保护法》(1988年)的保护。该行为的原则规定,个人数据应“被适当的安全保护”。有关更多详细信息,请参见/。
更改数据 -攻击可能获得足够的访问权限以能够更新数据,这可能甚至更为严重。这可能是出于破坏目的,是破坏组织信誉或留下电话卡的一种手段。最大的风险之一是数据可能会被修改而不会被注意到。攻击者往往在此领域备受瞩目,攻击者用自己的修改版本替换网页。
拒绝服务 -拒绝服务(DoS)攻击是攻击者禁用系统或使系统提供的服务不可用的地方。较早的DoS攻击是“ Ping of Death”。通过创建大于最大允许大小的ICMP回显命令,计算机可能会发生故障。实际上,该漏洞最初是在Windows的早期版本中得到修复的十年( -vista)。过去,许多DoS攻击都是通过修复bug来解决的,而该bug则是一种更具问题的威胁,称为“分布式拒绝服务”。第一个众所周知的例子是在2000年初对Altavista和Yahoo的攻击,但在2009年期间对包括Twitter在内的各种站点发起了类似的攻击,最近又对负责过滤Pirate Bay的站点和其他文件共享站点发起了类似的攻击。分布式拒绝服务攻击是由攻击者(或更可能是攻击者)进行的,它们在许多不同的计算机上植入特洛伊木马。当这些特洛伊木马同时触发时,它们会直接对单个系统发起攻击。数千次同时攻击的综合作用使系统无法运行。
存取电脑-对于某些系统,您可能允许其他用户进入您的系统,有时这些用户帐户可能会受到攻击。计算机可能不包含任何机密材料,并且用户可能无法写入任何数据,但是他们仍然可以使用您的系统造成损坏。如果有人设法攻击在安全和不安全网络之间边界的计算机,那么他们可以将您的计算机用作在两个网络之间穿越的方法。使用计算机攻击另一台计算机的另一种技术是分布式拒绝服务。攻击者可以在您的计算机上植入特洛伊木马,以便在触发时攻击另一台计算机。如果有人发现使用属于您组织的系统来实施其中一种犯罪,则可能会令人尴尬。
攻击系统的方法
第一代黑客通常是聪明的人,他们对计算机的工作原理有很多了解。他们可以识别系统中的错误,然后使用计算机知识来利用该错误。尽管仍然有许多黑客可以做到这一点,但还有另一种类型的攻击者会等到其他人找到进入计算机的方式然后使用相同的技术时再进行攻击。他们只能采用由黑客编写的程序和脚本,并在希望找到解决方法的系统上运行它们。我没有将它们称为黑客,因为他们不具备计算机知识来支持其好奇心,有时也被称为作为“脚本小子”(不考虑其实际年龄)。这是用于获取访问权限的一些技术的列表。
密码猜测 -安装某些系统或服务时可能具有默认密码。一些攻击者会尝试使用一些标准的用户名和密码,以希望他们会很幸运并找到容易猜到的密码。某些人可能会将密码设置为与用户名相同,这是该人将尝试的标准操作之一。此方法依赖于不使用安全密码的用户或管理员。
社会工程 -这种技术通过处理人们的失败而不是计算机的不安全来起作用。一种技术是给假扮成雇员的服务台打电话,并试图让他们通过电话给您密码。假装成为系统管理员并向用户询问其用户名和密码,也可以采用其他方法。另一种被称为“肩冲浪”的技术是,当攻击者在键盘上键入密码并观察按下了哪些键时,攻击者将站在某人的身后。这些技术取决于员工接受的安全培训(或缺乏培训)。
特洛伊木马 -特洛伊木马是植入计算机的程序,看上去无害。这些可以由系统的另一个用户留下或放置在以前被黑客入侵的用于分发软件的站点上,也可以作为电子邮件发送,假装是有用的工具或有趣的游戏。激活触发器后,黑客可以访问计算机或获取程序来运行特定命令。
病毒 -病毒是旨在自我复制的程序。这些服务器可能具有恶意负载,该恶意负载正在运行,以破坏相关系统。
软件错误 -如果未正确编写软件,则有时会导致安全漏洞。一个例子是,设计用于处理一定数量数据的程序可以通过对过多数据进行轰炸来破坏。有时,这是通过使缓冲区溢出数据而导致数据存储在未为此目的分配的内存中来完成的。这可能导致系统崩溃(例如Ping of Death)或提供系统访问权限的受信任程序。
地址欺骗 -在受信任的环境中,有时会配置为允许其他已知安全的计算机访问该计算机,而无需任何进一步的身份验证。尽管这使管理更加容易,但确实存在潜在的问题,因为另一台计算机可能会伪装成这些受信任的计算机之一。通过将一台计算机配置为与受信任的计算机相同的IP地址(已关闭或被迫关闭),攻击者将可以访问其他系统,就像在受信任的服务器上获得了它们的正式访问一样。因此,在许多环境中,启用依赖于这些受信任计算机的服务是一种不好的做法。
这绝不是完整的方法列表,但是确实给出了计算机可能容易受到攻击的区域的概念。
安全性与可访问性
增加系统的安全级别通常会涉及给系统的合法用户增加障碍。这可以采取多种形式,包括限制用户访问系统的方式,更改系统对忘记的密码的响应方式或降低系统的性能。对于系统管理员和安全专家而言,它还涉及许多其他工作。
要决定要应用的安全性的适当数量,首先需要确定安全性不足会给企业造成损失的风险和损害程度。违反安全性的成本可能表现为业务损失,产生的额外成本或损害公司声誉的形式。通过这种方式评估风险,可以生成有关适当级别的安全性的图片。
需要在组织涵盖的所有不同环境和系统中考虑安全要求。这可能意味着期望其他公司提供某些标准,这些公司可能托管您的部分计算服务,或者提供您所依赖的服务。
安全策略的一部分还应该确定任何较易受攻击的系统,因此需要比其他系统更高的安全级别。尽管在理想世界中,每个系统都将是完全安全的,并且可以免受攻击,但实际上并非如此。尝试将所有系统固定到同一级别所需的资源和所涉及的工作可能会导致暴露或造成影响,从而导致系统无法正常运行。
基于功能的系统分类
下面显示了如何对不同系统进行分类的示例。在这种情况下,每个系统都分为三个标题。红色表示高风险,黄色表示中度风险,绿色表示最低风险。这些可能会非常不同,具体取决于组织的要求。
红色-高风险 | 黄色-中等风险 | 绿色-低风险 |
互联网网页服务器 | 内联网Web服务器 | 用户个人电脑 |
防火墙 | 内部数据库服务器 | 打印服务器 |
安全服务器 | 非必要服务 | |
工资单/财务系统 |
红色的高风险系统首先是客户将看到的那些系统,例如Web Server。那些保护内部网络免受诸如防火墙之类的外部网络攻击的组件(有关详细信息,请参阅下文);那些携带敏感信息(例如安全服务器)的系统,以及任何保存有可能在发布时损坏公司的信息的系统(例如工资单和财务系统)。
黄色中等风险系统是业务所依赖的系统,但是公众无法使用。这些通常是内部服务器,可通过防火墙保护其免受公司网络外部的攻击。如果业务功能完全依赖于此类系统,则仍应将其视为高风险。例如,处理客户订单的呼叫接收台如果无法访问订单系统,将无法操作。
绿色低风险系统是指那些攻击只会产生有限效果的系统。例如,单人桌上的PC,打印服务器;或组织不依赖其继续运行的服务,例如 一个对等消息系统,如果发生故障,可以使用电话来绕开它。将系统归入低风险类别时,必须考虑整体风险。例如,用户PC是否包含机密材料,在这种情况下,计算机的风险等级可能会比用于不太重要的数据的风险等级高。要考虑的另一个因素是,如果某人能够闯入打印服务器或个人计算机,他们是否可以利用它造成更严重的损失?
这些类别还必须与组织的安全策略结合使用(请参阅下文)。例如,您可能会决定,由于存储在用户便携式计算机上的机密信息,您确实希望将其升级为中等风险,但是安全策略规定,所有中等风险系统必须存储在安全的房间中,除非用户可以访问系统需要维修时。通过将笔记本电脑置于中等风险类别,您刚刚删除了它作为便携式系统的用处,实际上用户甚至可能无法使用它。因此,在执行风险分析时,或在公司政策中包括足够的灵活性时,需要包括一定程度的灵活性。例如,可以做一个例外,允许笔记本电脑只要经过了数据加密就可以带出办公室。
识别系统的不同风险
在确定哪些系统存在风险之后,考虑该系统面临的风险也很重要。这应该通过考虑不同类型的攻击的影响来实现。我在下面使用一些高风险系统的示例来确定不同类型攻击的影响。这些显示在下表中:
网络服务器 | 防火墙功能 | 安全服务器 | 工资单/财务 | |
读取数据 | 低 | 中 | 高 | 高 |
变更资料 | 高 | 高 | 高 | 高 |
拒绝服务 | 高 | 高 | 高 | 中 |
普通用户登录 | 低 | 高 | 高 | 高 |
从表中可以看出,某些类型的违规行为可能具有更大的破坏力。从Web服务器的角度来看,某人能够读取数据的能力很低,因为Web服务器上存储的数据通常可供任何人使用,但是,如果某人能够更改数据或阻止服务正常工作(拒绝服务),则影响,声誉将受到严重打击。在防火墙上,每种类型的破坏都可能很严重,因为它可能随后被用来针对内部网络内部不太安全的系统。
实际影响还取决于他们可以读取的数据。如果用户能够阅读被归类为机密的信息(例如,在Web服务器的安全部分),则比说出指示下一个社交事件的位置的文档要差得多。
通过确定影响,可以针对将可用资源投资于何处制定更好的策略。
评估数据
除了确定哪些系统保存任何敏感数据外,还应根据实际数据的敏感度对实际数据进行分类。这对于确定系统上的哪些用户应该能够访问哪些文件特别有用。如果您限制单个用户的访问权限,那么这将限制用户可能造成的损害,如果用户标识受到损害,则将限制攻击者可能造成的损害。
将数据分组到相似的访问要求中,比按敏感度分类更有用。这可能是由处理特定职能的部门分组的。
然后,针对每个类别,应确定谁应具有哪些访问权限。执行此操作的方法称为CRUD分析。这只是以下情况:
谁可以创建数据?
谁可以读取数据?
谁可以更新数据?
谁可以删除数据?
但是,您可以根据系统可用的策略进行不同的设置。您可能正在运行的应用程序具有与文件系统支持的标准读取,写入和执行不同的授权模型(例如,Lotus Notes或其他数据库驱动的应用程序)。
然后,可以使用此分析来创建具有适当访问权限的组。这还具有以下优点:通过将用户与组相关联,而不是必须逐个设置权限,可以更轻松地管理访问。
安全政策
在分析了上一节中的安全性要求之后,您现在可以着手制定自己的安全性策略。它可能涉及从头开始编写安全策略,也可能是寻求应用授权的公司安全策略的情况。即使在已经提供安全策略的地方,也可能存在其他步骤,这些步骤可能更适合某些系统。
如果要创建自己的安全策略,则需要考虑许多因素。
您应确保已涵盖适用于您系统的任何原则:授权,真实性,隐私/机密性,完整性,不可否认性和可用性。还考虑一下用户和系统管理员将如何实现这一点。如果安全流程难以实施或限制某人执行其工作,则您可能会发现该流程被忽略或未得到遵守。
设置安全策略时,还应考虑如何执行和审核该策略。
堵孔
任何计算机上都有许多可能的安全隐患。尽管实际上不可能完全固定计算机,从而计算机仍然可以达到目的,但可以执行许多步骤以最大程度地减少曝光。这些通常称为安全孔或需要关闭的后门。
还可以采取许多步骤来尝试确定计算机是否受到攻击,或者是否确实已经被入侵。通过定期监视可疑活动,可以采取措施来限制任何损害并防止进一步的攻击。
人身安全
大多数物理安全原则是相当明显的。如果计算机可以进行物理访问,那么通常通过引导到实时CD上然后访问本地磁盘来攻击计算机是很简单的。可以通过对磁盘进行加密来保护数据免遭盗窃,但是有人仍然有可能破坏该信息。
所有生产服务器应保存在安全的机房中,并应限制访问,最好使用电子访问系统或手动密钥签出过程来跟踪物理访问。您可能还需要考虑物理监视,例如CCTV监视(符合PCI要求)。
除了对特定计算机或服务器进行物理访问的明显区域外,对局域网的物理访问也应视为要控制的物理资产。许多内部网络都使用DHCP来分配IP地址,这使得访问网络就像将便携式计算机连接到网络点一样简单。即使没有DHCP,通常也可以监视网络并以这种方式找到所需的信息。
用户授权
普通用户身份验证基于用户能够提供正确的用户名和密码。用户名不是必须保密的东西,因为它可以被系统上的任何人读取,但是密码是加密的,应该仅由用户知道。用于加密密码的算法是一种不可逆的单向密码。而是当用户输入密码时,使用相同的算法对其进行加密,并与原始密码进行比较。
传统上,在UNIX中,密码保存在/ etc / passwd文件中,系统上的所有用户均可读取。现代Linux发行版使用具有受限读取权限的影子密码文件。
以下摘录显示了如何实现。
/ etc / password文件仍然包含用户名详细信息,但是带有星号(*),该密码通常应为:
root:!:0:0::/:/bin/bash
daemon:!:1:1::/etc:
bin:!:2:2::/bin:
sys:!:3:3::/usr/sys:
adm:!:4:4::/var/adm:
uucp:!:5:5::/usr/lib/uucp:
guest:!:100:100::/home/guest:
nobody:!:4294967294:4294967294::/:
lpd:!:9:4294967294::/:
imnadm:*:200:200::/home/imnadm:/bin/bash
stewart:!:1007:1007:Stewart Watkiss:/home/stewart:/bin/bash
然后,密码以加密方式存储在/ etc / shadow文件中,该文件只能由root或安全组成员访问。
stewart:$6$2eyvm73b$tCZgPYfKBHFNebHo7tdxojDfx1a48RHeYDcj3gQVJz7wWy9.qla0qMsCkFGIRmHTl8i/PD.yFxlgeiGrcunB3/:15485:0:99999:7:::
上面显示的密码实际上与用户名stewart相同。我已将其作为如何加密用户名以使其不易于理解的示例。这是一个非常不安全的密码,该密码不应与用户名相同。如果您尝试给另一个用户名提供与我使用过的相同的密码,那么几乎可以肯定会有不同的加密密码。原因是在加密算法中还使用了lastupdate条目来生成唯一的密码。
显然,这不是我计算机上的真实密码-因此无需尝试。
密码文件的安全非常重要,因为尽管密码是加密的,但是有可能对加密的密码进行字典攻击。通过从字典中提取单词并将其加密为密码,然后将其与密码文件进行比较,可以进行这些操作。如果有任何匹配项,则提供密码。通过将字母替换为数字(例如1而不是I等),以及使用不同的词典,获得密码的机会会更好,从而使密码更加复杂。这些程序是免费提供的两个示例,分别是“ Crack”或“ John Ripper”。这些可以由系统管理员运行,以确保人们使用安全密码。创建密码时,还可以让系统检查不安全的词典密码。
网络安全
如果您使计算机远离网络,则只有能够物理访问计算机的人员才会面临安全隐患。一旦连接到网络,它就有可能成为全球任何人或任何计算机的目标。在考虑网络计算机的安全性时,我们需要考虑防止他人登录计算机的安全性,同时也要考虑通过网络传输的数据的安全性。
使用防火墙保护网络以限制访问
提供安全性的一种方法是将计算机所在的网络与其他网络(尤其是Internet)分开。可以通过确保没有到任何其他网络的物理路由来完成此操作,但是通常需要某种形式的Internet访问。在这种情况下,可以使用专用防火墙来提供从更安全的内部网络到Internet的隔离。
防火墙使用一组规则来确定允许哪些流量通过以及向哪个方向通过。这些通常用于将内部网络与外部网络(例如Internet或其他业务合作伙伴)分开,但也可以用于分离不同的内部网络,以防止某人可以通过一个网络访问他们所要访问的公司的另一部分。未经授权。
保护无线网络
如果使用内部无线网络,则不仅存在人们通过防火墙访问网络的风险,而且网络信号本身也可能被拦截或劫持。这将使某人可以看到通过网络传递的流量,或者冒充内部计算机绕过防火墙。
可以通过实施WPA无线网络加密(请注意,不再认为较旧的WEP加密是安全的)或通过安全连接对网络流量进行隧道保护(例如使用VPN隧道软件)来确保此安全。后者的优势在于,当使用公共网络服务(如旅馆和无线热点中提供的服务)时,它也将提供保护。
网络协议
如果使用诸如telnet和FTP之类的不安全协议,则密码将通过LAN未经加密地发送。在LAN上使用嗅探器或LAN跟踪工具的人可能会看到这些未加密的密码。如果使用不安全的网络协议,则可能需要针对网络端口的附加物理安全性以及对将流量路由到何处的限制。在某些情况下,更好的选择是切换到具有内置安全性的协议(例如ssh),该协议会对传输的所有数据进行加密。
保护本地计算机免受网络连接
另一种保护形式是通过基于限制运行的协议(禁用服务)来阻止某些网络访问,通过配置网络协议来限制访问(例如,通过限制访问)来阻止入站连接(使用个人/内置防火墙)来保护计算机。 IP地址或通过阻止某些用户进行远程登录)或使用其他软件(例如Tcpwrappers)添加其他限制。
反病毒
必须在计算机和防病毒软件上运行Windows,以防止受到病毒和间谍软件的侵害。在Linux世界中,目前没有“野外”活动病毒。这种情况将来可能会改变,但是目前,本地计算机不会受到病毒的直接威胁。但是,Linux机器可能存在一种病毒,该病毒可能会无意间传播给其他操作系统选择较高病毒风险的病毒。因此,建议至少偶尔运行一次防病毒软件,以为使用其他操作系统的用户提供一定程度的安全性。有几种不同的防病毒软件包可免费使用或购买。
不安全的网络协议
如果使用诸如telnet和FTP之类的开放协议,则密码将在LAN上不加密地发送。在LAN上使用嗅探器或LAN跟踪工具的人可能会看到这些未加密的密码。如果使用开放网络协议,则可能需要针对网络端口的附加物理安全性以及对该流量可能路由的位置的限制。
在许多情况下,可以更改为其他更安全的协议。例如,可以使用ssh程序套件(ssh / sftp)替换telnet和FTP。SSH使用加密来防止任何人嗅探密码或通过连接传递的数据。
隧道传输不安全的协议VPN / SSH隧道
当使用安全性较低的网络协议时,提供额外安全性的另一种方法是通过安全网络隧道封装信息。可以使用VPN软件或硬件,或者使用ssh建立隧道连接来完成。如果使用专用的硬件解决方案(VPN网关)创建VPN连接,则需要考虑是否可以在计算机和VPN网关之间的网络中嗅探流量。
软件更新/补丁
所有重要的软件都有错误。这是生活中的事实。
当发现错误时,尤其是与安全性相关的错误时,通常会提供修复程序(或补丁)来修复该错误。通常可以使用大多数Linux发行版中包含的软件更新检查器下载这些文件。如果从不受支持的存储库或正常软件安装过程之外安装软件,则系统管理员通常负责确保补丁程序是最新的,并且可能需要遵循错误报告信息并根据需要执行手动更新。
安全测试
固定好计算机后,应对其进行测试,以查看是否存在计划外的潜在风险。这可以采取网络端口扫描和/或专用安全软件的形式,这些软件可以从本地软件和网络方面全面分析系统。测试访问的做法称为渗透测试。安全测试工具可以作为开放源代码或封闭源代码专有软件使用。
流行的开源网络扫描程序是Nmap,可以在网络上使用它来显示网络漏洞。
您只应在授权的系统上使用渗透测试工具。在其他系统上运行这些命令可能被视为犯罪行为。
结论
这就解释了为Linux系统开发安全解决方案时需要考虑的不同因素。尽管已经包括了一些工具的名称,但它并未详细介绍如何配置工具或应对系统进行哪些更改以阻止潜在的攻击者。处理完这些信息后,应该有可能制定一个计划,针对哪些领域集中资源并提供足够的背景知识作为进一步研究的平台。
Linux安全原理简介
Linux安全原理简介
介绍
在设置Linux计算机的所有阶段,安全性应是首要考虑之一。要在计算机上实施良好的安全策略,需要对Linux的基础知识以及所使用的某些应用程序和协议有充分的了解。
Linux的安全性是一个非常重要的主题,并且有许多有关此主题的完整书籍。我不能在本教程中介绍所有内容,但这确实对安全性进行了基本介绍,并介绍了如何使用技术和工具在Linux计算机上提供附加安全性。希望这将提供足够的信息,以便能够调查其他信息来源。
为什么我们需要安全性?
尽管Linux用户必须比其他一些主要操作系统更不容易受到病毒的感染,但是Linux用户和管理员仍然面临许多安全问题。
任何任务中最重要的步骤之一就是确定执行此操作的原因。不仅仅是说我们需要确保系统安全,还需要考虑安全的含义,与任何可用数据相关的风险,安全措施对用户的影响。在不首先考虑任何这些因素的情况下,如果您已经实现了确保系统安全的目标,您还将如何知道。
安全要求
在确定了为什么要实施安全性之后,您应该考虑所需的安全性方面。主要的安全要求是:
授权 -只允许那些需要访问数据的人
真实性 -确认自己是谁,说他们是
隐私/机密性 -确保个人信息不被泄露
完整性 -确保数据未被
不可否认性篡改-确认数据收到。在法庭上证明它的能力
可用性 -确保系统可以执行其必需的功能
强制要求
某些安全要求不是直接由您控制的,而是强加于您的。这些可能是法律要求(例如1998年《数据保护法》),符合标准(例如ISO 7984-2国际标准组织安全标准)或公司政策。如果您处理信用卡交易,则可能需要遵守支付卡行业(PCI)所述的最低安全标准。
这些标准中的一些非常模糊(例如,《数据保护法》仅规定了适当的安全性),而另一些则更为具体(例如,公司策略可能要求密码的最小长度等)。
认识敌人
在能够有效保护计算机系统之前,您需要知道是谁在试图攻击您的系统以及他们试图做什么。我通过回答一些有关可能攻击计算机系统的人的问题,展示了一些示例。
- 谁想要?
- 他们为什么要这样做?
- 他们试图实现什么?
- 他们是如何做到的呢?
黑客,饼干和窃贼
这些词在指代安全攻击时通常被使用,但是其含义经常被误解或理解。我按照术语解释的难易程度进行了排序,以免将它们混淆在一起。请注意,其他人使用这些术语时可能会有不同的含义。
Phreakers-也称为电话Phreakers,该术语起源于被认为是对电子系统的最早攻击形式。最早的做法是绕过电话系统中使用的系统,从而允许免费或降低价格的国际电话通话。最早的一种形式是美国的付费电话系统使用某个频率信号来表示硬币已经放入电话中。据发现,该信号的频率为2600 Hz,也与分发有流行谷物的玩具口哨发出的频率相同。通过在发出付款请求时将哨子吹入电话,Phreaker可能会欺骗操作人员以为钱已经存放在公用电话中。
饼干 -这些人未经授权即可使用计算机。当人们提到黑客闯入计算机时,他们实际上是在指黑客。
黑客 -使用“ 黑客 ”一词的传统含义并不意味着暗示任何非法或不道德的活动。真正的含义是计算机爱好者,他们了解系统的内部工作原理,并使用该知识将程序等“黑”在一起以执行功能。这与传统技术或编程不同,传统技术或编程旨在按照固定的结构和过程来生产完整的软件。由于不正确的使用,包括媒体的使用,黑客一词现在具有两种含义。一个是它的本义,另一个是试图侵入计算机的任何人(饼干)或对计算机系统造成故意破坏或损坏(无物理影响)的人。
在本教程中,我通常将肇事者称为攻击者,无论她属于哪种类别,但是在提到黑客时,我通常指的是这些含义的较新含义。
尽管有些人可能反对我使用“黑客”一词,但我的理由是转向牛津英语词典中的定义,该定义描述了该语言的流行用法,被认为是英语的
权威指南:“黑客-计算机爱好者,尤其是其中之一获得了对文件的未授权访问”
,牛津流行词典,Parragon,1995年
刻板印象-为什么要成为黑客?
通过了解攻击的原因,可以确定可以使用哪些保护来保护数据的基础。因此,我列举了一些黑客原因的例子。这包括陈规定型的例子,还有一些您可能不必考虑的例子。这绝不是完整的,但是它确实强调了有人要攻击您的系统有多种原因。
仅出于娱乐目的 -通常是接受进一步教育或高等教育的人,他们使用学院或大学的计算机设施通过Internet攻击另一台计算机。尽管确实有许多符合此描述的攻击者,但重要的是要认识到这些并不是唯一的黑客类型。这个人通常只有有限的资源,通常只是为了娱乐而这样做;或证明他们的才智等。但是,他们可能是使用Internet团结在一起的一个较大团体的一部分。尽管许多人不打算造成恶意损害,但它们可能会损害您的公司名称,但可能会造成意外损害,并可能为他人敞开大门。
商业间谍活动/破坏活动 -尽管间谍活动通常会融合詹姆斯·邦德(James Bond)与许多坏人作斗争的形象,但实际情况却不那么戏剧性。竞争者想要获得竞争优势可能会带来风险。例如,如果您正在竞标合同,而您的竞争对手能够找到您的竞标细节,那么他们很可能会削弱您的利益并赢得合同。或者,通过使您的网页停止运行,可以鼓励客户参加比赛。
这类攻击者通常拥有很多资源,包括财力和人力资源,并且有非常具体的目标。如果您的组织参与了军事合同,那么可能会有真正的恩斯特·斯塔夫罗·布洛费尔德(Ernst Stavro Blofeld)试图窃取这项技术来占领世界。
为事业而战 -可能为您的公司而战的其他团体则是为事业而战或捍卫信念的人。尽管有许多明显的极端主义团体,例如恐怖分子或极端主义动物权利团体,但它们同样可以适用于争议较小,有人持不同意见的地区。
心怀不满的员工-到目前为止,我已经提到了组织外部的攻击者,但是有时情况是更大的风险来自组织内部的员工。这些可能已经具有对计算机的授权访问权,并且已经在防火墙内部。然后,他们可以对组织使用该访问权限,并利用系统中的其他漏洞。尽管这些人可能有不同的动机,但最明显的原因之一是对于那些被开除,纪律处分或对组织目前的状况不满意的人。为内部员工辩护可能更具挑战性,因为需要找到在不阻止他人执行工作的情况下限制访问的方法。将安全性加强到员工无法正确完成工作的程度是间接拒绝服务。
意外的用户错误 -尽管普通用户可能不会试图对系统造成任何损坏,但他们可能会导致数据意外损坏。通过限制用户访问,可以在合理范围内限制用户错误。这可能是编程错误以及在程序中错误键入指令的形式。
对系统的攻击类型
发生了许多不同类型的攻击。这些可能会有所不同,具体取决于您提供的服务或针对您的攻击者的类型。这些领域将在以后确定保护方法。该列表并非完整列表,但确实可以让您了解需要关注的领域。新方法仍在开发中,安全管理员必须确保它们不会被遗忘。
读取数据 -通常与间谍活动或盗窃有关,计算机系统通常包含需要保密或安全的信息。这可能与讨论项目投标价格的电子邮件,个人信息或银行详细信息不同。披露这些信息可能会严重损害公司或具有法律影响。在英国,个人数据的存储受《数据保护法》(1988年)的保护。该行为的原则规定,个人数据应“被适当的安全保护”。有关更多详细信息,请参见/。
更改数据 -攻击可能获得足够的访问权限以能够更新数据,这可能甚至更为严重。这可能是出于破坏目的,是破坏组织信誉或留下电话卡的一种手段。最大的风险之一是数据可能会被修改而不会被注意到。攻击者往往在此领域备受瞩目,攻击者用自己的修改版本替换网页。
拒绝服务 -拒绝服务(DoS)攻击是攻击者禁用系统或使系统提供的服务不可用的地方。较早的DoS攻击是“ Ping of Death”。通过创建大于最大允许大小的ICMP回显命令,计算机可能会发生故障。实际上,该漏洞最初是在Windows的早期版本中得到修复的十年( -vista)。过去,许多DoS攻击都是通过修复bug来解决的,而该bug则是一种更具问题的威胁,称为“分布式拒绝服务”。第一个众所周知的例子是在2000年初对Altavista和Yahoo的攻击,但在2009年期间对包括Twitter在内的各种站点发起了类似的攻击,最近又对负责过滤Pirate Bay的站点和其他文件共享站点发起了类似的攻击。分布式拒绝服务攻击是由攻击者(或更可能是攻击者)进行的,它们在许多不同的计算机上植入特洛伊木马。当这些特洛伊木马同时触发时,它们会直接对单个系统发起攻击。数千次同时攻击的综合作用使系统无法运行。
存取电脑-对于某些系统,您可能允许其他用户进入您的系统,有时这些用户帐户可能会受到攻击。计算机可能不包含任何机密材料,并且用户可能无法写入任何数据,但是他们仍然可以使用您的系统造成损坏。如果有人设法攻击在安全和不安全网络之间边界的计算机,那么他们可以将您的计算机用作在两个网络之间穿越的方法。使用计算机攻击另一台计算机的另一种技术是分布式拒绝服务。攻击者可以在您的计算机上植入特洛伊木马,以便在触发时攻击另一台计算机。如果有人发现使用属于您组织的系统来实施其中一种犯罪,则可能会令人尴尬。
攻击系统的方法
第一代黑客通常是聪明的人,他们对计算机的工作原理有很多了解。他们可以识别系统中的错误,然后使用计算机知识来利用该错误。尽管仍然有许多黑客可以做到这一点,但还有另一种类型的攻击者会等到其他人找到进入计算机的方式然后使用相同的技术时再进行攻击。他们只能采用由黑客编写的程序和脚本,并在希望找到解决方法的系统上运行它们。我没有将它们称为黑客,因为他们不具备计算机知识来支持其好奇心,有时也被称为作为“脚本小子”(不考虑其实际年龄)。这是用于获取访问权限的一些技术的列表。
密码猜测 -安装某些系统或服务时可能具有默认密码。一些攻击者会尝试使用一些标准的用户名和密码,以希望他们会很幸运并找到容易猜到的密码。某些人可能会将密码设置为与用户名相同,这是该人将尝试的标准操作之一。此方法依赖于不使用安全密码的用户或管理员。
社会工程 -这种技术通过处理人们的失败而不是计算机的不安全来起作用。一种技术是给假扮成雇员的服务台打电话,并试图让他们通过电话给您密码。假装成为系统管理员并向用户询问其用户名和密码,也可以采用其他方法。另一种被称为“肩冲浪”的技术是,当攻击者在键盘上键入密码并观察按下了哪些键时,攻击者将站在某人的身后。这些技术取决于员工接受的安全培训(或缺乏培训)。
特洛伊木马 -特洛伊木马是植入计算机的程序,看上去无害。这些可以由系统的另一个用户留下或放置在以前被黑客入侵的用于分发软件的站点上,也可以作为电子邮件发送,假装是有用的工具或有趣的游戏。激活触发器后,黑客可以访问计算机或获取程序来运行特定命令。
病毒 -病毒是旨在自我复制的程序。这些服务器可能具有恶意负载,该恶意负载正在运行,以破坏相关系统。
软件错误 -如果未正确编写软件,则有时会导致安全漏洞。一个例子是,设计用于处理一定数量数据的程序可以通过对过多数据进行轰炸来破坏。有时,这是通过使缓冲区溢出数据而导致数据存储在未为此目的分配的内存中来完成的。这可能导致系统崩溃(例如Ping of Death)或提供系统访问权限的受信任程序。
地址欺骗 -在受信任的环境中,有时会配置为允许其他已知安全的计算机访问该计算机,而无需任何进一步的身份验证。尽管这使管理更加容易,但确实存在潜在的问题,因为另一台计算机可能会伪装成这些受信任的计算机之一。通过将一台计算机配置为与受信任的计算机相同的IP地址(已关闭或被迫关闭),攻击者将可以访问其他系统,就像在受信任的服务器上获得了它们的正式访问一样。因此,在许多环境中,启用依赖于这些受信任计算机的服务是一种不好的做法。
这绝不是完整的方法列表,但是确实给出了计算机可能容易受到攻击的区域的概念。
安全性与可访问性
增加系统的安全级别通常会涉及给系统的合法用户增加障碍。这可以采取多种形式,包括限制用户访问系统的方式,更改系统对忘记的密码的响应方式或降低系统的性能。对于系统管理员和安全专家而言,它还涉及许多其他工作。
要决定要应用的安全性的适当数量,首先需要确定安全性不足会给企业造成损失的风险和损害程度。违反安全性的成本可能表现为业务损失,产生的额外成本或损害公司声誉的形式。通过这种方式评估风险,可以生成有关适当级别的安全性的图片。
需要在组织涵盖的所有不同环境和系统中考虑安全要求。这可能意味着期望其他公司提供某些标准,这些公司可能托管您的部分计算服务,或者提供您所依赖的服务。
安全策略的一部分还应该确定任何较易受攻击的系统,因此需要比其他系统更高的安全级别。尽管在理想世界中,每个系统都将是完全安全的,并且可以免受攻击,但实际上并非如此。尝试将所有系统固定到同一级别所需的资源和所涉及的工作可能会导致暴露或造成影响,从而导致系统无法正常运行。
基于功能的系统分类
下面显示了如何对不同系统进行分类的示例。在这种情况下,每个系统都分为三个标题。红色表示高风险,黄色表示中度风险,绿色表示最低风险。这些可能会非常不同,具体取决于组织的要求。
红色-高风险 | 黄色-中等风险 | 绿色-低风险 |
互联网网页服务器 | 内联网Web服务器 | 用户个人电脑 |
防火墙 | 内部数据库服务器 | 打印服务器 |
安全服务器 | 非必要服务 | |
工资单/财务系统 |
红色的高风险系统首先是客户将看到的那些系统,例如Web Server。那些保护内部网络免受诸如防火墙之类的外部网络攻击的组件(有关详细信息,请参阅下文);那些携带敏感信息(例如安全服务器)的系统,以及任何保存有可能在发布时损坏公司的信息的系统(例如工资单和财务系统)。
黄色中等风险系统是业务所依赖的系统,但是公众无法使用。这些通常是内部服务器,可通过防火墙保护其免受公司网络外部的攻击。如果业务功能完全依赖于此类系统,则仍应将其视为高风险。例如,处理客户订单的呼叫接收台如果无法访问订单系统,将无法操作。
绿色低风险系统是指那些攻击只会产生有限效果的系统。例如,单人桌上的PC,打印服务器;或组织不依赖其继续运行的服务,例如 一个对等消息系统,如果发生故障,可以使用电话来绕开它。将系统归入低风险类别时,必须考虑整体风险。例如,用户PC是否包含机密材料,在这种情况下,计算机的风险等级可能会比用于不太重要的数据的风险等级高。要考虑的另一个因素是,如果某人能够闯入打印服务器或个人计算机,他们是否可以利用它造成更严重的损失?
这些类别还必须与组织的安全策略结合使用(请参阅下文)。例如,您可能会决定,由于存储在用户便携式计算机上的机密信息,您确实希望将其升级为中等风险,但是安全策略规定,所有中等风险系统必须存储在安全的房间中,除非用户可以访问系统需要维修时。通过将笔记本电脑置于中等风险类别,您刚刚删除了它作为便携式系统的用处,实际上用户甚至可能无法使用它。因此,在执行风险分析时,或在公司政策中包括足够的灵活性时,需要包括一定程度的灵活性。例如,可以做一个例外,允许笔记本电脑只要经过了数据加密就可以带出办公室。
识别系统的不同风险
在确定哪些系统存在风险之后,考虑该系统面临的风险也很重要。这应该通过考虑不同类型的攻击的影响来实现。我在下面使用一些高风险系统的示例来确定不同类型攻击的影响。这些显示在下表中:
网络服务器 | 防火墙功能 | 安全服务器 | 工资单/财务 | |
读取数据 | 低 | 中 | 高 | 高 |
变更资料 | 高 | 高 | 高 | 高 |
拒绝服务 | 高 | 高 | 高 | 中 |
普通用户登录 | 低 | 高 | 高 | 高 |
从表中可以看出,某些类型的违规行为可能具有更大的破坏力。从Web服务器的角度来看,某人能够读取数据的能力很低,因为Web服务器上存储的数据通常可供任何人使用,但是,如果某人能够更改数据或阻止服务正常工作(拒绝服务),则影响,声誉将受到严重打击。在防火墙上,每种类型的破坏都可能很严重,因为它可能随后被用来针对内部网络内部不太安全的系统。
实际影响还取决于他们可以读取的数据。如果用户能够阅读被归类为机密的信息(例如,在Web服务器的安全部分),则比说出指示下一个社交事件的位置的文档要差得多。
通过确定影响,可以针对将可用资源投资于何处制定更好的策略。
评估数据
除了确定哪些系统保存任何敏感数据外,还应根据实际数据的敏感度对实际数据进行分类。这对于确定系统上的哪些用户应该能够访问哪些文件特别有用。如果您限制单个用户的访问权限,那么这将限制用户可能造成的损害,如果用户标识受到损害,则将限制攻击者可能造成的损害。
将数据分组到相似的访问要求中,比按敏感度分类更有用。这可能是由处理特定职能的部门分组的。
然后,针对每个类别,应确定谁应具有哪些访问权限。执行此操作的方法称为CRUD分析。这只是以下情况:
谁可以创建数据?
谁可以读取数据?
谁可以更新数据?
谁可以删除数据?
但是,您可以根据系统可用的策略进行不同的设置。您可能正在运行的应用程序具有与文件系统支持的标准读取,写入和执行不同的授权模型(例如,Lotus Notes或其他数据库驱动的应用程序)。
然后,可以使用此分析来创建具有适当访问权限的组。这还具有以下优点:通过将用户与组相关联,而不是必须逐个设置权限,可以更轻松地管理访问。
安全政策
在分析了上一节中的安全性要求之后,您现在可以着手制定自己的安全性策略。它可能涉及从头开始编写安全策略,也可能是寻求应用授权的公司安全策略的情况。即使在已经提供安全策略的地方,也可能存在其他步骤,这些步骤可能更适合某些系统。
如果要创建自己的安全策略,则需要考虑许多因素。
您应确保已涵盖适用于您系统的任何原则:授权,真实性,隐私/机密性,完整性,不可否认性和可用性。还考虑一下用户和系统管理员将如何实现这一点。如果安全流程难以实施或限制某人执行其工作,则您可能会发现该流程被忽略或未得到遵守。
设置安全策略时,还应考虑如何执行和审核该策略。
堵孔
任何计算机上都有许多可能的安全隐患。尽管实际上不可能完全固定计算机,从而计算机仍然可以达到目的,但可以执行许多步骤以最大程度地减少曝光。这些通常称为安全孔或需要关闭的后门。
还可以采取许多步骤来尝试确定计算机是否受到攻击,或者是否确实已经被入侵。通过定期监视可疑活动,可以采取措施来限制任何损害并防止进一步的攻击。
人身安全
大多数物理安全原则是相当明显的。如果计算机可以进行物理访问,那么通常通过引导到实时CD上然后访问本地磁盘来攻击计算机是很简单的。可以通过对磁盘进行加密来保护数据免遭盗窃,但是有人仍然有可能破坏该信息。
所有生产服务器应保存在安全的机房中,并应限制访问,最好使用电子访问系统或手动密钥签出过程来跟踪物理访问。您可能还需要考虑物理监视,例如CCTV监视(符合PCI要求)。
除了对特定计算机或服务器进行物理访问的明显区域外,对局域网的物理访问也应视为要控制的物理资产。许多内部网络都使用DHCP来分配IP地址,这使得访问网络就像将便携式计算机连接到网络点一样简单。即使没有DHCP,通常也可以监视网络并以这种方式找到所需的信息。
用户授权
普通用户身份验证基于用户能够提供正确的用户名和密码。用户名不是必须保密的东西,因为它可以被系统上的任何人读取,但是密码是加密的,应该仅由用户知道。用于加密密码的算法是一种不可逆的单向密码。而是当用户输入密码时,使用相同的算法对其进行加密,并与原始密码进行比较。
传统上,在UNIX中,密码保存在/ etc / passwd文件中,系统上的所有用户均可读取。现代Linux发行版使用具有受限读取权限的影子密码文件。
以下摘录显示了如何实现。
/ etc / password文件仍然包含用户名详细信息,但是带有星号(*),该密码通常应为:
root:!:0:0::/:/bin/bash
daemon:!:1:1::/etc:
bin:!:2:2::/bin:
sys:!:3:3::/usr/sys:
adm:!:4:4::/var/adm:
uucp:!:5:5::/usr/lib/uucp:
guest:!:100:100::/home/guest:
nobody:!:4294967294:4294967294::/:
lpd:!:9:4294967294::/:
imnadm:*:200:200::/home/imnadm:/bin/bash
stewart:!:1007:1007:Stewart Watkiss:/home/stewart:/bin/bash
然后,密码以加密方式存储在/ etc / shadow文件中,该文件只能由root或安全组成员访问。
stewart:$6$2eyvm73b$tCZgPYfKBHFNebHo7tdxojDfx1a48RHeYDcj3gQVJz7wWy9.qla0qMsCkFGIRmHTl8i/PD.yFxlgeiGrcunB3/:15485:0:99999:7:::
上面显示的密码实际上与用户名stewart相同。我已将其作为如何加密用户名以使其不易于理解的示例。这是一个非常不安全的密码,该密码不应与用户名相同。如果您尝试给另一个用户名提供与我使用过的相同的密码,那么几乎可以肯定会有不同的加密密码。原因是在加密算法中还使用了lastupdate条目来生成唯一的密码。
显然,这不是我计算机上的真实密码-因此无需尝试。
密码文件的安全非常重要,因为尽管密码是加密的,但是有可能对加密的密码进行字典攻击。通过从字典中提取单词并将其加密为密码,然后将其与密码文件进行比较,可以进行这些操作。如果有任何匹配项,则提供密码。通过将字母替换为数字(例如1而不是I等),以及使用不同的词典,获得密码的机会会更好,从而使密码更加复杂。这些程序是免费提供的两个示例,分别是“ Crack”或“ John Ripper”。这些可以由系统管理员运行,以确保人们使用安全密码。创建密码时,还可以让系统检查不安全的词典密码。
网络安全
如果您使计算机远离网络,则只有能够物理访问计算机的人员才会面临安全隐患。一旦连接到网络,它就有可能成为全球任何人或任何计算机的目标。在考虑网络计算机的安全性时,我们需要考虑防止他人登录计算机的安全性,同时也要考虑通过网络传输的数据的安全性。
使用防火墙保护网络以限制访问
提供安全性的一种方法是将计算机所在的网络与其他网络(尤其是Internet)分开。可以通过确保没有到任何其他网络的物理路由来完成此操作,但是通常需要某种形式的Internet访问。在这种情况下,可以使用专用防火墙来提供从更安全的内部网络到Internet的隔离。
防火墙使用一组规则来确定允许哪些流量通过以及向哪个方向通过。这些通常用于将内部网络与外部网络(例如Internet或其他业务合作伙伴)分开,但也可以用于分离不同的内部网络,以防止某人可以通过一个网络访问他们所要访问的公司的另一部分。未经授权。
保护无线网络
如果使用内部无线网络,则不仅存在人们通过防火墙访问网络的风险,而且网络信号本身也可能被拦截或劫持。这将使某人可以看到通过网络传递的流量,或者冒充内部计算机绕过防火墙。
可以通过实施WPA无线网络加密(请注意,不再认为较旧的WEP加密是安全的)或通过安全连接对网络流量进行隧道保护(例如使用VPN隧道软件)来确保此安全。后者的优势在于,当使用公共网络服务(如旅馆和无线热点中提供的服务)时,它也将提供保护。
网络协议
如果使用诸如telnet和FTP之类的不安全协议,则密码将通过LAN未经加密地发送。在LAN上使用嗅探器或LAN跟踪工具的人可能会看到这些未加密的密码。如果使用不安全的网络协议,则可能需要针对网络端口的附加物理安全性以及对将流量路由到何处的限制。在某些情况下,更好的选择是切换到具有内置安全性的协议(例如ssh),该协议会对传输的所有数据进行加密。
保护本地计算机免受网络连接
另一种保护形式是通过基于限制运行的协议(禁用服务)来阻止某些网络访问,通过配置网络协议来限制访问(例如,通过限制访问)来阻止入站连接(使用个人/内置防火墙)来保护计算机。 IP地址或通过阻止某些用户进行远程登录)或使用其他软件(例如Tcpwrappers)添加其他限制。
反病毒
必须在计算机和防病毒软件上运行Windows,以防止受到病毒和间谍软件的侵害。在Linux世界中,目前没有“野外”活动病毒。这种情况将来可能会改变,但是目前,本地计算机不会受到病毒的直接威胁。但是,Linux机器可能存在一种病毒,该病毒可能会无意间传播给其他操作系统选择较高病毒风险的病毒。因此,建议至少偶尔运行一次防病毒软件,以为使用其他操作系统的用户提供一定程度的安全性。有几种不同的防病毒软件包可免费使用或购买。
不安全的网络协议
如果使用诸如telnet和FTP之类的开放协议,则密码将在LAN上不加密地发送。在LAN上使用嗅探器或LAN跟踪工具的人可能会看到这些未加密的密码。如果使用开放网络协议,则可能需要针对网络端口的附加物理安全性以及对该流量可能路由的位置的限制。
在许多情况下,可以更改为其他更安全的协议。例如,可以使用ssh程序套件(ssh / sftp)替换telnet和FTP。SSH使用加密来防止任何人嗅探密码或通过连接传递的数据。
隧道传输不安全的协议VPN / SSH隧道
当使用安全性较低的网络协议时,提供额外安全性的另一种方法是通过安全网络隧道封装信息。可以使用VPN软件或硬件,或者使用ssh建立隧道连接来完成。如果使用专用的硬件解决方案(VPN网关)创建VPN连接,则需要考虑是否可以在计算机和VPN网关之间的网络中嗅探流量。
软件更新/补丁
所有重要的软件都有错误。这是生活中的事实。
当发现错误时,尤其是与安全性相关的错误时,通常会提供修复程序(或补丁)来修复该错误。通常可以使用大多数Linux发行版中包含的软件更新检查器下载这些文件。如果从不受支持的存储库或正常软件安装过程之外安装软件,则系统管理员通常负责确保补丁程序是最新的,并且可能需要遵循错误报告信息并根据需要执行手动更新。
安全测试
固定好计算机后,应对其进行测试,以查看是否存在计划外的潜在风险。这可以采取网络端口扫描和/或专用安全软件的形式,这些软件可以从本地软件和网络方面全面分析系统。测试访问的做法称为渗透测试。安全测试工具可以作为开放源代码或封闭源代码专有软件使用。
流行的开源网络扫描程序是Nmap,可以在网络上使用它来显示网络漏洞。
您只应在授权的系统上使用渗透测试工具。在其他系统上运行这些命令可能被视为犯罪行为。
结论
这就解释了为Linux系统开发安全解决方案时需要考虑的不同因素。尽管已经包括了一些工具的名称,但它并未详细介绍如何配置工具或应对系统进行哪些更改以阻止潜在的攻击者。处理完这些信息后,应该有可能制定一个计划,针对哪些领域集中资源并提供足够的背景知识作为进一步研究的平台。