增强 Linux 桌面安全性

来源:互联网 发布:java怎么做图形界面 编辑:程序博客网 时间:2024/04/28 00:51

前言:

Malware(恶意软件)malicious software 的简称。任何以破坏计算机系统或网络为目的的程序都是恶意软件。作为一名 GNU/Linux 用户,要理解需要防止什么以及如何保护计算机,首先需要理解恶意软件是如何攻击 GNU/Linux 的,以及操作系统有哪些设计原则可帮助防止感染恶意软件。

恶意软件为了在系统间传播并造成破坏,就需要执行程序或文件。GNU/Linux 设计为避免用户在 root(管理员)账户下运行;因此,程序和文件在没有显式许可的情况下不能执行。在这种登录状态下,由于没有用户许可不能执行程序,恶意软件就不能通过 GNU/Linux 系统自我安装或传播。用户许可安全特性被内建在 GNU/Linux 中,是防止恶意软件传播的最有效的工具之一。


必须注意专门针对 GNU/Linux 编写的恶意软件包。Rootkit 长期以来都是 GNU/Linux 管理员的致命弱点。它们与 Trojan 属于相同的软件家族。rootkit 是让攻击者获得计算机的 root(管理员)账户的一个工具集。这些恶意软件包有不同的名称,例如 tOrn 和 ARK,但是最终结果是一样的:您的计算机或网络不再受您的控制。


安装防病毒软件:ClamAV

为了抵抗日渐增长的恶意软件问题,在本节中,您将在计算机上安装 ClamAV、rkhunter 和 chrootkit,然后学习如何配置和扫描系统,以发现那些可能危害安全的恶意的文件。在安装 ClamAV 时,关于如何运行程序有两个选项。第一种方法是手动扫描文件和文件夹。第二种方法则将 ClamAV 连接到一个守护进程,使之一直运行。对于桌面电脑,后一种方法是理想的安装方法。

首先,开机并登录到计算机中。然后,遵循以下步骤:

  1. 从菜单栏选择 Applications > Accessories > Terminal
  2. 启动终端后,输入以下命令:sudo apt-get install clamav-daemon
  3. 按下 Enter。这时需要输入密码。输入正确的密码,然后再次按下 Enter。这样会安装一个名为clamav-freshclam 的包;这是应用程序的升级包。
  4. 这时会提示安装该软件将使用多少磁盘空间。输入 Y,然后按下 Enter

安装过程开始;应该只需几分钟就可以完成。当安装过程结束时,程序会警告您的病毒库已过期 x 天,您应该尽快更新它。

除了在计算机上安装防病毒软件以外,更新病毒定义是使文件免受恶意软件感染的最重要的步骤。病毒定义是不同恶意程序特有的代码模式。当防病毒扫描程序在数据库中发现与该代码匹配的定义时,它会警告计算机上有被感染的文件。

恶意软件的作者每天都会发布新的传染文件,所以不断更新病毒定义数据库非常重要。如果一个恶意软件的定义不在这个数据库中,那么反病毒扫描程序就不知道它是恶意代码,从而让它继续运行并按照既定的程序进行破坏。

更新病毒定义

由于您随 ClamAV 安装了 freshclam,因此可以立即从终端更新病毒定义。遵循以下步骤:

  1. 在提示符下,输入以下命令:sudo freshclam
  2. 按下 Enter。同样,将提示您输入密码;输入正确的密码,然后按下 Enter。运行该命令将使病毒定义更新至最新的数据库。但是要理解,这并不意味着病毒定义会自动更新 —— 您必须运行 freshclam,以获得最新的定义。
  3. 要查看是否有新的定义,在提示符下输入以下命令:sudo freshclam -v 通过返回的信息可以知道您的定义是最新的还是已过期。

至此,您已经更新了病毒定义,接下来可以启动 ClamAV。在终端提示符下,输入:clamscan 并按 Enter 键。该命令运行对主文件夹的手动扫描,并报告有多少目录和文件被扫描。它还会告诉您发现了多少被感染的文件。

由于您安装了守护进程版本的 ClamAV,所以您还可以选择在终端提示符下输入 clamdscan。按下 Enter,这时会创建一个名为 ClamAV 的用户。如果想让 ClamAV 扫描系统文件,那么可以将该用户添加到拥有要扫描的文件的组中。


安装用于 ClamAV 的 GUI

由于本教程是面向初学者的,本节将解释如何使用一个名为 ClamTK 的 GUI 配置 ClamAV。为了安装它,需要遵循以下步骤:

  1. 关闭终端,并选择 Applications > Add/Remove
  2. 在出现的 Add/Remove Applications 窗口中,需要更改出现的应用程序。在屏幕的顶端,从 Show 下拉菜单中选择All Open Source applications
  3. 在搜索框中输入单词 Clam,并按下 Enter
  4. 当 Add/Remove Applications 发现 ClamTK 时,会在窗口的主区将它列为 Virus Scanner(见图 1)。选择 Virus Scanner 旁的复选框。您可能会被提示启用社区维护软件的安装。这时可以单击 Enable 按钮。

    图 1. 使用 Add/Remove 工具安装 ClamTk
    Add/Remove 工具

  5. 单击右下角的 Apply Changes,然后单击 Apply。此时将要求您输入密码;输入密码,然后单击OK
  6. 安装完成后,可以看到一个弹出窗口表明安装完成。单击 Close 继续。

可以通过选择 Applications > System Tools > Virus Scanner 从桌面启动 ClamTK。但是,如果想扫描某些文件,或者想更新特征(病毒定义),那么程序可能会告诉您需要以 root 登录才能这样做。由于您不是以 root 登录,所以必须采用不同的方法来打开 ClamTK,以便能使用这个程序。

要打开 ClamTK,按下 Alt-F2,输入 gksu clamtk,然后单击 Run。这样将以让程序运行所需的权限启动 ClamACV GUI。在这个窗口中,可以使用菜单找到命令。这样就可以从一个树中选择要扫描的文件或目录,而不必在终端中输入一个路径。

和大多数商业扫描程序一样,ClamTK 在窗口的一边列出文件,而在其旁边显示文件的状态。图 2 显示了等待扫描的文件。如果列出的文件中有文件被感染,那么会标注出来。在窗口的底端,显示已扫描多少文件,以及发现多少被感染的文件。


图 2. 使用 ClamTk GUI 扫描恶意软件
在计算机上扫描恶意软件的 ClamTk

如果发现有文件被恶意软件感染,在删除它之前应确保它不是重要的系统文件。在使用双启动计算机时,这一点尤其重要,因为可以使用 GNU/Linux 和 ClamAV 扫描 Microsoft Windows 目录。

防止 rootkit
GNU/Linux 用户面对的最危险的恶意软件可能是 rootkit。为了防止通过 rootkit 和其他恶意软件的攻击,在本节中,您将安装 rkhunter 和 chkrootkit,以便在桌面上扫描攻击者为控制您的计算机而安装的可疑文件。

安装 rkhunter

要安装 rkhunter,可遵循以下步骤:

  1. 返回到终端,选择 Applications > Accessories > Terminal
  2. 在终端 shell 中,输入一下命令来安装 rkhunter:sudo aptitude install rkhunter
  3. 按下 Enter,安装程序开始运行。您将被告知该软件将使用多少空间。输入 Y ,然后按 Enter 开始安装该软件。

rkhunter 成功安装之后,可以运行它来检查桌面,以发现恶意软件。在终端提示符下输入 sudo rkhunter --check,然后按下Enter 开始扫描。当它在运行时,应该可以看到一系列的目录,这些目录的旁边有单词 OKWarning。检查完这些目录之后,将要求您按下Enter 继续扫描过程。Rkhunter 接下来扫描可能被安装到桌面上的已知的恶意软件。在此过程中,终端中也会显示一个列表,如图 3 所示。扫描完成后,需要再次按下Enter。这一次,rkhunter 扫描计算机上常用于后门访问的端口。


图 3. 扫描 rootkit 的 Rkhunter
扫描 rootkit 的 Rkhunter

扫描端口之后,按下 Enter 扫描 startup 文件、组和账户、系统配置文件和文件系统。然后,再次按下 Enter 检查计算机上的应用程序。当扫描完成时,rkhunter 会提供一份报告,并创建一个日志文件,供以后查看。

和 ClamAV 一样,需要更新 rkhunter,以便发现最新的漏洞和恶意软件。在终端中,输入 sudo rkhunter --update,按下Enter,然后输入密码。该命令会更新安装在系统上的 rkhunter 的版本。

大多数反病毒软件不能与其他反病毒程序同时运行,但是 rootkit hunters 却可以。为了得到更全面的保护,可以安装 chkrootkit,并让它与 rkhunter 一起运行。

安装 chkrootkit

遵循以下步骤:

  1. 仍然是在终端中,在提示符下输入以下命令:sudo aptitude install chkrootkit
  2. 按下 Enter 开始安装过程。
  3. chkrootkit 安装完成后,可以像运行 rkhunter 一样运行它。在提示符下,输入 sudo chkrootkit,然后按下Enter。chkrootkit 立即开始扫描已知的漏洞和恶意软件。扫描完成后,您将回到终端提示符。

如果 rkhunter 或 chkrootkit 发现异常,它们会通知您,但是这些程序不会从计算机中删除文件。如果该程序向您发出警告,那么可以搜索被报告的漏洞或恶意软件。首先,确保发现的东西不是误报。然后,确定采取什么必要的步骤来消除桌面受到的威胁。有时候,只需更新操作系统或其他软件。而在某些时候,必须找到恶意的程序,并将它从系统中删除。

使用防火墙

扫描完系统中可能让攻击者访问您的计算机的恶意软件之后,应该采取接下来的预防步骤,使用操作系统中内建的防火墙。默认情况下,Ubuntu 使用 iptables 作为每个发行版上的防火墙。刚安装时,这个防火墙默认地允许任何进出的传输。要使用这个防火墙,需要创建规则来限制桌面。

可以通过终端配置 iptables,但是本教程使用一个称作 Firestarter 的 GUI 来编写规则。默认情况下,Ubuntu 上没有安装 Firestarter。要安装它,打开终端并输入以下命令:

sudo apt-get install firestarter

按下 Enter,并提供密码,以开始安装过程。当 Firestarter 安装完成时,关闭终端窗口,并选择 System > Administration > Firestarter 来启动该程序。

配置 Firestarter

启动 Firestarter 时,会弹出一个设置向导。遵循以下步骤:

  1. 第一个屏幕介绍这个过程。要继续,可单击 Forward
  2. 接下来的屏幕要求提供关于网络设备的信息。如果您是使用以太设备将计算机连接到一个路由器,那么应该将以太网设备设置为 eth0,如图 4 所示。如果在网络上运行 DHCP,那么在单击Forward 前应确保该选项被选中。

    图 4. 在 Firestarter 中配置网络设备
    步骤一,配置网络设备

  3. 如果是与其他计算机共享 Internet 连接,那么接下来的屏幕会让您进行相应的配置(见图 5)。配置好网络设置后,单击 Forward

    图 5. 配置 Internet 连接共享
    配置 Firestarter,使用 Internet 连接共享

  4. 至此,您已经完成了设置向导。单击 Save 启动防火墙。

在开始配置 Firestarter 策略之前,应该将它放到启动程序中,以便在每次启动后它都能保护计算机:

  1. 选择 System > Preferences > Sessions
  2. 单击 Add,这时会打开一个窗口,在其中可以输入启动命令。在 Name 框中输入 Firestarter,并在 Command 框中输入以下内容:sudo /usr/sbin/firestarter
  3. 单击 Add,然后关闭 Sessions Preferences 窗口。

图 6 显示了正在监视计算机的 Firestarter。但是,为了使用它来阻止非法的传输,首先需要创建策略。


图 6. Firestarter
Firestarter

在 Firestarter 中创建策略

防火墙策略是决定防火墙如何处理进出的传输的规则。可以设置策略来阻止与特定 IP 地址、特定站点甚至一台计算机上的端口之间的传输。创建策略时要记住,虽然阻止某种传输可能可以使网络/计算机更安全,但是这也妨碍了用户的能力。您需要在安全与功能之间找到平衡点。

确保 Firestarter 在您的桌面上是打开的。如果入站的网络数据不是对安全主机建立的连接的响应,那么 Firestarter 会阻止它。如果没有加入过该连接,默认情况下 Firestarter 会阻止它。要创建一个新的策略,以允许一个入站连接,可遵循以下步骤:

  1. 单击 Firestarter 中的 Policy 选项卡,确保 Editing 选项被设置为Inbound traffic policy
  2. 单击窗口顶端的 Add Rule。这时会出现一个新窗口,询问要允许什么样的入站连接(见图 7)。

    图 7. 添加入站传输策略
    在 Firestarter 中添加入站传输策略

  3. 在文本框中,输入网络、主机名或 IP 地址,您将允许来自那里的入站传输。例如,输入 thisnetwork.org
  4. 单击 Add。当回到主窗口时,单击 Apply Policy

突出显示新的策略;Remove RuleEdit Rule 按钮现在已被激活。除非您创建了一个真正打算使用的规则,否则单击Remove Rule,然后单击 Apply Policy

还可以使用 Firestarter 来阻止到一个特定网络、站点或主机的出站传输。将 Editing 设置改为 Outbound traffic policy;现在可以选择 PermissiveRestrictivePermissive 将选中的传输列入黑名单中;如果以 Permissive 模式创建一个策略,那么 Firestarter 将阻止到策略中列出的任何地方的出站传输。另一方面,如果选择Restrictive,那么 Firestarter 将阻止 策略中列出的那些地方以外的任何出站传输。

例如,如果想让计算机只能访问 www.thisnetwork.org,可以选择 Restrictive,然后单击 Add Rule。在 Add new outbound rule 窗口中,输入 www.thisnetwork.org,然后单击Add,再单击 Apply Policy

要阻止到 www.thisnetwork.org 的传输,可以选择 Permissive,然后单击 Add Rule。同样,在Add new outbound rule 窗口中输入 www.thisnetwork.org,然后单击Add,再单击 Apply Policy

对 Firestarter 的策略作了更改后,可以通过单击 Status 选项卡并选择 Lock Firewall 来锁定防火墙。


执行备份

启动 Home User Backup。当该程序启动时,您可以选择备份主文件夹中的所有文件,或者备份一个特定的文件夹。第一次进行备份时,应该选择 All Files 选项。然后,当做了重要的更改时,可以选择备份特定的文件夹。(有些人经常选择在每次运行备份程序时都备份所有的东西。这看起来有道理,但实际上浪费巨大的资源。备份不仅占用存储空间,而且备份大量的数据也很花时间)。

在单击 Backup 按钮之前,需要决定将备份文件保存在哪里。显然,将备份保存在一个附加存储设备中比保存在计算机上的一个文件夹中好。

选择了备份位置后,单击 Backup 按钮。Home Backup User 询问是否要验证数据的完整性。这是一个好的选项,因为当您需要备份文件时,您将对成功恢复更有信心。完成备份后,可以看到一个 master-archive 文件和一个 master-catalog 文件,它们的后缀都是 .dar。

恢复数据

在从备份恢复数据之前,首先需要创建一个目标文件夹,以便将文件发送到哪里。最好在桌面上创建一个文件夹,这样便于访问恢复的文件。创建目标文件夹之后,启动终端,执行实际的恢复。在提示符下,输入:

sudo dar -x /path/archive_file -R /path/targetfolder

按下 Enter,输入密码,然后再次按下 Enter。恢复过程用备份文件中包含的数据填充目标文件夹。

安装更新

很多计算机攻击都是因为恶意的黑客发现操作系统软件或计算机上运行的其他软件中存在漏洞。当软件(包括操作系统)发行时,它常常包含多个漏洞,恶意的黑客可以利用这些漏洞。随着时间的推移,软件开发人员和安全专家发现这些漏洞,并为软件创建补丁和更新,以便堵住这些漏洞。

作为一名计算机用户,很重要的一点是确保操作系统和软件是最新的。大多数操作系统都有一个内建的特性,当出现可用的更新时,它会通知您,很多 GNU/Linux 发行版也包含这样的功能。

Ubuntu 在桌面的菜单栏使用一个橙色的图标来提醒您 Ubuntu 软件库中维护的所有软件的最新更新。单击这个按钮会弹出 Update Manager 窗口,在这个窗口中可以选择为哪个软件安装更新(见图 9)。单击Install updates 开始安装更新。您将被告知会做出什么更改,以及估计更新会花多长的时间;然后,可以选择取消更新,或者继续安装新的包。如果在更新期间遇到错误,会收到警告。


图 9. 更新操作系统和其他软件
软件更新管理