如何保护Linux系统

每个Linux系统都将受益于更高的安全性,尤其是当它包含敏感数据时。互联网上有如此之多的资源,人们可能会认为保护Linux变得容易。我们知道不是。

Linux系统强化需要对Linux内核的工作原理有充分的了解。它还需要对操作系统原理有很好的了解。在本指南中,我们将帮助您获得理解并为您提供提示和工具。最终结果应该是一个安全的Linux服务器或桌面系统。

完成本指南后,您将了解更多有关:

  • 系统强化对Linux意味着什么
  • 可以采取哪些步骤来提高系统的整体安全性
  • 为什么技术审核是确保您安全的有效方法
  • 如何在Linux系统上进行常规技术审核

让我们从Linux强化开始!

 

Linux系统安全

在开始之前,让我们快速介绍一下主要主题。毕竟,良好的理解始于对关键概念的了解。

术语

稽核

如果未经测试,则任何系统都不安全。测试方法之一是通过执行安全审核。审核通常侧重于业务流程或技术安全措施的实施。最后一种审核也称为技术审核。

合规

实际上,这个奢侈用语不过是您与特定政策文件或技术基准的距离有多近。您的基准可能表明每个系统都应该有防火墙。然后,合规性检查的一部分将测试防火墙的存在。

系统强化

改善安全防护的过程称为系统强化。这意味着增加新的防御措施并改进现有的防御措施。它甚至可能包括拆卸组件,以保持系统整洁和清洁。

 

Linux强化步骤

因此,通过系统强化,我们专注于为您的系统提供安全措施。它有很多技术方面的内容,但是有一些关键原则。让我们先看看它们。

最大限度地减少资源

每个系统都有占用空间。与实际占用空间类似,它是系统面临风险时的大小。足迹越大,涉及的风险就越大。

减少安装的软件

通常,我们可以删除服务器上不再需要的东西。例如,可能已经安装了一些软件包来进行测试。如果不再使用此软件包及其软件组件,则通常将其删除。未安装的软件包不会影响我们的风险。

禁用和删除未使用的帐户

仍有太多公司的活动帐户根本不存在。那位同事离开了,但经理忘了要求删除帐户和相关权限。因此,有适当的技术控制来禁用帐户是有意义的。如果您有离开公司的同事,请使用Ansible之类的工具禁用该帐户。

对于技术团队,最好对帐户的使用制定严格的规则。例如,是否允许个人帐户在系统上运行软件以完成多个任务?开发人员或系统管理员通常是使用自己的用户而不是功能帐户来启动过程的。同事离开公司后,帐户被终止。在某个时刻,由帐户启动的流程将停止工作,并且业务流程会中断。

定期审核和清理可以减少这些风险。因此,在禁用和删除未使用的帐户时严格遵守卫生习惯可能会有所帮助。

默认拒绝

部署服务时,请使用“默认拒绝”类型的访问。这意味着除特别列出的人之外,没有人可以访问。这可以适用于文件许可权,防火墙规则以及对数据的访问。对于每个新服务,请考虑是否可以应用此原则。

删除标识和应用程序版本

太多软件组件自豪地共享其名称和版本。它看上去无辜,但却为攻击者提供了宝贵的数据。获得所使用的操作系统并不难。在还了解所使用的软件组件时,可以更轻松地查看是否存在特定的攻击。隐藏软件标语和版本号也将停止大多数自动攻击脚本,因为它们经常搜寻特定版本。

相关文章:  隐藏Nginx版本

 

添加新的安全措施

预防还是发现?

减少系统占用空间后,下一步就是添加相关的安全措施。通常,您首先要按类别选择它们。此类别定义一种措施是有助于预防还是侧重于检测。例如,防病毒扫描程序通常会进行检测。如果它具有即时扫描功能,并且可以保护您的系统免受感染,那么它也有助于预防。防火墙拒绝访问不需要的网络端口,因此可以预防。虽然预防听起来像是两者的最佳选择,但这并不一定是正确的。这是因为并非一切都可以预防。因此,还需要着重于检测的安全防御。

 

感兴趣的话题

添加新的安全措施时,有很多选择。让我们看看您可以采取的一些可用技术措施。

内核安全

Linux内核本身负责管理谁有权访问哪些资源。这是一项艰巨的任务,因为需要在性能,稳定性和安全性之间达到最佳平衡。可以通过两种方式配置内核。首先是在编译过程中,即创建内核及其模块的构建过程。第二个选项是使用sysctl命令或其相关的/ proc文件系统。了解可用的  内核安全功能可能是确保Linux系统安全的重要步骤。

保护流程及其功能

流程是系统上的工人。他们通常要完成一项明确的任务,通常涉及某种形式的数据处理。由于进程可以访问敏感信息,因此在这一方面,我们可以做出有根据的选择,以了解Linux内核如何处理核心转储。核心转储是代表在应用程序或进程崩溃之前内存的外观的文件。如果要处理包含大量敏感数据的系统,那么通常您希望限制这些文件的创建。

 

网络过滤

在加固Linux系统时,第一步是查看进出的网络流量。如果您使用的是云服务器,则您的邻居系统可能不如您自己的家庭网络中的系统友好。因此,过滤掉不需要的网络流量是明智的选择,或者更好的做法是仅允许所需的流量。

 

入口流量

对于网络流量,可能有两个方向:传入或传出。传入流量是来自要与您的系统通信的其他系统的流量。这也称为入口过滤,您要在其中确保源地址(发送者)有效。假设您的系统有两个网络接口。接口1连接到您的内部网络(例如192.168.1.0/24),而接口2连接到您的Internet连接。当有人假装在您的本地网络上,但是在接口2上收到了流量时,则出了点问题。通过入口过滤,我们拒绝这种类型的网络流量,以防止这种所谓的欺骗攻击。

出口流量

适用于传出流量的出口筛选需要充分了解网络上使用的协议。大多数系统使用以下服务:

  • 用于解析名称和IP地址的DNS流量(端口53,UDP和TCP)
  • 外发电子邮件(端口25,TCP)
  • 时间同步(端口123,UDP)
  • HTTP和HTTPS用于检索更新(端口80/443,TCP,有时是UDP)

过滤所有传出流量可能是防止恶意流量的好方法,尤其是在过滤传出HTTP / HTTPS流量时。它可能阻止攻击者从Internet上的某些系统下载其恶意软件。

使用本地主机接口

Linux系统有一个名为lo的环回接口  。通常,主机名  localhost将解析为与其链接的127.0.0.1地址。此接口通常用于不一定要公开可用的基于网络的服务。例如,Web应用程序和数据库引擎可以使用套接字文件或使用此localhost接口来建立连接。因此,防火墙配置通常必须允许127.0.0.0/8网络上的所有流量。您是否知道还可以使用127.1.2.3这样的地址作为本地地址?

使用  ip命令,您可以显示此接口的详细信息。命令: ip addr show lo

1:lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc无队列状态UNKNOWN组默认qlen 1
链接/环回00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8范围主机lo
永久有效_lft永久首选_lft
inet6 :: 1/128作用域主机 
永久有效_lft永久首选_lft

输出显示该系统具有“ lo”界面。在  INET行显示的127.0.0.1的IPv4地址。它的地址具有CIDR表示法/ 8,表示已将127。*。*。*链接到该地址。它还有一个IPv6,由inet6行表示。这两个地址的  范围均为“主机”,这意味着该地址仅对系统本身可用。IPv4地址具有特殊的“ lo”范围,因此该地址将被标记为主要环回地址。

提示:如果您的系统仍在使用iptables,请查看ipset。此扩展允许iptables使用可用于阻止IP地址甚至整个网段的列表。

 

电子邮件和消息传递

尽管大多数Linux系统无法发挥邮件服务器的作用,但常见的是看到诸如Sendmail,Exim或Postfix之类的邮件传输代理(MTA)。典型用法包括将与系统相关的消息传递到中央邮箱或系统管理员。在Linux的早期,Sendmail是最受欢迎的选择。现在,Postfix已处于领先地位,这种情况已经改变。通过应用诸如加密,垃圾邮件过滤和黑名单之类的措施来提高  Postfix安全性

 

应用安全

默认配置

必须先配置大多数软件,然后才能使用它。虽然默认配置可能会起作用,但就安全性而言,它并不总是最佳配置。例如,MongoDB数据库引擎不需要身份验证。结果是,即使是未经授权的匿名用户也可以看到所有存储的数据。这不是保护您的宝贵数据的好方法。

应用程序的安全性最佳做法

当您使用Apache,MySQL和Postfix等知名应用程序时,可以肯定地找到详细的文档。有些甚至包括有关安全性的特定部分。仅此一项就可以成为了解安全原理及其应用方式的宝贵资源。因此,请查看您正在使用的任何软件组件的文档,尤其是那些正在侦听网络端口的软件。搜索安全性部分,并列出要保护哪些内容的操作列表。

重点领域:

  • 阅读应用程序文档以了解安全措施
  • 尽可能限制网络服务
  • 使用本地主机连接进行非公共网络服务
  • 禁用默认用户
  • 设置身份验证
  • 使用强密码

 

持续的安全措施

保持系统正常运行

大多数系统的目标是为业务流程提供价值。信息安全的主要支柱之一是系统的可用性。发生故障的系统可能以多种方式对业务造成风险。因此,请使用Nagios,Prometheus或Zabbix等工具来设置监视。

进行备份

创建常规备份以确保数据的可用性。当系统由于某种原因而停机时,那么您至少拥有执行恢复的数据。不用说,但是备份和还原一样好。如果无法还原,则它不是备份。

重点领域:

  • 创建常规备份(并测试还原)
  • 实施系统监控

 

应用您的软件补丁

每天都会发布新的软件更新。他们添加了新功能,解决了错误和安全问题。Linux上的大多数程序包管理器都可以显示可用的更新。有些甚至可以显示哪些更新与安全性有关。

如果可能,请使用自动更新,尤其是对于那些与安全问题有关的软件包。当内核更新时,不要忘记重启。否则,系统仍然容易受到攻击。如果您有一台需要继续运行的关键机器,请考虑将live kernel patching与livepatch一起使用

使用稳定版本(例如Ubuntu LTS)时,请在其正式支持终止之前升级到下一个版本。不要等到最后一刻,但要提前计划并执行这些升级。

重点领域:

 

执行自动审核

使用Lynis执行的Linux服务器安全审核的屏幕截图。

几乎每个系统管理员都对工作和活动量感到不知所措。尽管这使他们承受了一些压力,但也会增加忘记安装补丁等“不太重要”的事情的风险。入侵后清理系统或重新安装系统通常是浪费时间。从反应型转变为更主动的方法。实施持续审核,自动化控制并使用最佳实践。为了保护Linux系统并保持其安全性,请重点关注强化和审核的正确组合。这种神奇的组合将是对抗邪恶者的有力工具。

重点领域:

  • 执行系统运行状况扫描(审核,漏洞扫描,性能检查)
  • 实施手动检查(每次只关注一个项目)

建议资源

安全工具

一天要做很多事情,因此很容易忘记安全性。幸运的是,有许多可用的开源工具可以提供帮助。假设您有一个网站并使用SSL证书。该系统及其软件的大多数部分都有可用的安全工具。因此,要有创造力,并为您可以想到的各个方面找到一种工具。不知道从哪里开始?这100强的安全工具可能给你一些灵感。

猜你喜欢

转载自blog.csdn.net/allway2/article/details/106877060