天天看点

50 种系统免遭黑客侵袭的方法 [2017 年版]

1、 备份你的数据。如果你不幸被勒索软件光顾,那么你就不用支付赎金,因为你做了备份。

3、 利用好你的审计系统,里头有好多很酷的工具可以帮助你监控系统。如果你确实遭到了入侵,那么审计系统也许就可以告诉你发生了什么,以及攻击者做了些什么。

4、 说到日志,把日志定向到集中式服务器上总是一个不错的想法,因为如果某个黑客侵入你的系统里,他首先要攻击的就是日志系统以便隐藏他的踪迹。构建一个好的入侵检测系统来监控日志,这对于防范黑客也很有帮助。

7、 不要安装或者使用 flash。firefox 不再支持它了,同时也希望大多数 web 服务器正在远离它。

10、 <code>inaccessibledirectories=/home</code> 是一个 systemd 单元的选项,它使用挂载命名空间的方式使从服务的角度看不到 <code>/home</code> 目录(或者其它任何目录),这会使得被入侵的服务攻击到数据更为困难。

11、 <code>readonlydirectories=/var</code> 是另外一个 systemd 单元的选项,它使用挂载命名空间的方式来将目录内容变成只读模式。基本上你总是可以让 <code>/usr</code> 运行在只读模式。这可以阻止一个被入侵的应用程序重写二进制文件,因为那可以在下次服务重启时,该服务依旧是被入侵的。

12、 降低服务权限(<code>capabilityboundingset=cap_chown cap_kill</code>)。在内核中,特权服务被分解成一些列不同的权限。大多数服务不需要很多权限(如果需要一些的话),而 systemd 提供了一个简单的开关来从服务中剥离这些权限。

13、 如果服务不使用网络,那么你可以使用 <code>privatenetwork=yes</code> 来为该服务关闭网络功能。只需在服务的单元文件中开启该选项,就可以享受它带来的好处,关闭服务所有可用的网络。黑客常常并不是真的想破坏你的机器——他只是想用它作为攻击服务器来攻击其它机器。如果服务连不上网络,那么就不会受到攻击。

14、 控制服务可用的设备。 systemd 提供了 <code>deviceallow</code> 配置,它控制了该服务可用的设备。<code>deviceallow=/dev/null rw</code> 将访问限制为 <code>/dev/null</code>,且仅可访问该设备节点,不允许对其它任何设备节点的访问。该功能实现于设备的 cgroup 控制器顶端。

17、 只从受信源安装软件。不要安装你从因特网找来的危险东西,对于你的手机、计算机系统、虚拟机以及容器等等也一样。

18、 我不会在我的手机上进行网上银行操作——我只在我的 linux 计算机上做这事儿。如果黑客偷了我的信用卡,也许我就丢了那么 50 美元;而如果他黑进我的银行账户,那我丢的钱就会更多。我想我是个老古板。(“滚出我的地盘。”——那些老古板都会这样说。)

19、 我用我手机做的一件很酷的事情,就是设置让我的信用卡公司每次在我的信用卡消费时给我发送短信。那样的话,如果账号被盗,我会更快地知道。

21、 在你的计算机系统上运行 linux。当我第一次想用计算机联络我的父亲时,在他的计算机中毒前,我很少回家。我回去给他的系统安了个 linux,而他从那以后就一直运行着它。我相信 linux 大体上说是一个更加安全的系统,因为它的设计方式。而且我也相信这个桌面被黑的可能性也相对较小,因为用它的人相对较少。有些人或许要持反对意见了,他们会说 windows 在过去几年中已经有了很大的改进了,但对于我而言,我仍然坚持己见。

23、 运行一个企业级内核。在容器中,单点故障往往是内核。如果你想要保证它安全,那么就使用一个企业级内核,即便它不是一个最新的版本,但也包含了最新的安全补丁。记住,最新的内核虽然带来了最新的安全补丁,但是它也带来了大量的新代码,这些代码可能存在漏洞。

24、 大多数非法入侵都是通过社会工程学实施的——例如,电子邮件链接、web 浏览器攻击,以及电话。对于此,最好的选择是接受相关教育,并且对一切留个心眼儿。没有哪个来自尼日利亚的家伙会给你钱,国税局也不会打电话到你家问你要钱。如果你电子邮件收到了来自你银行的电子邮件,里面包含有到某个网站的链接,那么不要直接去点击那个链接,在 web 浏览器中输入那个地址来打开。

25、 总是把你的系统打上最新的安全补丁。已知有安全漏洞以及过时的系统的数量十分可怕,脚本小子们依赖于你不更新系统。

26、 当连接到网络上的服务时,请始终使用 https。chrome 和 firefox 现在有个强制开启 https 的模式。到 2016 年为止,那些还不支持安全通讯的网站可能就不值得你们访问。

29、 加密你系统上的数据。至少对于笔记本而言,应该把家目录以及你的其它数据目录加密。几年前,我正乘坐在伦敦的地铁上,我的笔记本就成了某些人的目标——我下了车,车门关上了,而我发现我的笔记本不见了。此时,地铁已经驶出了站台。幸运的是,我把磁盘加密了。

32、 使用双因素认证(2fa)。密码变得无关紧要,使用 yubikey 以及诸如此类的工具可以使得双因素认证很方便,我们都有手机。在大脑中记一个密码,并在手机中生成一个密钥,总是比一个密码来得更好。

35、 如果你经常输入密码,那就使用一个容易记忆的句子,而不是一个单词。我所偏好的用于记忆密码的方式,就是使用有几个单词并且易于输入的词组。

37、 在过去几年中,我一直工作于容器方面,让我们来说说容器的安全吧。首先,让它们在开启强制模式的 selinux 的系统中运行。如果你的系统不支持 selinux,那就换个支持它的版本吧。selinux 是使用文件系统来保护容器免遭破坏的最佳工具。

39、 在虚拟机中运行容器。虚拟机提供比容器更好的隔离机制,在虚拟机中跑像容器之类的东西,更加灵活有弹性,并且互相隔离。

40、 在不同的虚拟机中,按不同的安全需求跑容器应用。你可以在 dmz 中的虚拟机上跑 web 服务容器,而在 dmz 外的虚拟机上跑数据容器。

41、 同时,记得在不同的物理机上跑需要最高安全性的虚拟机,并且容器放在不同虚拟机上(这也叫深度防护)(lctt 译注:此处原文有误,根据理解修改)。

45、 给你的容器打上最新的 cve 补丁。使用像 openshift 这样的工具来构建并维护你的容器镜像是个不错的主意,因为它会在新的安全补丁出现时自动重构容器镜像。

50、 为你孩子收到的所有那些圣诞物联网设备设置一个特别的客户网络。我钟爱我的 amazon echo,还有自动化灯以及电源开关(“alexa,打开圣诞灯“),但是所有这些都是由可能存在安全问题的 linux 操作系统控制。

原文发布时间为:2017-01-21

本文来自云栖社区合作伙伴“linux中国”

继续阅读