“linux是市场上最安全的操作系统”;多年来,这一直是开源平台的最佳卖点之一。然而,与任何有关技术的事物一样,被犯罪分子瞄准只是时间问题。每个操作系统、软件和服务都是如此。在这一点上,说Linux对恶意软件免疫是绝对错误的。
可悲的事实是,只要它连接到网络,就容易受到攻击。您使用什么操作系统并不重要——它运行的时间越长,就越有可能成为目标。Linux也不例外。
过去几年里,考虑到企业业务需要依赖包括Linux操作系统在内的开源技术谋生,Linux系统被网络犯罪分子盯上也就不足为奇了。事实上,如果大胆预测的话,针对Linux 部署的恶意软件的兴起将在未来十年变得更加惊人。
幸运的是,开源开发人员可以非常快速地响应此类恶意软件攻击——漏洞通常会在数小时或数天内被发现并修补。这种敏捷性是开源软件的优点之一。
然而,用户和管理员也承担着责任。我们都习惯认为Linux是一个“一劳永逸”的平台,但事实却并非如此。简而言之,它是软件,不知道也不关心潜伏在黑客内心深处的危险,它只是根据其部署工作而已。
话虽如此,管理员和用户应该怎么做才能对抗这种不断加剧的恶意软件浪潮呢?
如何保护您的Linux操作系统
1. 更新,更新,更新
不幸的现实是,我们的环境中充斥着严重过时的Linux系统,这会导致操作系统和安装的软件中布满漏洞。
您需要养成定期检查更新的习惯。建议您定期在Linux设备上运行更新检查,并在更新可用时立即应用。对于台式机来说,这是一个很好的策略。对于服务器,至少每周检查一次,并确保在必要时可以重新启动服务器以应用这些更新。
2. 选择正确的发行版
Linux发行版的数量远超出您的想象。尽管其中一些非常小众,但大多数都是通用的。切勿将通用操作系统用作服务器。
如果您正在寻找服务器操作系统,请坚持使用已知实体,例如Ubuntu Server、Debian Server、RHEL、SUSE、Fedora Server、AlmaLinux和Rocky Linux。如果您正在寻找用于容器的操作系统,请考虑使用特定于容器的发行版,例如Red Hat OpenShift。至于台式机,建议您坚持使用维护良好并定期发布可靠更新的发行版,例如Ubuntu、Linux Mint、Pop!_OS和Fedora。
3. 明智且负责任地部署
部署Linux时,请确保您以及您的用户和管理团队精通该操作系统。不要仅仅假设您可以出于任何目的部署任何Linux发行版,而无需费心了解平台的细节,并假设一切都会正常运行。您需要了解Linux安全性,了解哪些工具最适合该任务,并且永远不要假设您可以在不接触操作系统的情况下进行部署。
曾几何时,您可以“set and forget”(设置好就忘记)Linux。但那个时候已经过去了。如果您想确保您的Linux部署免受恶意软件攻击,请及时了解并警惕漏洞。您知道的越多,您的准备工作也就越充分。
4. 阅读日志文件
日志包含大量信息,Linux提供了隐喻的大量日志可供扫描。只要看看/var/log目录,您就会明白我的意思。问题是,系统上有多少日志文件并不重要:如果您不阅读它们,它们就毫无价值。
养成阅读日志文件的习惯。如果您不想手动梳理这些日志,可以考虑使用能帮您完成任务的工具,例如Graylog 2、Logcheck、Logwatch和Logstash等。
5. 部署扫描软件
多年来,我曾对在Linux上使用扫描软件的想法嗤之以鼻。现在?我完全赞成!我并不是说您应该立即安装防病毒扫描程序(尽管它不会造成伤害),但管理员肯定应该安装rootkit扫描程序并使用工具来扫描邮件服务器。最终用户也可以从ClamAV之类的工具中受益,但它是相当手动的,因此您的最终用户必须接受培训以了解如何使用它。
6. 限制用户访问
不要让任何用户SSH(Secure Shell,安全外壳,一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务)进入您的服务器。只允许绝对需要访问权限的人使用Secure Shell来访问您的服务器。同时,设置只允许SSH密钥访问并且root用户被锁定在SSH身份验证之外的策略。
7. 采用强密码策略
说到用户,您必须为Linux设置一个强密码策略。强密码是必须的。但是,如果您的服务器和台式机不需要强密码,您就无法实施这样的策略。以下是借助PAM(Pluggable Authentication Modules)在Ubuntu/Debian 设备上启用强密码的分步指南
安装
虽然PAM已经安装,但您必须添加一个附加模块。为此,请打开终端窗口并发出以下命令:
sudo apt-get install libpam-cracklib
这就是要安装的全部内容。
配置libpam_cracklib
此设置的配置文件是/etc/pam.d/common-password。在进行任何更改之前,让我们复制该文件。发出命令:
sudo cp /etc/pam.d/common-password /root/
将文件的工作副本隐藏起来,在您选择的编辑器中打开文件并查找以下行:
password requisite pam_cracklib.so retry=3 minlen=8 difok=3
我们将使用以下选项进行设置:
·minlen=建立与密码长度相关的复杂性度量;
·lcredit=设置所需小写字母的最小数量;
·ucredit=设置所需大写字母的最小数量;
·dcredit=设置所需的最小位数;
·ocredit=设置所需其他字符的最小数量;
·difok=设置必须不同于之前密码的字符数;
这是配置变得有点棘手的地方。您可能认为minlen是密码的最小长度。实际上,minlen是密码被认为成功之前必须达到的最低复杂度分数。其工作原理是密码中的某些字符不止一次计入密码复杂性。为了创建这个分数,复杂性是通过几个步骤来衡量的:
·密码中的每个字符都会加一分(无论类型如何);
·每个小写字母加一分(最高为lcredit的值);
·每个大写字母加一分(最高为ucredit的值);
·每个数字加一分(最高为dcredit的值);
·每个特殊字符加一分(最高为ocredit的值);
您还可以将这些值设置为负数。负数表示类的最小值(类是lcredit、ucredit、dcredit等),而正值表示类的最大值。
举个例子:
password requisite pam_cracklib.so try_first_pass retry=3
minlength=16lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=4
reject_username
上述设置将确保密码的复杂度得分为16,并且每个类别中至少包含一个字符。此外,还增加了reject_username,以防止用户将其用户名设置为密码。
8. 定期进行渗透测试
您还应该养成在所有Linux系统上运行渗透测试的习惯。确实,使用Kali Linux之类的大型工具包可能会拖慢系统运行速度,但是当您发现系统上迄今为止未知的漏洞并修补它们时,您会发现一切都是值得的。它会帮您避免一场灾难。
9. 不要禁用SELinux,并使用你的防火墙
我猜,Linux管理员在基于RHEL的发行版上做的第一件事就是禁用SELinux。千万别这样做!SELinux的存在是有原因的。确实,它可能比较麻烦,但子系统提供的安全性是值得的。关于SELinux有很多东西要学,但是考虑这个安全系统是绝对必须的,而且越早学习,您就可以越早利用它提升安全性。
同时,使用您的防火墙。了解您选择的发行版使用的任何工具——例如UFW或FirewallD——并熟悉它的工作原理。不要禁用它,而是启用它。该防火墙可能是您数据安全的最后堡垒。所以为什么要忽略它呢?
以上就是在Linux上避免恶意软件的最佳建议。当然,这并不是万能的,但它可以在很大程度上防止您或您的公司遭受灾难。
参考及来源:https://www.techrepublic.com/article/linux-malware-tips-securing-oss/