系统安全/防火墙/杀毒

1. 系统安全

对于电脑操作系统来说,可能性最高的安全威胁应该是浏览器,换句话说,浏览器的漏洞是目前大家电脑上最大的系统安全威胁来源。

解决这个问题有两个方向,一是沙箱运行浏览器,比如firejail;另一个是虚拟机运行浏览器。二者都能实现安全隔离的功能。基于整体上的考量,驿窗建议大家使用虚拟机,具体请参考下面的对比说明:

虚拟机与沙箱区别:
  1. 有些应用无法在沙箱中运行,但虚拟机没有这个问题。可以把虚拟机看作是一个完整的操作系统,而沙箱只是系统中的一个应用。

  2. 整体上,沙箱比虚拟机轻量,更小更快更简单。

  3. 沙箱虽然更轻量,但Linux可以从内核支持虚拟机(kvm),所以,虚拟机速度并不慢。

  4. 虚拟机比沙箱更安全,可以实现是大化的安全隔离。这一点,沙箱没有优势。

  5. 使用Linux系统很难避开虚拟机的使用,比如偶尔运行只有windows系统才有的程序,就需要使用windows虚拟机。所以,可以把虚拟机看作是Linux必备技能。

  6. 在虚拟机中进行测试,比如安装一些陌生的应用软件,不会对主机系统造成任何损坏。

  7. 虚拟机与防火墙简单配合可以极大强化本机系统的安全。

基于上述原因,驿窗推荐使用虚拟机,并把平时的网页浏览放到虚拟机中进行,最大限度的防范浏览器漏洞风险。

驿窗注:虚拟机逃逸

虚拟机逃逸是能够做到从虚拟机中对主机系统进行攻击的。不过,虚拟机逃逸的难度级别非常高,对于常规的家用和办公目的来说,可以忽略不计。

关于虚拟机与防火墙的配合,请参考虚拟机virt-manager

2. 防火墙

Linux系统安装安装一款非常简单好用的防火墙ufw。ufw全称是Uncomplicated Firewall,本质上它并不是防火墙,而是防火墙的配置工具,而核心的防火墙是Linux内核自带的,名字叫Netfilter,通过ufw进行配置。ufw通过对Netfilter进行配置,来实现需要的安全规则。

对于个人用户来说,ufw完全够用;但如果是用于服务器,那么ufw可能并不适合,需要更灵活和更强大的工具。

防火墙安装

对于个人电脑来说,只需要安装两个软件包:

  1. ufw

  2. gufw

    驿窗注:

    可以在终端中输入下面这条命令来快速安装ufw和gufw:

    sudo apt install ufw gufw
    

上面我们安装了两个安装包ufw和gufw,其中gufw只是一个UI界面,专门用于ufw;如果没有gufw,那么我们就只能通过命令来配置防火墙。

防火墙启用

防火墙安装好以后,默认是不启用的。如果想启用防火墙,可以打开防火墙配置,按下图设置:

  1. 配置文件:家庭(主页)

  2. 状态:激活

  3. 传入:否认

  4. 传出:允许

../_images/14ufw1.png

防火墙启用后的状态

防火墙配置

安装好以后,会在系统应用程序中多出一个 防火墙 图标,双击这个图标就可以配置防火墙。防火墙需要管理员权限才可以进行配置:

  1. 初级配置:这是最简单的配置方法,即上面的防火墙启用所涉及的四项设置。此配置非常简单,适用于所有个人电脑。

  2. 高级配置:可以制定一些稍微复杂的安全规则。如果您希望对自己的电脑进行维护,建议对此方式进行适当了解。

通常情况下,你只需要使用“初级配置”就可以保证系统安全。

“高级配置”能够实现的安全等级大概有两个:

  1. 开放53、80、443这三个端口,其它端口全部封死,平时可以用浏览器上网。(安全等级:高级)

  2. 只开放53这一个端口,其它端口全部封死,然后配合虚拟机,实现个人电脑的极限安全策略。此方式主机浏览器无法上网,只能浏览本地文件,上网需要使用虚拟机。(安全等级:极限)

极限的安全策略的目的是为个人电脑带来最高等级的安全环境,但会带来一些小问题,详细说明请参考极限安全策略的问题

高级配置方法1:
  1. 基本设置:

    • 配置文件:家庭(主页)

    • 状态:激活

    • 传入:否认

    • 传出:否认

  2. 开放53、80、443这三个端口的出:

    1. 基本设置完成后,主机的浏览器应该已经无法上网。点击Rules按钮,下面会切换到规则界面:

    ../_images/14ufw2.png

    点击 Rules 切换到规则界面

    1. 点击上图中左下角的加号按钮,打开“添加一个防火墙规则”对话框:

    ../_images/14ufw3.png

    添加一个防火墙规则 对话框

    1. 点击上图中的“高级”选项卡,切换到高级配置界面:

    ../_images/14ufw4.png

    高级 选项卡

    1. 设置53端口规则:

      • 名称:53

      • 政策:允许

      • 方向:出来

      • 接口:如果您使用有线网络,请选择有线网卡;如果使用无线网络,请选择无线网卡

      • 至:右侧的方框内填写53

    其它内容保持不变,然后点击右下角的“添加”按钮,如下图所示:

    ../_images/14ufw5.png

    53端口规则

    1. 按同样的流程(a-d)添加80端口规则,如下图所示:

    ../_images/14ufw6.png

    80端口规则

    1. 按同样的流程(a-d)添加443端口规则,如下图所示:

    ../_images/14ufw7.png

    443端口规则

    1. 最终完成以后,在Rules框中增加了6条红色的新规则,如下图所示:

    ../_images/14ufw8.png

    高级配置完成

高级配置方法2:

配合虚拟机使用,即传入和传出都为 否认,然后在Rules里添加一个规则,只开放53端口传出(允许虚拟机连接网络)。如果本机系统需要安装软件或者升级等连接网络的操作,就临时开放一下443端口出,网络操作完成后马上关闭443端口。

防火墙状态

防火墙的状态如果是未激活,表示系统的防火墙没有启用,等同于电脑没有防火墙。如果是激活,就表示系统启用了防火墙。

启用了防火墙之后,并不表示系统就安全,因为 启用 仅代表防火墙程序开始工作,但具体的工作内容还需要进一步设置,最简单的设置就是上面提到的 初级配置。

打开gufw进行配置时会看到传入、传出、允许、否认之类的功能,其中:

  1. 传出:

  2. 传入:

  3. 允许:

  4. 否认:

  5. 拒绝:

防火墙规则

打开gufw进行配置时会注意到下面有一个Rules,点击这里,可以看到已经添加的防火墙规则,默认情况下没有任何规则。

所谓的规则,其实就是指定某一个端口,然后确认端口是否放行,放行的方向是传出还是传入。

这一点与windows系统的防火墙有时候不太一样。windows系统中防火墙很多时候是对某一个应用程序进行设置,而不是对端口进行设置,但原理是相同的。windows中对应用进行设置,其实就是对应用所使用的端口进行设置。Linux中对端口进行设置,其实是已经知道了某个应用会使用某个端口,端口一封,应用就无法连接网络。

所以,Linux系统如果想更深入地对防火墙进行设置,需要学会如何查看应用程序所使用的端口。

3. 杀毒软件

Debian可以安装一个很有名的开源杀毒软件叫clamav,这是一个命令行方式的杀毒软件;如果想使用图形界面,可以再安装一个包叫clamtk,它是专门用于clamav的图形界面组件。

实际上,按clamav的说法,clamav的病毒库95%是用于查杀windows病毒的,这说明Linux系统病毒种类是远少于windows的。事实是,使用windows系统的时候,大家对杀毒软件/防火墙通常都比较熟悉,也会安装和配置使用;而一旦使用了Linux系统以后,慢慢地就变成不太会使用杀毒软件和防火墙了,因为基本用不到,也就不熟悉。这与Linux系统的特性有关。

驿窗测试了一段时间clamav,Debian系统从来没杀出过病毒,倒是很久以前使用windows时的一个数据备份目录,杀出一种病毒。再之后,就基本没怎么用过了。

另外,目前杀病毒软件用处并不是特别大,因为当前安全威胁主要是来自于系统漏洞和网页浏览器,所以,把精力放到漏洞和浏览器上,设计相关的方案,比杀毒软件更让人放心。

驿窗提供的方案是封住本机所有端口,仅开放53的出权限,然后本机使用virt-manager虚拟机上网,比如上网看网页、看网络视频、发邮件等等。这个方案的特点就是把平时上网的操作全部放在虚拟机中,主机从来不上网,仅更新系统和安装软件。这个方案安全性极高,且漏洞也基本上不需要担心。虚拟机里中毒或者被攻入没关系,因为想从虚拟机进入主机,不是一般的难,普通用户可以理解为做不到,因为很多病毒测试都是在虚拟机里进行的,可见虚拟机是可以在极大程度上隔离主机与网络之间的安全问题的。结合virt-manager虚拟机的快照功能,随时可以一秒钟内就把系统重置到指定的状态。

未完稿……

最近一次更新:2024-1-19